diff --git a/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Expense%20Validation%20Request%20Module/view.xml b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Expense%20Validation%20Request%20Module/view.xml new file mode 100644 index 0000000000000000000000000000000000000000..2bfa461b241ea28edf3c7b3a77ae6b9833f7e162 --- /dev/null +++ b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Expense%20Validation%20Request%20Module/view.xml @@ -0,0 +1,85 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>action_type/object_list</string> + </tuple> + </value> + </item> + <item> + <key> <string>category</string> </key> + <value> <string>object_list</string> </value> + </item> + <item> + <key> <string>condition</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>view</string> </value> + </item> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>View</string> + </tuple> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Action Information</string> </value> + </item> + <item> + <key> <string>priority</string> </key> + <value> <float>1.0</float> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>View</string> </value> + </item> + <item> + <key> <string>visible</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Expression" module="Products.CMFCore.Expression"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>string:${object_url}/TravelRequestModule_view</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Expense%20Validation%20Request/view.xml b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Expense%20Validation%20Request/view.xml new file mode 100644 index 0000000000000000000000000000000000000000..002df4cc3563f3ffb4033eebfe458ac67a2d2b34 --- /dev/null +++ b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Expense%20Validation%20Request/view.xml @@ -0,0 +1,83 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>action_type/object_view</string> + </tuple> + </value> + </item> + <item> + <key> <string>category</string> </key> + <value> <string>object_view</string> </value> + </item> + <item> + <key> <string>condition</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>view</string> </value> + </item> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>View</string> + </tuple> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Action Information</string> </value> + </item> + <item> + <key> <string>priority</string> </key> + <value> <float>1.0</float> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>View</string> </value> + </item> + <item> + <key> <string>visible</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Expression" module="Products.CMFCore.Expression"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>string:${object_url}/ExpenseValidationRequest_view</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Leave%20Request%20Record/jio_view.xml b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Leave%20Request%20Record/jio_view.xml new file mode 100644 index 0000000000000000000000000000000000000000..112c4741bad1ab391b23568498598f7d58a46cdf --- /dev/null +++ b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Leave%20Request%20Record/jio_view.xml @@ -0,0 +1,85 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>action_type/object_jio_view</string> + </tuple> + </value> + </item> + <item> + <key> <string>category</string> </key> + <value> <string>object_jio_view</string> </value> + </item> + <item> + <key> <string>condition</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>jio_view</string> </value> + </item> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>View</string> + </tuple> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Action Information</string> </value> + </item> + <item> + <key> <string>priority</string> </key> + <value> <float>100.0</float> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>View</string> </value> + </item> + <item> + <key> <string>visible</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Expression" module="Products.CMFCore.Expression"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>string:${object_url}/LeaveRequestRecord_viewAsJio</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Leave%20Request%20Record/view.xml b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Leave%20Request%20Record/view.xml new file mode 100644 index 0000000000000000000000000000000000000000..0565bca928278fb287a08923d7c2b94e33936186 --- /dev/null +++ b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Leave%20Request%20Record/view.xml @@ -0,0 +1,85 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>action_type/object_view</string> + </tuple> + </value> + </item> + <item> + <key> <string>category</string> </key> + <value> <string>object_view</string> </value> + </item> + <item> + <key> <string>condition</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>view</string> </value> + </item> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>View</string> + </tuple> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Action Information</string> </value> + </item> + <item> + <key> <string>priority</string> </key> + <value> <float>1.0</float> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>View</string> </value> + </item> + <item> + <key> <string>visible</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Expression" module="Products.CMFCore.Expression"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>string:${object_url}/Event_view</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Record%20Module/view.xml b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Record%20Module/view.xml new file mode 100644 index 0000000000000000000000000000000000000000..67229ab758d89fbf9ffff86c3c8658a74e4644f1 --- /dev/null +++ b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Record%20Module/view.xml @@ -0,0 +1,83 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>action_type/object_list</string> + </tuple> + </value> + </item> + <item> + <key> <string>category</string> </key> + <value> <string>object_list</string> </value> + </item> + <item> + <key> <string>condition</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>view</string> </value> + </item> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>View</string> + </tuple> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Action Information</string> </value> + </item> + <item> + <key> <string>priority</string> </key> + <value> <float>1.0</float> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>View</string> </value> + </item> + <item> + <key> <string>visible</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Expression" module="Products.CMFCore.Expression"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>string:${object_url}/RecordModule_viewLeaveRecordList</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Travel%20Request%20Module/view.xml b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Travel%20Request%20Module/view.xml new file mode 100644 index 0000000000000000000000000000000000000000..2bfa461b241ea28edf3c7b3a77ae6b9833f7e162 --- /dev/null +++ b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Travel%20Request%20Module/view.xml @@ -0,0 +1,85 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>action_type/object_list</string> + </tuple> + </value> + </item> + <item> + <key> <string>category</string> </key> + <value> <string>object_list</string> </value> + </item> + <item> + <key> <string>condition</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>view</string> </value> + </item> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>View</string> + </tuple> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Action Information</string> </value> + </item> + <item> + <key> <string>priority</string> </key> + <value> <float>1.0</float> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>View</string> </value> + </item> + <item> + <key> <string>visible</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Expression" module="Products.CMFCore.Expression"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>string:${object_url}/TravelRequestModule_view</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Travel%20Request%20Record/jio_view.xml b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Travel%20Request%20Record/jio_view.xml new file mode 100644 index 0000000000000000000000000000000000000000..a0f7244d76704720bbc38a5ee13a237f680d3555 --- /dev/null +++ b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Travel%20Request%20Record/jio_view.xml @@ -0,0 +1,85 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>action_type/object_jio_view</string> + </tuple> + </value> + </item> + <item> + <key> <string>category</string> </key> + <value> <string>object_jio_view</string> </value> + </item> + <item> + <key> <string>condition</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>jio_view</string> </value> + </item> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>View</string> + </tuple> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Action Information</string> </value> + </item> + <item> + <key> <string>priority</string> </key> + <value> <float>100.0</float> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>View</string> </value> + </item> + <item> + <key> <string>visible</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Expression" module="Products.CMFCore.Expression"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>string:${object_url}/TravelRequestRecord_viewAsJio</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Travel%20Request%20Record/view.xml b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Travel%20Request%20Record/view.xml new file mode 100644 index 0000000000000000000000000000000000000000..08881bcef6bb6cd0fa87bff2f1a6e221a1216d20 --- /dev/null +++ b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Travel%20Request%20Record/view.xml @@ -0,0 +1,85 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>action_type/object_view</string> + </tuple> + </value> + </item> + <item> + <key> <string>category</string> </key> + <value> <string>object_view</string> </value> + </item> + <item> + <key> <string>condition</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>view</string> </value> + </item> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>View</string> + </tuple> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Action Information</string> </value> + </item> + <item> + <key> <string>priority</string> </key> + <value> <float>1.0</float> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>View</string> </value> + </item> + <item> + <key> <string>visible</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Expression" module="Products.CMFCore.Expression"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>string:${object_url}/TravelRequestRecord_view</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Travel%20Request%20Record/view_as_jio.xml b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Travel%20Request%20Record/view_as_jio.xml new file mode 100644 index 0000000000000000000000000000000000000000..d6ecff0437b8bf6fa00c9d55076e533155a0d10a --- /dev/null +++ b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Travel%20Request%20Record/view_as_jio.xml @@ -0,0 +1,85 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>action_type/object_view</string> + </tuple> + </value> + </item> + <item> + <key> <string>category</string> </key> + <value> <string>object_view</string> </value> + </item> + <item> + <key> <string>condition</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>view_as_jio</string> </value> + </item> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>View</string> + </tuple> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Action Information</string> </value> + </item> + <item> + <key> <string>priority</string> </key> + <value> <float>2.0</float> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>jIO View</string> </value> + </item> + <item> + <key> <string>visible</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Expression" module="Products.CMFCore.Expression"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>string:${object_url}/TravelRequestRecord_viewAsJio</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Travel%20Request/view.xml b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Travel%20Request/view.xml new file mode 100644 index 0000000000000000000000000000000000000000..f359603f68b4a01148a1ff286247d0231412ae8a --- /dev/null +++ b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Travel%20Request/view.xml @@ -0,0 +1,85 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>action_type/object_view</string> + </tuple> + </value> + </item> + <item> + <key> <string>category</string> </key> + <value> <string>object_view</string> </value> + </item> + <item> + <key> <string>condition</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>view</string> </value> + </item> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>View</string> + </tuple> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Action Information</string> </value> + </item> + <item> + <key> <string>priority</string> </key> + <value> <float>1.0</float> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>View</string> </value> + </item> + <item> + <key> <string>visible</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Expression" module="Products.CMFCore.Expression"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>string:${object_url}/TravelRequest_view</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/ModuleTemplateItem/expense_validation_request_module.xml b/bt5/erp5_travel_expense/ModuleTemplateItem/expense_validation_request_module.xml new file mode 100644 index 0000000000000000000000000000000000000000..0f6d3bb00b143e25d5bebd6adaa3ad88badb6808 --- /dev/null +++ b/bt5/erp5_travel_expense/ModuleTemplateItem/expense_validation_request_module.xml @@ -0,0 +1,96 @@ +<module> + <id>expense_validation_request_module</id> + <permission_list> + <permission type='tuple'> + <name>Access Transient Objects</name> + <role>Assignee</role> + <role>Assignor</role> + <role>Associate</role> + <role>Auditor</role> + <role>Author</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>Access contents information</name> + <role>Assignee</role> + <role>Assignor</role> + <role>Associate</role> + <role>Auditor</role> + <role>Author</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>Access session data</name> + <role>Assignee</role> + <role>Assignor</role> + <role>Associate</role> + <role>Auditor</role> + <role>Author</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>Add portal content</name> + <role>Assignor</role> + <role>Author</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>Add portal folders</name> + <role>Assignor</role> + <role>Author</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>Change local roles</name> + <role>Assignor</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>Copy or Move</name> + <role>Assignee</role> + <role>Assignor</role> + <role>Associate</role> + <role>Auditor</role> + <role>Author</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>Delete objects</name> + <role>Assignor</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>List folder contents</name> + <role>Assignee</role> + <role>Assignor</role> + <role>Associate</role> + <role>Auditor</role> + <role>Author</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>Modify portal content</name> + <role>Assignor</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>View</name> + <role>Assignee</role> + <role>Assignor</role> + <role>Associate</role> + <role>Auditor</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>View History</name> + <role>Assignee</role> + <role>Assignor</role> + <role>Associate</role> + <role>Auditor</role> + <role>Author</role> + <role>Manager</role> + </permission> + </permission_list> + <portal_type>Expense Validation Request Module</portal_type> + <title>Expense Validation Requests</title> +</module> \ No newline at end of file diff --git a/bt5/erp5_travel_expense/ModuleTemplateItem/record_module.xml b/bt5/erp5_travel_expense/ModuleTemplateItem/record_module.xml new file mode 100644 index 0000000000000000000000000000000000000000..c8a19fd3b6377b3358e86b315c2511f9cae3e618 --- /dev/null +++ b/bt5/erp5_travel_expense/ModuleTemplateItem/record_module.xml @@ -0,0 +1,106 @@ +<module> + <id>record_module</id> + <permission_list> + <permission type='tuple'> + <name>Access Transient Objects</name> + <role>Assignee</role> + <role>Assignor</role> + <role>Associate</role> + <role>Auditor</role> + <role>Author</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>Access contents information</name> + <role>Assignee</role> + <role>Assignor</role> + <role>Associate</role> + <role>Auditor</role> + <role>Author</role> + <role>Manager</role> + <role>Owner</role> + </permission> + <permission type='tuple'> + <name>Access session data</name> + <role>Assignee</role> + <role>Assignor</role> + <role>Associate</role> + <role>Auditor</role> + <role>Author</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>Add portal content</name> + <role>Assignee</role> + <role>Assignor</role> + <role>Associate</role> + <role>Author</role> + <role>Manager</role> + <role>Owner</role> + </permission> + <permission type='tuple'> + <name>Add portal folders</name> + <role>Assignor</role> + <role>Author</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>Change local roles</name> + <role>Assignor</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>Copy or Move</name> + <role>Assignee</role> + <role>Assignor</role> + <role>Associate</role> + <role>Auditor</role> + <role>Author</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>Delete objects</name> + <role>Assignor</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>List folder contents</name> + <role>Assignee</role> + <role>Assignor</role> + <role>Associate</role> + <role>Auditor</role> + <role>Author</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>Modify portal content</name> + <role>Assignee</role> + <role>Assignor</role> + <role>Associate</role> + <role>Author</role> + <role>Manager</role> + <role>Owner</role> + </permission> + <permission type='tuple'> + <name>View</name> + <role>Assignee</role> + <role>Assignor</role> + <role>Associate</role> + <role>Auditor</role> + <role>Author</role> + <role>Manager</role> + <role>Owner</role> + </permission> + <permission type='tuple'> + <name>View History</name> + <role>Assignee</role> + <role>Assignor</role> + <role>Associate</role> + <role>Auditor</role> + <role>Author</role> + <role>Manager</role> + </permission> + </permission_list> + <portal_type>Record Module</portal_type> + <title>Records</title> +</module> \ No newline at end of file diff --git a/bt5/erp5_travel_expense/ModuleTemplateItem/expense_validation_item_module.xml b/bt5/erp5_travel_expense/ModuleTemplateItem/travel_request_module.xml similarity index 93% rename from bt5/erp5_travel_expense/ModuleTemplateItem/expense_validation_item_module.xml rename to bt5/erp5_travel_expense/ModuleTemplateItem/travel_request_module.xml index c2a166e8e4d25d39ead2eb290dd0d2cd686398f0..bb89ee965cea6422207b91769417cd8e64d39594 100644 --- a/bt5/erp5_travel_expense/ModuleTemplateItem/expense_validation_item_module.xml +++ b/bt5/erp5_travel_expense/ModuleTemplateItem/travel_request_module.xml @@ -1,5 +1,5 @@ <module> - <id>expense_validation_item_module</id> + <id>travel_request_module</id> <permission_list> <permission type='tuple'> <name>Access Transient Objects</name> @@ -91,6 +91,6 @@ <role>Manager</role> </permission> </permission_list> - <portal_type>Expense Validation Item Module</portal_type> - <title>Expense Validation Items</title> + <portal_type>Travel Request Module</portal_type> + <title>Travel Requests</title> </module> \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/portal_alarms/alarm_process_draft_records.xml b/bt5/erp5_travel_expense/PathTemplateItem/portal_alarms/alarm_process_draft_records.xml new file mode 100644 index 0000000000000000000000000000000000000000..578aebaf246724b6a37c69396c59c928c6281784 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/portal_alarms/alarm_process_draft_records.xml @@ -0,0 +1,182 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Alarm" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>active_sense_method_id</string> </key> + <value> <string>Alarm_processDraftRecord</string> </value> + </item> + <item> + <key> <string>automatic_solve</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>alarm_process_draft_records</string> </value> + </item> + <item> + <key> <string>periodicity_hour</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>periodicity_minute</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>periodicity_minute_frequency</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>periodicity_month</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>periodicity_month_day</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>periodicity_start_date</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1435665600.0</float> + <string>GMT</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>periodicity_week</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Alarm</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Process Draft Records</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>supercedriclen</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>955.53660.33596.5256</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1481194129.91</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/portal_alarms/travel_expense_create_validation_item.xml b/bt5/erp5_travel_expense/PathTemplateItem/portal_alarms/travel_expense_create_validation_item.xml deleted file mode 100644 index 87371a495770463b6f9b2641abfc5163361c03c8..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/portal_alarms/travel_expense_create_validation_item.xml +++ /dev/null @@ -1,95 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="Alarm" module="erp5.portal_type"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>active_sense_method_id</string> </key> - <value> <string>Alarm_createExpenseValidationItem</string> </value> - </item> - <item> - <key> <string>automatic_solve</string> </key> - <value> <int>0</int> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>enabled</string> </key> - <value> <int>1</int> </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>travel_expense_create_validation_item</string> </value> - </item> - <item> - <key> <string>periodicity_hour</string> </key> - <value> - <tuple/> - </value> - </item> - <item> - <key> <string>periodicity_minute</string> </key> - <value> - <tuple/> - </value> - </item> - <item> - <key> <string>periodicity_minute_frequency</string> </key> - <value> <int>1</int> </value> - </item> - <item> - <key> <string>periodicity_month</string> </key> - <value> - <tuple/> - </value> - </item> - <item> - <key> <string>periodicity_month_day</string> </key> - <value> - <tuple/> - </value> - </item> - <item> - <key> <string>periodicity_start_date</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1435665600.0</float> - <string>GMT</string> - </tuple> - </state> - </object> - </value> - </item> - <item> - <key> <string>periodicity_week</string> </key> - <value> - <tuple/> - </value> - </item> - <item> - <key> <string>portal_type</string> </key> - <value> <string>Alarm</string> </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string>Create Expense Validation Item</string> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_add_leave_request_html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_add_leave_request_html.html new file mode 100644 index 0000000000000000000000000000000000000000..d3da1c8294e258c575a874c73b7cdb52a8787e8b --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_add_leave_request_html.html @@ -0,0 +1,18 @@ +<!doctype html> +<html> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <title>OfficeJS Add Text Document</title> + + <script src="rsvp.js"></script> + <script src="renderjs.js"></script> + <script src="gadget_officejs_page_add_leave_request_record.js"></script> + + + </head> + + <body> + </body> +</html> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_add_leave_request_html.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_add_leave_request_html.xml new file mode 100644 index 0000000000000000000000000000000000000000..c0a77b11af196c83a7796931ca4ae1cd59007e18 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_add_leave_request_html.xml @@ -0,0 +1,364 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Page" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>contributor/person_module/1</string> + <string>contributor/person_module/2</string> + </tuple> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/html</string> </value> + </item> + <item> + <key> <string>creators</string> </key> + <value> + <tuple> + <string>cedric.le.ninivin</string> + </tuple> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_officejs_page_add_leave_request_record.html</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_hr_add_leave_request_html</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>modification_date</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1455284351.46</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Page</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>OfficeJS Add Leave Request Record</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>supercedriclen</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1479285775.35</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>supercedriclen</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>955.40831.1926.48776</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1480504271.87</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>supercedriclen</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1479285724.63</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_add_leave_request_js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_add_leave_request_js.js new file mode 100644 index 0000000000000000000000000000000000000000..702e96a324a7a138f13fdef4907585addfb22147 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_add_leave_request_js.js @@ -0,0 +1,64 @@ +/*globals window, RSVP, rJS*/ +/*jslint indent: 2, nomen: true, maxlen: 80*/ +(function (window, RSVP, rJS) { + "use strict"; + + var gadget_klass = rJS(window); + + gadget_klass + .ready(function (g) { + g.props = {}; + return g.getElement() + .push(function (element) { + g.props.element = element; + g.props.deferred = RSVP.defer(); + }); + }) + + .declareAcquiredMethod("post", "jio_post") + .declareAcquiredMethod("redirect", "redirect") + .declareAcquiredMethod("updateHeader", "updateHeader") + .declareAcquiredMethod('getSetting', 'getSetting') + + .declareMethod("render", function (options) { + var gadget = this; + gadget.props.options = options; + return new RSVP.Queue() + .push(function () { + gadget.props.portal_type = "Leave Request Record"; + gadget.props.document_title = "Demande de congée"; + gadget.props.parent_relative_url = "record_module"; + return gadget.updateHeader({ + title: "Nouvelle " + gadget.props.document_title + }); + }) + .push(function () { + gadget.props.deferred.resolve(); + }); + }) + + .declareService(function () { + var gadget = this; + + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function () { + var doc = { + // XXX Hardcoded + parent_relative_url: gadget.props.parent_relative_url, + portal_type: gadget.props.portal_type + }; + return gadget.post(doc); + }) + .push(function (data) { + return gadget.redirect({ + jio_key: data, + page: "view" + }); + }); + + }); + +}(window, RSVP, rJS)); \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_add_leave_request_js.xml similarity index 85% rename from bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.js.xml rename to bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_add_leave_request_js.xml index 87549941752d5f56fc1eaf6818540fb961ad2ebd..f14a3ae0b5fe968dfb07d168906264c6ed6c3e90 100644 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.js.xml +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_add_leave_request_js.xml @@ -66,7 +66,10 @@ <item> <key> <string>categories</string> </key> <value> - <tuple/> + <tuple> + <string>contributor/person_module/1</string> + <string>contributor/person_module/2</string> + </tuple> </value> </item> <item> @@ -76,14 +79,16 @@ </value> </item> <item> - <key> <string>contributors</string> </key> + <key> <string>creators</string> </key> <value> - <tuple/> + <tuple> + <string>cedric.le.ninivin</string> + </tuple> </value> </item> <item> <key> <string>default_reference</string> </key> - <value> <string>gadget_travel_expense_record_application.js</string> </value> + <value> <string>gadget_officejs_page_add_leave_request_record.js</string> </value> </item> <item> <key> <string>description</string> </key> @@ -93,11 +98,32 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>gadget_travel_expense_record_application.js</string> </value> + <value> <string>gadget_hr_add_leave_request_js</string> </value> </item> <item> <key> <string>language</string> </key> - <value> <string>en</string> </value> + <value> + <none/> + </value> + </item> + <item> + <key> <string>modification_date</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1455284351.49</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> </item> <item> <key> <string>portal_type</string> </key> @@ -111,11 +137,13 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Travel Expense Record Application JS</string> </value> + <value> <string>OfficeJS Add Leave Request Record JS</string> </value> </item> <item> <key> <string>version</string> </key> - <value> <string>001</string> </value> + <value> + <none/> + </value> </item> <item> <key> <string>workflow_history</string> </key> @@ -175,7 +203,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -197,7 +225,7 @@ </tuple> <state> <tuple> - <float>1472526622.66</float> + <float>1479291214.81</float> <string>UTC</string> </tuple> </state> @@ -228,7 +256,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -242,7 +270,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>953.37743.37390.17152</string> </value> + <value> <string>955.40829.57244.13073</string> </value> </item> <item> <key> <string>state</string> </key> @@ -260,7 +288,7 @@ </tuple> <state> <tuple> - <float>1472541186.51</float> + <float>1480504244.16</float> <string>UTC</string> </tuple> </state> @@ -287,7 +315,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -317,7 +345,7 @@ </tuple> <state> <tuple> - <float>1472523951.83</float> + <float>1479285723.65</float> <string>UTC</string> </tuple> </state> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_add_mission_request_record_html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_add_mission_request_record_html.html new file mode 100644 index 0000000000000000000000000000000000000000..c59af0c8c11a81c709819ff4b2a122673ad95c84 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_add_mission_request_record_html.html @@ -0,0 +1,18 @@ +<!doctype html> +<html> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <title>OfficeJS Add Text Document</title> + + <script src="rsvp.js"></script> + <script src="renderjs.js"></script> + <script src="gadget_officejs_page_add_travel_request_record.js"></script> + + + </head> + + <body> + </body> +</html> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_add_mission_request_record_html.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_add_mission_request_record_html.xml new file mode 100644 index 0000000000000000000000000000000000000000..783bcf3036837194c9c8acab9db85057772187c3 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_add_mission_request_record_html.xml @@ -0,0 +1,364 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Page" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>contributor/person_module/1</string> + <string>contributor/person_module/2</string> + </tuple> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/html</string> </value> + </item> + <item> + <key> <string>creators</string> </key> + <value> + <tuple> + <string>cedric.le.ninivin</string> + </tuple> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_officejs_page_add_travel_request_record.html</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_hr_add_mission_request_record_html</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>modification_date</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1455284351.46</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Page</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>OfficeJS Add Travel Request Record</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>supercedriclen</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1479285713.84</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>supercedriclen</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>955.40825.30290.37427</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1480503936.95</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>supercedriclen</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1479285542.56</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_add_mission_request_record_js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_add_mission_request_record_js.js new file mode 100644 index 0000000000000000000000000000000000000000..0460acced056226f13697fcd19b223c00d57fe15 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_add_mission_request_record_js.js @@ -0,0 +1,64 @@ +/*globals window, RSVP, rJS*/ +/*jslint indent: 2, nomen: true, maxlen: 80*/ +(function (window, RSVP, rJS) { + "use strict"; + + var gadget_klass = rJS(window); + + gadget_klass + .ready(function (g) { + g.props = {}; + return g.getElement() + .push(function (element) { + g.props.element = element; + g.props.deferred = RSVP.defer(); + }); + }) + + .declareAcquiredMethod("post", "jio_post") + .declareAcquiredMethod("redirect", "redirect") + .declareAcquiredMethod("updateHeader", "updateHeader") + .declareAcquiredMethod('getSetting', 'getSetting') + + .declareMethod("render", function (options) { + var gadget = this; + gadget.props.options = options; + return new RSVP.Queue() + .push(function () { + gadget.props.portal_type = "Travel Request Record"; + gadget.props.document_title = "Mission Request"; + gadget.props.parent_relative_url = "record_module"; + return gadget.updateHeader({ + title: "New " + gadget.props.document_title + }); + }) + .push(function () { + gadget.props.deferred.resolve(); + }); + }) + + .declareService(function () { + var gadget = this; + + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function () { + var doc = { + // XXX Hardcoded + parent_relative_url: gadget.props.parent_relative_url, + portal_type: gadget.props.portal_type + }; + return gadget.post(doc); + }) + .push(function (data) { + return gadget.redirect({ + jio_key: data, + page: "view" + }); + }); + + }); + +}(window, RSVP, rJS)); \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_add_mission_request_record_js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_add_mission_request_record_js.xml new file mode 100644 index 0000000000000000000000000000000000000000..1a61d24da03ef0a388a83379403850a2537c7636 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_add_mission_request_record_js.xml @@ -0,0 +1,360 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Script" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>contributor/person_module/1</string> + <string>contributor/person_module/2</string> + </tuple> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>creators</string> </key> + <value> + <tuple> + <string>cedric.le.ninivin</string> + </tuple> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_officejs_page_add_travel_request_record.js</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_hr_add_mission_request_record_js</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>modification_date</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1455284351.49</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Script</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>OfficeJS Add Travel Request Record JS</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>supercedriclen</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1479285707.04</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>supercedriclen</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>955.40825.15833.30395</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1481299604.26</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>supercedriclen</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1479285544.32</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_alertify_css.css b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_alertify_css.css new file mode 100644 index 0000000000000000000000000000000000000000..85a67cfcdad1af10b0973245876c73a09d2a0693 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_alertify_css.css @@ -0,0 +1,223 @@ +.alertify, +.alertify-show, +.alertify-log { + -webkit-transition: all 500ms cubic-bezier(0.175, 0.885, 0.320, 1.275); + -moz-transition: all 500ms cubic-bezier(0.175, 0.885, 0.320, 1.275); + -ms-transition: all 500ms cubic-bezier(0.175, 0.885, 0.320, 1.275); + -o-transition: all 500ms cubic-bezier(0.175, 0.885, 0.320, 1.275); + transition: all 500ms cubic-bezier(0.175, 0.885, 0.320, 1.275); /* easeOutBack */ +} +.alertify-hide { + -webkit-transition: all 250ms cubic-bezier(0.600, -0.280, 0.735, 0.045); + -moz-transition: all 250ms cubic-bezier(0.600, -0.280, 0.735, 0.045); + -ms-transition: all 250ms cubic-bezier(0.600, -0.280, 0.735, 0.045); + -o-transition: all 250ms cubic-bezier(0.600, -0.280, 0.735, 0.045); + transition: all 250ms cubic-bezier(0.600, -0.280, 0.735, 0.045); /* easeInBack */ +} +.alertify-log-hide { + -webkit-transition: all 500ms cubic-bezier(0.600, -0.280, 0.735, 0.045); + -moz-transition: all 500ms cubic-bezier(0.600, -0.280, 0.735, 0.045); + -ms-transition: all 500ms cubic-bezier(0.600, -0.280, 0.735, 0.045); + -o-transition: all 500ms cubic-bezier(0.600, -0.280, 0.735, 0.045); + transition: all 500ms cubic-bezier(0.600, -0.280, 0.735, 0.045); /* easeInBack */ +} +.alertify-cover { + position: fixed; z-index: 99999; + top: 0; right: 0; bottom: 0; left: 0; + background-color:white; + filter:alpha(opacity=0); + opacity:0; +} + .alertify-cover-hidden { + display: none; + } +.alertify { + position: fixed; z-index: 99999; + top: 50px; left: 50%; + width: 550px; + margin-left: -275px; + opacity: 1; +} + .alertify-hidden { + -webkit-transform: translate(0,-150px); + -moz-transform: translate(0,-150px); + -ms-transform: translate(0,-150px); + -o-transform: translate(0,-150px); + transform: translate(0,-150px); + opacity: 0; + display: none; + } + /* overwrite display: none; for everything except IE6-8 */ + :root *> .alertify-hidden { + display: block; + visibility: hidden; + } +.alertify-logs { + position: fixed; + z-index: 5000; + bottom: 10px; + right: 10px; + width: 300px; +} +.alertify-logs-hidden { + display: none; +} + .alertify-log { + display: block; + margin-top: 10px; + position: relative; + right: -300px; + opacity: 0; + } + .alertify-log-show { + right: 0; + opacity: 1; + } + .alertify-log-hide { + -webkit-transform: translate(300px, 0); + -moz-transform: translate(300px, 0); + -ms-transform: translate(300px, 0); + -o-transform: translate(300px, 0); + transform: translate(300px, 0); + opacity: 0; + } + .alertify-dialog { + padding: 25px; + } + .alertify-resetFocus { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; + } + .alertify-inner { + text-align: center; + } + .alertify-text { + margin-bottom: 15px; + width: 100%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + font-size: 100%; + } + .alertify-buttons { + } + .alertify-button, + .alertify-button:hover, + .alertify-button:active, + .alertify-button:visited { + background: none; + text-decoration: none; + border: none; + /* line-height and font-size for input button */ + line-height: 1.5; + font-size: 100%; + display: inline-block; + cursor: pointer; + margin-left: 5px; + } + +@media only screen and (max-width: 680px) { + .alertify, + .alertify-logs { + width: 90%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .alertify { + left: 5%; + margin: 0; + } +} + +/** + * Default Look and Feel + */ +.alertify, +.alertify-log { + font-family: sans-serif; +} +.alertify { + background: #FFF; + border: 10px solid #333; /* browsers that don't support rgba */ + border: 10px solid rgba(0,0,0,.7); + border-radius: 8px; + box-shadow: 0 3px 3px rgba(0,0,0,.3); + -webkit-background-clip: padding; /* Safari 4? Chrome 6? */ + -moz-background-clip: padding; /* Firefox 3.6 */ + background-clip: padding-box; /* Firefox 4, Safari 5, Opera 10, IE 9 */ +} + .alertify-text { + border: 1px solid #CCC; + padding: 10px; + border-radius: 4px; + } + .alertify-button { + border-radius: 4px; + color: #FFF; + font-weight: bold; + padding: 6px 15px; + text-decoration: none; + text-shadow: 1px 1px 0 rgba(0,0,0,.5); + box-shadow: inset 0 1px 0 0 rgba(255,255,255,.5); + background-image: -webkit-linear-gradient(top, rgba(255,255,255,.3), rgba(255,255,255,0)); + background-image: -moz-linear-gradient(top, rgba(255,255,255,.3), rgba(255,255,255,0)); + background-image: -ms-linear-gradient(top, rgba(255,255,255,.3), rgba(255,255,255,0)); + background-image: -o-linear-gradient(top, rgba(255,255,255,.3), rgba(255,255,255,0)); + background-image: linear-gradient(top, rgba(255,255,255,.3), rgba(255,255,255,0)); + } + .alertify-button:hover, + .alertify-button:focus { + outline: none; + background-image: -webkit-linear-gradient(top, rgba(0,0,0,.1), rgba(0,0,0,0)); + background-image: -moz-linear-gradient(top, rgba(0,0,0,.1), rgba(0,0,0,0)); + background-image: -ms-linear-gradient(top, rgba(0,0,0,.1), rgba(0,0,0,0)); + background-image: -o-linear-gradient(top, rgba(0,0,0,.1), rgba(0,0,0,0)); + background-image: linear-gradient(top, rgba(0,0,0,.1), rgba(0,0,0,0)); + } + .alertify-button:focus { + box-shadow: 0 0 15px #2B72D5; + } + .alertify-button:active { + position: relative; + box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); + } + .alertify-button-cancel, + .alertify-button-cancel:hover, + .alertify-button-cancel:focus { + background-color: #FE1A00; + border: 1px solid #D83526; + } + .alertify-button-ok, + .alertify-button-ok:hover, + .alertify-button-ok:focus { + background-color: #5CB811; + border: 1px solid #3B7808; + } + +.alertify-log { + background: #1F1F1F; + background: rgba(0,0,0,.9); + padding: 15px; + border-radius: 4px; + color: #FFF; + text-shadow: -1px -1px 0 rgba(0,0,0,.5); +} + .alertify-log-error { + background: #FE1A00; + background: rgba(254,26,0,.9); + } + .alertify-log-success { + background: #5CB811; + background: rgba(92,184,17,.9); + /* + background: #70AD47; + background: rgba(112, 173, 71, .9); + */ + } \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_app.css.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_alertify_css.xml similarity index 92% rename from bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_app.css.xml rename to bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_alertify_css.xml index 0d47d0ac434f638b349429c957dbdeb97295419a..55bf154d74b96e2b570f0325367feb3ee7b29ae1 100644 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_app.css.xml +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_alertify_css.xml @@ -69,9 +69,13 @@ <none/> </value> </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/css</string> </value> + </item> <item> <key> <string>default_reference</string> </key> - <value> <string>travel_expense_app.css</string> </value> + <value> <string>alertify.css</string> </value> </item> <item> <key> <string>description</string> </key> @@ -81,11 +85,13 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>travel_expense_app.css</string> </value> + <value> <string>gadget_hr_alertify_css</string> </value> </item> <item> <key> <string>language</string> </key> - <value> <string>en</string> </value> + <value> + <none/> + </value> </item> <item> <key> <string>portal_type</string> </key> @@ -99,11 +105,11 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Travel Expense APP CSS</string> </value> + <value> <string>21</string> </value> </item> <item> <key> <string>version</string> </key> - <value> <string>001</string> </value> + <value> <string>0.3.11</string> </value> </item> <item> <key> <string>workflow_history</string> </key> @@ -185,7 +191,7 @@ </tuple> <state> <tuple> - <float>1472526693.82</float> + <float>1478773826.59</float> <string>UTC</string> </tuple> </state> @@ -230,7 +236,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>953.37464.51607.30515</string> </value> + <value> <string>955.11990.60314.54033</string> </value> </item> <item> <key> <string>state</string> </key> @@ -248,7 +254,7 @@ </tuple> <state> <tuple> - <float>1472525572.84</float> + <float>1478773882.26</float> <string>UTC</string> </tuple> </state> @@ -271,7 +277,9 @@ <dictionary> <item> <key> <string>action</string> </key> - <value> <string>detect_converted_file</string> </value> + <value> + <none/> + </value> </item> <item> <key> <string>actor</string> </key> @@ -287,7 +295,7 @@ </item> <item> <key> <string>external_processing_state</string> </key> - <value> <string>converted</string> </value> + <value> <string>empty</string> </value> </item> <item> <key> <string>serial</string> </key> @@ -305,7 +313,7 @@ </tuple> <state> <tuple> - <float>1472523951.17</float> + <float>1478773769.88</float> <string>UTC</string> </tuple> </state> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_alertify_js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_alertify_js.js new file mode 100644 index 0000000000000000000000000000000000000000..373d32d7935f8a6e5c14b7ed3e1dcc42200c0471 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_alertify_js.js @@ -0,0 +1,636 @@ +/** + * alertify + * An unobtrusive customizable JavaScript notification system + * + * @author Fabien Doiron <fabien.doiron@gmail.com> + * @copyright Fabien Doiron 2013 + * @license MIT <http://opensource.org/licenses/mit-license.php> + * @link http://fabien-d.github.com/alertify.js/ + * @module alertify + * @version 0.3.11 + */ +(function (global, undefined) { + "use strict"; + + var document = global.document, + Alertify; + + Alertify = function () { + + var _alertify = {}, + dialogs = {}, + isopen = false, + keys = { ENTER: 13, ESC: 27, SPACE: 32 }, + queue = [], + $, btnCancel, btnOK, btnReset, btnResetBack, btnFocus, elCallee, elCover, elDialog, elLog, form, input, getTransitionEvent; + + /** + * Markup pieces + * @type {Object} + */ + dialogs = { + buttons : { + holder : "<nav class=\"alertify-buttons\">{{buttons}}</nav>", + submit : "<button type=\"submit\" class=\"alertify-button alertify-button-ok\" id=\"alertify-ok\">{{ok}}</button>", + ok : "<button class=\"alertify-button alertify-button-ok\" id=\"alertify-ok\">{{ok}}</button>", + cancel : "<button class=\"alertify-button alertify-button-cancel\" id=\"alertify-cancel\">{{cancel}}</button>" + }, + input : "<div class=\"alertify-text-wrapper\"><input type=\"text\" class=\"alertify-text\" id=\"alertify-text\"></div>", + message : "<p class=\"alertify-message\">{{message}}</p>", + log : "<article class=\"alertify-log{{class}}\">{{message}}</article>" + }; + + /** + * Return the proper transitionend event + * @return {String} Transition type string + */ + getTransitionEvent = function () { + var t, + type, + supported = false, + el = document.createElement("fakeelement"), + transitions = { + "WebkitTransition" : "webkitTransitionEnd", + "MozTransition" : "transitionend", + "OTransition" : "otransitionend", + "transition" : "transitionend" + }; + + for (t in transitions) { + if (el.style[t] !== undefined) { + type = transitions[t]; + supported = true; + break; + } + } + + return { + type : type, + supported : supported + }; + }; + + /** + * Shorthand for document.getElementById() + * + * @param {String} id A specific element ID + * @return {Object} HTML element + */ + $ = function (id) { + return document.getElementById(id); + }; + + /** + * Alertify private object + * @type {Object} + */ + _alertify = { + + /** + * Labels object + * @type {Object} + */ + labels : { + ok : "OK", + cancel : "Cancel" + }, + + /** + * Delay number + * @type {Number} + */ + delay : 5000, + + /** + * Whether buttons are reversed (default is secondary/primary) + * @type {Boolean} + */ + buttonReverse : false, + + /** + * Which button should be focused by default + * @type {String} "ok" (default), "cancel", or "none" + */ + buttonFocus : "ok", + + /** + * Set the transition event on load + * @type {[type]} + */ + transition : undefined, + + /** + * Set the proper button click events + * + * @param {Function} fn [Optional] Callback function + * + * @return {undefined} + */ + addListeners : function (fn) { + var hasOK = (typeof btnOK !== "undefined"), + hasCancel = (typeof btnCancel !== "undefined"), + hasInput = (typeof input !== "undefined"), + val = "", + self = this, + ok, cancel, common, key, reset; + + // ok event handler + ok = function (event) { + if (typeof event.preventDefault !== "undefined") event.preventDefault(); + common(event); + if (typeof input !== "undefined") val = input.value; + if (typeof fn === "function") { + if (typeof input !== "undefined") { + fn(true, val); + } + else fn(true); + } + return false; + }; + + // cancel event handler + cancel = function (event) { + if (typeof event.preventDefault !== "undefined") event.preventDefault(); + common(event); + if (typeof fn === "function") fn(false); + return false; + }; + + // common event handler (keyup, ok and cancel) + common = function (event) { + self.hide(); + self.unbind(document.body, "keyup", key); + self.unbind(btnReset, "focus", reset); + if (hasOK) self.unbind(btnOK, "click", ok); + if (hasCancel) self.unbind(btnCancel, "click", cancel); + }; + + // keyup handler + key = function (event) { + var keyCode = event.keyCode; + if ((keyCode === keys.SPACE && !hasInput) || (hasInput && keyCode === keys.ENTER)) ok(event); + if (keyCode === keys.ESC && hasCancel) cancel(event); + }; + + // reset focus to first item in the dialog + reset = function (event) { + if (hasInput) input.focus(); + else if (!hasCancel || self.buttonReverse) btnOK.focus(); + else btnCancel.focus(); + }; + + // handle reset focus link + // this ensures that the keyboard focus does not + // ever leave the dialog box until an action has + // been taken + this.bind(btnReset, "focus", reset); + this.bind(btnResetBack, "focus", reset); + // handle OK click + if (hasOK) this.bind(btnOK, "click", ok); + // handle Cancel click + if (hasCancel) this.bind(btnCancel, "click", cancel); + // listen for keys, Cancel => ESC + this.bind(document.body, "keyup", key); + if (!this.transition.supported) { + this.setFocus(); + } + }, + + /** + * Bind events to elements + * + * @param {Object} el HTML Object + * @param {Event} event Event to attach to element + * @param {Function} fn Callback function + * + * @return {undefined} + */ + bind : function (el, event, fn) { + if (typeof el.addEventListener === "function") { + el.addEventListener(event, fn, false); + } else if (el.attachEvent) { + el.attachEvent("on" + event, fn); + } + }, + + /** + * Use alertify as the global error handler (using window.onerror) + * + * @return {boolean} success + */ + handleErrors : function () { + if (typeof global.onerror !== "undefined") { + var self = this; + global.onerror = function (msg, url, line) { + self.error("[" + msg + " on line " + line + " of " + url + "]", 0); + }; + return true; + } else { + return false; + } + }, + + /** + * Append button HTML strings + * + * @param {String} secondary The secondary button HTML string + * @param {String} primary The primary button HTML string + * + * @return {String} The appended button HTML strings + */ + appendButtons : function (secondary, primary) { + return this.buttonReverse ? primary + secondary : secondary + primary; + }, + + /** + * Build the proper message box + * + * @param {Object} item Current object in the queue + * + * @return {String} An HTML string of the message box + */ + build : function (item) { + var html = "", + type = item.type, + message = item.message, + css = item.cssClass || ""; + + html += "<div class=\"alertify-dialog\">"; + html += "<a id=\"alertify-resetFocusBack\" class=\"alertify-resetFocus\" href=\"#\">Reset Focus</a>"; + + if (_alertify.buttonFocus === "none") html += "<a href=\"#\" id=\"alertify-noneFocus\" class=\"alertify-hidden\"></a>"; + + // doens't require an actual form + if (type === "prompt") html += "<div id=\"alertify-form\">"; + + html += "<article class=\"alertify-inner\">"; + html += dialogs.message.replace("{{message}}", message); + + if (type === "prompt") html += dialogs.input; + + html += dialogs.buttons.holder; + html += "</article>"; + + if (type === "prompt") html += "</div>"; + + html += "<a id=\"alertify-resetFocus\" class=\"alertify-resetFocus\" href=\"#\">Reset Focus</a>"; + html += "</div>"; + + switch (type) { + case "confirm": + html = html.replace("{{buttons}}", this.appendButtons(dialogs.buttons.cancel, dialogs.buttons.ok)); + html = html.replace("{{ok}}", this.labels.ok).replace("{{cancel}}", this.labels.cancel); + break; + case "prompt": + html = html.replace("{{buttons}}", this.appendButtons(dialogs.buttons.cancel, dialogs.buttons.submit)); + html = html.replace("{{ok}}", this.labels.ok).replace("{{cancel}}", this.labels.cancel); + break; + case "alert": + html = html.replace("{{buttons}}", dialogs.buttons.ok); + html = html.replace("{{ok}}", this.labels.ok); + break; + default: + break; + } + + elDialog.className = "alertify alertify-" + type + " " + css; + elCover.className = "alertify-cover"; + return html; + }, + + /** + * Close the log messages + * + * @param {Object} elem HTML Element of log message to close + * @param {Number} wait [optional] Time (in ms) to wait before automatically hiding the message, if 0 never hide + * + * @return {undefined} + */ + close : function (elem, wait) { + // Unary Plus: +"2" === 2 + var timer = (wait && !isNaN(wait)) ? +wait : this.delay, + self = this, + hideElement, transitionDone; + + // set click event on log messages + this.bind(elem, "click", function () { + hideElement(elem); + }); + // Hide the dialog box after transition + // This ensure it doens't block any element from being clicked + transitionDone = function (event) { + event.stopPropagation(); + // unbind event so function only gets called once + self.unbind(this, self.transition.type, transitionDone); + // remove log message + elLog.removeChild(this); + if (!elLog.hasChildNodes()) elLog.className += " alertify-logs-hidden"; + }; + // this sets the hide class to transition out + // or removes the child if css transitions aren't supported + hideElement = function (el) { + // ensure element exists + if (typeof el !== "undefined" && el.parentNode === elLog) { + // whether CSS transition exists + if (self.transition.supported) { + self.bind(el, self.transition.type, transitionDone); + el.className += " alertify-log-hide"; + } else { + elLog.removeChild(el); + if (!elLog.hasChildNodes()) elLog.className += " alertify-logs-hidden"; + } + } + }; + // never close (until click) if wait is set to 0 + if (wait === 0) return; + // set timeout to auto close the log message + setTimeout(function () { hideElement(elem); }, timer); + }, + + /** + * Create a dialog box + * + * @param {String} message The message passed from the callee + * @param {String} type Type of dialog to create + * @param {Function} fn [Optional] Callback function + * @param {String} placeholder [Optional] Default value for prompt input field + * @param {String} cssClass [Optional] Class(es) to append to dialog box + * + * @return {Object} + */ + dialog : function (message, type, fn, placeholder, cssClass) { + // set the current active element + // this allows the keyboard focus to be resetted + // after the dialog box is closed + elCallee = document.activeElement; + // check to ensure the alertify dialog element + // has been successfully created + var check = function () { + if ((elLog && elLog.scrollTop !== null) && (elCover && elCover.scrollTop !== null)) return; + else check(); + }; + // error catching + if (typeof message !== "string") throw new Error("message must be a string"); + if (typeof type !== "string") throw new Error("type must be a string"); + if (typeof fn !== "undefined" && typeof fn !== "function") throw new Error("fn must be a function"); + // initialize alertify if it hasn't already been done + this.init(); + check(); + + queue.push({ type: type, message: message, callback: fn, placeholder: placeholder, cssClass: cssClass }); + if (!isopen) this.setup(); + + return this; + }, + + /** + * Extend the log method to create custom methods + * + * @param {String} type Custom method name + * + * @return {Function} + */ + extend : function (type) { + if (typeof type !== "string") throw new Error("extend method must have exactly one paramter"); + return function (message, wait) { + this.log(message, type, wait); + return this; + }; + }, + + /** + * Hide the dialog and rest to defaults + * + * @return {undefined} + */ + hide : function () { + var transitionDone, + self = this; + // remove reference from queue + queue.splice(0,1); + // if items remaining in the queue + if (queue.length > 0) this.setup(true); + else { + isopen = false; + // Hide the dialog box after transition + // This ensure it doens't block any element from being clicked + transitionDone = function (event) { + event.stopPropagation(); + // unbind event so function only gets called once + self.unbind(elDialog, self.transition.type, transitionDone); + }; + // whether CSS transition exists + if (this.transition.supported) { + this.bind(elDialog, this.transition.type, transitionDone); + elDialog.className = "alertify alertify-hide alertify-hidden"; + } else { + elDialog.className = "alertify alertify-hide alertify-hidden alertify-isHidden"; + } + elCover.className = "alertify-cover alertify-cover-hidden"; + // set focus to the last element or body + // after the dialog is closed + elCallee.focus(); + } + }, + + /** + * Initialize Alertify + * Create the 2 main elements + * + * @return {undefined} + */ + init : function () { + // ensure legacy browsers support html5 tags + document.createElement("nav"); + document.createElement("article"); + document.createElement("section"); + // cover + if ($("alertify-cover") == null) { + elCover = document.createElement("div"); + elCover.setAttribute("id", "alertify-cover"); + elCover.className = "alertify-cover alertify-cover-hidden"; + document.body.appendChild(elCover); + } + // main element + if ($("alertify") == null) { + isopen = false; + queue = []; + elDialog = document.createElement("section"); + elDialog.setAttribute("id", "alertify"); + elDialog.className = "alertify alertify-hidden"; + document.body.appendChild(elDialog); + } + // log element + if ($("alertify-logs") == null) { + elLog = document.createElement("section"); + elLog.setAttribute("id", "alertify-logs"); + elLog.className = "alertify-logs alertify-logs-hidden"; + document.body.appendChild(elLog); + } + // set tabindex attribute on body element + // this allows script to give it focus + // after the dialog is closed + document.body.setAttribute("tabindex", "0"); + // set transition type + this.transition = getTransitionEvent(); + }, + + /** + * Show a new log message box + * + * @param {String} message The message passed from the callee + * @param {String} type [Optional] Optional type of log message + * @param {Number} wait [Optional] Time (in ms) to wait before auto-hiding the log + * + * @return {Object} + */ + log : function (message, type, wait) { + // check to ensure the alertify dialog element + // has been successfully created + var check = function () { + if (elLog && elLog.scrollTop !== null) return; + else check(); + }; + // initialize alertify if it hasn't already been done + this.init(); + check(); + + elLog.className = "alertify-logs"; + this.notify(message, type, wait); + return this; + }, + + /** + * Add new log message + * If a type is passed, a class name "alertify-log-{type}" will get added. + * This allows for custom look and feel for various types of notifications. + * + * @param {String} message The message passed from the callee + * @param {String} type [Optional] Type of log message + * @param {Number} wait [Optional] Time (in ms) to wait before auto-hiding + * + * @return {undefined} + */ + notify : function (message, type, wait) { + var log = document.createElement("article"); + log.className = "alertify-log" + ((typeof type === "string" && type !== "") ? " alertify-log-" + type : ""); + log.innerHTML = message; + // append child + elLog.appendChild(log); + // triggers the CSS animation + setTimeout(function() { log.className = log.className + " alertify-log-show"; }, 50); + this.close(log, wait); + }, + + /** + * Set properties + * + * @param {Object} args Passing parameters + * + * @return {undefined} + */ + set : function (args) { + var k; + // error catching + if (typeof args !== "object" && args instanceof Array) throw new Error("args must be an object"); + // set parameters + for (k in args) { + if (args.hasOwnProperty(k)) { + this[k] = args[k]; + } + } + }, + + /** + * Common place to set focus to proper element + * + * @return {undefined} + */ + setFocus : function () { + if (input) { + input.focus(); + input.select(); + } + else btnFocus.focus(); + }, + + /** + * Initiate all the required pieces for the dialog box + * + * @return {undefined} + */ + setup : function (fromQueue) { + var item = queue[0], + self = this, + transitionDone; + + // dialog is open + isopen = true; + // Set button focus after transition + transitionDone = function (event) { + event.stopPropagation(); + self.setFocus(); + // unbind event so function only gets called once + self.unbind(elDialog, self.transition.type, transitionDone); + }; + // whether CSS transition exists + if (this.transition.supported && !fromQueue) { + this.bind(elDialog, this.transition.type, transitionDone); + } + // build the proper dialog HTML + elDialog.innerHTML = this.build(item); + // assign all the common elements + btnReset = $("alertify-resetFocus"); + btnResetBack = $("alertify-resetFocusBack"); + btnOK = $("alertify-ok") || undefined; + btnCancel = $("alertify-cancel") || undefined; + btnFocus = (_alertify.buttonFocus === "cancel") ? btnCancel : ((_alertify.buttonFocus === "none") ? $("alertify-noneFocus") : btnOK), + input = $("alertify-text") || undefined; + form = $("alertify-form") || undefined; + // add placeholder value to the input field + if (typeof item.placeholder === "string" && item.placeholder !== "") input.value = item.placeholder; + if (fromQueue) this.setFocus(); + this.addListeners(item.callback); + }, + + /** + * Unbind events to elements + * + * @param {Object} el HTML Object + * @param {Event} event Event to detach to element + * @param {Function} fn Callback function + * + * @return {undefined} + */ + unbind : function (el, event, fn) { + if (typeof el.removeEventListener === "function") { + el.removeEventListener(event, fn, false); + } else if (el.detachEvent) { + el.detachEvent("on" + event, fn); + } + } + }; + + return { + alert : function (message, fn, cssClass) { _alertify.dialog(message, "alert", fn, "", cssClass); return this; }, + confirm : function (message, fn, cssClass) { _alertify.dialog(message, "confirm", fn, "", cssClass); return this; }, + extend : _alertify.extend, + init : _alertify.init, + log : function (message, type, wait) { _alertify.log(message, type, wait); return this; }, + prompt : function (message, fn, placeholder, cssClass) { _alertify.dialog(message, "prompt", fn, placeholder, cssClass); return this; }, + success : function (message, wait) { _alertify.log(message, "success", wait); return this; }, + error : function (message, wait) { _alertify.log(message, "error", wait); return this; }, + set : function (args) { _alertify.set(args); }, + labels : _alertify.labels, + debug : _alertify.handleErrors + }; + }; + + // AMD and window support + if (typeof define === "function") { + define([], function () { return new Alertify(); }); + } else if (typeof global.alertify === "undefined") { + global.alertify = new Alertify(); + } + +}(this)); diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_standalone_jio.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_alertify_js.xml similarity index 92% rename from bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_standalone_jio.js.xml rename to bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_alertify_js.xml index 5e05ac6769d350df4d15292975598aa8c1f685d2..97d5d28faeb949e65afa329edd537eb17bbde6e1 100644 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_standalone_jio.js.xml +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_alertify_js.xml @@ -69,9 +69,13 @@ <none/> </value> </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/javascript</string> </value> + </item> <item> <key> <string>default_reference</string> </key> - <value> <string>gadget_travel_expense_standalone_jio.js</string> </value> + <value> <string>alertify.js</string> </value> </item> <item> <key> <string>description</string> </key> @@ -81,11 +85,13 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>gadget_travel_expense_standalone_jio.js</string> </value> + <value> <string>gadget_hr_alertify_js</string> </value> </item> <item> <key> <string>language</string> </key> - <value> <string>en</string> </value> + <value> + <none/> + </value> </item> <item> <key> <string>portal_type</string> </key> @@ -99,11 +105,11 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Travel Expense Standalone Jio Gadget JS</string> </value> + <value> <string>20</string> </value> </item> <item> <key> <string>version</string> </key> - <value> <string>001</string> </value> + <value> <string>0.3.11</string> </value> </item> <item> <key> <string>workflow_history</string> </key> @@ -185,7 +191,7 @@ </tuple> <state> <tuple> - <float>1472526622.65</float> + <float>1478773888.72</float> <string>UTC</string> </tuple> </state> @@ -230,7 +236,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>0.0.0.0</string> </value> + <value> <string>955.11991.31431.2577</string> </value> </item> <item> <key> <string>state</string> </key> @@ -248,7 +254,7 @@ </tuple> <state> <tuple> - <float>1472523951.93</float> + <float>1478774280.95</float> <string>UTC</string> </tuple> </state> @@ -271,7 +277,9 @@ <dictionary> <item> <key> <string>action</string> </key> - <value> <string>detect_converted_file</string> </value> + <value> + <none/> + </value> </item> <item> <key> <string>actor</string> </key> @@ -287,7 +295,7 @@ </item> <item> <key> <string>external_processing_state</string> </key> - <value> <string>converted</string> </value> + <value> <string>empty</string> </value> </item> <item> <key> <string>serial</string> </key> @@ -305,7 +313,7 @@ </tuple> <state> <tuple> - <float>1472523951.91</float> + <float>1478773758.32</float> <string>UTC</string> </tuple> </state> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.appcache.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_appcache.xml similarity index 75% rename from bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.appcache.xml rename to bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_appcache.xml index e656f87ebd9b8bd1b1c8271033dc86402035ab6b..fcfc83858da6ab098bfa16f19c220d3ff5f2b3fc 100644 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.appcache.xml +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_appcache.xml @@ -66,7 +66,10 @@ <item> <key> <string>categories</string> </key> <value> - <tuple/> + <tuple> + <string>contributor/person_module/1</string> + <string>contributor/person_module/2</string> + </tuple> </value> </item> <item> @@ -77,7 +80,7 @@ </item> <item> <key> <string>default_reference</string> </key> - <value> <string>gadget_travel_expense_record_application.appcache</string> </value> + <value> <string>gadget_officejs_hr.appcache</string> </value> </item> <item> <key> <string>description</string> </key> @@ -87,7 +90,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>gadget_travel_expense_record_application.appcache</string> </value> + <value> <string>gadget_hr_appcache</string> </value> </item> <item> <key> <string>language</string> </key> @@ -105,65 +108,106 @@ </item> <item> <key> <string>text_content</string> </key> - <value> <string>CACHE MANIFEST\n -# generated on Thu, 15 Oct 2015 17:15:51 +0800\n -# XXX + fonts ....\n + <value> <string encoding="cdata"><![CDATA[ + +CACHE MANIFEST\n +# generated on Fri, 09 Jun 2016 11:45:33 +0000\n +# XXX + fonts\n # images/ajax-loader.gif\n +# version 1.0\n CACHE:\n https://netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css\n +https://netdna.bootstrapcdn.com/font-awesome/4.2.0/fonts/fontawesome-webfont.eot?v=4.2.0\n +https://netdna.bootstrapcdn.com/font-awesome/4.2.0/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0\n https://netdna.bootstrapcdn.com/font-awesome/4.2.0/fonts/fontawesome-webfont.woff?v=4.2.0\n https://netdna.bootstrapcdn.com/font-awesome/4.2.0/fonts/fontawesome-webfont.ttf?v=4.2.0\n -https://cdn.jsdelivr.net/chartist.js/0.9.8/chartist.min.css\n -https://cdn.jsdelivr.net/chartist.js/0.9.8/chartist.min.js\n +https://netdna.bootstrapcdn.com/font-awesome/4.2.0/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular\n +URI.js\n +dygraph.js\n gadget_erp5.css\n gadget_global.js\n gadget_jio.html\n gadget_jio.js\n -travel_expense_app.css\n -travel_expense_js_cookie.js\n -travel_expense_utility.js\n -travel_expense_megapix_image.js\n -travel_expense_excellentexport.min.js\n +gadget_translate.html\n +gadget_translate.js\n handlebars.js\n -i18next.js\n jiodev.js\n -travel_expense_jiodev_renderjs_storage.js\n jquery.js\n jquerymobile.css\n jquerymobile.js\n -travel_expense_renderjs.js\n +renderjs.js\n rsvp.js\n -gadget_travel_expense_jio.html\n -gadget_travel_expense_jio.js\n -gadget_travel_expense_jio_expense_record_module_add_expense_record.html\n -gadget_travel_expense_jio_expense_record_module_add_expense_record.js\n -gadget_travel_expense_jio_expense_record_module_view.html\n -gadget_travel_expense_jio_expense_record_module_view.js\n -gadget_travel_expense_jio_expense_record_view.html\n -gadget_travel_expense_jio_expense_record_view.js\n -gadget_travel_expense_page_login.html\n -gadget_travel_expense_page_login.js\n -gadget_travel_expense_page_setting.html\n -gadget_travel_expense_page_setting.js\n -gadget_travel_expense_page_sync.html\n -gadget_travel_expense_page_sync.js\n -gadget_travel_expense_page_report.html\n -gadget_travel_expense_page_report.js\n -gadget_travel_expense_record_application.html\n -gadget_travel_expense_record_application.js\n -gadget_travel_expense_standalone_jio.html\n -gadget_travel_expense_standalone_jio.js\n -gadget_travel_expense_translation.html\n -gadget_travel_expense_translation.js\n -gadget_travel_expense_translation_data.js\n -gadget_travel_expense_widget_listbox.html\n -gadget_travel_expense_widget_listbox.js\n +gadget_officejs_header.html\n +gadget_officejs_jio.html\n +gadget_officejs_page_add_document.html\n +gadget_officejs_page_login.html\n +gadget_officejs_page_logout.html\n +gadget_officejs_page_sync.html\n +gadget_translation.html\n +gadget_officejs_widget_listbox.html\n +gadget_erp5_editor_panel.html\n +gadget_erp5_editor_panel.js\n +gadget_officejs_header.js\n +gadget_officejs_jio.js\n +gadget_officejs_page_add_document.js\n +gadget_officejs_page_login.js\n +gadget_officejs_page_logout.js\n +gadget_officejs_page_sync.js\n +gadget_officejs_router.js\n +gadget_translation.js\n +gadget_translation_data.js\n +gadget_officejs_widget_listbox.js\n +erp5_launcher.js\n +erp5_launcher.html\n +\n +gadget_officejs_page_expense_report.html\n +gadget_officejs_page_expense_report.js\n +gadget_officejs_jio_expense_record_view.html\n +gadget_officejs_jio_expense_record_view.js\n +gadget_officejs_page_expense_record_list.html\n +gadget_officejs_page_expense_record_list.js\n +\n +gadget_officejs_page_leave_request_record_list.html\n +gadget_officejs_page_leave_request_record_list.js\n +gadget_officejs_page_add_leave_request_record.html\n +gadget_officejs_page_add_leave_request_record.js\n +gadget_officejs_jio_leave_request_record_view.html\n +gadget_officejs_jio_leave_request_record_view.js\n +\n +gadget_officejs_page_travel_request_record_list.html\n +gadget_officejs_page_travel_request_record_list.js\n +gadget_officejs_page_add_travel_request_record.html\n +gadget_officejs_page_add_travel_request_record.js\n +gadget_officejs_jio_travel_request_record_view.html\n +gadget_officejs_jio_travel_request_record_view.js\n +\n +\n +\n +alertify.css\n +alertify.js\n +expense_record_image.css\n +\n +gadget_officejs_expense_excellentexport.js\n +gadget_officejs_expense_xlsx.core.min.js\n +gadget_officejs_expense_filesaver.min.js\n +gadget_officejs_expense_tableexport.min.js\n +gadget_officejs_hr_router.html\n +gadget_officejs_hr_router.js\n +\n +gadget_officejs_hr_panel.html\n +gadget_officejs_application_panel.js\n +chartist.min.js\n +chartist.min.css\n +gadget_hr_jio.html\n +gadget_hr_jio.js\n NETWORK:\n -*</string> </value> +* + +]]></string> </value> </item> <item> <key> <string>title</string> </key> - <value> <string>Travel Expense Record Application AppCache</string> </value> + <value> <string>RenderJS Gadget HR JS AppCache</string> </value> </item> <item> <key> <string>version</string> </key> @@ -227,7 +271,7 @@ NETWORK:\n </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -249,7 +293,7 @@ NETWORK:\n </tuple> <state> <tuple> - <float>1472527126.62</float> + <float>1481818156.45</float> <string>UTC</string> </tuple> </state> @@ -280,7 +324,7 @@ NETWORK:\n </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -294,7 +338,7 @@ NETWORK:\n </item> <item> <key> <string>serial</string> </key> - <value> <string>953.46532.22360.47496</string> </value> + <value> <string>955.64169.17995.61457</string> </value> </item> <item> <key> <string>state</string> </key> @@ -312,7 +356,7 @@ NETWORK:\n </tuple> <state> <tuple> - <float>1473070350.4</float> + <float>1481818221.17</float> <string>UTC</string> </tuple> </state> @@ -339,7 +383,7 @@ NETWORK:\n </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -369,7 +413,7 @@ NETWORK:\n </tuple> <state> <tuple> - <float>1472527025.1</float> + <float>1481818046.36</float> <string>UTC</string> </tuple> </state> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_chartist_min_css.css b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_chartist_min_css.css new file mode 100644 index 0000000000000000000000000000000000000000..e1c280e54a7e329f079caecd134c997634be46e6 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_chartist_min_css.css @@ -0,0 +1 @@ +.ct-double-octave:after,.ct-major-eleventh:after,.ct-major-second:after,.ct-major-seventh:after,.ct-major-sixth:after,.ct-major-tenth:after,.ct-major-third:after,.ct-major-twelfth:after,.ct-minor-second:after,.ct-minor-seventh:after,.ct-minor-sixth:after,.ct-minor-third:after,.ct-octave:after,.ct-perfect-fifth:after,.ct-perfect-fourth:after,.ct-square:after{content:"";clear:both}.ct-label{fill:rgba(0,0,0,.4);color:rgba(0,0,0,.4);font-size:.75rem;line-height:1}.ct-chart-bar .ct-label,.ct-chart-line .ct-label{display:block;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex}.ct-label.ct-horizontal.ct-start{-webkit-box-align:flex-end;-webkit-align-items:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;text-align:left;text-anchor:start}.ct-label.ct-horizontal.ct-end{-webkit-box-align:flex-start;-webkit-align-items:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;text-align:left;text-anchor:start}.ct-label.ct-vertical.ct-start{-webkit-box-align:flex-end;-webkit-align-items:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-box-pack:flex-end;-webkit-justify-content:flex-end;-ms-flex-pack:flex-end;justify-content:flex-end;text-align:right;text-anchor:end}.ct-label.ct-vertical.ct-end{-webkit-box-align:flex-end;-webkit-align-items:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;text-align:left;text-anchor:start}.ct-chart-bar .ct-label.ct-horizontal.ct-start{-webkit-box-align:flex-end;-webkit-align-items:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center;text-anchor:start}.ct-chart-bar .ct-label.ct-horizontal.ct-end{-webkit-box-align:flex-start;-webkit-align-items:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center;text-anchor:start}.ct-chart-bar.ct-horizontal-bars .ct-label.ct-horizontal.ct-start{-webkit-box-align:flex-end;-webkit-align-items:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;text-align:left;text-anchor:start}.ct-chart-bar.ct-horizontal-bars .ct-label.ct-horizontal.ct-end{-webkit-box-align:flex-start;-webkit-align-items:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;text-align:left;text-anchor:start}.ct-chart-bar.ct-horizontal-bars .ct-label.ct-vertical.ct-start{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:flex-end;-webkit-justify-content:flex-end;-ms-flex-pack:flex-end;justify-content:flex-end;text-align:right;text-anchor:end}.ct-chart-bar.ct-horizontal-bars .ct-label.ct-vertical.ct-end{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;text-align:left;text-anchor:end}.ct-grid{stroke:rgba(0,0,0,.2);stroke-width:1px;stroke-dasharray:2px}.ct-point{stroke-width:10px;stroke-linecap:round}.ct-line{fill:none;stroke-width:4px}.ct-area{stroke:none;fill-opacity:.1}.ct-bar{fill:none;stroke-width:10px}.ct-slice-donut{fill:none;stroke-width:60px}.ct-series-a .ct-bar,.ct-series-a .ct-line,.ct-series-a .ct-point,.ct-series-a .ct-slice-donut{stroke:#d70206}.ct-series-a .ct-area,.ct-series-a .ct-slice-pie{fill:#d70206}.ct-series-b .ct-bar,.ct-series-b .ct-line,.ct-series-b .ct-point,.ct-series-b .ct-slice-donut{stroke:#f05b4f}.ct-series-b .ct-area,.ct-series-b .ct-slice-pie{fill:#f05b4f}.ct-series-c .ct-bar,.ct-series-c .ct-line,.ct-series-c .ct-point,.ct-series-c .ct-slice-donut{stroke:#f4c63d}.ct-series-c .ct-area,.ct-series-c .ct-slice-pie{fill:#f4c63d}.ct-series-d .ct-bar,.ct-series-d .ct-line,.ct-series-d .ct-point,.ct-series-d .ct-slice-donut{stroke:#d17905}.ct-series-d .ct-area,.ct-series-d .ct-slice-pie{fill:#d17905}.ct-series-e .ct-bar,.ct-series-e .ct-line,.ct-series-e .ct-point,.ct-series-e .ct-slice-donut{stroke:#453d3f}.ct-series-e .ct-area,.ct-series-e .ct-slice-pie{fill:#453d3f}.ct-series-f .ct-bar,.ct-series-f .ct-line,.ct-series-f .ct-point,.ct-series-f .ct-slice-donut{stroke:#59922b}.ct-series-f .ct-area,.ct-series-f .ct-slice-pie{fill:#59922b}.ct-series-g .ct-bar,.ct-series-g .ct-line,.ct-series-g .ct-point,.ct-series-g .ct-slice-donut{stroke:#0544d3}.ct-series-g .ct-area,.ct-series-g .ct-slice-pie{fill:#0544d3}.ct-series-h .ct-bar,.ct-series-h .ct-line,.ct-series-h .ct-point,.ct-series-h .ct-slice-donut{stroke:#6b0392}.ct-series-h .ct-area,.ct-series-h .ct-slice-pie{fill:#6b0392}.ct-series-i .ct-bar,.ct-series-i .ct-line,.ct-series-i .ct-point,.ct-series-i .ct-slice-donut{stroke:#f05b4f}.ct-series-i .ct-area,.ct-series-i .ct-slice-pie{fill:#f05b4f}.ct-series-j .ct-bar,.ct-series-j .ct-line,.ct-series-j .ct-point,.ct-series-j .ct-slice-donut{stroke:#dda458}.ct-series-j .ct-area,.ct-series-j .ct-slice-pie{fill:#dda458}.ct-series-k .ct-bar,.ct-series-k .ct-line,.ct-series-k .ct-point,.ct-series-k .ct-slice-donut{stroke:#eacf7d}.ct-series-k .ct-area,.ct-series-k .ct-slice-pie{fill:#eacf7d}.ct-series-l .ct-bar,.ct-series-l .ct-line,.ct-series-l .ct-point,.ct-series-l .ct-slice-donut{stroke:#86797d}.ct-series-l .ct-area,.ct-series-l .ct-slice-pie{fill:#86797d}.ct-series-m .ct-bar,.ct-series-m .ct-line,.ct-series-m .ct-point,.ct-series-m .ct-slice-donut{stroke:#b2c326}.ct-series-m .ct-area,.ct-series-m .ct-slice-pie{fill:#b2c326}.ct-series-n .ct-bar,.ct-series-n .ct-line,.ct-series-n .ct-point,.ct-series-n .ct-slice-donut{stroke:#6188e2}.ct-series-n .ct-area,.ct-series-n .ct-slice-pie{fill:#6188e2}.ct-series-o .ct-bar,.ct-series-o .ct-line,.ct-series-o .ct-point,.ct-series-o .ct-slice-donut{stroke:#a748ca}.ct-series-o .ct-area,.ct-series-o .ct-slice-pie{fill:#a748ca}.ct-square{display:block;position:relative;width:100%}.ct-square:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:100%}.ct-square:after{display:table}.ct-square>svg{display:block;position:absolute;top:0;left:0}.ct-minor-second{display:block;position:relative;width:100%}.ct-minor-second:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:93.75%}.ct-minor-second:after{display:table}.ct-minor-second>svg{display:block;position:absolute;top:0;left:0}.ct-major-second{display:block;position:relative;width:100%}.ct-major-second:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:88.8888888889%}.ct-major-second:after{display:table}.ct-major-second>svg{display:block;position:absolute;top:0;left:0}.ct-minor-third{display:block;position:relative;width:100%}.ct-minor-third:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:83.3333333333%}.ct-minor-third:after{display:table}.ct-minor-third>svg{display:block;position:absolute;top:0;left:0}.ct-major-third{display:block;position:relative;width:100%}.ct-major-third:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:80%}.ct-major-third:after{display:table}.ct-major-third>svg{display:block;position:absolute;top:0;left:0}.ct-perfect-fourth{display:block;position:relative;width:100%}.ct-perfect-fourth:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:75%}.ct-perfect-fourth:after{display:table}.ct-perfect-fourth>svg{display:block;position:absolute;top:0;left:0}.ct-perfect-fifth{display:block;position:relative;width:100%}.ct-perfect-fifth:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:66.6666666667%}.ct-perfect-fifth:after{display:table}.ct-perfect-fifth>svg{display:block;position:absolute;top:0;left:0}.ct-minor-sixth{display:block;position:relative;width:100%}.ct-minor-sixth:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:62.5%}.ct-minor-sixth:after{display:table}.ct-minor-sixth>svg{display:block;position:absolute;top:0;left:0}.ct-golden-section{display:block;position:relative;width:100%}.ct-golden-section:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:61.804697157%}.ct-golden-section:after{content:"";display:table;clear:both}.ct-golden-section>svg{display:block;position:absolute;top:0;left:0}.ct-major-sixth{display:block;position:relative;width:100%}.ct-major-sixth:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:60%}.ct-major-sixth:after{display:table}.ct-major-sixth>svg{display:block;position:absolute;top:0;left:0}.ct-minor-seventh{display:block;position:relative;width:100%}.ct-minor-seventh:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:56.25%}.ct-minor-seventh:after{display:table}.ct-minor-seventh>svg{display:block;position:absolute;top:0;left:0}.ct-major-seventh{display:block;position:relative;width:100%}.ct-major-seventh:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:53.3333333333%}.ct-major-seventh:after{display:table}.ct-major-seventh>svg{display:block;position:absolute;top:0;left:0}.ct-octave{display:block;position:relative;width:100%}.ct-octave:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:50%}.ct-octave:after{display:table}.ct-octave>svg{display:block;position:absolute;top:0;left:0}.ct-major-tenth{display:block;position:relative;width:100%}.ct-major-tenth:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:40%}.ct-major-tenth:after{display:table}.ct-major-tenth>svg{display:block;position:absolute;top:0;left:0}.ct-major-eleventh{display:block;position:relative;width:100%}.ct-major-eleventh:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:37.5%}.ct-major-eleventh:after{display:table}.ct-major-eleventh>svg{display:block;position:absolute;top:0;left:0}.ct-major-twelfth{display:block;position:relative;width:100%}.ct-major-twelfth:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:33.3333333333%}.ct-major-twelfth:after{display:table}.ct-major-twelfth>svg{display:block;position:absolute;top:0;left:0}.ct-double-octave{display:block;position:relative;width:100%}.ct-double-octave:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:25%}.ct-double-octave:after{display:table}.ct-double-octave>svg{display:block;position:absolute;top:0;left:0} \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_chartist_min_css.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_chartist_min_css.xml new file mode 100644 index 0000000000000000000000000000000000000000..b8e145f45a1e776a2ddc0a569ac5116d5fb86165 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_chartist_min_css.xml @@ -0,0 +1,330 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Style" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/css</string> </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>chartist.min.css</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_hr_chartist_min_css</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Style</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Gadget Officejs chartist.min.css</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1478709142.7</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>955.10912.58292.2867</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1478709187.67</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>empty</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1478709131.22</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_chartist_min_js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_chartist_min_js.js new file mode 100644 index 0000000000000000000000000000000000000000..ca5e4ef2aa3b0ad93e7d5de6143607aa466e65f5 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_chartist_min_js.js @@ -0,0 +1,10 @@ +/* Chartist.js 0.9.8 + * Copyright © 2016 Gion Kunz + * Free to use under either the WTFPL license or the MIT license. + * https://raw.githubusercontent.com/gionkunz/chartist-js/master/LICENSE-WTFPL + * https://raw.githubusercontent.com/gionkunz/chartist-js/master/LICENSE-MIT + */ + +!function(a,b){"function"==typeof define&&define.amd?define([],function(){return a.Chartist=b()}):"object"==typeof exports?module.exports=b():a.Chartist=b()}(this,function(){var a={version:"0.9.8"};return function(a,b,c){"use strict";c.namespaces={svg:"http://www.w3.org/2000/svg",xmlns:"http://www.w3.org/2000/xmlns/",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",ct:"http://gionkunz.github.com/chartist-js/ct"},c.noop=function(a){return a},c.alphaNumerate=function(a){return String.fromCharCode(97+a%26)},c.extend=function(a){a=a||{};var b=Array.prototype.slice.call(arguments,1);return b.forEach(function(b){for(var d in b)"object"!=typeof b[d]||null===b[d]||b[d]instanceof Array?a[d]=b[d]:a[d]=c.extend({},a[d],b[d])}),a},c.replaceAll=function(a,b,c){return a.replace(new RegExp(b,"g"),c)},c.ensureUnit=function(a,b){return"number"==typeof a&&(a+=b),a},c.quantity=function(a){if("string"==typeof a){var b=/^(\d+)\s*(.*)$/g.exec(a);return{value:+b[1],unit:b[2]||void 0}}return{value:a}},c.querySelector=function(a){return a instanceof Node?a:b.querySelector(a)},c.times=function(a){return Array.apply(null,new Array(a))},c.sum=function(a,b){return a+(b?b:0)},c.mapMultiply=function(a){return function(b){return b*a}},c.mapAdd=function(a){return function(b){return b+a}},c.serialMap=function(a,b){var d=[],e=Math.max.apply(null,a.map(function(a){return a.length}));return c.times(e).forEach(function(c,e){var f=a.map(function(a){return a[e]});d[e]=b.apply(null,f)}),d},c.roundWithPrecision=function(a,b){var d=Math.pow(10,b||c.precision);return Math.round(a*d)/d},c.precision=8,c.escapingMap={"&":"&","<":"<",">":">",'"':""","'":"'"},c.serialize=function(a){return null===a||void 0===a?a:("number"==typeof a?a=""+a:"object"==typeof a&&(a=JSON.stringify({data:a})),Object.keys(c.escapingMap).reduce(function(a,b){return c.replaceAll(a,b,c.escapingMap[b])},a))},c.deserialize=function(a){if("string"!=typeof a)return a;a=Object.keys(c.escapingMap).reduce(function(a,b){return c.replaceAll(a,c.escapingMap[b],b)},a);try{a=JSON.parse(a),a=void 0!==a.data?a.data:a}catch(b){}return a},c.createSvg=function(a,b,d,e){var f;return b=b||"100%",d=d||"100%",Array.prototype.slice.call(a.querySelectorAll("svg")).filter(function(a){return a.getAttributeNS(c.namespaces.xmlns,"ct")}).forEach(function(b){a.removeChild(b)}),f=new c.Svg("svg").attr({width:b,height:d}).addClass(e).attr({style:"width: "+b+"; height: "+d+";"}),a.appendChild(f._node),f},c.normalizeData=function(a){if(a=a||{series:[],labels:[]},a.series=a.series||[],a.labels=a.labels||[],a.series.length>0&&0===a.labels.length){var b,d=c.getDataArray(a);b=d.every(function(a){return a instanceof Array})?Math.max.apply(null,d.map(function(a){return a.length})):d.length,a.labels=c.times(b).map(function(){return""})}return a},c.reverseData=function(a){a.labels.reverse(),a.series.reverse();for(var b=0;b<a.series.length;b++)"object"==typeof a.series[b]&&void 0!==a.series[b].data?a.series[b].data.reverse():a.series[b]instanceof Array&&a.series[b].reverse()},c.getDataArray=function(a,b,d){function e(a){if(!c.isFalseyButZero(a)){if((a.data||a)instanceof Array)return(a.data||a).map(e);if(a.hasOwnProperty("value"))return e(a.value);if(d){var b={};return"string"==typeof d?b[d]=c.getNumberOrUndefined(a):b.y=c.getNumberOrUndefined(a),b.x=a.hasOwnProperty("x")?c.getNumberOrUndefined(a.x):b.x,b.y=a.hasOwnProperty("y")?c.getNumberOrUndefined(a.y):b.y,b}return c.getNumberOrUndefined(a)}}return(b&&!a.reversed||!b&&a.reversed)&&(c.reverseData(a),a.reversed=!a.reversed),a.series.map(e)},c.normalizePadding=function(a,b){return b=b||0,"number"==typeof a?{top:a,right:a,bottom:a,left:a}:{top:"number"==typeof a.top?a.top:b,right:"number"==typeof a.right?a.right:b,bottom:"number"==typeof a.bottom?a.bottom:b,left:"number"==typeof a.left?a.left:b}},c.getMetaData=function(a,b){var d=a.data?a.data[b]:a[b];return d?c.serialize(d.meta):void 0},c.orderOfMagnitude=function(a){return Math.floor(Math.log(Math.abs(a))/Math.LN10)},c.projectLength=function(a,b,c){return b/c.range*a},c.getAvailableHeight=function(a,b){return Math.max((c.quantity(b.height).value||a.height())-(b.chartPadding.top+b.chartPadding.bottom)-b.axisX.offset,0)},c.getHighLow=function(a,b,d){function e(a){if(void 0!==a)if(a instanceof Array)for(var b=0;b<a.length;b++)e(a[b]);else{var c=d?+a[d]:+a;g&&c>f.high&&(f.high=c),h&&c<f.low&&(f.low=c)}}b=c.extend({},b,d?b["axis"+d.toUpperCase()]:{});var f={high:void 0===b.high?-Number.MAX_VALUE:+b.high,low:void 0===b.low?Number.MAX_VALUE:+b.low},g=void 0===b.high,h=void 0===b.low;return(g||h)&&e(a),(b.referenceValue||0===b.referenceValue)&&(f.high=Math.max(b.referenceValue,f.high),f.low=Math.min(b.referenceValue,f.low)),f.high<=f.low&&(0===f.low?f.high=1:f.low<0?f.high=0:f.high>0?f.low=0:(f.high=1,f.low=0)),f},c.isNum=function(a){return!isNaN(a)&&isFinite(a)},c.isFalseyButZero=function(a){return!a&&0!==a},c.getNumberOrUndefined=function(a){return isNaN(+a)?void 0:+a},c.getMultiValue=function(a,b){return c.isNum(a)?+a:a?a[b||"y"]||0:0},c.rho=function(a){function b(a,c){return a%c===0?c:b(c,a%c)}function c(a){return a*a+1}if(1===a)return a;var d,e=2,f=2;if(a%2===0)return 2;do e=c(e)%a,f=c(c(f))%a,d=b(Math.abs(e-f),a);while(1===d);return d},c.getBounds=function(a,b,d,e){var f,g,h,i=0,j={high:b.high,low:b.low};j.valueRange=j.high-j.low,j.oom=c.orderOfMagnitude(j.valueRange),j.step=Math.pow(10,j.oom),j.min=Math.floor(j.low/j.step)*j.step,j.max=Math.ceil(j.high/j.step)*j.step,j.range=j.max-j.min,j.numberOfSteps=Math.round(j.range/j.step);var k=c.projectLength(a,j.step,j),l=k<d,m=e?c.rho(j.range):0;if(e&&c.projectLength(a,1,j)>=d)j.step=1;else if(e&&m<j.step&&c.projectLength(a,m,j)>=d)j.step=m;else for(;;){if(l&&c.projectLength(a,j.step,j)<=d)j.step*=2;else{if(l||!(c.projectLength(a,j.step/2,j)>=d))break;if(j.step/=2,e&&j.step%1!==0){j.step*=2;break}}if(i++>1e3)throw new Error("Exceeded maximum number of iterations while optimizing scale step!")}var n=2.221e-16;for(j.step=Math.max(j.step,n),g=j.min,h=j.max;g+j.step<=j.low;)g+=j.step;for(;h-j.step>=j.high;)h-=j.step;j.min=g,j.max=h,j.range=j.max-j.min;var o=[];for(f=j.min;f<=j.max;f+=j.step){var p=c.roundWithPrecision(f);p!==o[o.length-1]&&o.push(f)}return j.values=o,j},c.polarToCartesian=function(a,b,c,d){var e=(d-90)*Math.PI/180;return{x:a+c*Math.cos(e),y:b+c*Math.sin(e)}},c.createChartRect=function(a,b,d){var e=!(!b.axisX&&!b.axisY),f=e?b.axisY.offset:0,g=e?b.axisX.offset:0,h=a.width()||c.quantity(b.width).value||0,i=a.height()||c.quantity(b.height).value||0,j=c.normalizePadding(b.chartPadding,d);h=Math.max(h,f+j.left+j.right),i=Math.max(i,g+j.top+j.bottom);var k={padding:j,width:function(){return this.x2-this.x1},height:function(){return this.y1-this.y2}};return e?("start"===b.axisX.position?(k.y2=j.top+g,k.y1=Math.max(i-j.bottom,k.y2+1)):(k.y2=j.top,k.y1=Math.max(i-j.bottom-g,k.y2+1)),"start"===b.axisY.position?(k.x1=j.left+f,k.x2=Math.max(h-j.right,k.x1+1)):(k.x1=j.left,k.x2=Math.max(h-j.right-f,k.x1+1))):(k.x1=j.left,k.x2=Math.max(h-j.right,k.x1+1),k.y2=j.top,k.y1=Math.max(i-j.bottom,k.y2+1)),k},c.createGrid=function(a,b,d,e,f,g,h,i){var j={};j[d.units.pos+"1"]=a,j[d.units.pos+"2"]=a,j[d.counterUnits.pos+"1"]=e,j[d.counterUnits.pos+"2"]=e+f;var k=g.elem("line",j,h.join(" "));i.emit("draw",c.extend({type:"grid",axis:d,index:b,group:g,element:k},j))},c.createLabel=function(a,b,d,e,f,g,h,i,j,k,l){var m,n={};if(n[f.units.pos]=a+h[f.units.pos],n[f.counterUnits.pos]=h[f.counterUnits.pos],n[f.units.len]=b,n[f.counterUnits.len]=Math.max(0,g-10),k){var o='<span class="'+j.join(" ")+'" style="'+f.units.len+": "+Math.round(n[f.units.len])+"px; "+f.counterUnits.len+": "+Math.round(n[f.counterUnits.len])+'px">'+e[d]+"</span>";m=i.foreignObject(o,c.extend({style:"overflow: visible;"},n))}else m=i.elem("text",n,j.join(" ")).text(e[d]);l.emit("draw",c.extend({type:"label",axis:f,index:d,group:i,element:m,text:e[d]},n))},c.getSeriesOption=function(a,b,c){if(a.name&&b.series&&b.series[a.name]){var d=b.series[a.name];return d.hasOwnProperty(c)?d[c]:b[c]}return b[c]},c.optionsProvider=function(b,d,e){function f(b){var f=h;if(h=c.extend({},j),d)for(i=0;i<d.length;i++){var g=a.matchMedia(d[i][0]);g.matches&&(h=c.extend(h,d[i][1]))}e&&b&&e.emit("optionsChanged",{previousOptions:f,currentOptions:h})}function g(){k.forEach(function(a){a.removeListener(f)})}var h,i,j=c.extend({},b),k=[];if(!a.matchMedia)throw"window.matchMedia not found! Make sure you're using a polyfill.";if(d)for(i=0;i<d.length;i++){var l=a.matchMedia(d[i][0]);l.addListener(f),k.push(l)}return f(),{removeMediaQueryListeners:g,getCurrentOptions:function(){return c.extend({},h)}}},c.splitIntoSegments=function(a,b,d){var e={increasingX:!1,fillHoles:!1};d=c.extend({},e,d);for(var f=[],g=!0,h=0;h<a.length;h+=2)void 0===b[h/2].value?d.fillHoles||(g=!0):(d.increasingX&&h>=2&&a[h]<=a[h-2]&&(g=!0),g&&(f.push({pathCoordinates:[],valueData:[]}),g=!1),f[f.length-1].pathCoordinates.push(a[h],a[h+1]),f[f.length-1].valueData.push(b[h/2]));return f}}(window,document,a),function(a,b,c){"use strict";c.Interpolation={},c.Interpolation.none=function(a){var b={fillHoles:!1};return a=c.extend({},b,a),function(b,d){for(var e=new c.Svg.Path,f=!0,g=0;g<b.length;g+=2){var h=b[g],i=b[g+1],j=d[g/2];void 0!==j.value?(f?e.move(h,i,!1,j):e.line(h,i,!1,j),f=!1):a.fillHoles||(f=!0)}return e}},c.Interpolation.simple=function(a){var b={divisor:2,fillHoles:!1};a=c.extend({},b,a);var d=1/Math.max(1,a.divisor);return function(b,e){for(var f,g,h,i=new c.Svg.Path,j=0;j<b.length;j+=2){var k=b[j],l=b[j+1],m=(k-f)*d,n=e[j/2];void 0!==n.value?(void 0===h?i.move(k,l,!1,n):i.curve(f+m,g,k-m,l,k,l,!1,n),f=k,g=l,h=n):a.fillHoles||(f=k=h=void 0)}return i}},c.Interpolation.cardinal=function(a){var b={tension:1,fillHoles:!1};a=c.extend({},b,a);var d=Math.min(1,Math.max(0,a.tension)),e=1-d;return function f(b,g){var h=c.splitIntoSegments(b,g,{fillHoles:a.fillHoles});if(h.length){if(h.length>1){var i=[];return h.forEach(function(a){i.push(f(a.pathCoordinates,a.valueData))}),c.Svg.Path.join(i)}if(b=h[0].pathCoordinates,g=h[0].valueData,b.length<=4)return c.Interpolation.none()(b,g);for(var j,k=(new c.Svg.Path).move(b[0],b[1],!1,g[0]),l=0,m=b.length;m-2*!j>l;l+=2){var n=[{x:+b[l-2],y:+b[l-1]},{x:+b[l],y:+b[l+1]},{x:+b[l+2],y:+b[l+3]},{x:+b[l+4],y:+b[l+5]}];j?l?m-4===l?n[3]={x:+b[0],y:+b[1]}:m-2===l&&(n[2]={x:+b[0],y:+b[1]},n[3]={x:+b[2],y:+b[3]}):n[0]={x:+b[m-2],y:+b[m-1]}:m-4===l?n[3]=n[2]:l||(n[0]={x:+b[l],y:+b[l+1]}),k.curve(d*(-n[0].x+6*n[1].x+n[2].x)/6+e*n[2].x,d*(-n[0].y+6*n[1].y+n[2].y)/6+e*n[2].y,d*(n[1].x+6*n[2].x-n[3].x)/6+e*n[2].x,d*(n[1].y+6*n[2].y-n[3].y)/6+e*n[2].y,n[2].x,n[2].y,!1,g[(l+2)/2])}return k}return c.Interpolation.none()([])}},c.Interpolation.monotoneCubic=function(a){var b={fillHoles:!1};return a=c.extend({},b,a),function d(b,e){var f=c.splitIntoSegments(b,e,{fillHoles:a.fillHoles,increasingX:!0});if(f.length){if(f.length>1){var g=[];return f.forEach(function(a){g.push(d(a.pathCoordinates,a.valueData))}),c.Svg.Path.join(g)}if(b=f[0].pathCoordinates,e=f[0].valueData,b.length<=4)return c.Interpolation.none()(b,e);var h,i,j=[],k=[],l=b.length/2,m=[],n=[],o=[],p=[];for(h=0;h<l;h++)j[h]=b[2*h],k[h]=b[2*h+1];for(h=0;h<l-1;h++)o[h]=k[h+1]-k[h],p[h]=j[h+1]-j[h],n[h]=o[h]/p[h];for(m[0]=n[0],m[l-1]=n[l-2],h=1;h<l-1;h++)0===n[h]||0===n[h-1]||n[h-1]>0!=n[h]>0?m[h]=0:(m[h]=3*(p[h-1]+p[h])/((2*p[h]+p[h-1])/n[h-1]+(p[h]+2*p[h-1])/n[h]),isFinite(m[h])||(m[h]=0));for(i=(new c.Svg.Path).move(j[0],k[0],!1,e[0]),h=0;h<l-1;h++)i.curve(j[h]+p[h]/3,k[h]+m[h]*p[h]/3,j[h+1]-p[h]/3,k[h+1]-m[h+1]*p[h]/3,j[h+1],k[h+1],!1,e[h+1]);return i}return c.Interpolation.none()([])}},c.Interpolation.step=function(a){var b={postpone:!0,fillHoles:!1};return a=c.extend({},b,a),function(b,d){for(var e,f,g,h=new c.Svg.Path,i=0;i<b.length;i+=2){var j=b[i],k=b[i+1],l=d[i/2];void 0!==l.value?(void 0===g?h.move(j,k,!1,l):(a.postpone?h.line(j,f,!1,g):h.line(e,k,!1,l),h.line(j,k,!1,l)),e=j,f=k,g=l):a.fillHoles||(e=f=g=void 0)}return h}}}(window,document,a),function(a,b,c){"use strict";c.EventEmitter=function(){function a(a,b){d[a]=d[a]||[],d[a].push(b)}function b(a,b){d[a]&&(b?(d[a].splice(d[a].indexOf(b),1),0===d[a].length&&delete d[a]):delete d[a])}function c(a,b){d[a]&&d[a].forEach(function(a){a(b)}),d["*"]&&d["*"].forEach(function(c){c(a,b)})}var d=[];return{addEventHandler:a,removeEventHandler:b,emit:c}}}(window,document,a),function(a,b,c){"use strict";function d(a){var b=[];if(a.length)for(var c=0;c<a.length;c++)b.push(a[c]);return b}function e(a,b){var d=b||this.prototype||c.Class,e=Object.create(d);c.Class.cloneDefinitions(e,a);var f=function(){var a,b=e.constructor||function(){};return a=this===c?Object.create(e):this,b.apply(a,Array.prototype.slice.call(arguments,0)),a};return f.prototype=e,f["super"]=d,f.extend=this.extend,f}function f(){var a=d(arguments),b=a[0];return a.splice(1,a.length-1).forEach(function(a){Object.getOwnPropertyNames(a).forEach(function(c){delete b[c],Object.defineProperty(b,c,Object.getOwnPropertyDescriptor(a,c))})}),b}c.Class={extend:e,cloneDefinitions:f}}(window,document,a),function(a,b,c){"use strict";function d(a,b,d){return a&&(this.data=a,this.eventEmitter.emit("data",{type:"update",data:this.data})),b&&(this.options=c.extend({},d?this.options:this.defaultOptions,b),this.initializeTimeoutId||(this.optionsProvider.removeMediaQueryListeners(),this.optionsProvider=c.optionsProvider(this.options,this.responsiveOptions,this.eventEmitter))),this.initializeTimeoutId||this.createChart(this.optionsProvider.getCurrentOptions()),this}function e(){return this.initializeTimeoutId?a.clearTimeout(this.initializeTimeoutId):(a.removeEventListener("resize",this.resizeListener),this.optionsProvider.removeMediaQueryListeners()),this}function f(a,b){return this.eventEmitter.addEventHandler(a,b),this}function g(a,b){return this.eventEmitter.removeEventHandler(a,b),this}function h(){a.addEventListener("resize",this.resizeListener),this.optionsProvider=c.optionsProvider(this.options,this.responsiveOptions,this.eventEmitter),this.eventEmitter.addEventHandler("optionsChanged",function(){this.update()}.bind(this)),this.options.plugins&&this.options.plugins.forEach(function(a){a instanceof Array?a[0](this,a[1]):a(this)}.bind(this)),this.eventEmitter.emit("data",{type:"initial",data:this.data}),this.createChart(this.optionsProvider.getCurrentOptions()),this.initializeTimeoutId=void 0}function i(a,b,d,e,f){this.container=c.querySelector(a),this.data=b,this.defaultOptions=d,this.options=e,this.responsiveOptions=f,this.eventEmitter=c.EventEmitter(),this.supportsForeignObject=c.Svg.isSupported("Extensibility"),this.supportsAnimations=c.Svg.isSupported("AnimationEventsAttribute"),this.resizeListener=function(){this.update()}.bind(this),this.container&&(this.container.__chartist__&&this.container.__chartist__.detach(),this.container.__chartist__=this),this.initializeTimeoutId=setTimeout(h.bind(this),0)}c.Base=c.Class.extend({constructor:i,optionsProvider:void 0,container:void 0,svg:void 0,eventEmitter:void 0,createChart:function(){throw new Error("Base chart type can't be instantiated!")},update:d,detach:e,on:f,off:g,version:c.version,supportsForeignObject:!1})}(window,document,a),function(a,b,c){"use strict";function d(a,d,e,f,g){a instanceof Element?this._node=a:(this._node=b.createElementNS(c.namespaces.svg,a),"svg"===a&&this.attr({"xmlns:ct":c.namespaces.ct})),d&&this.attr(d),e&&this.addClass(e),f&&(g&&f._node.firstChild?f._node.insertBefore(this._node,f._node.firstChild):f._node.appendChild(this._node))}function e(a,b){return"string"==typeof a?b?this._node.getAttributeNS(b,a):this._node.getAttribute(a):(Object.keys(a).forEach(function(b){if(void 0!==a[b])if(b.indexOf(":")!==-1){var d=b.split(":");this._node.setAttributeNS(c.namespaces[d[0]],b,a[b])}else this._node.setAttribute(b,a[b])}.bind(this)),this)}function f(a,b,d,e){return new c.Svg(a,b,d,this,e)}function g(){return this._node.parentNode instanceof SVGElement?new c.Svg(this._node.parentNode):null}function h(){for(var a=this._node;"svg"!==a.nodeName;)a=a.parentNode;return new c.Svg(a)}function i(a){var b=this._node.querySelector(a);return b?new c.Svg(b):null}function j(a){var b=this._node.querySelectorAll(a);return b.length?new c.Svg.List(b):null}function k(a,d,e,f){if("string"==typeof a){var g=b.createElement("div");g.innerHTML=a,a=g.firstChild}a.setAttribute("xmlns",c.namespaces.xmlns);var h=this.elem("foreignObject",d,e,f);return h._node.appendChild(a),h}function l(a){return this._node.appendChild(b.createTextNode(a)),this}function m(){for(;this._node.firstChild;)this._node.removeChild(this._node.firstChild);return this}function n(){return this._node.parentNode.removeChild(this._node),this.parent()}function o(a){return this._node.parentNode.replaceChild(a._node,this._node),a}function p(a,b){return b&&this._node.firstChild?this._node.insertBefore(a._node,this._node.firstChild):this._node.appendChild(a._node),this}function q(){return this._node.getAttribute("class")?this._node.getAttribute("class").trim().split(/\s+/):[]}function r(a){return this._node.setAttribute("class",this.classes(this._node).concat(a.trim().split(/\s+/)).filter(function(a,b,c){return c.indexOf(a)===b}).join(" ")),this}function s(a){var b=a.trim().split(/\s+/);return this._node.setAttribute("class",this.classes(this._node).filter(function(a){return b.indexOf(a)===-1}).join(" ")),this}function t(){return this._node.setAttribute("class",""),this}function u(){return this._node.getBoundingClientRect().height}function v(){return this._node.getBoundingClientRect().width}function w(a,b,d){return void 0===b&&(b=!0),Object.keys(a).forEach(function(e){function f(a,b){var f,g,h,i={};a.easing&&(h=a.easing instanceof Array?a.easing:c.Svg.Easing[a.easing],delete a.easing),a.begin=c.ensureUnit(a.begin,"ms"),a.dur=c.ensureUnit(a.dur,"ms"),h&&(a.calcMode="spline",a.keySplines=h.join(" "),a.keyTimes="0;1"),b&&(a.fill="freeze",i[e]=a.from,this.attr(i),g=c.quantity(a.begin||0).value,a.begin="indefinite"),f=this.elem("animate",c.extend({attributeName:e},a)),b&&setTimeout(function(){try{f._node.beginElement()}catch(b){i[e]=a.to,this.attr(i),f.remove()}}.bind(this),g),d&&f._node.addEventListener("beginEvent",function(){d.emit("animationBegin",{element:this,animate:f._node,params:a})}.bind(this)),f._node.addEventListener("endEvent",function(){d&&d.emit("animationEnd",{element:this,animate:f._node,params:a}),b&&(i[e]=a.to,this.attr(i),f.remove())}.bind(this))}a[e]instanceof Array?a[e].forEach(function(a){f.bind(this)(a,!1)}.bind(this)):f.bind(this)(a[e],b)}.bind(this)),this}function x(a){var b=this;this.svgElements=[];for(var d=0;d<a.length;d++)this.svgElements.push(new c.Svg(a[d]));Object.keys(c.Svg.prototype).filter(function(a){return["constructor","parent","querySelector","querySelectorAll","replace","append","classes","height","width"].indexOf(a)===-1}).forEach(function(a){b[a]=function(){var d=Array.prototype.slice.call(arguments,0);return b.svgElements.forEach(function(b){c.Svg.prototype[a].apply(b,d)}),b}})}c.Svg=c.Class.extend({constructor:d,attr:e,elem:f,parent:g,root:h,querySelector:i,querySelectorAll:j,foreignObject:k,text:l,empty:m,remove:n,replace:o,append:p,classes:q,addClass:r,removeClass:s,removeAllClasses:t,height:u,width:v,animate:w}),c.Svg.isSupported=function(a){return b.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#"+a,"1.1")};var y={easeInSine:[.47,0,.745,.715],easeOutSine:[.39,.575,.565,1],easeInOutSine:[.445,.05,.55,.95],easeInQuad:[.55,.085,.68,.53],easeOutQuad:[.25,.46,.45,.94],easeInOutQuad:[.455,.03,.515,.955],easeInCubic:[.55,.055,.675,.19],easeOutCubic:[.215,.61,.355,1],easeInOutCubic:[.645,.045,.355,1],easeInQuart:[.895,.03,.685,.22],easeOutQuart:[.165,.84,.44,1],easeInOutQuart:[.77,0,.175,1],easeInQuint:[.755,.05,.855,.06],easeOutQuint:[.23,1,.32,1],easeInOutQuint:[.86,0,.07,1],easeInExpo:[.95,.05,.795,.035],easeOutExpo:[.19,1,.22,1],easeInOutExpo:[1,0,0,1],easeInCirc:[.6,.04,.98,.335],easeOutCirc:[.075,.82,.165,1],easeInOutCirc:[.785,.135,.15,.86],easeInBack:[.6,-.28,.735,.045],easeOutBack:[.175,.885,.32,1.275],easeInOutBack:[.68,-.55,.265,1.55]};c.Svg.Easing=y,c.Svg.List=c.Class.extend({constructor:x})}(window,document,a),function(a,b,c){"use strict";function d(a,b,d,e,f,g){var h=c.extend({command:f?a.toLowerCase():a.toUpperCase()},b,g?{data:g}:{});d.splice(e,0,h)}function e(a,b){a.forEach(function(c,d){u[c.command.toLowerCase()].forEach(function(e,f){b(c,e,d,f,a)})})}function f(a,b){this.pathElements=[],this.pos=0,this.close=a,this.options=c.extend({},v,b)}function g(a){return void 0!==a?(this.pos=Math.max(0,Math.min(this.pathElements.length,a)),this):this.pos}function h(a){return this.pathElements.splice(this.pos,a),this}function i(a,b,c,e){return d("M",{x:+a,y:+b},this.pathElements,this.pos++,c,e),this}function j(a,b,c,e){return d("L",{x:+a,y:+b},this.pathElements,this.pos++,c,e),this}function k(a,b,c,e,f,g,h,i){return d("C",{x1:+a,y1:+b,x2:+c,y2:+e,x:+f,y:+g},this.pathElements,this.pos++,h,i),this}function l(a,b,c,e,f,g,h,i,j){return d("A",{rx:+a,ry:+b,xAr:+c,lAf:+e,sf:+f,x:+g,y:+h},this.pathElements,this.pos++,i,j),this}function m(a){var b=a.replace(/([A-Za-z])([0-9])/g,"$1 $2").replace(/([0-9])([A-Za-z])/g,"$1 $2").split(/[\s,]+/).reduce(function(a,b){return b.match(/[A-Za-z]/)&&a.push([]),a[a.length-1].push(b),a},[]);"Z"===b[b.length-1][0].toUpperCase()&&b.pop();var d=b.map(function(a){var b=a.shift(),d=u[b.toLowerCase()];return c.extend({command:b},d.reduce(function(b,c,d){return b[c]=+a[d],b},{}))}),e=[this.pos,0];return Array.prototype.push.apply(e,d),Array.prototype.splice.apply(this.pathElements,e),this.pos+=d.length,this}function n(){var a=Math.pow(10,this.options.accuracy);return this.pathElements.reduce(function(b,c){var d=u[c.command.toLowerCase()].map(function(b){return this.options.accuracy?Math.round(c[b]*a)/a:c[b]}.bind(this));return b+c.command+d.join(",")}.bind(this),"")+(this.close?"Z":"")}function o(a,b){return e(this.pathElements,function(c,d){c[d]*="x"===d[0]?a:b}),this}function p(a,b){return e(this.pathElements,function(c,d){c[d]+="x"===d[0]?a:b}),this}function q(a){return e(this.pathElements,function(b,c,d,e,f){var g=a(b,c,d,e,f);(g||0===g)&&(b[c]=g)}),this}function r(a){var b=new c.Svg.Path(a||this.close);return b.pos=this.pos,b.pathElements=this.pathElements.slice().map(function(a){return c.extend({},a)}),b.options=c.extend({},this.options),b}function s(a){var b=[new c.Svg.Path];return this.pathElements.forEach(function(d){d.command===a.toUpperCase()&&0!==b[b.length-1].pathElements.length&&b.push(new c.Svg.Path),b[b.length-1].pathElements.push(d)}),b}function t(a,b,d){for(var e=new c.Svg.Path(b,d),f=0;f<a.length;f++)for(var g=a[f],h=0;h<g.pathElements.length;h++)e.pathElements.push(g.pathElements[h]);return e}var u={m:["x","y"],l:["x","y"],c:["x1","y1","x2","y2","x","y"],a:["rx","ry","xAr","lAf","sf","x","y"]},v={accuracy:3};c.Svg.Path=c.Class.extend({constructor:f,position:g,remove:h,move:i,line:j,curve:k,arc:l,scale:o,translate:p,transform:q,parse:m,stringify:n,clone:r,splitByCommand:s}),c.Svg.Path.elementDescriptions=u,c.Svg.Path.join=t}(window,document,a),function(a,b,c){"use strict";function d(a,b,c,d){this.units=a,this.counterUnits=a===f.x?f.y:f.x,this.chartRect=b,this.axisLength=b[a.rectEnd]-b[a.rectStart],this.gridOffset=b[a.rectOffset],this.ticks=c,this.options=d}function e(a,b,d,e,f){var g=e["axis"+this.units.pos.toUpperCase()],h=this.ticks.map(this.projectValue.bind(this)),i=this.ticks.map(g.labelInterpolationFnc);h.forEach(function(j,k){var l,m={x:0,y:0};l=h[k+1]?h[k+1]-j:Math.max(this.axisLength-j,30),c.isFalseyButZero(i[k])&&""!==i[k]||("x"===this.units.pos?(j=this.chartRect.x1+j,m.x=e.axisX.labelOffset.x,"start"===e.axisX.position?m.y=this.chartRect.padding.top+e.axisX.labelOffset.y+(d?5:20):m.y=this.chartRect.y1+e.axisX.labelOffset.y+(d?5:20)):(j=this.chartRect.y1-j,m.y=e.axisY.labelOffset.y-(d?l:0),"start"===e.axisY.position?m.x=d?this.chartRect.padding.left+e.axisY.labelOffset.x:this.chartRect.x1-10:m.x=this.chartRect.x2+e.axisY.labelOffset.x+10),g.showGrid&&c.createGrid(j,k,this,this.gridOffset,this.chartRect[this.counterUnits.len](),a,[e.classNames.grid,e.classNames[this.units.dir]],f),g.showLabel&&c.createLabel(j,l,k,i,this,g.offset,m,b,[e.classNames.label,e.classNames[this.units.dir],e.classNames[g.position]],d,f))}.bind(this))}var f={x:{pos:"x",len:"width",dir:"horizontal",rectStart:"x1",rectEnd:"x2",rectOffset:"y2"},y:{pos:"y",len:"height",dir:"vertical",rectStart:"y2",rectEnd:"y1",rectOffset:"x1"}};c.Axis=c.Class.extend({constructor:d,createGridAndLabels:e,projectValue:function(a,b,c){throw new Error("Base axis can't be instantiated!")}}),c.Axis.units=f}(window,document,a),function(a,b,c){"use strict";function d(a,b,d,e){var f=e.highLow||c.getHighLow(b.normalized,e,a.pos);this.bounds=c.getBounds(d[a.rectEnd]-d[a.rectStart],f,e.scaleMinSpace||20,e.onlyInteger),this.range={min:this.bounds.min,max:this.bounds.max},c.AutoScaleAxis["super"].constructor.call(this,a,d,this.bounds.values,e)}function e(a){return this.axisLength*(+c.getMultiValue(a,this.units.pos)-this.bounds.min)/this.bounds.range}c.AutoScaleAxis=c.Axis.extend({constructor:d,projectValue:e})}(window,document,a),function(a,b,c){"use strict";function d(a,b,d,e){var f=e.highLow||c.getHighLow(b.normalized,e,a.pos);this.divisor=e.divisor||1,this.ticks=e.ticks||c.times(this.divisor).map(function(a,b){return f.low+(f.high-f.low)/this.divisor*b}.bind(this)),this.ticks.sort(function(a,b){return a-b}),this.range={min:f.low,max:f.high},c.FixedScaleAxis["super"].constructor.call(this,a,d,this.ticks,e),this.stepLength=this.axisLength/this.divisor}function e(a){return this.axisLength*(+c.getMultiValue(a,this.units.pos)-this.range.min)/(this.range.max-this.range.min)}c.FixedScaleAxis=c.Axis.extend({constructor:d,projectValue:e})}(window,document,a),function(a,b,c){"use strict";function d(a,b,d,e){c.StepAxis["super"].constructor.call(this,a,d,e.ticks,e),this.stepLength=this.axisLength/(e.ticks.length-(e.stretch?1:0))}function e(a,b){return this.stepLength*b}c.StepAxis=c.Axis.extend({constructor:d,projectValue:e})}(window,document,a),function(a,b,c){"use strict";function d(a){this.data=c.normalizeData(this.data);var b={raw:this.data,normalized:c.getDataArray(this.data,a.reverseData,!0)};this.svg=c.createSvg(this.container,a.width,a.height,a.classNames.chart);var d,e,g=this.svg.elem("g").addClass(a.classNames.gridGroup),h=this.svg.elem("g"),i=this.svg.elem("g").addClass(a.classNames.labelGroup),j=c.createChartRect(this.svg,a,f.padding);d=void 0===a.axisX.type?new c.StepAxis(c.Axis.units.x,b,j,c.extend({},a.axisX,{ticks:b.raw.labels,stretch:a.fullWidth})):a.axisX.type.call(c,c.Axis.units.x,b,j,a.axisX),e=void 0===a.axisY.type?new c.AutoScaleAxis(c.Axis.units.y,b,j,c.extend({},a.axisY,{high:c.isNum(a.high)?a.high:a.axisY.high,low:c.isNum(a.low)?a.low:a.axisY.low})):a.axisY.type.call(c,c.Axis.units.y,b,j,a.axisY),d.createGridAndLabels(g,i,this.supportsForeignObject,a,this.eventEmitter),e.createGridAndLabels(g,i,this.supportsForeignObject,a,this.eventEmitter),b.raw.series.forEach(function(f,g){var i=h.elem("g");i.attr({"ct:series-name":f.name,"ct:meta":c.serialize(f.meta)}),i.addClass([a.classNames.series,f.className||a.classNames.series+"-"+c.alphaNumerate(g)].join(" "));var k=[],l=[];b.normalized[g].forEach(function(a,h){var i={x:j.x1+d.projectValue(a,h,b.normalized[g]),y:j.y1-e.projectValue(a,h,b.normalized[g])};k.push(i.x,i.y),l.push({value:a,valueIndex:h,meta:c.getMetaData(f,h)})}.bind(this));var m={lineSmooth:c.getSeriesOption(f,a,"lineSmooth"),showPoint:c.getSeriesOption(f,a,"showPoint"),showLine:c.getSeriesOption(f,a,"showLine"),showArea:c.getSeriesOption(f,a,"showArea"),areaBase:c.getSeriesOption(f,a,"areaBase")},n="function"==typeof m.lineSmooth?m.lineSmooth:m.lineSmooth?c.Interpolation.monotoneCubic():c.Interpolation.none(),o=n(k,l);if(m.showPoint&&o.pathElements.forEach(function(b){var h=i.elem("line",{x1:b.x,y1:b.y,x2:b.x+.01,y2:b.y},a.classNames.point).attr({"ct:value":[b.data.value.x,b.data.value.y].filter(c.isNum).join(","),"ct:meta":b.data.meta});this.eventEmitter.emit("draw",{type:"point",value:b.data.value,index:b.data.valueIndex,meta:b.data.meta,series:f,seriesIndex:g,axisX:d,axisY:e,group:i,element:h,x:b.x,y:b.y})}.bind(this)),m.showLine){var p=i.elem("path",{d:o.stringify()},a.classNames.line,!0);this.eventEmitter.emit("draw",{type:"line",values:b.normalized[g],path:o.clone(),chartRect:j,index:g,series:f,seriesIndex:g,axisX:d,axisY:e,group:i,element:p})}if(m.showArea&&e.range){var q=Math.max(Math.min(m.areaBase,e.range.max),e.range.min),r=j.y1-e.projectValue(q);o.splitByCommand("M").filter(function(a){return a.pathElements.length>1}).map(function(a){var b=a.pathElements[0],c=a.pathElements[a.pathElements.length-1];return a.clone(!0).position(0).remove(1).move(b.x,r).line(b.x,b.y).position(a.pathElements.length+1).line(c.x,r)}).forEach(function(c){var h=i.elem("path",{d:c.stringify()},a.classNames.area,!0);this.eventEmitter.emit("draw",{type:"area",values:b.normalized[g],path:c.clone(),series:f,seriesIndex:g,axisX:d,axisY:e,chartRect:j,index:g,group:i,element:h})}.bind(this))}}.bind(this)),this.eventEmitter.emit("created",{bounds:e.bounds,chartRect:j,axisX:d,axisY:e,svg:this.svg,options:a})}function e(a,b,d,e){c.Line["super"].constructor.call(this,a,b,f,c.extend({},f,d),e)}var f={axisX:{offset:30,position:"end",labelOffset:{x:0,y:0},showLabel:!0,showGrid:!0,labelInterpolationFnc:c.noop,type:void 0},axisY:{offset:40,position:"start",labelOffset:{x:0,y:0},showLabel:!0,showGrid:!0,labelInterpolationFnc:c.noop,type:void 0,scaleMinSpace:20,onlyInteger:!1},width:void 0,height:void 0,showLine:!0,showPoint:!0,showArea:!1,areaBase:0,lineSmooth:!0,low:void 0,high:void 0,chartPadding:{top:15,right:15,bottom:5,left:10},fullWidth:!1,reverseData:!1,classNames:{chart:"ct-chart-line",label:"ct-label",labelGroup:"ct-labels",series:"ct-series",line:"ct-line",point:"ct-point",area:"ct-area",grid:"ct-grid",gridGroup:"ct-grids",vertical:"ct-vertical",horizontal:"ct-horizontal",start:"ct-start",end:"ct-end"}};c.Line=c.Base.extend({constructor:e,createChart:d})}(window,document,a),function(a,b,c){"use strict";function d(a){this.data=c.normalizeData(this.data);var b,d={raw:this.data,normalized:a.distributeSeries?c.getDataArray(this.data,a.reverseData,a.horizontalBars?"x":"y").map(function(a){return[a]}):c.getDataArray(this.data,a.reverseData,a.horizontalBars?"x":"y")};this.svg=c.createSvg(this.container,a.width,a.height,a.classNames.chart+(a.horizontalBars?" "+a.classNames.horizontalBars:""));var e=this.svg.elem("g").addClass(a.classNames.gridGroup),g=this.svg.elem("g"),h=this.svg.elem("g").addClass(a.classNames.labelGroup);if(a.stackBars&&0!==d.normalized.length){var i=c.serialMap(d.normalized,function(){return Array.prototype.slice.call(arguments).map(function(a){return a}).reduce(function(a,b){return{x:a.x+(b&&b.x)||0,y:a.y+(b&&b.y)||0}},{x:0,y:0})});b=c.getHighLow([i],c.extend({},a,{referenceValue:0}),a.horizontalBars?"x":"y")}else b=c.getHighLow(d.normalized,c.extend({},a,{referenceValue:0}),a.horizontalBars?"x":"y");b.high=+a.high||(0===a.high?0:b.high),b.low=+a.low||(0===a.low?0:b.low);var j,k,l,m,n,o=c.createChartRect(this.svg,a,f.padding);k=a.distributeSeries&&a.stackBars?d.raw.labels.slice(0,1):d.raw.labels,a.horizontalBars?(j=m=void 0===a.axisX.type?new c.AutoScaleAxis(c.Axis.units.x,d,o,c.extend({},a.axisX,{highLow:b,referenceValue:0})):a.axisX.type.call(c,c.Axis.units.x,d,o,c.extend({},a.axisX,{highLow:b,referenceValue:0})),l=n=void 0===a.axisY.type?new c.StepAxis(c.Axis.units.y,d,o,{ticks:k}):a.axisY.type.call(c,c.Axis.units.y,d,o,a.axisY)):(l=m=void 0===a.axisX.type?new c.StepAxis(c.Axis.units.x,d,o,{ticks:k}):a.axisX.type.call(c,c.Axis.units.x,d,o,a.axisX),j=n=void 0===a.axisY.type?new c.AutoScaleAxis(c.Axis.units.y,d,o,c.extend({},a.axisY,{highLow:b,referenceValue:0})):a.axisY.type.call(c,c.Axis.units.y,d,o,c.extend({},a.axisY,{highLow:b,referenceValue:0})));var p=a.horizontalBars?o.x1+j.projectValue(0):o.y1-j.projectValue(0),q=[]; +l.createGridAndLabels(e,h,this.supportsForeignObject,a,this.eventEmitter),j.createGridAndLabels(e,h,this.supportsForeignObject,a,this.eventEmitter),d.raw.series.forEach(function(b,e){var f,h,i=e-(d.raw.series.length-1)/2;f=a.distributeSeries&&!a.stackBars?l.axisLength/d.normalized.length/2:a.distributeSeries&&a.stackBars?l.axisLength/2:l.axisLength/d.normalized[e].length/2,h=g.elem("g"),h.attr({"ct:series-name":b.name,"ct:meta":c.serialize(b.meta)}),h.addClass([a.classNames.series,b.className||a.classNames.series+"-"+c.alphaNumerate(e)].join(" ")),d.normalized[e].forEach(function(g,k){var r,s,t,u;if(u=a.distributeSeries&&!a.stackBars?e:a.distributeSeries&&a.stackBars?0:k,r=a.horizontalBars?{x:o.x1+j.projectValue(g&&g.x?g.x:0,k,d.normalized[e]),y:o.y1-l.projectValue(g&&g.y?g.y:0,u,d.normalized[e])}:{x:o.x1+l.projectValue(g&&g.x?g.x:0,u,d.normalized[e]),y:o.y1-j.projectValue(g&&g.y?g.y:0,k,d.normalized[e])},l instanceof c.StepAxis&&(l.options.stretch||(r[l.units.pos]+=f*(a.horizontalBars?-1:1)),r[l.units.pos]+=a.stackBars||a.distributeSeries?0:i*a.seriesBarDistance*(a.horizontalBars?-1:1)),t=q[k]||p,q[k]=t-(p-r[l.counterUnits.pos]),void 0!==g){var v={};v[l.units.pos+"1"]=r[l.units.pos],v[l.units.pos+"2"]=r[l.units.pos],!a.stackBars||"accumulate"!==a.stackMode&&a.stackMode?(v[l.counterUnits.pos+"1"]=p,v[l.counterUnits.pos+"2"]=r[l.counterUnits.pos]):(v[l.counterUnits.pos+"1"]=t,v[l.counterUnits.pos+"2"]=q[k]),v.x1=Math.min(Math.max(v.x1,o.x1),o.x2),v.x2=Math.min(Math.max(v.x2,o.x1),o.x2),v.y1=Math.min(Math.max(v.y1,o.y2),o.y1),v.y2=Math.min(Math.max(v.y2,o.y2),o.y1),s=h.elem("line",v,a.classNames.bar).attr({"ct:value":[g.x,g.y].filter(c.isNum).join(","),"ct:meta":c.getMetaData(b,k)}),this.eventEmitter.emit("draw",c.extend({type:"bar",value:g,index:k,meta:c.getMetaData(b,k),series:b,seriesIndex:e,axisX:m,axisY:n,chartRect:o,group:h,element:s},v))}}.bind(this))}.bind(this)),this.eventEmitter.emit("created",{bounds:j.bounds,chartRect:o,axisX:m,axisY:n,svg:this.svg,options:a})}function e(a,b,d,e){c.Bar["super"].constructor.call(this,a,b,f,c.extend({},f,d),e)}var f={axisX:{offset:30,position:"end",labelOffset:{x:0,y:0},showLabel:!0,showGrid:!0,labelInterpolationFnc:c.noop,scaleMinSpace:30,onlyInteger:!1},axisY:{offset:40,position:"start",labelOffset:{x:0,y:0},showLabel:!0,showGrid:!0,labelInterpolationFnc:c.noop,scaleMinSpace:20,onlyInteger:!1},width:void 0,height:void 0,high:void 0,low:void 0,chartPadding:{top:15,right:15,bottom:5,left:10},seriesBarDistance:15,stackBars:!1,stackMode:"accumulate",horizontalBars:!1,distributeSeries:!1,reverseData:!1,classNames:{chart:"ct-chart-bar",horizontalBars:"ct-horizontal-bars",label:"ct-label",labelGroup:"ct-labels",series:"ct-series",bar:"ct-bar",grid:"ct-grid",gridGroup:"ct-grids",vertical:"ct-vertical",horizontal:"ct-horizontal",start:"ct-start",end:"ct-end"}};c.Bar=c.Base.extend({constructor:e,createChart:d})}(window,document,a),function(a,b,c){"use strict";function d(a,b,c){var d=b.x>a.x;return d&&"explode"===c||!d&&"implode"===c?"start":d&&"implode"===c||!d&&"explode"===c?"end":"middle"}function e(a){this.data=c.normalizeData(this.data);var b,e,f,h,i,j=[],k=a.startAngle,l=c.getDataArray(this.data,a.reverseData);this.svg=c.createSvg(this.container,a.width,a.height,a.donut?a.classNames.chartDonut:a.classNames.chartPie),e=c.createChartRect(this.svg,a,g.padding),f=Math.min(e.width()/2,e.height()/2),i=a.total||l.reduce(function(a,b){return a+b},0);var m=c.quantity(a.donutWidth);"%"===m.unit&&(m.value*=f/100),f-=a.donut?m.value/2:0,h="outside"===a.labelPosition||a.donut?f:"center"===a.labelPosition?0:f/2,h+=a.labelOffset;var n={x:e.x1+e.width()/2,y:e.y2+e.height()/2},o=1===this.data.series.filter(function(a){return a.hasOwnProperty("value")?0!==a.value:0!==a}).length;a.showLabel&&(b=this.svg.elem("g",null,null,!0));for(var p=0;p<this.data.series.length;p++)if(0!==l[p]||!a.ignoreEmptyValues){var q=this.data.series[p];j[p]=this.svg.elem("g",null,null,!0),j[p].attr({"ct:series-name":q.name}),j[p].addClass([a.classNames.series,q.className||a.classNames.series+"-"+c.alphaNumerate(p)].join(" "));var r=k+l[p]/i*360,s=Math.max(0,k-(0===p||o?0:.2));r-s>=359.99&&(r=s+359.99);var t=c.polarToCartesian(n.x,n.y,f,s),u=c.polarToCartesian(n.x,n.y,f,r),v=new c.Svg.Path((!a.donut)).move(u.x,u.y).arc(f,f,0,r-k>180,0,t.x,t.y);a.donut||v.line(n.x,n.y);var w=j[p].elem("path",{d:v.stringify()},a.donut?a.classNames.sliceDonut:a.classNames.slicePie);if(w.attr({"ct:value":l[p],"ct:meta":c.serialize(q.meta)}),a.donut&&w.attr({style:"stroke-width: "+m.value+"px"}),this.eventEmitter.emit("draw",{type:"slice",value:l[p],totalDataSum:i,index:p,meta:q.meta,series:q,group:j[p],element:w,path:v.clone(),center:n,radius:f,startAngle:k,endAngle:r}),a.showLabel){var x=c.polarToCartesian(n.x,n.y,h,k+(r-k)/2),y=a.labelInterpolationFnc(this.data.labels&&!c.isFalseyButZero(this.data.labels[p])?this.data.labels[p]:l[p],p);if(y||0===y){var z=b.elem("text",{dx:x.x,dy:x.y,"text-anchor":d(n,x,a.labelDirection)},a.classNames.label).text(""+y);this.eventEmitter.emit("draw",{type:"label",index:p,group:b,element:z,text:""+y,x:x.x,y:x.y})}}k=r}this.eventEmitter.emit("created",{chartRect:e,svg:this.svg,options:a})}function f(a,b,d,e){c.Pie["super"].constructor.call(this,a,b,g,c.extend({},g,d),e)}var g={width:void 0,height:void 0,chartPadding:5,classNames:{chartPie:"ct-chart-pie",chartDonut:"ct-chart-donut",series:"ct-series",slicePie:"ct-slice-pie",sliceDonut:"ct-slice-donut",label:"ct-label"},startAngle:0,total:void 0,donut:!1,donutWidth:60,showLabel:!0,labelOffset:0,labelPosition:"inside",labelInterpolationFnc:c.noop,labelDirection:"neutral",reverseData:!1,ignoreEmptyValues:!1};c.Pie=c.Base.extend({constructor:f,createChart:e,determineAnchorPosition:d})}(window,document,a),a}); +//# sourceMappingURL=chartist.min.js.map \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_widget_listbox.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_chartist_min_js.xml similarity index 93% rename from bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_widget_listbox.js.xml rename to bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_chartist_min_js.xml index a427353536c55d9b52949c2952459cc9fd1ea803..7c933b4c9269cdea809fad807e2c8aa5a5cd8948 100644 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_widget_listbox.js.xml +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_chartist_min_js.xml @@ -63,21 +63,19 @@ </tuple> </value> </item> - <item> - <key> <string>categories</string> </key> - <value> - <tuple/> - </value> - </item> <item> <key> <string>content_md5</string> </key> <value> <none/> </value> </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/javascript</string> </value> + </item> <item> <key> <string>default_reference</string> </key> - <value> <string>gadget_travel_expense_widget_listbox.js</string> </value> + <value> <string>chartist.min.js</string> </value> </item> <item> <key> <string>description</string> </key> @@ -87,11 +85,13 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>gadget_travel_expense_widget_listbox.js</string> </value> + <value> <string>gadget_hr_chartist_min_js</string> </value> </item> <item> <key> <string>language</string> </key> - <value> <string>en</string> </value> + <value> + <none/> + </value> </item> <item> <key> <string>portal_type</string> </key> @@ -105,11 +105,13 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Travel Expense Widget Listbox JS</string> </value> + <value> <string>Gadget Officejs chartist.min.js</string> </value> </item> <item> <key> <string>version</string> </key> - <value> <string>001</string> </value> + <value> + <none/> + </value> </item> <item> <key> <string>workflow_history</string> </key> @@ -191,7 +193,7 @@ </tuple> <state> <tuple> - <float>1472526622.59</float> + <float>1478709106.75</float> <string>UTC</string> </tuple> </state> @@ -236,7 +238,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>0.0.0.0</string> </value> + <value> <string>955.10911.51080.4676</string> </value> </item> <item> <key> <string>state</string> </key> @@ -254,7 +256,7 @@ </tuple> <state> <tuple> - <float>1472523952.12</float> + <float>1478709119.14</float> <string>UTC</string> </tuple> </state> @@ -311,7 +313,7 @@ </tuple> <state> <tuple> - <float>1472523952.1</float> + <float>1478709072.41</float> <string>UTC</string> </tuple> </state> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_excellentexport.min.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_excellentexport_js.js similarity index 100% rename from bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_excellentexport.min.js.js rename to bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_excellentexport_js.js diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_jiodev_renderjs_storage.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_excellentexport_js.xml similarity index 93% rename from bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_jiodev_renderjs_storage.js.xml rename to bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_excellentexport_js.xml index 95894f1e91f8bc38422397f8460290938f564363..41e3b2590159a1808cdc29100fa0ae2b656c90f7 100644 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_jiodev_renderjs_storage.js.xml +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_excellentexport_js.xml @@ -69,9 +69,13 @@ <none/> </value> </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/javascript</string> </value> + </item> <item> <key> <string>default_reference</string> </key> - <value> <string>travel_expense_jiodev_renderjs_storage.js</string> </value> + <value> <string>gadget_officejs_expense_excellentexport.js</string> </value> </item> <item> <key> <string>description</string> </key> @@ -81,11 +85,13 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>travel_expense_jiodev_renderjs_storage.js</string> </value> + <value> <string>gadget_hr_expense_excellentexport_js</string> </value> </item> <item> <key> <string>language</string> </key> - <value> <string>en</string> </value> + <value> + <none/> + </value> </item> <item> <key> <string>portal_type</string> </key> @@ -99,13 +105,13 @@ </item> <item> <key> <string>title</string> </key> - <value> - <none/> - </value> + <value> <string>Gadget Office Expense Excellentexport JS</string> </value> </item> <item> <key> <string>version</string> </key> - <value> <string>001</string> </value> + <value> + <none/> + </value> </item> <item> <key> <string>workflow_history</string> </key> @@ -187,7 +193,7 @@ </tuple> <state> <tuple> - <float>1472538527.56</float> + <float>1478708901.0</float> <string>UTC</string> </tuple> </state> @@ -232,7 +238,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>953.37690.25781.51865</string> </value> + <value> <string>955.10908.58609.50961</string> </value> </item> <item> <key> <string>state</string> </key> @@ -250,7 +256,7 @@ </tuple> <state> <tuple> - <float>1472537912.78</float> + <float>1478708962.57</float> <string>UTC</string> </tuple> </state> @@ -307,7 +313,7 @@ </tuple> <state> <tuple> - <float>1472537866.62</float> + <float>1478708896.2</float> <string>UTC</string> </tuple> </state> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_filesaver_min_js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_filesaver_min_js.js new file mode 100644 index 0000000000000000000000000000000000000000..f46b8c6074d86d8b4aa0b08ca176ae739ebd4f8e --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_filesaver_min_js.js @@ -0,0 +1,2 @@ +/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */ +var saveAs=saveAs||function(e){"use strict";if(typeof e==="undefined"||typeof navigator!=="undefined"&&/MSIE [1-9]\./.test(navigator.userAgent)){return}var t=e.document,n=function(){return e.URL||e.webkitURL||e},r=t.createElementNS("http://www.w3.org/1999/xhtml","a"),o="download"in r,i=function(e){var t=new MouseEvent("click");e.dispatchEvent(t)},a=/constructor/i.test(e.HTMLElement),f=/CriOS\/[\d]+/.test(navigator.userAgent),u=function(t){(e.setImmediate||e.setTimeout)(function(){throw t},0)},d="application/octet-stream",s=1e3*40,c=function(e){var t=function(){if(typeof e==="string"){n().revokeObjectURL(e)}else{e.remove()}};setTimeout(t,s)},l=function(e,t,n){t=[].concat(t);var r=t.length;while(r--){var o=e["on"+t[r]];if(typeof o==="function"){try{o.call(e,n||e)}catch(i){u(i)}}}},p=function(e){if(/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)){return new Blob([String.fromCharCode(65279),e],{type:e.type})}return e},v=function(t,u,s){if(!s){t=p(t)}var v=this,w=t.type,m=w===d,y,h=function(){l(v,"writestart progress write writeend".split(" "))},S=function(){if((f||m&&a)&&e.FileReader){var r=new FileReader;r.onloadend=function(){var t=f?r.result:r.result.replace(/^data:[^;]*;/,"data:attachment/file;");var n=e.open(t,"_blank");if(!n)e.location.href=t;t=undefined;v.readyState=v.DONE;h()};r.readAsDataURL(t);v.readyState=v.INIT;return}if(!y){y=n().createObjectURL(t)}if(m){e.location.href=y}else{var o=e.open(y,"_blank");if(!o){e.location.href=y}}v.readyState=v.DONE;h();c(y)};v.readyState=v.INIT;if(o){y=n().createObjectURL(t);setTimeout(function(){r.href=y;r.download=u;i(r);h();c(y);v.readyState=v.DONE});return}S()},w=v.prototype,m=function(e,t,n){return new v(e,t||e.name||"download",n)};if(typeof navigator!=="undefined"&&navigator.msSaveOrOpenBlob){return function(e,t,n){t=t||e.name||"download";if(!n){e=p(e)}return navigator.msSaveOrOpenBlob(e,t)}}w.abort=function(){};w.readyState=w.INIT=0;w.WRITING=1;w.DONE=2;w.error=w.onwritestart=w.onprogress=w.onwrite=w.onabort=w.onerror=w.onwriteend=null;return m}(typeof self!=="undefined"&&self||typeof window!=="undefined"&&window||this.content);if(typeof module!=="undefined"&&module.exports){module.exports.saveAs=saveAs}else if(typeof define!=="undefined"&&define!==null&&define.amd!==null){define([],function(){return saveAs})} \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_filesaver_min_js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_filesaver_min_js.xml new file mode 100644 index 0000000000000000000000000000000000000000..4cf563b523eb33a40c5b2ad369554c5750de92dc --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_filesaver_min_js.xml @@ -0,0 +1,330 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Script" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/javascript</string> </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_officejs_expense_filesaver.min.js</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_hr_expense_filesaver_min_js</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Script</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Gadget Office Expense Filesave JS</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1478710088.21</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>955.10928.9026.26436</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1478710116.09</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>empty</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1478710051.82</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_record_html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_record_html.html new file mode 100644 index 0000000000000000000000000000000000000000..aedb13d2b66cd9d737232e3c2f43ad5ad54524c6 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_record_html.html @@ -0,0 +1,19 @@ +<!doctype html> +<html> + <head> + + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <title>OfficeJS Text Editor List</title> + + <script src="rsvp.js"></script> + <script src="renderjs.js"></script> + <script src="gadget_officejs_page_expense_record_list.js"></script> + + </head> + + <body> + <div data-gadget-url="gadget_officejs_widget_listbox.html" data-gadget-scope="listbox"></div> + </body> +</html> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_login.html.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_record_html.xml similarity index 86% rename from bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_login.html.xml rename to bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_record_html.xml index 85d16be51fb461756c9dfa9520565ccfd7329377..7937885c23aa361c30008e7a7cdf7fbf7574e60e 100644 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_login.html.xml +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_record_html.xml @@ -66,7 +66,10 @@ <item> <key> <string>categories</string> </key> <value> - <tuple/> + <tuple> + <string>contributor/person_module/1</string> + <string>contributor/person_module/2</string> + </tuple> </value> </item> <item> @@ -80,14 +83,16 @@ <value> <string>text/html</string> </value> </item> <item> - <key> <string>contributors</string> </key> + <key> <string>creators</string> </key> <value> - <tuple/> + <tuple> + <string>cedric.le.ninivin</string> + </tuple> </value> </item> <item> <key> <string>default_reference</string> </key> - <value> <string>gadget_travel_expense_page_login.html</string> </value> + <value> <string>gadget_officejs_page_expense_record_list.html</string> </value> </item> <item> <key> <string>description</string> </key> @@ -97,11 +102,32 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>gadget_travel_expense_page_login.html</string> </value> + <value> <string>gadget_hr_expense_record_html</string> </value> </item> <item> <key> <string>language</string> </key> - <value> <string>en</string> </value> + <value> + <none/> + </value> + </item> + <item> + <key> <string>modification_date</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1455284352.14</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> </item> <item> <key> <string>portal_type</string> </key> @@ -115,11 +141,13 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Travel Expense Record Login Page</string> </value> + <value> <string>OfficeJS expense record List</string> </value> </item> <item> <key> <string>version</string> </key> - <value> <string>001</string> </value> + <value> + <none/> + </value> </item> <item> <key> <string>workflow_history</string> </key> @@ -201,7 +229,7 @@ </tuple> <state> <tuple> - <float>1472526672.61</float> + <float>1478705816.11</float> <string>UTC</string> </tuple> </state> @@ -232,7 +260,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -246,7 +274,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>953.39336.50803.28296</string> </value> + <value> <string>955.64155.37573.64068</string> </value> </item> <item> <key> <string>state</string> </key> @@ -264,7 +292,7 @@ </tuple> <state> <tuple> - <float>1472636811.16</float> + <float>1481817340.76</float> <string>UTC</string> </tuple> </state> @@ -321,7 +349,7 @@ </tuple> <state> <tuple> - <float>1472523951.57</float> + <float>1478705720.83</float> <string>UTC</string> </tuple> </state> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_record_image_css.css b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_record_image_css.css new file mode 100644 index 0000000000000000000000000000000000000000..c86ca1c5140ed63a7bce57bc97caacc677db2a2f --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_record_image_css.css @@ -0,0 +1,85 @@ +.preview { + border-radius: 5px; + cursor: pointer; + transition: 0.3s; +} + +.preview:hover {opacity: 0.7;} + +/* The Modal (background) */ +.modal { + display: none; /* Hidden by default */ + position: fixed; /* Stay in place */ + z-index: 20; /* Sit on top */ + padding-top: 100px; /* Location of the box */ + left: 0; + top: 0; + width: 100%; /* Full width */ + height: 100%; /* Full height */ + overflow: auto; /* Enable scroll if needed */ + background-color: rgb(0,0,0); /* Fallback color */ + background-color: rgba(0,0,0,0.9); /* Black w/ opacity */ +} + +/* Modal Content (Image) */ +.modal-content { + margin: auto; + display: block; + width: 80%; + max-width: 700px; +} + +/* Caption of Modal Image (Image Text) - Same Width as the Image */ +#caption { + margin: auto; + display: block; + width: 80%; + max-width: 700px; + text-align: center; + color: #ccc; + padding: 10px 0; + height: 150px; +} + +/* Add Animation - Zoom in the Modal */ +.modal-content, #caption { + -webkit-animation-name: zoom; + -webkit-animation-duration: 0.6s; + animation-name: zoom; + animation-duration: 0.6s; +} + +@-webkit-keyframes zoom { + from {-webkit-transform:scale(0)} + to {-webkit-transform:scale(1)} +} + +@keyframes zoom { + from {transform:scale(0)} + to {transform:scale(1)} +} + +/* The Close Button */ +.close { + position: absolute; + top: 15px; + right: 35px; + color: #f1f1f1; + font-size: 40px; + font-weight: bold; + transition: 0.3s; +} + +.close:hover, +.close:focus { + color: #bbb; + text-decoration: none; + cursor: pointer; +} + +/* 100% Image Width on Smaller Screens */ +@media only screen and (max-width: 700px){ + .modal-content { + width: 100%; + } +} \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_record_image_css.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_record_image_css.xml new file mode 100644 index 0000000000000000000000000000000000000000..b664037d3fee8a247c49d39ebd4a1b4f4641f44c --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_record_image_css.xml @@ -0,0 +1,330 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Style" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/css</string> </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>expense_record_image.css</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_hr_expense_record_image_css</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Style</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>22</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1478791671.69</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>955.12288.50806.43366</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1478793769.92</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>empty</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1478791652.73</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_view.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_record_js.js similarity index 51% rename from bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_view.js.js rename to bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_record_js.js index ae6d676d04921d6f0671ba6086cf8000e16d224c..3da6a61c21b9968dda7533224963805edb2d0b1a 100644 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_view.js.js +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_record_js.js @@ -11,9 +11,29 @@ g.props.element = element; }); }) + .ready(function (g) { + return new RSVP.Queue() + .push(function () { + return RSVP.all([ + g.translate("validated"), + g.translate("invalidated"), + g.translate("Not synced!"), + g.translate("Waiting for approval") + ]); + }) + .push(function (result_list) { + g.props.translation_dict = { + "validated": result_list[0], + "invalidated": result_list[1], + "Not synced!": result_list[2], + "Waiting for approval": result_list[3] + }; + }); + }) .declareAcquiredMethod("translate", "translate") .declareAcquiredMethod("getUrlFor", "getUrlFor") .declareAcquiredMethod("updateHeader", "updateHeader") + .declareAcquiredMethod('getSetting', 'getSetting') .declareAcquiredMethod("jio_allDocs", "jio_allDocs") .allowPublicAcquisition("jio_allDocs", function (param_list) { var gadget = this; @@ -23,7 +43,14 @@ len; for (i = 0, len = result.data.total_rows; i < len; i += 1) { // XXX jIO does not create UUID with module inside - result.data.rows[i].value.state = getWorkflowState(result.data.rows[i].value.portal_type, result.data.rows[i].id, result.data.rows[i].value.sync_flag); + if (result.data.rows[i].id.indexOf("module") === -1) { + result.data.rows[i].value.state = + gadget.props.translation_dict["Not synced!"]; + } else { + result.data.rows[i].value.state = + result.data.rows[i].value.state || gadget.props.translation_dict[ + "Waiting for approval"]; + } } return result; }); @@ -32,14 +59,20 @@ var gadget = this; return new RSVP.Queue() .push(function () { - return gadget.getUrlFor({jio_key: options.jio_key, - page: "add_expense_record"}); + return RSVP.all([ + gadget.getSetting("portal_type"), + gadget.getSetting("document_title_plural") + ]); + }) + .push(function (answer_list) { + gadget.props.portal_type = answer_list[0]; + gadget.props.document_title_plural = answer_list[1]; + return gadget.getUrlFor({page: "add_document"}); }) .push(function (url) { return gadget.updateHeader({ - title: "Expense Record", - right_url: url, - right_title: "New" + title: gadget.props.document_title_plural, + add_url: url }); }) .push(function () { @@ -47,17 +80,16 @@ }) .push(function (listbox) { return listbox.render({ - jio_key: options.jio_key, + search_page: 'document_list', search: options.search, - begin_from: options.begin_from, column_list: [{ - select: 'comment', - title: 'Comment' + select: 'title', + title: 'Title' }, { select: 'quantity', title: 'Total Price' }, { - select: 'resource', + select: 'resource_title', title: 'Currency' }, { select: 'date', @@ -70,9 +102,10 @@ title: 'State' }], query: { - query: 'visible_in_html5_app_flag:1 AND portal_type:("Expense Record" OR "Expense Record Temp")', - select_list: ['doc_id', 'quantity', 'resource', - 'comment', 'date', 'portal_type', 'sync_flag'], + query: 'portal_type:("Expense Record" OR "Expense Record Temp")', + select_list: ['doc_id', 'quantity', 'resource_title', 'title', + 'comment', 'date', 'portal_type', 'sync_flag', + 'state'], sort_on: [["doc_id", "descending"]] } }); diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_record_js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_record_js.xml new file mode 100644 index 0000000000000000000000000000000000000000..540aeb38f5ab9cab6569e7911bf51fdc308e7ace --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_record_js.xml @@ -0,0 +1,360 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Script" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>contributor/person_module/1</string> + <string>contributor/person_module/2</string> + </tuple> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>creators</string> </key> + <value> + <tuple> + <string>cedric.le.ninivin</string> + </tuple> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_officejs_page_expense_record_list.js</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_hr_expense_record_js</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>modification_date</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1455284352.18</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Script</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>OfficeJS expense record List JS</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1478705818.87</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>supercedriclen</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>955.64153.34006.33723</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1481817318.68</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1478705723.02</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_record_view_html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_record_view_html.html new file mode 100644 index 0000000000000000000000000000000000000000..5b951b6f927dc6c7927acd0bcb3d83233d84803d --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_record_view_html.html @@ -0,0 +1,170 @@ +<!doctype html> +<html> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <title>Expense Record Module View Expense Record</title> + + <link rel="stylesheet" type="text/css" href="alertify.css" /> + <link rel="stylesheet" type="text/css" href="expense_record_image.css" /> + <script src="rsvp.js"></script> + <script src="renderjs.js"></script> + <script src="gadget_global.js" ></script> + <script src="handlebars.js"></script> + <script src="alertify.js"></script> + + + + <script class="view-expense-record-template" type="text/x-handlebars-template"> + <form class="view-expense-record-form"> + <button type="submit" data-i18n="Save" style="display:none;">Save</button> + <div class="ui-field-contain"> + <label data-i18n="State">State</label> + <div name="state">{{state}}</div> + </div> + {{#if not_readonly}} + + <div class="ui-field-contain"> + <label data-i18n="Title">Title</label> + <input type="text" name="title" value="{{title}}" required> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Total Price">Total Price</label> + <input type="number" name="quantity" value="{{quantity}}" step="0.01" required> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Currency">Currency</label> + <select class="new-performed-task" name="resource" required> + {{#each select_options}} + {{#if is_selected}} + <option value={{value}} selected>{{title}}</option> + {{else}} + <option value={{value}}>{{title}}</option> + {{/if}} + {{/each}} + </select> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Photo">Photo</label> + <input name="photo" type="file" accept="image/*" capture="camera"> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Preview">Preview</label> + {{#if preview}} + <img class='preview' name="preview" src="{{preview}}" style='width:20em;'/> + {{else}} + <img class='preview' name="preview" style='width:20em;'/> + {{/if}} + </div> + + <div class="ui-field-contain"> + <label data-i18n="Longitude">Longitude</label> + <input type="number" name="longitude" value="{{longitude}}" readonly class='ui-state-readonly' /> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Latitude">Latitude</label> + <input type="number" name="latitude" value="{{latitude}}" readonly class='ui-state-readonly' /> + </div> + + + <div class="ui-field-contain"> + <label data-i18n="Input Date">Input Date</label> + <input type="date" name="date" value="{{date}}" required> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Comment">Comment</label> + <textarea name="comment">{{comment}}</textarea> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Sync Method">Sync Method</label> + <div> + <input type="radio" id="sync_flag_yes" {{sync_checked}} name="sync_flag" value=1> + <label for="sync_flag_yes" data-i18n="Ready To Sync">Ready To Sync</label> + <input type="radio" id="sync_flag_no" {{not_sync_checked}} name="sync_flag" value=0 > + <label for="sync_flag_no" data-i18n="Do Not Sync">Do Not Sync</label> + </div> + </div> + + {{else}} + <div class="ui-field-contain"> + <label data-i18n="Title">Title</label> + <input type="text" name="title" value="{{title}}" readonly class='ui-state-readonly'> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Total Price">Total Price</label> + <input type="number" name="quantity" value="{{quantity}}" step="0.01" readonly class='ui-state-readonly'> + </div> + + <div class="ui-field-contain" class='ui-state-readonly'> + <label data-i18n="Currency">Currency</label> + <select name="resource" readonly class='ui-state-readonly'> + {{#each select_options}} + {{#if is_selected}} + <option value={{value}} selected>{{title}}</option> + {{else}} + <option value={{value}}>{{title}}</option> + {{/if}} + {{/each}} + </select> + </div> + + <div class="ui-field-contain" style="display:none;"> + <label data-i18n="Photo">Photo</label> + <input name="photo" type="file" accept="image/*" capture="camera" readonly class='ui-state-readonly'> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Preview">Preview</label> + {{#if preview}} + <img class='preview' name="preview" src="{{preview}}" style='width:20em;'/> + {{else}} + <img class='preview' name="preview" style='width:20em;'/> + {{/if}} + </div> + + <div class="ui-field-contain"> + <label data-i18n="Longitude">Longitude</label> + <input type="number" name="longitude" value="{{longitude}}" readonly class='ui-state-readonly' /> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Latitude">Latitude</label> + <input type="number" name="latitude" value="{{latitude}}" readonly class='ui-state-readonly' /> + </div> + + + <div class="ui-field-contain"> + <label data-i18n="Input Date">Input Date</label> + <input type="date" name="date" value="{{date}}" readonly class='ui-state-readonly'> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Comment">Comment</label> + <textarea name="comment" readonly class='ui-state-readonly'>{{comment}}</textarea> + </div> + + {{/if}} + + <div id="myModal" class="modal"> + <span class="close">×</span> + <img class="modal-content" id="img01" name="img01"> + <div id="caption"></div> + </div> + </form> + </script> + <script src="gadget_officejs_jio_expense_record_view.js"></script> + + </head> + + <body> + </body> +</html> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_widget_listbox.html.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_record_view_html.xml similarity index 93% rename from bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_widget_listbox.html.xml rename to bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_record_view_html.xml index 601acc207c095503492f3206482d2f4700175899..f46fc8c2aa1c2a783063f9f247398abc957af21a 100644 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_widget_listbox.html.xml +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_record_view_html.xml @@ -67,7 +67,7 @@ <key> <string>categories</string> </key> <value> <tuple> - <string>classification/collaborative/team</string> + <string>contributor/person_module/2</string> </tuple> </value> </item> @@ -83,7 +83,7 @@ </item> <item> <key> <string>default_reference</string> </key> - <value> <string>gadget_travel_expense_widget_listbox.html</string> </value> + <value> <string>gadget_officejs_jio_expense_record_view.html</string> </value> </item> <item> <key> <string>description</string> </key> @@ -93,11 +93,13 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>gadget_travel_expense_widget_listbox.html</string> </value> + <value> <string>gadget_hr_expense_record_view_html</string> </value> </item> <item> <key> <string>language</string> </key> - <value> <string>en</string> </value> + <value> + <none/> + </value> </item> <item> <key> <string>portal_type</string> </key> @@ -111,11 +113,13 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Travel Expense Widget Listbox</string> </value> + <value> <string>OfficeJS Jio Expense Record View</string> </value> </item> <item> <key> <string>version</string> </key> - <value> <string>001</string> </value> + <value> + <none/> + </value> </item> <item> <key> <string>workflow_history</string> </key> @@ -197,7 +201,7 @@ </tuple> <state> <tuple> - <float>1472526672.52</float> + <float>1478619260.54</float> <string>UTC</string> </tuple> </state> @@ -228,7 +232,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -242,7 +246,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>953.37503.13972.43741</string> </value> + <value> <string>955.53749.31461.40891</string> </value> </item> <item> <key> <string>state</string> </key> @@ -260,7 +264,7 @@ </tuple> <state> <tuple> - <float>1472540550.75</float> + <float>1481299470.34</float> <string>UTC</string> </tuple> </state> @@ -317,7 +321,7 @@ </tuple> <state> <tuple> - <float>1472523952.06</float> + <float>1478619167.18</float> <string>UTC</string> </tuple> </state> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_record_view_js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_record_view_js.js new file mode 100644 index 0000000000000000000000000000000000000000..425ee78e8ae3bd74b19b61692d9d82a26f68a666 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_record_view_js.js @@ -0,0 +1,470 @@ +/*globals window, rJS, Handlebars, RSVP*/ +/*jslint indent: 2, nomen: true, maxlen: 80*/ +(function (window, document, RSVP, rJS, Handlebars, loopEventListener, promiseEventListener, alertify) { + "use strict"; + + var gadget_klass = rJS(window), + source = gadget_klass.__template_element + .querySelector(".view-expense-record-template") + .innerHTML, + template = Handlebars.compile(source); + + function getWorkflowState(id, sync_flag) { + var sync_state; + if(id.indexOf("_module/") > 0){ + sync_state = "Synced"; + }else if(sync_flag){ + sync_state = "Not Synced"; + }else{ + sync_state = "Not Ready To Sync"; + } + return sync_state; + } + + function geoLocationPromise() { + return new Promise(function (resolve, reject) { + var err; + if (navigator.geolocation) { + navigator.geolocation.getCurrentPosition(function (result) { + resolve(result); + }, function (error) { + switch(error.code) { + case error.PERMISSION_DENIED: + err = new Error("User denied the request for Geolocation"); + break; + case error.POSITION_UNAVAILABLE: + err = new Error("Location information is unavailable"); + break; + case error.TIMEOUT: + err = new Error("The request to get user location timed out"); + break; + default: + err = new Error("An unknown error occurred"); + break; + } + reject(err); + }, + {maximumAge:60000, timeout:20000}); + } else { + reject(new Error("Geolocation is not supported by this browser")); + } + }); + } + function getSequentialID(gadget, record_type_prefix){ + var last_sequential_id, + prefix, + date = new Date(), + date_text = date.getFullYear()+('0'+(date.getMonth()+1)).slice(-2)+('0'+date.getDate()).slice(-2); + return new RSVP.Queue() + .push(function () { + if (gadget.options.doc.source_reference) { + return gadget.options.doc.source_reference; + } else { + return new RSVP.Queue() + .push(function () { + return new RSVP.all([ + gadget.getSetting('last_sequential_id'), + gadget.getSetting('sequential_id_prefix') + ]); + }) + .push(function (result_list) { + if (result_list[0]) { + last_sequential_id = Number(result_list[0]); + } else { + last_sequential_id = 0; + } + last_sequential_id += 1; + if (result_list[1]) { + prefix = result_list[1]; + } else { + prefix = getRandomPrefixForID(); + } + return RSVP.all([ + gadget.setSetting('last_sequential_id', last_sequential_id), + gadget.setSetting('sequential_id_prefix', prefix) + ]); + }) + .push(function () { + return record_type_prefix + '-' + date_text + '-' + prefix + ('0000'+last_sequential_id).slice(-5); + }); + } + }); + } + + function getRandomPrefixForID(){ + function random(){ + return 65 + Math.floor( Math.random() * 26 ); + } + return String.fromCharCode(random())+String.fromCharCode(random())+String.fromCharCode(random()); + } + + gadget_klass + .ready(function (g) { + return g.getElement() + .push(function (element) { + alertify.set({ delay: 1500 }); + g.props = {}; + g.props.element = element; + g.props.deferred = RSVP.defer(); + g.props.deferred1 = RSVP.defer(); + }); + }) + + .declareAcquiredMethod("updateHeader", "updateHeader") + .declareAcquiredMethod("get", "jio_get") + .declareAcquiredMethod("put", "jio_put") + .declareAcquiredMethod("post", "jio_post") + .declareAcquiredMethod("translateHtml", "translateHtml") + .declareAcquiredMethod('allDocs', 'jio_allDocs') + .declareAcquiredMethod("redirect", "redirect") + .declareAcquiredMethod('jio_remove', 'jio_remove') + .declareAcquiredMethod('getSetting', 'getSetting') + .declareAcquiredMethod('setSetting', 'setSetting') + .declareAcquiredMethod("repair", "jio_repair") + + + .declareMethod('triggerSubmit', function () { + return this.props.element.querySelector('button').click(); + }) + + .declareMethod("render", function (options) { + var gadget = this, + sync_checked, + sync_state = getWorkflowState(options.jio_key, options.doc.sync_flag), + geoLocation, + not_sync_checked; + gadget.options = options; + + return new RSVP.Queue() + .push (function () { + if (sync_state === 'Synced') { + geoLocation= {coords: {latitude: options.doc.latitude, longitude: options.doc.longitude}}; + } else { + geoLocation = {coords: {latitude: "", longitude: ""}}; + } + gadget.props.geoLocation = geoLocation; + return gadget.allDocs({ + query: 'portal_type:"Currency"', + select_list: ['relative_url', 'title'], + limit: [0, 100] + }); + }) + .push(function (result) { + var i = 0, + tmp, + ops, + select_options = []; + if (options.doc.resource === undefined) { + options.doc.resource = "currency_module/2"; + } + for (i = 0; i < result.data.total_rows; i += 1) { + tmp = { + title: result.data.rows[i].value.title, + value: result.data.rows[i].value.relative_url + }; + if (options.doc.resource === result.data.rows[i].value.relative_url) { + tmp.is_selected = true; + } + select_options.push(tmp); + } + if (options.doc.sync_flag === '1') { + sync_checked = 'checked'; + } else { + not_sync_checked = 'checked'; + } + ops = { + state: options.doc.state || sync_state, + preview: options.doc.photo_data, + quantity: options.doc.quantity, + date: options.doc.date || new Date().toISOString().slice(0,10), + title: options.doc.title, + comment: options.doc.comment, + sync_checked: sync_checked, + not_sync_checked: not_sync_checked, + select_options: select_options, + longitude: geoLocation.coords.longitude || "", + latitude: geoLocation.coords.latitude || "" + }; + if (sync_state !== 'Synced') { + ops.not_readonly = true; + } + return template(ops); + }) + .push(function (html) { + gadget.props.element.innerHTML = html; + + return gadget.updateHeader({ + title: gadget.options.jio_key + " " + (gadget.options.doc.record_revision || 1), + save_action: sync_state === 'Synced'? false: true + }); + }) + .push(function () { + gadget.props.deferred.resolve(); + }); + }) + + ///////////////////////////////////////// + // New version of the the Expense Record + ///////////////////////////////////////// + .declareService(function () { + /* + var gadget = this, + cloned_doc, + current_doc, + new_id; + + if(gadget.props.element.querySelector('input[type=button][name=create_new_version]') == null){ + return; + } + + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function () { + + return promiseEventListener( + gadget.props.element.querySelector('input[type=button][name=create_new_version]'), + 'click', + false + ); + }) + .push(function () { + return gadget.get(gadget.options.jio_key); + }) + .push(function (result) { + current_doc = result; + cloned_doc = JSON.parse(JSON.stringify(result)); + + // Do not sync the cloned document + cloned_doc.copy_of = gadget.options.jio_key; + cloned_doc.visible_in_html5_app_flag = 1; + delete cloned_doc.sync_flag; + cloned_doc.portal_type = 'Expense Record Temp'; + cloned_doc.record_revision = (cloned_doc.record_revision || 1) + 1; + + current_doc.visible_in_html5_app_flag = 0; + + return gadget.post(cloned_doc); + }) + .push(function (id) { + new_id = id; + // Hide the document at the end in order to still view it in case of issue + // Better have 2 docs than none visible + return gadget.put(gadget.options.jio_key, current_doc); + }) + .push(function (response) { + return gadget.redirect({ + jio_key: new_id, + page: "view" + }); + });*/ + }) + + + ///////////////////////////////////////// + // Form submit + ///////////////////////////////////////// + .declareService(function () { + var gadget = this, + state = getWorkflowState(gadget.options.jio_key, gadget.options.doc.sync_flag); + if (state === 'Synced') { + gadget.props.deferred1.resolve(); + return; + } + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function () { + alertify.log('searching GPS'); + return geoLocationPromise(); + }) + .push(function(result) { + alertify.success('GPS found'); + return result; + }, function(err) { + alertify.error("GPS Localization Stopped"); + console.log(err); + return {coords: {latitude: "", longitude: ""}}; + }) + .push(function (result) { + gadget.props.element.querySelector('input[name="longitude"]').value = result.coords.longitude; + gadget.props.element.querySelector('input[name="latitude"]').value = result.coords.latitude; + gadget.props.geoLocation = result; + gadget.props.deferred1.resolve(); + }); + + + }) + .declareService(function () { + var gadget = this, + sync, + form = gadget.props.element.querySelector('form.view-expense-record-form'); + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function () { + return loopEventListener( + form, + 'submit', + false, + function (submit_event) { + return getSequentialID(gadget, 'EXP') + .push(function (source_reference) { + var i, + doc = { + parent_relative_url: "expense_record_module", + portal_type: "Expense Record Temp", + source_reference: source_reference, + visible_in_html5_app_flag: 1, + record_revision: (gadget.options.doc.record_revision || 1), + photo_data: gadget.options.doc.photo_data || "", + modification_date: new Date().toISOString() + }; + for (i = 0; i < submit_event.target.length; i += 1) { + // XXX Should check input type instead + if (submit_event.target[i].name && submit_event.target[i].type != "submit") { + if ((submit_event.target[i].type == "radio" || submit_event.target[i].type == "checkbox") && !submit_event.target[i].checked){ + continue + } + if (submit_event.target[i].name === "photo") { + continue + } + doc[submit_event.target[i].name] = submit_event.target[i].value; + if (submit_event.target[i].name === 'resource') { + doc.resource_title = submit_event.target[i][submit_event.target[i].selectedIndex].text; + } + } + } + if (doc.sync_flag === "1"){ + sync = 1; + doc.simulation_state = 'draft'; + doc.portal_type = 'Expense Record'; // For to avoid sync + } + return gadget.put(gadget.options.jio_key, doc); + }) + .push(function () { + if (sync) { + return gadget.repair() + .push(function () { + return gadget.redirect({page: 'expense_record_list'}); + }) + .push(function () { + alertify.success("Saved"); + }); + } else { + alertify.success("Saved"); + } + }); + } + ) + }) + }) + .declareService(function () { + var gadget = this, + canvas = document.createElement('canvas'), + img, + ctx, + preview = gadget.props.element.querySelector('img[name="preview"]'); + + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function () { + return loopEventListener( + gadget.props.element.querySelector('input[name="photo"]'), + "change", + false, + function (evt) { + if (evt.target.files.length) { + return new RSVP.Queue() + .push(function () { + return jIO.util.readBlobAsDataURL(evt.target.files[0]); + }) + .push(function (result) { + img = new Image(); + img.src = result.target.result; + + return RSVP.all([ + gadget.props.deferred1.promise, + promiseEventListener(img, 'load', false) + ]); + }) + .push(function () { + /* + ctx = canvas.getContext("2d"); + canvas.width = img.width; + canvas.height = img.height; + ctx.drawImage(img, 0, 0, img.width, img.height); + ctx.font = (canvas.width * 70 / 2000) + 'px sans-serif'; + ctx.fillText('Longitude: ' + gadget.props.geoLocation.coords.longitude +" Latitude: " + gadget.props.geoLocation.coords.latitude, 0, canvas.height - 20); + gadget.options.doc.photo_data = canvas.toDataURL(); + */ + gadget.options.doc.photo_data = img.src; + preview.src = gadget.options.doc.photo_data; + }); + } + } + ); + }); + }) + + /* + .declareService(function () { + var gadget = this; + + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function () { + if (gadget.options.doc.sync_flag == "1"){ + var element = gadget.props.element.querySelector("input[name='sync_flag'][value='1']"); + element.setAttribute('checked', 'checked'); + $(element).checkboxradio('refresh'); + }else{ + var element = gadget.props.element.querySelector("input[name='sync_flag'][value='']"); + element.setAttribute('checked', 'checked'); + $(element).checkboxradio('refresh'); + } + }) + }) +*/ + ///////////////////////////////////////// + // Preview clicked. + ///////////////////////////////////////// + .declareService(function () { + var gadget = this, + img = gadget.props.element.querySelector('img[name="preview"]'), + modal = gadget.props.element.querySelector('.modal'), + modalImg = gadget.props.element.querySelector('img[name="img01"]'), + span = gadget.props.element.querySelector('.close'); + + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function () { + return loopEventListener( + img, + "click", + false, + function (evt) { + modal.style.display = "block"; + modalImg.src = evt.target.src; + return new RSVP.Queue() + .push(function () { + return promiseEventListener(span, 'click', false); + }) + .push(function () { + modal.style.display = "none"; + }); + } + ); + }); + }); + +}(window, document, RSVP, rJS, Handlebars, loopEventListener, promiseEventListener, alertify)); \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_login.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_record_view_js.xml similarity index 93% rename from bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_login.js.xml rename to bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_record_view_js.xml index 360c14b294be6b3d4fd8b62897e186fbb10664d1..91ce7ed5310c5f49def6c48fd317fcebca8b118c 100644 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_login.js.xml +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_record_view_js.xml @@ -66,7 +66,9 @@ <item> <key> <string>categories</string> </key> <value> - <tuple/> + <tuple> + <string>contributor/person_module/2</string> + </tuple> </value> </item> <item> @@ -75,15 +77,9 @@ <none/> </value> </item> - <item> - <key> <string>contributors</string> </key> - <value> - <tuple/> - </value> - </item> <item> <key> <string>default_reference</string> </key> - <value> <string>gadget_travel_expense_page_login.js</string> </value> + <value> <string>gadget_officejs_jio_expense_record_view.js</string> </value> </item> <item> <key> <string>description</string> </key> @@ -93,11 +89,13 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>gadget_travel_expense_page_login.js</string> </value> + <value> <string>gadget_hr_expense_record_view_js</string> </value> </item> <item> <key> <string>language</string> </key> - <value> <string>en</string> </value> + <value> + <none/> + </value> </item> <item> <key> <string>portal_type</string> </key> @@ -111,11 +109,13 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Travel Expense Record Login Page JS</string> </value> + <value> <string>OfficeJS Jio Expense Record View JS</string> </value> </item> <item> <key> <string>version</string> </key> - <value> <string>001</string> </value> + <value> + <none/> + </value> </item> <item> <key> <string>workflow_history</string> </key> @@ -197,7 +197,7 @@ </tuple> <state> <tuple> - <float>1472526622.7</float> + <float>1478619258.35</float> <string>UTC</string> </tuple> </state> @@ -228,7 +228,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -242,7 +242,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>953.39239.63448.21981</string> </value> + <value> <string>955.64184.36962.20923</string> </value> </item> <item> <key> <string>state</string> </key> @@ -260,7 +260,7 @@ </tuple> <state> <tuple> - <float>1472636531.87</float> + <float>1481819367.98</float> <string>UTC</string> </tuple> </state> @@ -317,7 +317,7 @@ </tuple> <state> <tuple> - <float>1472523951.61</float> + <float>1478619165.52</float> <string>UTC</string> </tuple> </state> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_report.html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_report_html.html similarity index 56% rename from bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_report.html.html rename to bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_report_html.html index 476fe44d3bf3b02d45414eeba7a550285e538f5e..a4420ac44095aa3d30e8040988b0558d8dd1e46f 100644 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_report.html.html +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_report_html.html @@ -7,13 +7,16 @@ <title>Travel Expense App Report</title> <script src="rsvp.js"></script> - <script src="travel_expense_renderjs.js"></script> + <script src="renderjs.js"></script> <script src="gadget_global.js" ></script> <script src="handlebars.js"></script> - <link rel="stylesheet" href="https://cdn.jsdelivr.net/chartist.js/0.9.8/chartist.min.css"> - <script src="https://cdn.jsdelivr.net/chartist.js/0.9.8/chartist.min.js"></script> - <script src="travel_expense_excellentexport.min.js"></script> + <link rel="stylesheet" href="chartist.min.css"> + <script src="chartist.min.js"></script> + <script src="gadget_officejs_expense_excellentexport.js"></script> + <script src="gadget_officejs_expense_xlsx.core.min.js"></script> + <script src="gadget_officejs_expense_filesaver.min.js"></script> + <script src="gadget_officejs_expense_tableexport.min.js"></script> <script class="view-report-template" type="text/x-handlebars-template"> @@ -25,8 +28,8 @@ <div class="ct-chart ct-perfect-fourth"></div> - <a name="download" data-role="button" data-i18n="Download">Download</a> - <a download="travel_expense.xls" name="hidden_download" style="visibility: hidden"></a> + <a name="download_xls" data-role="button" data-i18n="Download XLSX">Download XLSX</a> + <a download="travel_expense.xls" name="hidden_download_xls" style="visibility: hidden"></a> </form> @@ -35,10 +38,11 @@ </div> </script> - <script src="gadget_travel_expense_page_report.js"></script> + <script src="gadget_officejs_page_expense_report.js"></script> </head> <body> </body> </html> + diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_setting.html.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_report_html.xml similarity index 94% rename from bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_setting.html.xml rename to bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_report_html.xml index ac1669cd727fadaf9c84cc6302295e40d3e80fa6..5131dfd09bb69befc499c5c083d21a30c69a6f2d 100644 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_setting.html.xml +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_report_html.xml @@ -66,7 +66,9 @@ <item> <key> <string>categories</string> </key> <value> - <tuple/> + <tuple> + <string>contributor/person_module/2</string> + </tuple> </value> </item> <item> @@ -87,7 +89,7 @@ </item> <item> <key> <string>default_reference</string> </key> - <value> <string>gadget_travel_expense_page_setting.html</string> </value> + <value> <string>gadget_officejs_page_expense_report.html</string> </value> </item> <item> <key> <string>description</string> </key> @@ -97,7 +99,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>gadget_travel_expense_page_setting.html</string> </value> + <value> <string>gadget_hr_expense_report_html</string> </value> </item> <item> <key> <string>language</string> </key> @@ -115,7 +117,7 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Travel Expense Record Setting Page</string> </value> + <value> <string>OfficeJS Expense Report</string> </value> </item> <item> <key> <string>version</string> </key> @@ -201,7 +203,7 @@ </tuple> <state> <tuple> - <float>1472526672.6</float> + <float>1478708788.54</float> <string>UTC</string> </tuple> </state> @@ -232,7 +234,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -246,7 +248,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>953.39337.6885.36386</string> </value> + <value> <string>955.64154.46395.8362</string> </value> </item> <item> <key> <string>state</string> </key> @@ -264,7 +266,7 @@ </tuple> <state> <tuple> - <float>1472636845.66</float> + <float>1481817292.02</float> <string>UTC</string> </tuple> </state> @@ -321,7 +323,7 @@ </tuple> <state> <tuple> - <float>1472523951.65</float> + <float>1478708562.54</float> <string>UTC</string> </tuple> </state> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_report.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_report_js.js similarity index 86% rename from bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_report.js.js rename to bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_report_js.js index 2dfbb3b4343c544877e5e5ed21f88f345c3cbaf4..0a32f957c655413c1c7391d7d8f7ece2d8af803d 100644 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_report.js.js +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_report_js.js @@ -51,7 +51,7 @@ }) .push(function(){ return gadget.allDocs({ - query: 'visible_in_html5_app_flag:1 AND portal_type:("Expense Record" OR "Expense Record Temp")', + query: 'portal_type:("Expense Record")', select_list: ["date", "resource", "quantity"], limit: [0, 1234567890] }) @@ -135,7 +135,7 @@ }) .push(function () { return loopEventListener( - gadget.props.element.querySelector('a[name=download]'), + gadget.props.element.querySelector('a[name=download_xls]'), 'click', false, function (click_event){ @@ -153,7 +153,7 @@ }) .push(function(){ return gadget.allDocs({ - query: 'visible_in_html5_app_flag:1 AND portal_type:("Expense Record" OR "Expense Record Temp")', + query: 'portal_type:("Expense Record")', select_list: ["date", "resource", "quantity", "comment"], limit: [0, 1234567890] }) @@ -165,15 +165,19 @@ var date = result.data.rows[i].value.date; var quantity = parseFloat(result.data.rows[i].value.quantity); var comment = result.data.rows[i].value.comment; - data_list.push({currency:currency, date:date, quantity:quantity, comment:comment}) + data_list.push({currency:currency, date:date, quantity:quantity, comment:comment||""}) } data_list.sort(function(a, b){if(a.date>b.date){return 1;}else if(a.date<b.date){return -1;}else{return 0;}}) - var table = $("<table><tr><td>date</td><td>comment</td><td>currency</td><td>quantity</td></tr></table>"); + var table = $("<table><thead><tr><th>date</th><th>comment</th><th>currency</th><th>quantity</th></tr></thead><tbody></tbody></table>"); for(var data of data_list){ - table.append('<tr><td>'+data.date+'</td><td>'+comment+'</td><td>'+data.currency+'</td><td>'+data.quantity+'</td></tr>'); + table.find('tbody').append('<tr><td>'+data.date+'</td><td>'+data.comment+'</td><td>'+data.currency+'</td><td>'+data.quantity+'</td></tr>'); } - ExcellentExport.excel(gadget.props.element.querySelector('a[name="hidden_download"]'), table[0], 'Travel Expense'); - gadget.props.element.querySelector('a[name="hidden_download"]').click(); + table.tableExport({bootstrap: false, formats: ["xlsx"], fileName:"travel_expense"}); + var obj = table.find('button.xlsx').data('fileblob'); + TableExport.prototype.export2file(obj.data, obj.mimeType, obj.fileName, obj.fileExtension); + + //ExcellentExport.excel(gadget.props.element.querySelector('a[name="hidden_download_xls"]'), table[0], 'Travel Expense'); + //gadget.props.element.querySelector('a[name="hidden_download_xls"]').click(); }) } ); diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation_data.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_report_js.xml similarity index 94% rename from bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation_data.js.xml rename to bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_report_js.xml index 39b0c702d63028c97d42576dbeed8873eb71e6a8..c73e624e1871d3099b5ddfd70fb94b6fa79b4998 100644 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation_data.js.xml +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_report_js.xml @@ -67,7 +67,7 @@ <key> <string>categories</string> </key> <value> <tuple> - <string>classification/collaborative/team</string> + <string>contributor/person_module/2</string> </tuple> </value> </item> @@ -85,7 +85,7 @@ </item> <item> <key> <string>default_reference</string> </key> - <value> <string>gadget_travel_expense_translation_data.js</string> </value> + <value> <string>gadget_officejs_page_expense_report.js</string> </value> </item> <item> <key> <string>description</string> </key> @@ -95,7 +95,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>gadget_travel_expense_translation_data.js</string> </value> + <value> <string>gadget_hr_expense_report_js</string> </value> </item> <item> <key> <string>language</string> </key> @@ -113,7 +113,7 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Travel Expense Record Translation Data JS</string> </value> + <value> <string>OfficeJS Expense Report JS</string> </value> </item> <item> <key> <string>version</string> </key> @@ -199,7 +199,7 @@ </tuple> <state> <tuple> - <float>1472526622.62</float> + <float>1478708784.06</float> <string>UTC</string> </tuple> </state> @@ -230,7 +230,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -244,7 +244,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>953.37502.25126.50466</string> </value> + <value> <string>955.64191.53608.41250</string> </value> </item> <item> <key> <string>state</string> </key> @@ -262,7 +262,7 @@ </tuple> <state> <tuple> - <float>1472526948.19</float> + <float>1481819689.86</float> <string>UTC</string> </tuple> </state> @@ -319,7 +319,7 @@ </tuple> <state> <tuple> - <float>1472523952.02</float> + <float>1478708564.71</float> <string>UTC</string> </tuple> </state> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_tableexport_min_js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_tableexport_min_js.js new file mode 100644 index 0000000000000000000000000000000000000000..240ebf73cd1cbf5cfbee7fbb531a81cddd4d6c15 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_tableexport_min_js.js @@ -0,0 +1,6 @@ +/*! + * TableExport.js v3.2.10 (https://www.travismclarke.com) + * Copyright 2016 Travis Clarke + * Licensed under the MIT license + */ +!function(t,e){"function"==typeof define&&define.amd?define(["exports","jquery","file-saver","xlsx"],e):"object"==typeof exports&&"string"!=typeof exports.nodeName?e(exports,require("jquery"),require("file-saver"),require("xlsx")):e(t,t.jQuery,t.saveAs,t.XLSX)}(this,function(t,e,n,o){"use strict";var i=function(t,n,r){var s=this;s.settings=r?n:e.extend({},i.prototype.defaults,n),s.selectors=t;var a,p,f,l=i.prototype.rowDel,u=s.settings.ignoreRows instanceof Array?s.settings.ignoreRows:[s.settings.ignoreRows],c=s.settings.ignoreCols instanceof Array?s.settings.ignoreCols:[s.settings.ignoreCols],x=s.settings.ignoreCSS instanceof Array?s.settings.ignoreCSS.join(", "):s.settings.ignoreCSS;return s.settings.bootstrap?(a=i.prototype.bootstrap[0]+" ",p=i.prototype.bootstrap[1]+" ",f=i.prototype.bootstrap[2]+" "):(a=i.prototype.defaultButton+" ",p=f=""),s.selectors.each(function(){function t(t){var e=d.find("caption:not(.head)");e.length?e.append(t):d.prepend('<caption class="'+f+s.settings.position+'">'+t+"</caption>")}function n(e,n,o){var i="<button data-fileblob='"+e+"' class='"+a+p+o+"'>"+n+"</button>";t(i)}var d=e(this);r&&d.find("caption:not(.head)").remove();var y=d.find("tbody").find("tr"),y=s.settings.headings?y.add(d.find("thead>tr")):y,y=s.settings.footers?y.add(d.find("tfoot>tr")):y,m=s.settings.headings?d.find("thead>tr").length:0,g="id"===s.settings.fileName?d.attr("id")?d.attr("id"):i.prototype.defaultFileName:s.settings.fileName,h={xlsx:function(t,o){var r={},s=y.map(function(t,n){if(!~u.indexOf(t-m)&&!e(n).is(x)){var o=e(n).find("th, td");return[o.map(function(n,o){if(!~c.indexOf(n)&&!e(o).is(x)){if(o.hasAttribute("colspan")&&(r[t]=r[t]||{},r[t][n+1]=o.getAttribute("colspan")-1),o.hasAttribute("rowspan"))for(var i=1;i<o.getAttribute("rowspan");i++)r[t+i]=r[t+i]||{},r[t+i][n]=1;return r[t]&&r[t][n]?new Array(r[t][n]).concat(e(o).text()):e(o).text()}}).get()]}}).get(),a=i.prototype.escapeHtml(JSON.stringify({data:s,fileName:o,mimeType:i.prototype.xlsx.mimeType,fileExtension:i.prototype.xlsx.fileExtension})),p=i.prototype.xlsx.buttonContent,f=i.prototype.xlsx.defaultClass;n(a,p,f)},xlsm:function(t,o){var r={},s=y.map(function(t,n){if(!~u.indexOf(t-m)&&!e(n).is(x)){var o=e(n).find("th, td");return[o.map(function(n,o){if(!~c.indexOf(n)&&!e(o).is(x)){if(o.hasAttribute("colspan")&&(r[t]=r[t]||{},r[t][n+1]=o.getAttribute("colspan")-1),o.hasAttribute("rowspan"))for(var i=1;i<o.getAttribute("rowspan");i++)r[t+i]=r[t+i]||{},r[t+i][n]=1;return r[t]&&r[t][n]?new Array(r[t][n]).concat(e(o).text()):e(o).text()}}).get()]}}).get(),a=i.prototype.escapeHtml(JSON.stringify({data:s,fileName:o,mimeType:i.prototype.xls.mimeType,fileExtension:i.prototype.xls.fileExtension})),p=i.prototype.xls.buttonContent,f=i.prototype.xls.defaultClass;n(a,p,f)},xls:function(t,o){var r=i.prototype.xls.separator,s=y.map(function(t,n){if(!~u.indexOf(t-m)&&!e(n).is(x)){var o=e(n).find("th, td");return o.map(function(t,n){if(!~c.indexOf(t)&&!e(n).is(x))return e(n).text()}).get().join(r)}}).get().join(t),a=i.prototype.escapeHtml(JSON.stringify({data:s,fileName:o,mimeType:i.prototype.xls.mimeType,fileExtension:i.prototype.xls.fileExtension})),p=i.prototype.xls.buttonContent,f=i.prototype.xls.defaultClass;n(a,p,f)},csv:function(t,o){var r=i.prototype.csv.separator,s=y.map(function(t,n){if(!~u.indexOf(t-m)&&!e(n).is(x)){var o=e(n).find("th, td");return o.map(function(t,n){if(!~c.indexOf(t)&&!e(n).is(x))return e(n).text()}).get().join(r)}}).get().join(t),a=i.prototype.escapeHtml(JSON.stringify({data:s,fileName:o,mimeType:i.prototype.csv.mimeType,fileExtension:i.prototype.csv.fileExtension})),p=i.prototype.csv.buttonContent,f=i.prototype.csv.defaultClass;n(a,p,f)},txt:function(t,o){var r=i.prototype.txt.separator,s=y.map(function(t,n){if(!~u.indexOf(t-m)&&!e(n).is(x)){var o=e(n).find("th, td");return o.map(function(t,n){if(!~c.indexOf(t)&&!e(n).is(x))return e(n).text()}).get().join(r)}}).get().join(t),a=i.prototype.escapeHtml(JSON.stringify({data:s,fileName:o,mimeType:i.prototype.txt.mimeType,fileExtension:i.prototype.txt.fileExtension})),p=i.prototype.txt.buttonContent,f=i.prototype.txt.defaultClass;n(a,p,f)}};s.settings.formats.forEach(function(t){!(!o||"xls"!==t)&&(t="xlsm"),!o&&"xlsx"===t&&(t=null),t&&h[t](l,g)})}),e("button[data-fileblob]").off("click").on("click",function(){var t=e(this).data("fileblob"),n=t.data,o=t.fileName,r=t.mimeType,s=t.fileExtension;i.prototype.export2file(n,r,o,s)}),s};i.prototype={defaults:{headings:!0,footers:!0,formats:["xls","csv","txt"],fileName:"id",bootstrap:!0,position:"bottom",ignoreRows:null,ignoreCols:null,ignoreCSS:".tableexport-ignore"},charset:"charset=utf-8",defaultFileName:"myDownload",defaultButton:"button-default",bootstrap:["btn","btn-default","btn-toolbar"],rowDel:"\r\n",entityMap:{"&":"&","<":"<",">":">","'":"'","/":"/"},xlsx:{defaultClass:"xlsx",buttonContent:"Export to xlsx",mimeType:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",fileExtension:".xlsx"},xls:{defaultClass:"xls",buttonContent:"Export to xls",separator:"\t",mimeType:"application/vnd.ms-excel",fileExtension:".xls"},csv:{defaultClass:"csv",buttonContent:"Export to csv",separator:",",mimeType:"application/csv",fileExtension:".csv"},txt:{defaultClass:"txt",buttonContent:"Export to txt",separator:" ",mimeType:"text/plain",fileExtension:".txt"},escapeHtml:function(t){return String(t).replace(/[&<>'\/]/g,function(t){return i.prototype.entityMap[t]})},dateNum:function(t,e){e&&(t+=1462);var n=Date.parse(t);return(n-new Date(Date.UTC(1899,11,30)))/864e5},createSheet:function(t){for(var e={},n={s:{c:1e7,r:1e7},e:{c:0,r:0}},i=0;i!=t.length;++i)for(var r=0;r!=t[i].length;++r){n.s.r>i&&(n.s.r=i),n.s.c>r&&(n.s.c=r),n.e.r<i&&(n.e.r=i),n.e.c<r&&(n.e.c=r);var s={v:t[i][r]};if(null!=s.v){var a=o.utils.encode_cell({c:r,r:i});"number"==typeof s.v?s.t="n":"boolean"==typeof s.v?s.t="b":s.v instanceof Date?(s.t="n",s.z=o.SSF._table[14],s.v=this.dateNum(s.v)):s.t="s",e[a]=s}}return n.s.c<1e7&&(e["!ref"]=o.utils.encode_range(n)),e},Workbook:function(){this.SheetNames=[],this.Sheets={}},string2ArrayBuffer:function(t){for(var e=new ArrayBuffer(t.length),n=new Uint8Array(e),o=0;o!=t.length;++o)n[o]=255&t.charCodeAt(o);return e},export2file:function(t,e,i,r){if(o&&r.startsWith(".xls")){var s=new this.Workbook,a=this.createSheet(t);s.SheetNames.push(i),s.Sheets[i]=a;var p={bookType:r.substr(1,3)+(r.substr(4)||"m"),bookSST:!1,type:"binary"},f=o.write(s,p);t=this.string2ArrayBuffer(f)}n(new Blob([t],{type:e+";"+this.charset}),i+r)},update:function(t){return new i(this.selectors,e.extend({},this.settings,t),(!0))},reset:function(){return new i(this.selectors,settings,(!0))},remove:function(){this.selectors.each(function(){e(this).find("caption:not(.head)").remove()})}},e.fn.tableExport=function(t,e){return new i(this,t,e)};for(var r in i.prototype)e.fn.tableExport[r]=i.prototype[r];t["default"]=t.TableExport=i}); \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_tableexport_min_js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_tableexport_min_js.xml new file mode 100644 index 0000000000000000000000000000000000000000..57ae606a0152538f2787f71d55162b4a4fa8ca8c --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_tableexport_min_js.xml @@ -0,0 +1,330 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Script" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/javascript</string> </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_officejs_expense_tableexport.min.js</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_hr_expense_tableexport_min_js</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Script</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Gadget Office Expense Table JS</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1478710156.97</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>955.10929.18559.48827</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1478710186.18</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>empty</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1478710129.59</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_xlsx_core_min_js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_xlsx_core_min_js.js new file mode 100644 index 0000000000000000000000000000000000000000..c7366f64a2aa878a13b1cc47a7f4ee24f2d312d0 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_xlsx_core_min_js.js @@ -0,0 +1,13 @@ +/* xlsx.js (C) 2013-2015 SheetJS -- http://sheetjs.com */ +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.JSZip=e()}}(function(){var define,module,exports;return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(_dereq_,module,exports){"use strict";var _keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";exports.encode=function(input,utf8){var output="";var chr1,chr2,chr3,enc1,enc2,enc3,enc4;var i=0;while(i<input.length){chr1=input.charCodeAt(i++);chr2=input.charCodeAt(i++);chr3=input.charCodeAt(i++);enc1=chr1>>2;enc2=(chr1&3)<<4|chr2>>4;enc3=(chr2&15)<<2|chr3>>6;enc4=chr3&63;if(isNaN(chr2)){enc3=enc4=64}else if(isNaN(chr3)){enc4=64}output=output+_keyStr.charAt(enc1)+_keyStr.charAt(enc2)+_keyStr.charAt(enc3)+_keyStr.charAt(enc4)}return output};exports.decode=function(input,utf8){var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(i<input.length){enc1=_keyStr.indexOf(input.charAt(i++));enc2=_keyStr.indexOf(input.charAt(i++));enc3=_keyStr.indexOf(input.charAt(i++));enc4=_keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!=64){output=output+String.fromCharCode(chr2)}if(enc4!=64){output=output+String.fromCharCode(chr3)}}return output}},{}],2:[function(_dereq_,module,exports){"use strict";function CompressedObject(){this.compressedSize=0;this.uncompressedSize=0;this.crc32=0;this.compressionMethod=null;this.compressedContent=null}CompressedObject.prototype={getContent:function(){return null},getCompressedContent:function(){return null}};module.exports=CompressedObject},{}],3:[function(_dereq_,module,exports){"use strict";exports.STORE={magic:"\x00\x00",compress:function(content){return content},uncompress:function(content){return content},compressInputType:null,uncompressInputType:null};exports.DEFLATE=_dereq_("./flate")},{"./flate":8}],4:[function(_dereq_,module,exports){"use strict";var utils=_dereq_("./utils");var table=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];module.exports=function crc32(input,crc){if(typeof input==="undefined"||!input.length){return 0}var isArray=utils.getTypeOf(input)!=="string";if(typeof crc=="undefined"){crc=0}var x=0;var y=0;var b=0;crc=crc^-1;for(var i=0,iTop=input.length;i<iTop;i++){b=isArray?input[i]:input.charCodeAt(i);y=(crc^b)&255;x=table[y];crc=crc>>>8^x}return crc^-1}},{"./utils":21}],5:[function(_dereq_,module,exports){"use strict";var utils=_dereq_("./utils");function DataReader(data){this.data=null;this.length=0;this.index=0}DataReader.prototype={checkOffset:function(offset){this.checkIndex(this.index+offset)},checkIndex:function(newIndex){if(this.length<newIndex||newIndex<0){throw new Error("End of data reached (data length = "+this.length+", asked index = "+newIndex+"). Corrupted zip ?")}},setIndex:function(newIndex){this.checkIndex(newIndex);this.index=newIndex},skip:function(n){this.setIndex(this.index+n)},byteAt:function(i){},readInt:function(size){var result=0,i;this.checkOffset(size);for(i=this.index+size-1;i>=this.index;i--){result=(result<<8)+this.byteAt(i)}this.index+=size;return result},readString:function(size){return utils.transformTo("string",this.readData(size))},readData:function(size){},lastIndexOfSignature:function(sig){},readDate:function(){var dostime=this.readInt(4);return new Date((dostime>>25&127)+1980,(dostime>>21&15)-1,dostime>>16&31,dostime>>11&31,dostime>>5&63,(dostime&31)<<1)}};module.exports=DataReader},{"./utils":21}],6:[function(_dereq_,module,exports){"use strict";exports.base64=false;exports.binary=false;exports.dir=false;exports.createFolders=false;exports.date=null;exports.compression=null;exports.comment=null},{}],7:[function(_dereq_,module,exports){"use strict";var utils=_dereq_("./utils");exports.string2binary=function(str){return utils.string2binary(str)};exports.string2Uint8Array=function(str){return utils.transformTo("uint8array",str)};exports.uint8Array2String=function(array){return utils.transformTo("string",array)};exports.string2Blob=function(str){var buffer=utils.transformTo("arraybuffer",str);return utils.arrayBuffer2Blob(buffer)};exports.arrayBuffer2Blob=function(buffer){return utils.arrayBuffer2Blob(buffer)};exports.transformTo=function(outputType,input){return utils.transformTo(outputType,input)};exports.getTypeOf=function(input){return utils.getTypeOf(input)};exports.checkSupport=function(type){return utils.checkSupport(type)};exports.MAX_VALUE_16BITS=utils.MAX_VALUE_16BITS;exports.MAX_VALUE_32BITS=utils.MAX_VALUE_32BITS;exports.pretty=function(str){return utils.pretty(str)};exports.findCompression=function(compressionMethod){return utils.findCompression(compressionMethod)};exports.isRegExp=function(object){return utils.isRegExp(object)}},{"./utils":21}],8:[function(_dereq_,module,exports){"use strict";var USE_TYPEDARRAY=typeof Uint8Array!=="undefined"&&typeof Uint16Array!=="undefined"&&typeof Uint32Array!=="undefined";var pako=_dereq_("pako");exports.uncompressInputType=USE_TYPEDARRAY?"uint8array":"array";exports.compressInputType=USE_TYPEDARRAY?"uint8array":"array";exports.magic="\b\x00";exports.compress=function(input){return pako.deflateRaw(input)};exports.uncompress=function(input){return pako.inflateRaw(input)}},{pako:24}],9:[function(_dereq_,module,exports){"use strict";var base64=_dereq_("./base64");function JSZip(data,options){if(!(this instanceof JSZip))return new JSZip(data,options);this.files={};this.comment=null;this.root="";if(data){this.load(data,options)}this.clone=function(){var newObj=new JSZip;for(var i in this){if(typeof this[i]!=="function"){newObj[i]=this[i]}}return newObj}}JSZip.prototype=_dereq_("./object");JSZip.prototype.load=_dereq_("./load");JSZip.support=_dereq_("./support");JSZip.defaults=_dereq_("./defaults");JSZip.utils=_dereq_("./deprecatedPublicUtils");JSZip.base64={encode:function(input){return base64.encode(input)},decode:function(input){return base64.decode(input)}};JSZip.compressions=_dereq_("./compressions");module.exports=JSZip},{"./base64":1,"./compressions":3,"./defaults":6,"./deprecatedPublicUtils":7,"./load":10,"./object":13,"./support":17}],10:[function(_dereq_,module,exports){"use strict";var base64=_dereq_("./base64");var ZipEntries=_dereq_("./zipEntries");module.exports=function(data,options){var files,zipEntries,i,input;options=options||{};if(options.base64){data=base64.decode(data)}zipEntries=new ZipEntries(data,options);files=zipEntries.files;for(i=0;i<files.length;i++){input=files[i];this.file(input.fileName,input.decompressed,{binary:true,optimizedBinaryString:true,date:input.date,dir:input.dir,comment:input.fileComment.length?input.fileComment:null,createFolders:options.createFolders})}if(zipEntries.zipComment.length){this.comment=zipEntries.zipComment}return this}},{"./base64":1,"./zipEntries":22}],11:[function(_dereq_,module,exports){(function(Buffer){"use strict";module.exports=function(data,encoding){return new Buffer(data,encoding)};module.exports.test=function(b){return Buffer.isBuffer(b)}}).call(this,typeof Buffer!=="undefined"?Buffer:undefined)},{}],12:[function(_dereq_,module,exports){"use strict";var Uint8ArrayReader=_dereq_("./uint8ArrayReader");function NodeBufferReader(data){this.data=data;this.length=this.data.length;this.index=0}NodeBufferReader.prototype=new Uint8ArrayReader;NodeBufferReader.prototype.readData=function(size){this.checkOffset(size);var result=this.data.slice(this.index,this.index+size);this.index+=size;return result};module.exports=NodeBufferReader},{"./uint8ArrayReader":18}],13:[function(_dereq_,module,exports){"use strict";var support=_dereq_("./support");var utils=_dereq_("./utils");var crc32=_dereq_("./crc32");var signature=_dereq_("./signature");var defaults=_dereq_("./defaults");var base64=_dereq_("./base64");var compressions=_dereq_("./compressions");var CompressedObject=_dereq_("./compressedObject");var nodeBuffer=_dereq_("./nodeBuffer");var utf8=_dereq_("./utf8");var StringWriter=_dereq_("./stringWriter");var Uint8ArrayWriter=_dereq_("./uint8ArrayWriter");var getRawData=function(file){if(file._data instanceof CompressedObject){file._data=file._data.getContent();file.options.binary=true;file.options.base64=false;if(utils.getTypeOf(file._data)==="uint8array"){var copy=file._data;file._data=new Uint8Array(copy.length);if(copy.length!==0){file._data.set(copy,0)}}}return file._data};var getBinaryData=function(file){var result=getRawData(file),type=utils.getTypeOf(result);if(type==="string"){if(!file.options.binary){if(support.nodebuffer){return nodeBuffer(result,"utf-8")}}return file.asBinary()}return result};var dataToString=function(asUTF8){var result=getRawData(this);if(result===null||typeof result==="undefined"){return""}if(this.options.base64){result=base64.decode(result)}if(asUTF8&&this.options.binary){result=out.utf8decode(result)}else{result=utils.transformTo("string",result)}if(!asUTF8&&!this.options.binary){result=utils.transformTo("string",out.utf8encode(result))}return result};var ZipObject=function(name,data,options){this.name=name;this.dir=options.dir;this.date=options.date;this.comment=options.comment;this._data=data;this.options=options;this._initialMetadata={dir:options.dir,date:options.date}};ZipObject.prototype={asText:function(){return dataToString.call(this,true)},asBinary:function(){return dataToString.call(this,false)},asNodeBuffer:function(){var result=getBinaryData(this);return utils.transformTo("nodebuffer",result)},asUint8Array:function(){var result=getBinaryData(this);return utils.transformTo("uint8array",result)},asArrayBuffer:function(){return this.asUint8Array().buffer}};var decToHex=function(dec,bytes){var hex="",i;for(i=0;i<bytes;i++){hex+=String.fromCharCode(dec&255);dec=dec>>>8}return hex};var extend=function(){var result={},i,attr;for(i=0;i<arguments.length;i++){for(attr in arguments[i]){if(arguments[i].hasOwnProperty(attr)&&typeof result[attr]==="undefined"){result[attr]=arguments[i][attr]}}}return result};var prepareFileAttrs=function(o){o=o||{};if(o.base64===true&&(o.binary===null||o.binary===undefined)){o.binary=true}o=extend(o,defaults);o.date=o.date||new Date;if(o.compression!==null)o.compression=o.compression.toUpperCase();return o};var fileAdd=function(name,data,o){var dataType=utils.getTypeOf(data),parent;o=prepareFileAttrs(o);if(o.createFolders&&(parent=parentFolder(name))){folderAdd.call(this,parent,true)}if(o.dir||data===null||typeof data==="undefined"){o.base64=false;o.binary=false;data=null}else if(dataType==="string"){if(o.binary&&!o.base64){if(o.optimizedBinaryString!==true){data=utils.string2binary(data)}}}else{o.base64=false;o.binary=true;if(!dataType&&!(data instanceof CompressedObject)){throw new Error("The data of '"+name+"' is in an unsupported format !")}if(dataType==="arraybuffer"){data=utils.transformTo("uint8array",data)}}var object=new ZipObject(name,data,o);this.files[name]=object;return object};var parentFolder=function(path){if(path.slice(-1)=="/"){path=path.substring(0,path.length-1)}var lastSlash=path.lastIndexOf("/");return lastSlash>0?path.substring(0,lastSlash):""};var folderAdd=function(name,createFolders){if(name.slice(-1)!="/"){name+="/"}createFolders=typeof createFolders!=="undefined"?createFolders:false;if(!this.files[name]){fileAdd.call(this,name,null,{dir:true,createFolders:createFolders})}return this.files[name]};var generateCompressedObjectFrom=function(file,compression){var result=new CompressedObject,content;if(file._data instanceof CompressedObject){result.uncompressedSize=file._data.uncompressedSize;result.crc32=file._data.crc32;if(result.uncompressedSize===0||file.dir){compression=compressions["STORE"];result.compressedContent="";result.crc32=0}else if(file._data.compressionMethod===compression.magic){result.compressedContent=file._data.getCompressedContent()}else{content=file._data.getContent();result.compressedContent=compression.compress(utils.transformTo(compression.compressInputType,content))}}else{content=getBinaryData(file);if(!content||content.length===0||file.dir){compression=compressions["STORE"];content=""}result.uncompressedSize=content.length;result.crc32=crc32(content);result.compressedContent=compression.compress(utils.transformTo(compression.compressInputType,content))}result.compressedSize=result.compressedContent.length;result.compressionMethod=compression.magic;return result};var generateZipParts=function(name,file,compressedObject,offset){var data=compressedObject.compressedContent,utfEncodedFileName=utils.transformTo("string",utf8.utf8encode(file.name)),comment=file.comment||"",utfEncodedComment=utils.transformTo("string",utf8.utf8encode(comment)),useUTF8ForFileName=utfEncodedFileName.length!==file.name.length,useUTF8ForComment=utfEncodedComment.length!==comment.length,o=file.options,dosTime,dosDate,extraFields="",unicodePathExtraField="",unicodeCommentExtraField="",dir,date;if(file._initialMetadata.dir!==file.dir){dir=file.dir}else{dir=o.dir}if(file._initialMetadata.date!==file.date){date=file.date}else{date=o.date}dosTime=date.getHours();dosTime=dosTime<<6;dosTime=dosTime|date.getMinutes();dosTime=dosTime<<5;dosTime=dosTime|date.getSeconds()/2;dosDate=date.getFullYear()-1980;dosDate=dosDate<<4;dosDate=dosDate|date.getMonth()+1;dosDate=dosDate<<5;dosDate=dosDate|date.getDate();if(useUTF8ForFileName){unicodePathExtraField=decToHex(1,1)+decToHex(crc32(utfEncodedFileName),4)+utfEncodedFileName;extraFields+="up"+decToHex(unicodePathExtraField.length,2)+unicodePathExtraField}if(useUTF8ForComment){unicodeCommentExtraField=decToHex(1,1)+decToHex(this.crc32(utfEncodedComment),4)+utfEncodedComment;extraFields+="uc"+decToHex(unicodeCommentExtraField.length,2)+unicodeCommentExtraField}var header="";header+="\n\x00";header+=useUTF8ForFileName||useUTF8ForComment?"\x00\b":"\x00\x00";header+=compressedObject.compressionMethod;header+=decToHex(dosTime,2);header+=decToHex(dosDate,2);header+=decToHex(compressedObject.crc32,4);header+=decToHex(compressedObject.compressedSize,4);header+=decToHex(compressedObject.uncompressedSize,4);header+=decToHex(utfEncodedFileName.length,2);header+=decToHex(extraFields.length,2);var fileRecord=signature.LOCAL_FILE_HEADER+header+utfEncodedFileName+extraFields;var dirRecord=signature.CENTRAL_FILE_HEADER+"\x00"+header+decToHex(utfEncodedComment.length,2)+"\x00\x00"+"\x00\x00"+(dir===true?"\x00\x00\x00":"\x00\x00\x00\x00")+decToHex(offset,4)+utfEncodedFileName+extraFields+utfEncodedComment;return{fileRecord:fileRecord,dirRecord:dirRecord,compressedObject:compressedObject}};var out={load:function(stream,options){throw new Error("Load method is not defined. Is the file jszip-load.js included ?")},filter:function(search){var result=[],filename,relativePath,file,fileClone;for(filename in this.files){if(!this.files.hasOwnProperty(filename)){continue}file=this.files[filename];fileClone=new ZipObject(file.name,file._data,extend(file.options));relativePath=filename.slice(this.root.length,filename.length);if(filename.slice(0,this.root.length)===this.root&&search(relativePath,fileClone)){result.push(fileClone)}}return result},file:function(name,data,o){if(arguments.length===1){if(utils.isRegExp(name)){var regexp=name;return this.filter(function(relativePath,file){return!file.dir&®exp.test(relativePath)})}else{return this.filter(function(relativePath,file){return!file.dir&&relativePath===name})[0]||null}}else{name=this.root+name;fileAdd.call(this,name,data,o)}return this},folder:function(arg){if(!arg){return this}if(utils.isRegExp(arg)){return this.filter(function(relativePath,file){return file.dir&&arg.test(relativePath)})}var name=this.root+arg;var newFolder=folderAdd.call(this,name);var ret=this.clone();ret.root=newFolder.name;return ret},remove:function(name){name=this.root+name;var file=this.files[name];if(!file){if(name.slice(-1)!="/"){name+="/"}file=this.files[name]}if(file&&!file.dir){delete this.files[name]}else{var kids=this.filter(function(relativePath,file){return file.name.slice(0,name.length)===name});for(var i=0;i<kids.length;i++){delete this.files[kids[i].name]}}return this},generate:function(options){options=extend(options||{},{base64:true,compression:"STORE",type:"base64",comment:null});utils.checkSupport(options.type);var zipData=[],localDirLength=0,centralDirLength=0,writer,i,utfEncodedComment=utils.transformTo("string",this.utf8encode(options.comment||this.comment||""));for(var name in this.files){if(!this.files.hasOwnProperty(name)){continue}var file=this.files[name];var compressionName=file.options.compression||options.compression.toUpperCase();var compression=compressions[compressionName];if(!compression){throw new Error(compressionName+" is not a valid compression method !")}var compressedObject=generateCompressedObjectFrom.call(this,file,compression);var zipPart=generateZipParts.call(this,name,file,compressedObject,localDirLength);localDirLength+=zipPart.fileRecord.length+compressedObject.compressedSize;centralDirLength+=zipPart.dirRecord.length;zipData.push(zipPart)}var dirEnd="";dirEnd=signature.CENTRAL_DIRECTORY_END+"\x00\x00"+"\x00\x00"+decToHex(zipData.length,2)+decToHex(zipData.length,2)+decToHex(centralDirLength,4)+decToHex(localDirLength,4)+decToHex(utfEncodedComment.length,2)+utfEncodedComment;var typeName=options.type.toLowerCase();if(typeName==="uint8array"||typeName==="arraybuffer"||typeName==="blob"||typeName==="nodebuffer"){writer=new Uint8ArrayWriter(localDirLength+centralDirLength+dirEnd.length)}else{writer=new StringWriter(localDirLength+centralDirLength+dirEnd.length)}for(i=0;i<zipData.length;i++){writer.append(zipData[i].fileRecord);writer.append(zipData[i].compressedObject.compressedContent)}for(i=0;i<zipData.length;i++){writer.append(zipData[i].dirRecord)}writer.append(dirEnd);var zip=writer.finalize();switch(options.type.toLowerCase()){case"uint8array":case"arraybuffer":case"nodebuffer":return utils.transformTo(options.type.toLowerCase(),zip);case"blob":return utils.arrayBuffer2Blob(utils.transformTo("arraybuffer",zip));case"base64":return options.base64?base64.encode(zip):zip;default:return zip}},crc32:function(input,crc){return crc32(input,crc)},utf8encode:function(string){return utils.transformTo("string",utf8.utf8encode(string))},utf8decode:function(input){return utf8.utf8decode(input)}};module.exports=out},{"./base64":1,"./compressedObject":2,"./compressions":3,"./crc32":4,"./defaults":6,"./nodeBuffer":11,"./signature":14,"./stringWriter":16,"./support":17,"./uint8ArrayWriter":19,"./utf8":20,"./utils":21}],14:[function(_dereq_,module,exports){"use strict";exports.LOCAL_FILE_HEADER="PK";exports.CENTRAL_FILE_HEADER="PK";exports.CENTRAL_DIRECTORY_END="PK";exports.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK";exports.ZIP64_CENTRAL_DIRECTORY_END="PK";exports.DATA_DESCRIPTOR="PK\b"},{}],15:[function(_dereq_,module,exports){"use strict";var DataReader=_dereq_("./dataReader");var utils=_dereq_("./utils");function StringReader(data,optimizedBinaryString){this.data=data;if(!optimizedBinaryString){this.data=utils.string2binary(this.data)}this.length=this.data.length;this.index=0}StringReader.prototype=new DataReader;StringReader.prototype.byteAt=function(i){return this.data.charCodeAt(i)};StringReader.prototype.lastIndexOfSignature=function(sig){return this.data.lastIndexOf(sig)};StringReader.prototype.readData=function(size){this.checkOffset(size);var result=this.data.slice(this.index,this.index+size);this.index+=size;return result};module.exports=StringReader},{"./dataReader":5,"./utils":21}],16:[function(_dereq_,module,exports){"use strict";var utils=_dereq_("./utils");var StringWriter=function(){this.data=[]};StringWriter.prototype={append:function(input){input=utils.transformTo("string",input);this.data.push(input)},finalize:function(){return this.data.join("")}};module.exports=StringWriter},{"./utils":21}],17:[function(_dereq_,module,exports){(function(Buffer){"use strict";exports.base64=true;exports.array=true;exports.string=true;exports.arraybuffer=typeof ArrayBuffer!=="undefined"&&typeof Uint8Array!=="undefined";exports.nodebuffer=typeof Buffer!=="undefined";exports.uint8array=typeof Uint8Array!=="undefined";if(typeof ArrayBuffer==="undefined"){exports.blob=false}else{var buffer=new ArrayBuffer(0);try{exports.blob=new Blob([buffer],{type:"application/zip"}).size===0}catch(e){try{var Builder=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder;var builder=new Builder;builder.append(buffer);exports.blob=builder.getBlob("application/zip").size===0}catch(e){exports.blob=false}}}}).call(this,typeof Buffer!=="undefined"?Buffer:undefined)},{}],18:[function(_dereq_,module,exports){"use strict";var DataReader=_dereq_("./dataReader");function Uint8ArrayReader(data){if(data){this.data=data;this.length=this.data.length;this.index=0}}Uint8ArrayReader.prototype=new DataReader;Uint8ArrayReader.prototype.byteAt=function(i){return this.data[i]};Uint8ArrayReader.prototype.lastIndexOfSignature=function(sig){var sig0=sig.charCodeAt(0),sig1=sig.charCodeAt(1),sig2=sig.charCodeAt(2),sig3=sig.charCodeAt(3);for(var i=this.length-4;i>=0;--i){if(this.data[i]===sig0&&this.data[i+1]===sig1&&this.data[i+2]===sig2&&this.data[i+3]===sig3){return i}}return-1};Uint8ArrayReader.prototype.readData=function(size){this.checkOffset(size);if(size===0){return new Uint8Array(0)}var result=this.data.subarray(this.index,this.index+size);this.index+=size;return result};module.exports=Uint8ArrayReader},{"./dataReader":5}],19:[function(_dereq_,module,exports){"use strict";var utils=_dereq_("./utils");var Uint8ArrayWriter=function(length){this.data=new Uint8Array(length);this.index=0};Uint8ArrayWriter.prototype={append:function(input){if(input.length!==0){input=utils.transformTo("uint8array",input);this.data.set(input,this.index);this.index+=input.length}},finalize:function(){return this.data}};module.exports=Uint8ArrayWriter},{"./utils":21}],20:[function(_dereq_,module,exports){"use strict";var utils=_dereq_("./utils");var support=_dereq_("./support");var nodeBuffer=_dereq_("./nodeBuffer");var _utf8len=new Array(256);for(var i=0;i<256;i++){_utf8len[i]=i>=252?6:i>=248?5:i>=240?4:i>=224?3:i>=192?2:1}_utf8len[254]=_utf8len[254]=1;var string2buf=function(str){var buf,c,c2,m_pos,i,str_len=str.length,buf_len=0;for(m_pos=0;m_pos<str_len;m_pos++){c=str.charCodeAt(m_pos);if((c&64512)===55296&&m_pos+1<str_len){c2=str.charCodeAt(m_pos+1);if((c2&64512)===56320){c=65536+(c-55296<<10)+(c2-56320);m_pos++}}buf_len+=c<128?1:c<2048?2:c<65536?3:4}if(support.uint8array){buf=new Uint8Array(buf_len)}else{buf=new Array(buf_len)}for(i=0,m_pos=0;i<buf_len;m_pos++){c=str.charCodeAt(m_pos);if((c&64512)===55296&&m_pos+1<str_len){c2=str.charCodeAt(m_pos+1);if((c2&64512)===56320){c=65536+(c-55296<<10)+(c2-56320);m_pos++}}if(c<128){buf[i++]=c}else if(c<2048){buf[i++]=192|c>>>6;buf[i++]=128|c&63}else if(c<65536){buf[i++]=224|c>>>12;buf[i++]=128|c>>>6&63;buf[i++]=128|c&63}else{buf[i++]=240|c>>>18;buf[i++]=128|c>>>12&63;buf[i++]=128|c>>>6&63;buf[i++]=128|c&63}}return buf};var utf8border=function(buf,max){var pos;max=max||buf.length;if(max>buf.length){max=buf.length}pos=max-1;while(pos>=0&&(buf[pos]&192)===128){pos--}if(pos<0){return max}if(pos===0){return max}return pos+_utf8len[buf[pos]]>max?pos:max};var buf2string=function(buf){var str,i,out,c,c_len;var len=buf.length;var utf16buf=new Array(len*2);for(out=0,i=0;i<len;){c=buf[i++];if(c<128){utf16buf[out++]=c;continue}c_len=_utf8len[c];if(c_len>4){utf16buf[out++]=65533;i+=c_len-1;continue}c&=c_len===2?31:c_len===3?15:7;while(c_len>1&&i<len){c=c<<6|buf[i++]&63;c_len--}if(c_len>1){utf16buf[out++]=65533;continue}if(c<65536){utf16buf[out++]=c}else{c-=65536;utf16buf[out++]=55296|c>>10&1023;utf16buf[out++]=56320|c&1023}}if(utf16buf.length!==out){if(utf16buf.subarray){utf16buf=utf16buf.subarray(0,out)}else{utf16buf.length=out}}return utils.applyFromCharCode(utf16buf)};exports.utf8encode=function utf8encode(str){if(support.nodebuffer){return nodeBuffer(str,"utf-8")}return string2buf(str)};exports.utf8decode=function utf8decode(buf){if(support.nodebuffer){return utils.transformTo("nodebuffer",buf).toString("utf-8")}buf=utils.transformTo(support.uint8array?"uint8array":"array",buf);var result=[],k=0,len=buf.length,chunk=65536;while(k<len){var nextBoundary=utf8border(buf,Math.min(k+chunk,len));if(support.uint8array){result.push(buf2string(buf.subarray(k,nextBoundary)))}else{result.push(buf2string(buf.slice(k,nextBoundary)))}k=nextBoundary}return result.join("")}},{"./nodeBuffer":11,"./support":17,"./utils":21}],21:[function(_dereq_,module,exports){"use strict";var support=_dereq_("./support");var compressions=_dereq_("./compressions");var nodeBuffer=_dereq_("./nodeBuffer");exports.string2binary=function(str){var result="";for(var i=0;i<str.length;i++){result+=String.fromCharCode(str.charCodeAt(i)&255)}return result};exports.arrayBuffer2Blob=function(buffer){exports.checkSupport("blob");try{return new Blob([buffer],{type:"application/zip"})}catch(e){try{var Builder=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder;var builder=new Builder;builder.append(buffer);return builder.getBlob("application/zip")}catch(e){throw new Error("Bug : can't construct the Blob.")}}};function identity(input){return input}function stringToArrayLike(str,array){for(var i=0;i<str.length;++i){array[i]=str.charCodeAt(i)&255}return array}function arrayLikeToString(array){var chunk=65536;var result=[],len=array.length,type=exports.getTypeOf(array),k=0,canUseApply=true;try{switch(type){case"uint8array":String.fromCharCode.apply(null,new Uint8Array(0));break;case"nodebuffer":String.fromCharCode.apply(null,nodeBuffer(0));break}}catch(e){canUseApply=false}if(!canUseApply){var resultStr="";for(var i=0;i<array.length;i++){resultStr+=String.fromCharCode(array[i])}return resultStr}while(k<len&&chunk>1){try{if(type==="array"||type==="nodebuffer"){result.push(String.fromCharCode.apply(null,array.slice(k,Math.min(k+chunk,len))))}else{result.push(String.fromCharCode.apply(null,array.subarray(k,Math.min(k+chunk,len))))}k+=chunk}catch(e){chunk=Math.floor(chunk/2)}}return result.join("")}exports.applyFromCharCode=arrayLikeToString;function arrayLikeToArrayLike(arrayFrom,arrayTo){for(var i=0;i<arrayFrom.length;i++){arrayTo[i]=arrayFrom[i]}return arrayTo}var transform={};transform["string"]={string:identity,array:function(input){return stringToArrayLike(input,new Array(input.length))},arraybuffer:function(input){return transform["string"]["uint8array"](input).buffer},uint8array:function(input){return stringToArrayLike(input,new Uint8Array(input.length))},nodebuffer:function(input){return stringToArrayLike(input,nodeBuffer(input.length))}};transform["array"]={string:arrayLikeToString,array:identity,arraybuffer:function(input){return new Uint8Array(input).buffer},uint8array:function(input){return new Uint8Array(input)},nodebuffer:function(input){return nodeBuffer(input)}};transform["arraybuffer"]={string:function(input){return arrayLikeToString(new Uint8Array(input))},array:function(input){return arrayLikeToArrayLike(new Uint8Array(input),new Array(input.byteLength))},arraybuffer:identity,uint8array:function(input){return new Uint8Array(input)},nodebuffer:function(input){return nodeBuffer(new Uint8Array(input))}};transform["uint8array"]={string:arrayLikeToString,array:function(input){return arrayLikeToArrayLike(input,new Array(input.length))},arraybuffer:function(input){return input.buffer},uint8array:identity,nodebuffer:function(input){return nodeBuffer(input)}};transform["nodebuffer"]={string:arrayLikeToString,array:function(input){return arrayLikeToArrayLike(input,new Array(input.length))},arraybuffer:function(input){return transform["nodebuffer"]["uint8array"](input).buffer},uint8array:function(input){return arrayLikeToArrayLike(input,new Uint8Array(input.length))},nodebuffer:identity};exports.transformTo=function(outputType,input){if(!input){input=""}if(!outputType){return input}exports.checkSupport(outputType);var inputType=exports.getTypeOf(input);var result=transform[inputType][outputType](input);return result};exports.getTypeOf=function(input){if(typeof input==="string"){return"string"}if(Object.prototype.toString.call(input)==="[object Array]"){return"array"}if(support.nodebuffer&&nodeBuffer.test(input)){return"nodebuffer"}if(support.uint8array&&input instanceof Uint8Array){return"uint8array"}if(support.arraybuffer&&input instanceof ArrayBuffer){return"arraybuffer"}};exports.checkSupport=function(type){var supported=support[type.toLowerCase()];if(!supported){throw new Error(type+" is not supported by this browser")}};exports.MAX_VALUE_16BITS=65535;exports.MAX_VALUE_32BITS=-1;exports.pretty=function(str){var res="",code,i;for(i=0;i<(str||"").length;i++){code=str.charCodeAt(i);res+="\\x"+(code<16?"0":"")+code.toString(16).toUpperCase() +}return res};exports.findCompression=function(compressionMethod){for(var method in compressions){if(!compressions.hasOwnProperty(method)){continue}if(compressions[method].magic===compressionMethod){return compressions[method]}}return null};exports.isRegExp=function(object){return Object.prototype.toString.call(object)==="[object RegExp]"}},{"./compressions":3,"./nodeBuffer":11,"./support":17}],22:[function(_dereq_,module,exports){"use strict";var StringReader=_dereq_("./stringReader");var NodeBufferReader=_dereq_("./nodeBufferReader");var Uint8ArrayReader=_dereq_("./uint8ArrayReader");var utils=_dereq_("./utils");var sig=_dereq_("./signature");var ZipEntry=_dereq_("./zipEntry");var support=_dereq_("./support");var jszipProto=_dereq_("./object");function ZipEntries(data,loadOptions){this.files=[];this.loadOptions=loadOptions;if(data){this.load(data)}}ZipEntries.prototype={checkSignature:function(expectedSignature){var signature=this.reader.readString(4);if(signature!==expectedSignature){throw new Error("Corrupted zip or bug : unexpected signature "+"("+utils.pretty(signature)+", expected "+utils.pretty(expectedSignature)+")")}},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2);this.diskWithCentralDirStart=this.reader.readInt(2);this.centralDirRecordsOnThisDisk=this.reader.readInt(2);this.centralDirRecords=this.reader.readInt(2);this.centralDirSize=this.reader.readInt(4);this.centralDirOffset=this.reader.readInt(4);this.zipCommentLength=this.reader.readInt(2);this.zipComment=this.reader.readString(this.zipCommentLength);this.zipComment=jszipProto.utf8decode(this.zipComment)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8);this.versionMadeBy=this.reader.readString(2);this.versionNeeded=this.reader.readInt(2);this.diskNumber=this.reader.readInt(4);this.diskWithCentralDirStart=this.reader.readInt(4);this.centralDirRecordsOnThisDisk=this.reader.readInt(8);this.centralDirRecords=this.reader.readInt(8);this.centralDirSize=this.reader.readInt(8);this.centralDirOffset=this.reader.readInt(8);this.zip64ExtensibleData={};var extraDataSize=this.zip64EndOfCentralSize-44,index=0,extraFieldId,extraFieldLength,extraFieldValue;while(index<extraDataSize){extraFieldId=this.reader.readInt(2);extraFieldLength=this.reader.readInt(4);extraFieldValue=this.reader.readString(extraFieldLength);this.zip64ExtensibleData[extraFieldId]={id:extraFieldId,length:extraFieldLength,value:extraFieldValue}}},readBlockZip64EndOfCentralLocator:function(){this.diskWithZip64CentralDirStart=this.reader.readInt(4);this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8);this.disksCount=this.reader.readInt(4);if(this.disksCount>1){throw new Error("Multi-volumes zip are not supported")}},readLocalFiles:function(){var i,file;for(i=0;i<this.files.length;i++){file=this.files[i];this.reader.setIndex(file.localHeaderOffset);this.checkSignature(sig.LOCAL_FILE_HEADER);file.readLocalPart(this.reader);file.handleUTF8()}},readCentralDir:function(){var file;this.reader.setIndex(this.centralDirOffset);while(this.reader.readString(4)===sig.CENTRAL_FILE_HEADER){file=new ZipEntry({zip64:this.zip64},this.loadOptions);file.readCentralPart(this.reader);this.files.push(file)}},readEndOfCentral:function(){var offset=this.reader.lastIndexOfSignature(sig.CENTRAL_DIRECTORY_END);if(offset===-1){throw new Error("Corrupted zip : can't find end of central directory")}this.reader.setIndex(offset);this.checkSignature(sig.CENTRAL_DIRECTORY_END);this.readBlockEndOfCentral();if(this.diskNumber===utils.MAX_VALUE_16BITS||this.diskWithCentralDirStart===utils.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===utils.MAX_VALUE_16BITS||this.centralDirRecords===utils.MAX_VALUE_16BITS||this.centralDirSize===utils.MAX_VALUE_32BITS||this.centralDirOffset===utils.MAX_VALUE_32BITS){this.zip64=true;offset=this.reader.lastIndexOfSignature(sig.ZIP64_CENTRAL_DIRECTORY_LOCATOR);if(offset===-1){throw new Error("Corrupted zip : can't find the ZIP64 end of central directory locator")}this.reader.setIndex(offset);this.checkSignature(sig.ZIP64_CENTRAL_DIRECTORY_LOCATOR);this.readBlockZip64EndOfCentralLocator();this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir);this.checkSignature(sig.ZIP64_CENTRAL_DIRECTORY_END);this.readBlockZip64EndOfCentral()}},prepareReader:function(data){var type=utils.getTypeOf(data);if(type==="string"&&!support.uint8array){this.reader=new StringReader(data,this.loadOptions.optimizedBinaryString)}else if(type==="nodebuffer"){this.reader=new NodeBufferReader(data)}else{this.reader=new Uint8ArrayReader(utils.transformTo("uint8array",data))}},load:function(data){this.prepareReader(data);this.readEndOfCentral();this.readCentralDir();this.readLocalFiles()}};module.exports=ZipEntries},{"./nodeBufferReader":12,"./object":13,"./signature":14,"./stringReader":15,"./support":17,"./uint8ArrayReader":18,"./utils":21,"./zipEntry":23}],23:[function(_dereq_,module,exports){"use strict";var StringReader=_dereq_("./stringReader");var utils=_dereq_("./utils");var CompressedObject=_dereq_("./compressedObject");var jszipProto=_dereq_("./object");function ZipEntry(options,loadOptions){this.options=options;this.loadOptions=loadOptions}ZipEntry.prototype={isEncrypted:function(){return(this.bitFlag&1)===1},useUTF8:function(){return(this.bitFlag&2048)===2048},prepareCompressedContent:function(reader,from,length){return function(){var previousIndex=reader.index;reader.setIndex(from);var compressedFileData=reader.readData(length);reader.setIndex(previousIndex);return compressedFileData}},prepareContent:function(reader,from,length,compression,uncompressedSize){return function(){var compressedFileData=utils.transformTo(compression.uncompressInputType,this.getCompressedContent());var uncompressedFileData=compression.uncompress(compressedFileData);if(uncompressedFileData.length!==uncompressedSize){throw new Error("Bug : uncompressed data size mismatch")}return uncompressedFileData}},readLocalPart:function(reader){var compression,localExtraFieldsLength;reader.skip(22);this.fileNameLength=reader.readInt(2);localExtraFieldsLength=reader.readInt(2);this.fileName=reader.readString(this.fileNameLength);reader.skip(localExtraFieldsLength);if(this.compressedSize==-1||this.uncompressedSize==-1){throw new Error("Bug or corrupted zip : didn't get enough informations from the central directory "+"(compressedSize == -1 || uncompressedSize == -1)")}compression=utils.findCompression(this.compressionMethod);if(compression===null){throw new Error("Corrupted zip : compression "+utils.pretty(this.compressionMethod)+" unknown (inner file : "+this.fileName+")")}this.decompressed=new CompressedObject;this.decompressed.compressedSize=this.compressedSize;this.decompressed.uncompressedSize=this.uncompressedSize;this.decompressed.crc32=this.crc32;this.decompressed.compressionMethod=this.compressionMethod;this.decompressed.getCompressedContent=this.prepareCompressedContent(reader,reader.index,this.compressedSize,compression);this.decompressed.getContent=this.prepareContent(reader,reader.index,this.compressedSize,compression,this.uncompressedSize);if(this.loadOptions.checkCRC32){this.decompressed=utils.transformTo("string",this.decompressed.getContent());if(jszipProto.crc32(this.decompressed)!==this.crc32){throw new Error("Corrupted zip : CRC32 mismatch")}}},readCentralPart:function(reader){this.versionMadeBy=reader.readString(2);this.versionNeeded=reader.readInt(2);this.bitFlag=reader.readInt(2);this.compressionMethod=reader.readString(2);this.date=reader.readDate();this.crc32=reader.readInt(4);this.compressedSize=reader.readInt(4);this.uncompressedSize=reader.readInt(4);this.fileNameLength=reader.readInt(2);this.extraFieldsLength=reader.readInt(2);this.fileCommentLength=reader.readInt(2);this.diskNumberStart=reader.readInt(2);this.internalFileAttributes=reader.readInt(2);this.externalFileAttributes=reader.readInt(4);this.localHeaderOffset=reader.readInt(4);if(this.isEncrypted()){throw new Error("Encrypted zip are not supported")}this.fileName=reader.readString(this.fileNameLength);this.readExtraFields(reader);this.parseZIP64ExtraField(reader);this.fileComment=reader.readString(this.fileCommentLength);this.dir=this.externalFileAttributes&16?true:false},parseZIP64ExtraField:function(reader){if(!this.extraFields[1]){return}var extraReader=new StringReader(this.extraFields[1].value);if(this.uncompressedSize===utils.MAX_VALUE_32BITS){this.uncompressedSize=extraReader.readInt(8)}if(this.compressedSize===utils.MAX_VALUE_32BITS){this.compressedSize=extraReader.readInt(8)}if(this.localHeaderOffset===utils.MAX_VALUE_32BITS){this.localHeaderOffset=extraReader.readInt(8)}if(this.diskNumberStart===utils.MAX_VALUE_32BITS){this.diskNumberStart=extraReader.readInt(4)}},readExtraFields:function(reader){var start=reader.index,extraFieldId,extraFieldLength,extraFieldValue;this.extraFields=this.extraFields||{};while(reader.index<start+this.extraFieldsLength){extraFieldId=reader.readInt(2);extraFieldLength=reader.readInt(2);extraFieldValue=reader.readString(extraFieldLength);this.extraFields[extraFieldId]={id:extraFieldId,length:extraFieldLength,value:extraFieldValue}}},handleUTF8:function(){if(this.useUTF8()){this.fileName=jszipProto.utf8decode(this.fileName);this.fileComment=jszipProto.utf8decode(this.fileComment)}else{var upath=this.findExtraFieldUnicodePath();if(upath!==null){this.fileName=upath}var ucomment=this.findExtraFieldUnicodeComment();if(ucomment!==null){this.fileComment=ucomment}}},findExtraFieldUnicodePath:function(){var upathField=this.extraFields[28789];if(upathField){var extraReader=new StringReader(upathField.value);if(extraReader.readInt(1)!==1){return null}if(jszipProto.crc32(this.fileName)!==extraReader.readInt(4)){return null}return jszipProto.utf8decode(extraReader.readString(upathField.length-5))}return null},findExtraFieldUnicodeComment:function(){var ucommentField=this.extraFields[25461];if(ucommentField){var extraReader=new StringReader(ucommentField.value);if(extraReader.readInt(1)!==1){return null}if(jszipProto.crc32(this.fileComment)!==extraReader.readInt(4)){return null}return jszipProto.utf8decode(extraReader.readString(ucommentField.length-5))}return null}};module.exports=ZipEntry},{"./compressedObject":2,"./object":13,"./stringReader":15,"./utils":21}],24:[function(_dereq_,module,exports){"use strict";var assign=_dereq_("./lib/utils/common").assign;var deflate=_dereq_("./lib/deflate");var inflate=_dereq_("./lib/inflate");var constants=_dereq_("./lib/zlib/constants");var pako={};assign(pako,deflate,inflate,constants);module.exports=pako},{"./lib/deflate":25,"./lib/inflate":26,"./lib/utils/common":27,"./lib/zlib/constants":30}],25:[function(_dereq_,module,exports){"use strict";var zlib_deflate=_dereq_("./zlib/deflate.js");var utils=_dereq_("./utils/common");var strings=_dereq_("./utils/strings");var msg=_dereq_("./zlib/messages");var zstream=_dereq_("./zlib/zstream");var Z_NO_FLUSH=0;var Z_FINISH=4;var Z_OK=0;var Z_STREAM_END=1;var Z_DEFAULT_COMPRESSION=-1;var Z_DEFAULT_STRATEGY=0;var Z_DEFLATED=8;var Deflate=function(options){this.options=utils.assign({level:Z_DEFAULT_COMPRESSION,method:Z_DEFLATED,chunkSize:16384,windowBits:15,memLevel:8,strategy:Z_DEFAULT_STRATEGY,to:""},options||{});var opt=this.options;if(opt.raw&&opt.windowBits>0){opt.windowBits=-opt.windowBits}else if(opt.gzip&&opt.windowBits>0&&opt.windowBits<16){opt.windowBits+=16}this.err=0;this.msg="";this.ended=false;this.chunks=[];this.strm=new zstream;this.strm.avail_out=0;var status=zlib_deflate.deflateInit2(this.strm,opt.level,opt.method,opt.windowBits,opt.memLevel,opt.strategy);if(status!==Z_OK){throw new Error(msg[status])}if(opt.header){zlib_deflate.deflateSetHeader(this.strm,opt.header)}};Deflate.prototype.push=function(data,mode){var strm=this.strm;var chunkSize=this.options.chunkSize;var status,_mode;if(this.ended){return false}_mode=mode===~~mode?mode:mode===true?Z_FINISH:Z_NO_FLUSH;if(typeof data==="string"){strm.input=strings.string2buf(data)}else{strm.input=data}strm.next_in=0;strm.avail_in=strm.input.length;do{if(strm.avail_out===0){strm.output=new utils.Buf8(chunkSize);strm.next_out=0;strm.avail_out=chunkSize}status=zlib_deflate.deflate(strm,_mode);if(status!==Z_STREAM_END&&status!==Z_OK){this.onEnd(status);this.ended=true;return false}if(strm.avail_out===0||strm.avail_in===0&&_mode===Z_FINISH){if(this.options.to==="string"){this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output,strm.next_out)))}else{this.onData(utils.shrinkBuf(strm.output,strm.next_out))}}}while((strm.avail_in>0||strm.avail_out===0)&&status!==Z_STREAM_END);if(_mode===Z_FINISH){status=zlib_deflate.deflateEnd(this.strm);this.onEnd(status);this.ended=true;return status===Z_OK}return true};Deflate.prototype.onData=function(chunk){this.chunks.push(chunk)};Deflate.prototype.onEnd=function(status){if(status===Z_OK){if(this.options.to==="string"){this.result=this.chunks.join("")}else{this.result=utils.flattenChunks(this.chunks)}}this.chunks=[];this.err=status;this.msg=this.strm.msg};function deflate(input,options){var deflator=new Deflate(options);deflator.push(input,true);if(deflator.err){throw deflator.msg}return deflator.result}function deflateRaw(input,options){options=options||{};options.raw=true;return deflate(input,options)}function gzip(input,options){options=options||{};options.gzip=true;return deflate(input,options)}exports.Deflate=Deflate;exports.deflate=deflate;exports.deflateRaw=deflateRaw;exports.gzip=gzip},{"./utils/common":27,"./utils/strings":28,"./zlib/deflate.js":32,"./zlib/messages":37,"./zlib/zstream":39}],26:[function(_dereq_,module,exports){"use strict";var zlib_inflate=_dereq_("./zlib/inflate.js");var utils=_dereq_("./utils/common");var strings=_dereq_("./utils/strings");var c=_dereq_("./zlib/constants");var msg=_dereq_("./zlib/messages");var zstream=_dereq_("./zlib/zstream");var gzheader=_dereq_("./zlib/gzheader");var Inflate=function(options){this.options=utils.assign({chunkSize:16384,windowBits:0,to:""},options||{});var opt=this.options;if(opt.raw&&opt.windowBits>=0&&opt.windowBits<16){opt.windowBits=-opt.windowBits;if(opt.windowBits===0){opt.windowBits=-15}}if(opt.windowBits>=0&&opt.windowBits<16&&!(options&&options.windowBits)){opt.windowBits+=32}if(opt.windowBits>15&&opt.windowBits<48){if((opt.windowBits&15)===0){opt.windowBits|=15}}this.err=0;this.msg="";this.ended=false;this.chunks=[];this.strm=new zstream;this.strm.avail_out=0;var status=zlib_inflate.inflateInit2(this.strm,opt.windowBits);if(status!==c.Z_OK){throw new Error(msg[status])}this.header=new gzheader;zlib_inflate.inflateGetHeader(this.strm,this.header)};Inflate.prototype.push=function(data,mode){var strm=this.strm;var chunkSize=this.options.chunkSize;var status,_mode;var next_out_utf8,tail,utf8str;if(this.ended){return false}_mode=mode===~~mode?mode:mode===true?c.Z_FINISH:c.Z_NO_FLUSH;if(typeof data==="string"){strm.input=strings.binstring2buf(data)}else{strm.input=data}strm.next_in=0;strm.avail_in=strm.input.length;do{if(strm.avail_out===0){strm.output=new utils.Buf8(chunkSize);strm.next_out=0;strm.avail_out=chunkSize}status=zlib_inflate.inflate(strm,c.Z_NO_FLUSH);if(status!==c.Z_STREAM_END&&status!==c.Z_OK){this.onEnd(status);this.ended=true;return false}if(strm.next_out){if(strm.avail_out===0||status===c.Z_STREAM_END||strm.avail_in===0&&_mode===c.Z_FINISH){if(this.options.to==="string"){next_out_utf8=strings.utf8border(strm.output,strm.next_out);tail=strm.next_out-next_out_utf8;utf8str=strings.buf2string(strm.output,next_out_utf8);strm.next_out=tail;strm.avail_out=chunkSize-tail;if(tail){utils.arraySet(strm.output,strm.output,next_out_utf8,tail,0)}this.onData(utf8str)}else{this.onData(utils.shrinkBuf(strm.output,strm.next_out))}}}}while(strm.avail_in>0&&status!==c.Z_STREAM_END);if(status===c.Z_STREAM_END){_mode=c.Z_FINISH}if(_mode===c.Z_FINISH){status=zlib_inflate.inflateEnd(this.strm);this.onEnd(status);this.ended=true;return status===c.Z_OK}return true};Inflate.prototype.onData=function(chunk){this.chunks.push(chunk)};Inflate.prototype.onEnd=function(status){if(status===c.Z_OK){if(this.options.to==="string"){this.result=this.chunks.join("")}else{this.result=utils.flattenChunks(this.chunks)}}this.chunks=[];this.err=status;this.msg=this.strm.msg};function inflate(input,options){var inflator=new Inflate(options);inflator.push(input,true);if(inflator.err){throw inflator.msg}return inflator.result}function inflateRaw(input,options){options=options||{};options.raw=true;return inflate(input,options)}exports.Inflate=Inflate;exports.inflate=inflate;exports.inflateRaw=inflateRaw;exports.ungzip=inflate},{"./utils/common":27,"./utils/strings":28,"./zlib/constants":30,"./zlib/gzheader":33,"./zlib/inflate.js":35,"./zlib/messages":37,"./zlib/zstream":39}],27:[function(_dereq_,module,exports){"use strict";var TYPED_OK=typeof Uint8Array!=="undefined"&&typeof Uint16Array!=="undefined"&&typeof Int32Array!=="undefined";exports.assign=function(obj){var sources=Array.prototype.slice.call(arguments,1);while(sources.length){var source=sources.shift();if(!source){continue}if(typeof source!=="object"){throw new TypeError(source+"must be non-object")}for(var p in source){if(source.hasOwnProperty(p)){obj[p]=source[p]}}}return obj};exports.shrinkBuf=function(buf,size){if(buf.length===size){return buf}if(buf.subarray){return buf.subarray(0,size)}buf.length=size;return buf};var fnTyped={arraySet:function(dest,src,src_offs,len,dest_offs){if(src.subarray&&dest.subarray){dest.set(src.subarray(src_offs,src_offs+len),dest_offs);return}for(var i=0;i<len;i++){dest[dest_offs+i]=src[src_offs+i]}},flattenChunks:function(chunks){var i,l,len,pos,chunk,result;len=0;for(i=0,l=chunks.length;i<l;i++){len+=chunks[i].length}result=new Uint8Array(len);pos=0;for(i=0,l=chunks.length;i<l;i++){chunk=chunks[i];result.set(chunk,pos);pos+=chunk.length}return result}};var fnUntyped={arraySet:function(dest,src,src_offs,len,dest_offs){for(var i=0;i<len;i++){dest[dest_offs+i]=src[src_offs+i]}},flattenChunks:function(chunks){return[].concat.apply([],chunks)}};exports.setTyped=function(on){if(on){exports.Buf8=Uint8Array;exports.Buf16=Uint16Array;exports.Buf32=Int32Array;exports.assign(exports,fnTyped)}else{exports.Buf8=Array;exports.Buf16=Array;exports.Buf32=Array;exports.assign(exports,fnUntyped)}};exports.setTyped(TYPED_OK)},{}],28:[function(_dereq_,module,exports){"use strict";var utils=_dereq_("./common");var STR_APPLY_OK=true;var STR_APPLY_UIA_OK=true;try{String.fromCharCode.apply(null,[0])}catch(__){STR_APPLY_OK=false}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(__){STR_APPLY_UIA_OK=false}var _utf8len=new utils.Buf8(256);for(var i=0;i<256;i++){_utf8len[i]=i>=252?6:i>=248?5:i>=240?4:i>=224?3:i>=192?2:1}_utf8len[254]=_utf8len[254]=1;exports.string2buf=function(str){var buf,c,c2,m_pos,i,str_len=str.length,buf_len=0;for(m_pos=0;m_pos<str_len;m_pos++){c=str.charCodeAt(m_pos);if((c&64512)===55296&&m_pos+1<str_len){c2=str.charCodeAt(m_pos+1);if((c2&64512)===56320){c=65536+(c-55296<<10)+(c2-56320);m_pos++}}buf_len+=c<128?1:c<2048?2:c<65536?3:4}buf=new utils.Buf8(buf_len);for(i=0,m_pos=0;i<buf_len;m_pos++){c=str.charCodeAt(m_pos);if((c&64512)===55296&&m_pos+1<str_len){c2=str.charCodeAt(m_pos+1);if((c2&64512)===56320){c=65536+(c-55296<<10)+(c2-56320);m_pos++}}if(c<128){buf[i++]=c}else if(c<2048){buf[i++]=192|c>>>6;buf[i++]=128|c&63}else if(c<65536){buf[i++]=224|c>>>12;buf[i++]=128|c>>>6&63;buf[i++]=128|c&63}else{buf[i++]=240|c>>>18;buf[i++]=128|c>>>12&63;buf[i++]=128|c>>>6&63;buf[i++]=128|c&63}}return buf};function buf2binstring(buf,len){if(len<65537){if(buf.subarray&&STR_APPLY_UIA_OK||!buf.subarray&&STR_APPLY_OK){return String.fromCharCode.apply(null,utils.shrinkBuf(buf,len))}}var result="";for(var i=0;i<len;i++){result+=String.fromCharCode(buf[i])}return result}exports.buf2binstring=function(buf){return buf2binstring(buf,buf.length)};exports.binstring2buf=function(str){var buf=new utils.Buf8(str.length);for(var i=0,len=buf.length;i<len;i++){buf[i]=str.charCodeAt(i)}return buf};exports.buf2string=function(buf,max){var i,out,c,c_len;var len=max||buf.length;var utf16buf=new Array(len*2);for(out=0,i=0;i<len;){c=buf[i++];if(c<128){utf16buf[out++]=c;continue}c_len=_utf8len[c];if(c_len>4){utf16buf[out++]=65533;i+=c_len-1;continue}c&=c_len===2?31:c_len===3?15:7;while(c_len>1&&i<len){c=c<<6|buf[i++]&63;c_len--}if(c_len>1){utf16buf[out++]=65533;continue}if(c<65536){utf16buf[out++]=c}else{c-=65536;utf16buf[out++]=55296|c>>10&1023;utf16buf[out++]=56320|c&1023}}return buf2binstring(utf16buf,out)};exports.utf8border=function(buf,max){var pos;max=max||buf.length;if(max>buf.length){max=buf.length}pos=max-1;while(pos>=0&&(buf[pos]&192)===128){pos--}if(pos<0){return max}if(pos===0){return max}return pos+_utf8len[buf[pos]]>max?pos:max}},{"./common":27}],29:[function(_dereq_,module,exports){"use strict";function adler32(adler,buf,len,pos){var s1=adler&65535|0,s2=adler>>>16&65535|0,n=0;while(len!==0){n=len>2e3?2e3:len;len-=n;do{s1=s1+buf[pos++]|0;s2=s2+s1|0}while(--n);s1%=65521;s2%=65521}return s1|s2<<16|0}module.exports=adler32},{}],30:[function(_dereq_,module,exports){module.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],31:[function(_dereq_,module,exports){"use strict";function makeTable(){var c,table=[];for(var n=0;n<256;n++){c=n;for(var k=0;k<8;k++){c=c&1?3988292384^c>>>1:c>>>1}table[n]=c}return table}var crcTable=makeTable();function crc32(crc,buf,len,pos){var t=crcTable,end=pos+len;crc=crc^-1;for(var i=pos;i<end;i++){crc=crc>>>8^t[(crc^buf[i])&255]}return crc^-1}module.exports=crc32},{}],32:[function(_dereq_,module,exports){"use strict";var utils=_dereq_("../utils/common");var trees=_dereq_("./trees");var adler32=_dereq_("./adler32");var crc32=_dereq_("./crc32");var msg=_dereq_("./messages");var Z_NO_FLUSH=0;var Z_PARTIAL_FLUSH=1;var Z_FULL_FLUSH=3;var Z_FINISH=4;var Z_BLOCK=5;var Z_OK=0;var Z_STREAM_END=1;var Z_STREAM_ERROR=-2;var Z_DATA_ERROR=-3;var Z_BUF_ERROR=-5;var Z_DEFAULT_COMPRESSION=-1;var Z_FILTERED=1;var Z_HUFFMAN_ONLY=2;var Z_RLE=3;var Z_FIXED=4;var Z_DEFAULT_STRATEGY=0;var Z_UNKNOWN=2;var Z_DEFLATED=8;var MAX_MEM_LEVEL=9;var MAX_WBITS=15;var DEF_MEM_LEVEL=8;var LENGTH_CODES=29;var LITERALS=256;var L_CODES=LITERALS+1+LENGTH_CODES;var D_CODES=30;var BL_CODES=19;var HEAP_SIZE=2*L_CODES+1;var MAX_BITS=15;var MIN_MATCH=3;var MAX_MATCH=258;var MIN_LOOKAHEAD=MAX_MATCH+MIN_MATCH+1;var PRESET_DICT=32;var INIT_STATE=42;var EXTRA_STATE=69;var NAME_STATE=73;var COMMENT_STATE=91;var HCRC_STATE=103;var BUSY_STATE=113;var FINISH_STATE=666;var BS_NEED_MORE=1;var BS_BLOCK_DONE=2;var BS_FINISH_STARTED=3;var BS_FINISH_DONE=4;var OS_CODE=3;function err(strm,errorCode){strm.msg=msg[errorCode];return errorCode}function rank(f){return(f<<1)-(f>4?9:0)}function zero(buf){var len=buf.length;while(--len>=0){buf[len]=0}}function flush_pending(strm){var s=strm.state;var len=s.pending;if(len>strm.avail_out){len=strm.avail_out}if(len===0){return}utils.arraySet(strm.output,s.pending_buf,s.pending_out,len,strm.next_out);strm.next_out+=len;s.pending_out+=len;strm.total_out+=len;strm.avail_out-=len;s.pending-=len;if(s.pending===0){s.pending_out=0}}function flush_block_only(s,last){trees._tr_flush_block(s,s.block_start>=0?s.block_start:-1,s.strstart-s.block_start,last);s.block_start=s.strstart;flush_pending(s.strm)}function put_byte(s,b){s.pending_buf[s.pending++]=b}function putShortMSB(s,b){s.pending_buf[s.pending++]=b>>>8&255;s.pending_buf[s.pending++]=b&255}function read_buf(strm,buf,start,size){var len=strm.avail_in;if(len>size){len=size}if(len===0){return 0}strm.avail_in-=len;utils.arraySet(buf,strm.input,strm.next_in,len,start);if(strm.state.wrap===1){strm.adler=adler32(strm.adler,buf,len,start)}else if(strm.state.wrap===2){strm.adler=crc32(strm.adler,buf,len,start)}strm.next_in+=len;strm.total_in+=len;return len}function longest_match(s,cur_match){var chain_length=s.max_chain_length;var scan=s.strstart;var match;var len;var best_len=s.prev_length;var nice_match=s.nice_match;var limit=s.strstart>s.w_size-MIN_LOOKAHEAD?s.strstart-(s.w_size-MIN_LOOKAHEAD):0;var _win=s.window;var wmask=s.w_mask;var prev=s.prev;var strend=s.strstart+MAX_MATCH;var scan_end1=_win[scan+best_len-1];var scan_end=_win[scan+best_len];if(s.prev_length>=s.good_match){chain_length>>=2}if(nice_match>s.lookahead){nice_match=s.lookahead}do{match=cur_match;if(_win[match+best_len]!==scan_end||_win[match+best_len-1]!==scan_end1||_win[match]!==_win[scan]||_win[++match]!==_win[scan+1]){continue}scan+=2;match++;do{}while(_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&scan<strend);len=MAX_MATCH-(strend-scan);scan=strend-MAX_MATCH;if(len>best_len){s.match_start=cur_match;best_len=len;if(len>=nice_match){break}scan_end1=_win[scan+best_len-1];scan_end=_win[scan+best_len]}}while((cur_match=prev[cur_match&wmask])>limit&&--chain_length!==0);if(best_len<=s.lookahead){return best_len}return s.lookahead}function fill_window(s){var _w_size=s.w_size;var p,n,m,more,str;do{more=s.window_size-s.lookahead-s.strstart;if(s.strstart>=_w_size+(_w_size-MIN_LOOKAHEAD)){utils.arraySet(s.window,s.window,_w_size,_w_size,0);s.match_start-=_w_size;s.strstart-=_w_size;s.block_start-=_w_size;n=s.hash_size;p=n;do{m=s.head[--p];s.head[p]=m>=_w_size?m-_w_size:0}while(--n);n=_w_size;p=n;do{m=s.prev[--p];s.prev[p]=m>=_w_size?m-_w_size:0}while(--n);more+=_w_size}if(s.strm.avail_in===0){break}n=read_buf(s.strm,s.window,s.strstart+s.lookahead,more);s.lookahead+=n;if(s.lookahead+s.insert>=MIN_MATCH){str=s.strstart-s.insert;s.ins_h=s.window[str];s.ins_h=(s.ins_h<<s.hash_shift^s.window[str+1])&s.hash_mask;while(s.insert){s.ins_h=(s.ins_h<<s.hash_shift^s.window[str+MIN_MATCH-1])&s.hash_mask;s.prev[str&s.w_mask]=s.head[s.ins_h];s.head[s.ins_h]=str;str++;s.insert--;if(s.lookahead+s.insert<MIN_MATCH){break}}}}while(s.lookahead<MIN_LOOKAHEAD&&s.strm.avail_in!==0)}function deflate_stored(s,flush){var max_block_size=65535;if(max_block_size>s.pending_buf_size-5){max_block_size=s.pending_buf_size-5}for(;;){if(s.lookahead<=1){fill_window(s);if(s.lookahead===0&&flush===Z_NO_FLUSH){return BS_NEED_MORE}if(s.lookahead===0){break}}s.strstart+=s.lookahead;s.lookahead=0;var max_start=s.block_start+max_block_size;if(s.strstart===0||s.strstart>=max_start){s.lookahead=s.strstart-max_start;s.strstart=max_start;flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}if(s.strstart-s.block_start>=s.w_size-MIN_LOOKAHEAD){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}}s.insert=0;if(flush===Z_FINISH){flush_block_only(s,true);if(s.strm.avail_out===0){return BS_FINISH_STARTED}return BS_FINISH_DONE}if(s.strstart>s.block_start){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}return BS_NEED_MORE}function deflate_fast(s,flush){var hash_head;var bflush;for(;;){if(s.lookahead<MIN_LOOKAHEAD){fill_window(s);if(s.lookahead<MIN_LOOKAHEAD&&flush===Z_NO_FLUSH){return BS_NEED_MORE}if(s.lookahead===0){break}}hash_head=0;if(s.lookahead>=MIN_MATCH){s.ins_h=(s.ins_h<<s.hash_shift^s.window[s.strstart+MIN_MATCH-1])&s.hash_mask;hash_head=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h];s.head[s.ins_h]=s.strstart}if(hash_head!==0&&s.strstart-hash_head<=s.w_size-MIN_LOOKAHEAD){s.match_length=longest_match(s,hash_head)}if(s.match_length>=MIN_MATCH){bflush=trees._tr_tally(s,s.strstart-s.match_start,s.match_length-MIN_MATCH);s.lookahead-=s.match_length;if(s.match_length<=s.max_lazy_match&&s.lookahead>=MIN_MATCH){s.match_length--;do{s.strstart++;s.ins_h=(s.ins_h<<s.hash_shift^s.window[s.strstart+MIN_MATCH-1])&s.hash_mask;hash_head=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h];s.head[s.ins_h]=s.strstart}while(--s.match_length!==0);s.strstart++}else{s.strstart+=s.match_length;s.match_length=0;s.ins_h=s.window[s.strstart];s.ins_h=(s.ins_h<<s.hash_shift^s.window[s.strstart+1])&s.hash_mask}}else{bflush=trees._tr_tally(s,0,s.window[s.strstart]);s.lookahead--;s.strstart++}if(bflush){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}}s.insert=s.strstart<MIN_MATCH-1?s.strstart:MIN_MATCH-1;if(flush===Z_FINISH){flush_block_only(s,true);if(s.strm.avail_out===0){return BS_FINISH_STARTED}return BS_FINISH_DONE}if(s.last_lit){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}return BS_BLOCK_DONE}function deflate_slow(s,flush){var hash_head;var bflush;var max_insert;for(;;){if(s.lookahead<MIN_LOOKAHEAD){fill_window(s);if(s.lookahead<MIN_LOOKAHEAD&&flush===Z_NO_FLUSH){return BS_NEED_MORE}if(s.lookahead===0){break}}hash_head=0;if(s.lookahead>=MIN_MATCH){s.ins_h=(s.ins_h<<s.hash_shift^s.window[s.strstart+MIN_MATCH-1])&s.hash_mask;hash_head=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h];s.head[s.ins_h]=s.strstart}s.prev_length=s.match_length;s.prev_match=s.match_start;s.match_length=MIN_MATCH-1;if(hash_head!==0&&s.prev_length<s.max_lazy_match&&s.strstart-hash_head<=s.w_size-MIN_LOOKAHEAD){s.match_length=longest_match(s,hash_head);if(s.match_length<=5&&(s.strategy===Z_FILTERED||s.match_length===MIN_MATCH&&s.strstart-s.match_start>4096)){s.match_length=MIN_MATCH-1}}if(s.prev_length>=MIN_MATCH&&s.match_length<=s.prev_length){max_insert=s.strstart+s.lookahead-MIN_MATCH;bflush=trees._tr_tally(s,s.strstart-1-s.prev_match,s.prev_length-MIN_MATCH);s.lookahead-=s.prev_length-1;s.prev_length-=2;do{if(++s.strstart<=max_insert){s.ins_h=(s.ins_h<<s.hash_shift^s.window[s.strstart+MIN_MATCH-1])&s.hash_mask;hash_head=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h];s.head[s.ins_h]=s.strstart}}while(--s.prev_length!==0);s.match_available=0;s.match_length=MIN_MATCH-1;s.strstart++;if(bflush){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}}else if(s.match_available){bflush=trees._tr_tally(s,0,s.window[s.strstart-1]);if(bflush){flush_block_only(s,false)}s.strstart++;s.lookahead--;if(s.strm.avail_out===0){return BS_NEED_MORE}}else{s.match_available=1;s.strstart++;s.lookahead--}}if(s.match_available){bflush=trees._tr_tally(s,0,s.window[s.strstart-1]);s.match_available=0}s.insert=s.strstart<MIN_MATCH-1?s.strstart:MIN_MATCH-1;if(flush===Z_FINISH){flush_block_only(s,true);if(s.strm.avail_out===0){return BS_FINISH_STARTED}return BS_FINISH_DONE}if(s.last_lit){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}return BS_BLOCK_DONE}function deflate_rle(s,flush){var bflush;var prev;var scan,strend;var _win=s.window;for(;;){if(s.lookahead<=MAX_MATCH){fill_window(s);if(s.lookahead<=MAX_MATCH&&flush===Z_NO_FLUSH){return BS_NEED_MORE}if(s.lookahead===0){break}}s.match_length=0;if(s.lookahead>=MIN_MATCH&&s.strstart>0){scan=s.strstart-1;prev=_win[scan];if(prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]){strend=s.strstart+MAX_MATCH;do{}while(prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&scan<strend);s.match_length=MAX_MATCH-(strend-scan);if(s.match_length>s.lookahead){s.match_length=s.lookahead}}}if(s.match_length>=MIN_MATCH){bflush=trees._tr_tally(s,1,s.match_length-MIN_MATCH);s.lookahead-=s.match_length;s.strstart+=s.match_length;s.match_length=0}else{bflush=trees._tr_tally(s,0,s.window[s.strstart]);s.lookahead--;s.strstart++}if(bflush){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}}s.insert=0;if(flush===Z_FINISH){flush_block_only(s,true);if(s.strm.avail_out===0){return BS_FINISH_STARTED}return BS_FINISH_DONE}if(s.last_lit){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}return BS_BLOCK_DONE}function deflate_huff(s,flush){var bflush; +for(;;){if(s.lookahead===0){fill_window(s);if(s.lookahead===0){if(flush===Z_NO_FLUSH){return BS_NEED_MORE}break}}s.match_length=0;bflush=trees._tr_tally(s,0,s.window[s.strstart]);s.lookahead--;s.strstart++;if(bflush){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}}s.insert=0;if(flush===Z_FINISH){flush_block_only(s,true);if(s.strm.avail_out===0){return BS_FINISH_STARTED}return BS_FINISH_DONE}if(s.last_lit){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}return BS_BLOCK_DONE}var Config=function(good_length,max_lazy,nice_length,max_chain,func){this.good_length=good_length;this.max_lazy=max_lazy;this.nice_length=nice_length;this.max_chain=max_chain;this.func=func};var configuration_table;configuration_table=[new Config(0,0,0,0,deflate_stored),new Config(4,4,8,4,deflate_fast),new Config(4,5,16,8,deflate_fast),new Config(4,6,32,32,deflate_fast),new Config(4,4,16,16,deflate_slow),new Config(8,16,32,32,deflate_slow),new Config(8,16,128,128,deflate_slow),new Config(8,32,128,256,deflate_slow),new Config(32,128,258,1024,deflate_slow),new Config(32,258,258,4096,deflate_slow)];function lm_init(s){s.window_size=2*s.w_size;zero(s.head);s.max_lazy_match=configuration_table[s.level].max_lazy;s.good_match=configuration_table[s.level].good_length;s.nice_match=configuration_table[s.level].nice_length;s.max_chain_length=configuration_table[s.level].max_chain;s.strstart=0;s.block_start=0;s.lookahead=0;s.insert=0;s.match_length=s.prev_length=MIN_MATCH-1;s.match_available=0;s.ins_h=0}function DeflateState(){this.strm=null;this.status=0;this.pending_buf=null;this.pending_buf_size=0;this.pending_out=0;this.pending=0;this.wrap=0;this.gzhead=null;this.gzindex=0;this.method=Z_DEFLATED;this.last_flush=-1;this.w_size=0;this.w_bits=0;this.w_mask=0;this.window=null;this.window_size=0;this.prev=null;this.head=null;this.ins_h=0;this.hash_size=0;this.hash_bits=0;this.hash_mask=0;this.hash_shift=0;this.block_start=0;this.match_length=0;this.prev_match=0;this.match_available=0;this.strstart=0;this.match_start=0;this.lookahead=0;this.prev_length=0;this.max_chain_length=0;this.max_lazy_match=0;this.level=0;this.strategy=0;this.good_match=0;this.nice_match=0;this.dyn_ltree=new utils.Buf16(HEAP_SIZE*2);this.dyn_dtree=new utils.Buf16((2*D_CODES+1)*2);this.bl_tree=new utils.Buf16((2*BL_CODES+1)*2);zero(this.dyn_ltree);zero(this.dyn_dtree);zero(this.bl_tree);this.l_desc=null;this.d_desc=null;this.bl_desc=null;this.bl_count=new utils.Buf16(MAX_BITS+1);this.heap=new utils.Buf16(2*L_CODES+1);zero(this.heap);this.heap_len=0;this.heap_max=0;this.depth=new utils.Buf16(2*L_CODES+1);zero(this.depth);this.l_buf=0;this.lit_bufsize=0;this.last_lit=0;this.d_buf=0;this.opt_len=0;this.static_len=0;this.matches=0;this.insert=0;this.bi_buf=0;this.bi_valid=0}function deflateResetKeep(strm){var s;if(!strm||!strm.state){return err(strm,Z_STREAM_ERROR)}strm.total_in=strm.total_out=0;strm.data_type=Z_UNKNOWN;s=strm.state;s.pending=0;s.pending_out=0;if(s.wrap<0){s.wrap=-s.wrap}s.status=s.wrap?INIT_STATE:BUSY_STATE;strm.adler=s.wrap===2?0:1;s.last_flush=Z_NO_FLUSH;trees._tr_init(s);return Z_OK}function deflateReset(strm){var ret=deflateResetKeep(strm);if(ret===Z_OK){lm_init(strm.state)}return ret}function deflateSetHeader(strm,head){if(!strm||!strm.state){return Z_STREAM_ERROR}if(strm.state.wrap!==2){return Z_STREAM_ERROR}strm.state.gzhead=head;return Z_OK}function deflateInit2(strm,level,method,windowBits,memLevel,strategy){if(!strm){return Z_STREAM_ERROR}var wrap=1;if(level===Z_DEFAULT_COMPRESSION){level=6}if(windowBits<0){wrap=0;windowBits=-windowBits}else if(windowBits>15){wrap=2;windowBits-=16}if(memLevel<1||memLevel>MAX_MEM_LEVEL||method!==Z_DEFLATED||windowBits<8||windowBits>15||level<0||level>9||strategy<0||strategy>Z_FIXED){return err(strm,Z_STREAM_ERROR)}if(windowBits===8){windowBits=9}var s=new DeflateState;strm.state=s;s.strm=strm;s.wrap=wrap;s.gzhead=null;s.w_bits=windowBits;s.w_size=1<<s.w_bits;s.w_mask=s.w_size-1;s.hash_bits=memLevel+7;s.hash_size=1<<s.hash_bits;s.hash_mask=s.hash_size-1;s.hash_shift=~~((s.hash_bits+MIN_MATCH-1)/MIN_MATCH);s.window=new utils.Buf8(s.w_size*2);s.head=new utils.Buf16(s.hash_size);s.prev=new utils.Buf16(s.w_size);s.lit_bufsize=1<<memLevel+6;s.pending_buf_size=s.lit_bufsize*4;s.pending_buf=new utils.Buf8(s.pending_buf_size);s.d_buf=s.lit_bufsize>>1;s.l_buf=(1+2)*s.lit_bufsize;s.level=level;s.strategy=strategy;s.method=method;return deflateReset(strm)}function deflateInit(strm,level){return deflateInit2(strm,level,Z_DEFLATED,MAX_WBITS,DEF_MEM_LEVEL,Z_DEFAULT_STRATEGY)}function deflate(strm,flush){var old_flush,s;var beg,val;if(!strm||!strm.state||flush>Z_BLOCK||flush<0){return strm?err(strm,Z_STREAM_ERROR):Z_STREAM_ERROR}s=strm.state;if(!strm.output||!strm.input&&strm.avail_in!==0||s.status===FINISH_STATE&&flush!==Z_FINISH){return err(strm,strm.avail_out===0?Z_BUF_ERROR:Z_STREAM_ERROR)}s.strm=strm;old_flush=s.last_flush;s.last_flush=flush;if(s.status===INIT_STATE){if(s.wrap===2){strm.adler=0;put_byte(s,31);put_byte(s,139);put_byte(s,8);if(!s.gzhead){put_byte(s,0);put_byte(s,0);put_byte(s,0);put_byte(s,0);put_byte(s,0);put_byte(s,s.level===9?2:s.strategy>=Z_HUFFMAN_ONLY||s.level<2?4:0);put_byte(s,OS_CODE);s.status=BUSY_STATE}else{put_byte(s,(s.gzhead.text?1:0)+(s.gzhead.hcrc?2:0)+(!s.gzhead.extra?0:4)+(!s.gzhead.name?0:8)+(!s.gzhead.comment?0:16));put_byte(s,s.gzhead.time&255);put_byte(s,s.gzhead.time>>8&255);put_byte(s,s.gzhead.time>>16&255);put_byte(s,s.gzhead.time>>24&255);put_byte(s,s.level===9?2:s.strategy>=Z_HUFFMAN_ONLY||s.level<2?4:0);put_byte(s,s.gzhead.os&255);if(s.gzhead.extra&&s.gzhead.extra.length){put_byte(s,s.gzhead.extra.length&255);put_byte(s,s.gzhead.extra.length>>8&255)}if(s.gzhead.hcrc){strm.adler=crc32(strm.adler,s.pending_buf,s.pending,0)}s.gzindex=0;s.status=EXTRA_STATE}}else{var header=Z_DEFLATED+(s.w_bits-8<<4)<<8;var level_flags=-1;if(s.strategy>=Z_HUFFMAN_ONLY||s.level<2){level_flags=0}else if(s.level<6){level_flags=1}else if(s.level===6){level_flags=2}else{level_flags=3}header|=level_flags<<6;if(s.strstart!==0){header|=PRESET_DICT}header+=31-header%31;s.status=BUSY_STATE;putShortMSB(s,header);if(s.strstart!==0){putShortMSB(s,strm.adler>>>16);putShortMSB(s,strm.adler&65535)}strm.adler=1}}if(s.status===EXTRA_STATE){if(s.gzhead.extra){beg=s.pending;while(s.gzindex<(s.gzhead.extra.length&65535)){if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}flush_pending(strm);beg=s.pending;if(s.pending===s.pending_buf_size){break}}put_byte(s,s.gzhead.extra[s.gzindex]&255);s.gzindex++}if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}if(s.gzindex===s.gzhead.extra.length){s.gzindex=0;s.status=NAME_STATE}}else{s.status=NAME_STATE}}if(s.status===NAME_STATE){if(s.gzhead.name){beg=s.pending;do{if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}flush_pending(strm);beg=s.pending;if(s.pending===s.pending_buf_size){val=1;break}}if(s.gzindex<s.gzhead.name.length){val=s.gzhead.name.charCodeAt(s.gzindex++)&255}else{val=0}put_byte(s,val)}while(val!==0);if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}if(val===0){s.gzindex=0;s.status=COMMENT_STATE}}else{s.status=COMMENT_STATE}}if(s.status===COMMENT_STATE){if(s.gzhead.comment){beg=s.pending;do{if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}flush_pending(strm);beg=s.pending;if(s.pending===s.pending_buf_size){val=1;break}}if(s.gzindex<s.gzhead.comment.length){val=s.gzhead.comment.charCodeAt(s.gzindex++)&255}else{val=0}put_byte(s,val)}while(val!==0);if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}if(val===0){s.status=HCRC_STATE}}else{s.status=HCRC_STATE}}if(s.status===HCRC_STATE){if(s.gzhead.hcrc){if(s.pending+2>s.pending_buf_size){flush_pending(strm)}if(s.pending+2<=s.pending_buf_size){put_byte(s,strm.adler&255);put_byte(s,strm.adler>>8&255);strm.adler=0;s.status=BUSY_STATE}}else{s.status=BUSY_STATE}}if(s.pending!==0){flush_pending(strm);if(strm.avail_out===0){s.last_flush=-1;return Z_OK}}else if(strm.avail_in===0&&rank(flush)<=rank(old_flush)&&flush!==Z_FINISH){return err(strm,Z_BUF_ERROR)}if(s.status===FINISH_STATE&&strm.avail_in!==0){return err(strm,Z_BUF_ERROR)}if(strm.avail_in!==0||s.lookahead!==0||flush!==Z_NO_FLUSH&&s.status!==FINISH_STATE){var bstate=s.strategy===Z_HUFFMAN_ONLY?deflate_huff(s,flush):s.strategy===Z_RLE?deflate_rle(s,flush):configuration_table[s.level].func(s,flush);if(bstate===BS_FINISH_STARTED||bstate===BS_FINISH_DONE){s.status=FINISH_STATE}if(bstate===BS_NEED_MORE||bstate===BS_FINISH_STARTED){if(strm.avail_out===0){s.last_flush=-1}return Z_OK}if(bstate===BS_BLOCK_DONE){if(flush===Z_PARTIAL_FLUSH){trees._tr_align(s)}else if(flush!==Z_BLOCK){trees._tr_stored_block(s,0,0,false);if(flush===Z_FULL_FLUSH){zero(s.head);if(s.lookahead===0){s.strstart=0;s.block_start=0;s.insert=0}}}flush_pending(strm);if(strm.avail_out===0){s.last_flush=-1;return Z_OK}}}if(flush!==Z_FINISH){return Z_OK}if(s.wrap<=0){return Z_STREAM_END}if(s.wrap===2){put_byte(s,strm.adler&255);put_byte(s,strm.adler>>8&255);put_byte(s,strm.adler>>16&255);put_byte(s,strm.adler>>24&255);put_byte(s,strm.total_in&255);put_byte(s,strm.total_in>>8&255);put_byte(s,strm.total_in>>16&255);put_byte(s,strm.total_in>>24&255)}else{putShortMSB(s,strm.adler>>>16);putShortMSB(s,strm.adler&65535)}flush_pending(strm);if(s.wrap>0){s.wrap=-s.wrap}return s.pending!==0?Z_OK:Z_STREAM_END}function deflateEnd(strm){var status;if(!strm||!strm.state){return Z_STREAM_ERROR}status=strm.state.status;if(status!==INIT_STATE&&status!==EXTRA_STATE&&status!==NAME_STATE&&status!==COMMENT_STATE&&status!==HCRC_STATE&&status!==BUSY_STATE&&status!==FINISH_STATE){return err(strm,Z_STREAM_ERROR)}strm.state=null;return status===BUSY_STATE?err(strm,Z_DATA_ERROR):Z_OK}exports.deflateInit=deflateInit;exports.deflateInit2=deflateInit2;exports.deflateReset=deflateReset;exports.deflateResetKeep=deflateResetKeep;exports.deflateSetHeader=deflateSetHeader;exports.deflate=deflate;exports.deflateEnd=deflateEnd;exports.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":27,"./adler32":29,"./crc32":31,"./messages":37,"./trees":38}],33:[function(_dereq_,module,exports){"use strict";function GZheader(){this.text=0;this.time=0;this.xflags=0;this.os=0;this.extra=null;this.extra_len=0;this.name="";this.comment="";this.hcrc=0;this.done=false}module.exports=GZheader},{}],34:[function(_dereq_,module,exports){"use strict";var BAD=30;var TYPE=12;module.exports=function inflate_fast(strm,start){var state;var _in;var last;var _out;var beg;var end;var dmax;var wsize;var whave;var wnext;var window;var hold;var bits;var lcode;var dcode;var lmask;var dmask;var here;var op;var len;var dist;var from;var from_source;var input,output;state=strm.state;_in=strm.next_in;input=strm.input;last=_in+(strm.avail_in-5);_out=strm.next_out;output=strm.output;beg=_out-(start-strm.avail_out);end=_out+(strm.avail_out-257);dmax=state.dmax;wsize=state.wsize;whave=state.whave;wnext=state.wnext;window=state.window;hold=state.hold;bits=state.bits;lcode=state.lencode;dcode=state.distcode;lmask=(1<<state.lenbits)-1;dmask=(1<<state.distbits)-1;top:do{if(bits<15){hold+=input[_in++]<<bits;bits+=8;hold+=input[_in++]<<bits;bits+=8}here=lcode[hold&lmask];dolen:for(;;){op=here>>>24;hold>>>=op;bits-=op;op=here>>>16&255;if(op===0){output[_out++]=here&65535}else if(op&16){len=here&65535;op&=15;if(op){if(bits<op){hold+=input[_in++]<<bits;bits+=8}len+=hold&(1<<op)-1;hold>>>=op;bits-=op}if(bits<15){hold+=input[_in++]<<bits;bits+=8;hold+=input[_in++]<<bits;bits+=8}here=dcode[hold&dmask];dodist:for(;;){op=here>>>24;hold>>>=op;bits-=op;op=here>>>16&255;if(op&16){dist=here&65535;op&=15;if(bits<op){hold+=input[_in++]<<bits;bits+=8;if(bits<op){hold+=input[_in++]<<bits;bits+=8}}dist+=hold&(1<<op)-1;if(dist>dmax){strm.msg="invalid distance too far back";state.mode=BAD;break top}hold>>>=op;bits-=op;op=_out-beg;if(dist>op){op=dist-op;if(op>whave){if(state.sane){strm.msg="invalid distance too far back";state.mode=BAD;break top}}from=0;from_source=window;if(wnext===0){from+=wsize-op;if(op<len){len-=op;do{output[_out++]=window[from++]}while(--op);from=_out-dist;from_source=output}}else if(wnext<op){from+=wsize+wnext-op;op-=wnext;if(op<len){len-=op;do{output[_out++]=window[from++]}while(--op);from=0;if(wnext<len){op=wnext;len-=op;do{output[_out++]=window[from++]}while(--op);from=_out-dist;from_source=output}}}else{from+=wnext-op;if(op<len){len-=op;do{output[_out++]=window[from++]}while(--op);from=_out-dist;from_source=output}}while(len>2){output[_out++]=from_source[from++];output[_out++]=from_source[from++];output[_out++]=from_source[from++];len-=3}if(len){output[_out++]=from_source[from++];if(len>1){output[_out++]=from_source[from++]}}}else{from=_out-dist;do{output[_out++]=output[from++];output[_out++]=output[from++];output[_out++]=output[from++];len-=3}while(len>2);if(len){output[_out++]=output[from++];if(len>1){output[_out++]=output[from++]}}}}else if((op&64)===0){here=dcode[(here&65535)+(hold&(1<<op)-1)];continue dodist}else{strm.msg="invalid distance code";state.mode=BAD;break top}break}}else if((op&64)===0){here=lcode[(here&65535)+(hold&(1<<op)-1)];continue dolen}else if(op&32){state.mode=TYPE;break top}else{strm.msg="invalid literal/length code";state.mode=BAD;break top}break}}while(_in<last&&_out<end);len=bits>>3;_in-=len;bits-=len<<3;hold&=(1<<bits)-1;strm.next_in=_in;strm.next_out=_out;strm.avail_in=_in<last?5+(last-_in):5-(_in-last);strm.avail_out=_out<end?257+(end-_out):257-(_out-end);state.hold=hold;state.bits=bits;return}},{}],35:[function(_dereq_,module,exports){"use strict";var utils=_dereq_("../utils/common");var adler32=_dereq_("./adler32");var crc32=_dereq_("./crc32");var inflate_fast=_dereq_("./inffast");var inflate_table=_dereq_("./inftrees");var CODES=0;var LENS=1;var DISTS=2;var Z_FINISH=4;var Z_BLOCK=5;var Z_TREES=6;var Z_OK=0;var Z_STREAM_END=1;var Z_NEED_DICT=2;var Z_STREAM_ERROR=-2;var Z_DATA_ERROR=-3;var Z_MEM_ERROR=-4;var Z_BUF_ERROR=-5;var Z_DEFLATED=8;var HEAD=1;var FLAGS=2;var TIME=3;var OS=4;var EXLEN=5;var EXTRA=6;var NAME=7;var COMMENT=8;var HCRC=9;var DICTID=10;var DICT=11;var TYPE=12;var TYPEDO=13;var STORED=14;var COPY_=15;var COPY=16;var TABLE=17;var LENLENS=18;var CODELENS=19;var LEN_=20;var LEN=21;var LENEXT=22;var DIST=23;var DISTEXT=24;var MATCH=25;var LIT=26;var CHECK=27;var LENGTH=28;var DONE=29;var BAD=30;var MEM=31;var SYNC=32;var ENOUGH_LENS=852;var ENOUGH_DISTS=592;var MAX_WBITS=15;var DEF_WBITS=MAX_WBITS;function ZSWAP32(q){return(q>>>24&255)+(q>>>8&65280)+((q&65280)<<8)+((q&255)<<24)}function InflateState(){this.mode=0;this.last=false;this.wrap=0;this.havedict=false;this.flags=0;this.dmax=0;this.check=0;this.total=0;this.head=null;this.wbits=0;this.wsize=0;this.whave=0;this.wnext=0;this.window=null;this.hold=0;this.bits=0;this.length=0;this.offset=0;this.extra=0;this.lencode=null;this.distcode=null;this.lenbits=0;this.distbits=0;this.ncode=0;this.nlen=0;this.ndist=0;this.have=0;this.next=null;this.lens=new utils.Buf16(320);this.work=new utils.Buf16(288);this.lendyn=null;this.distdyn=null;this.sane=0;this.back=0;this.was=0}function inflateResetKeep(strm){var state;if(!strm||!strm.state){return Z_STREAM_ERROR}state=strm.state;strm.total_in=strm.total_out=state.total=0;strm.msg="";if(state.wrap){strm.adler=state.wrap&1}state.mode=HEAD;state.last=0;state.havedict=0;state.dmax=32768;state.head=null;state.hold=0;state.bits=0;state.lencode=state.lendyn=new utils.Buf32(ENOUGH_LENS);state.distcode=state.distdyn=new utils.Buf32(ENOUGH_DISTS);state.sane=1;state.back=-1;return Z_OK}function inflateReset(strm){var state;if(!strm||!strm.state){return Z_STREAM_ERROR}state=strm.state;state.wsize=0;state.whave=0;state.wnext=0;return inflateResetKeep(strm)}function inflateReset2(strm,windowBits){var wrap;var state;if(!strm||!strm.state){return Z_STREAM_ERROR}state=strm.state;if(windowBits<0){wrap=0;windowBits=-windowBits}else{wrap=(windowBits>>4)+1;if(windowBits<48){windowBits&=15}}if(windowBits&&(windowBits<8||windowBits>15)){return Z_STREAM_ERROR}if(state.window!==null&&state.wbits!==windowBits){state.window=null}state.wrap=wrap;state.wbits=windowBits;return inflateReset(strm)}function inflateInit2(strm,windowBits){var ret;var state;if(!strm){return Z_STREAM_ERROR}state=new InflateState;strm.state=state;state.window=null;ret=inflateReset2(strm,windowBits);if(ret!==Z_OK){strm.state=null}return ret}function inflateInit(strm){return inflateInit2(strm,DEF_WBITS)}var virgin=true;var lenfix,distfix;function fixedtables(state){if(virgin){var sym;lenfix=new utils.Buf32(512);distfix=new utils.Buf32(32);sym=0;while(sym<144){state.lens[sym++]=8}while(sym<256){state.lens[sym++]=9}while(sym<280){state.lens[sym++]=7}while(sym<288){state.lens[sym++]=8}inflate_table(LENS,state.lens,0,288,lenfix,0,state.work,{bits:9});sym=0;while(sym<32){state.lens[sym++]=5}inflate_table(DISTS,state.lens,0,32,distfix,0,state.work,{bits:5});virgin=false}state.lencode=lenfix;state.lenbits=9;state.distcode=distfix;state.distbits=5}function updatewindow(strm,src,end,copy){var dist;var state=strm.state;if(state.window===null){state.wsize=1<<state.wbits;state.wnext=0;state.whave=0;state.window=new utils.Buf8(state.wsize)}if(copy>=state.wsize){utils.arraySet(state.window,src,end-state.wsize,state.wsize,0);state.wnext=0;state.whave=state.wsize}else{dist=state.wsize-state.wnext;if(dist>copy){dist=copy}utils.arraySet(state.window,src,end-copy,dist,state.wnext);copy-=dist;if(copy){utils.arraySet(state.window,src,end-copy,copy,0);state.wnext=copy;state.whave=state.wsize}else{state.wnext+=dist;if(state.wnext===state.wsize){state.wnext=0}if(state.whave<state.wsize){state.whave+=dist}}}return 0}function inflate(strm,flush){var state;var input,output;var next;var put;var have,left;var hold;var bits;var _in,_out;var copy;var from;var from_source;var here=0;var here_bits,here_op,here_val;var last_bits,last_op,last_val;var len;var ret;var hbuf=new utils.Buf8(4);var opts;var n;var order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!strm||!strm.state||!strm.output||!strm.input&&strm.avail_in!==0){return Z_STREAM_ERROR}state=strm.state;if(state.mode===TYPE){state.mode=TYPEDO}put=strm.next_out;output=strm.output;left=strm.avail_out;next=strm.next_in;input=strm.input;have=strm.avail_in;hold=state.hold;bits=state.bits;_in=have;_out=left;ret=Z_OK;inf_leave:for(;;){switch(state.mode){case HEAD:if(state.wrap===0){state.mode=TYPEDO;break}while(bits<16){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}if(state.wrap&2&&hold===35615){state.check=0;hbuf[0]=hold&255;hbuf[1]=hold>>>8&255;state.check=crc32(state.check,hbuf,2,0);hold=0;bits=0;state.mode=FLAGS;break}state.flags=0;if(state.head){state.head.done=false}if(!(state.wrap&1)||(((hold&255)<<8)+(hold>>8))%31){strm.msg="incorrect header check";state.mode=BAD;break}if((hold&15)!==Z_DEFLATED){strm.msg="unknown compression method";state.mode=BAD;break}hold>>>=4;bits-=4;len=(hold&15)+8;if(state.wbits===0){state.wbits=len}else if(len>state.wbits){strm.msg="invalid window size";state.mode=BAD;break}state.dmax=1<<len;strm.adler=state.check=1;state.mode=hold&512?DICTID:TYPE;hold=0;bits=0;break;case FLAGS:while(bits<16){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}state.flags=hold;if((state.flags&255)!==Z_DEFLATED){strm.msg="unknown compression method";state.mode=BAD;break}if(state.flags&57344){strm.msg="unknown header flags set";state.mode=BAD;break}if(state.head){state.head.text=hold>>8&1}if(state.flags&512){hbuf[0]=hold&255;hbuf[1]=hold>>>8&255;state.check=crc32(state.check,hbuf,2,0)}hold=0;bits=0;state.mode=TIME;case TIME:while(bits<32){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}if(state.head){state.head.time=hold}if(state.flags&512){hbuf[0]=hold&255;hbuf[1]=hold>>>8&255;hbuf[2]=hold>>>16&255;hbuf[3]=hold>>>24&255;state.check=crc32(state.check,hbuf,4,0)}hold=0;bits=0;state.mode=OS;case OS:while(bits<16){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}if(state.head){state.head.xflags=hold&255;state.head.os=hold>>8}if(state.flags&512){hbuf[0]=hold&255;hbuf[1]=hold>>>8&255;state.check=crc32(state.check,hbuf,2,0)}hold=0;bits=0;state.mode=EXLEN;case EXLEN:if(state.flags&1024){while(bits<16){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}state.length=hold;if(state.head){state.head.extra_len=hold}if(state.flags&512){hbuf[0]=hold&255;hbuf[1]=hold>>>8&255;state.check=crc32(state.check,hbuf,2,0)}hold=0;bits=0}else if(state.head){state.head.extra=null}state.mode=EXTRA;case EXTRA:if(state.flags&1024){copy=state.length;if(copy>have){copy=have}if(copy){if(state.head){len=state.head.extra_len-state.length;if(!state.head.extra){state.head.extra=new Array(state.head.extra_len)}utils.arraySet(state.head.extra,input,next,copy,len)}if(state.flags&512){state.check=crc32(state.check,input,copy,next)}have-=copy;next+=copy;state.length-=copy}if(state.length){break inf_leave}}state.length=0;state.mode=NAME;case NAME:if(state.flags&2048){if(have===0){break inf_leave}copy=0;do{len=input[next+copy++];if(state.head&&len&&state.length<65536){state.head.name+=String.fromCharCode(len)}}while(len&©<have);if(state.flags&512){state.check=crc32(state.check,input,copy,next)}have-=copy;next+=copy;if(len){break inf_leave}}else if(state.head){state.head.name=null}state.length=0;state.mode=COMMENT;case COMMENT:if(state.flags&4096){if(have===0){break inf_leave}copy=0;do{len=input[next+copy++];if(state.head&&len&&state.length<65536){state.head.comment+=String.fromCharCode(len)}}while(len&©<have);if(state.flags&512){state.check=crc32(state.check,input,copy,next)}have-=copy;next+=copy;if(len){break inf_leave}}else if(state.head){state.head.comment=null}state.mode=HCRC;case HCRC:if(state.flags&512){while(bits<16){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}if(hold!==(state.check&65535)){strm.msg="header crc mismatch";state.mode=BAD;break}hold=0;bits=0}if(state.head){state.head.hcrc=state.flags>>9&1;state.head.done=true}strm.adler=state.check=0;state.mode=TYPE;break;case DICTID:while(bits<32){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}strm.adler=state.check=ZSWAP32(hold);hold=0;bits=0;state.mode=DICT;case DICT:if(state.havedict===0){strm.next_out=put;strm.avail_out=left;strm.next_in=next;strm.avail_in=have;state.hold=hold;state.bits=bits;return Z_NEED_DICT}strm.adler=state.check=1;state.mode=TYPE;case TYPE:if(flush===Z_BLOCK||flush===Z_TREES){break inf_leave}case TYPEDO:if(state.last){hold>>>=bits&7;bits-=bits&7;state.mode=CHECK;break}while(bits<3){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}state.last=hold&1;hold>>>=1;bits-=1;switch(hold&3){case 0:state.mode=STORED;break;case 1:fixedtables(state);state.mode=LEN_;if(flush===Z_TREES){hold>>>=2;bits-=2;break inf_leave}break;case 2:state.mode=TABLE;break;case 3:strm.msg="invalid block type";state.mode=BAD}hold>>>=2;bits-=2;break;case STORED:hold>>>=bits&7;bits-=bits&7;while(bits<32){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}if((hold&65535)!==(hold>>>16^65535)){strm.msg="invalid stored block lengths";state.mode=BAD;break}state.length=hold&65535;hold=0;bits=0;state.mode=COPY_;if(flush===Z_TREES){break inf_leave}case COPY_:state.mode=COPY;case COPY:copy=state.length;if(copy){if(copy>have){copy=have}if(copy>left){copy=left}if(copy===0){break inf_leave}utils.arraySet(output,input,next,copy,put);have-=copy;next+=copy;left-=copy;put+=copy;state.length-=copy;break}state.mode=TYPE;break;case TABLE:while(bits<14){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}state.nlen=(hold&31)+257;hold>>>=5;bits-=5;state.ndist=(hold&31)+1;hold>>>=5;bits-=5;state.ncode=(hold&15)+4;hold>>>=4;bits-=4;if(state.nlen>286||state.ndist>30){strm.msg="too many length or distance symbols";state.mode=BAD;break}state.have=0;state.mode=LENLENS;case LENLENS:while(state.have<state.ncode){while(bits<3){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}state.lens[order[state.have++]]=hold&7;hold>>>=3;bits-=3}while(state.have<19){state.lens[order[state.have++]]=0}state.lencode=state.lendyn;state.lenbits=7;opts={bits:state.lenbits};ret=inflate_table(CODES,state.lens,0,19,state.lencode,0,state.work,opts);state.lenbits=opts.bits;if(ret){strm.msg="invalid code lengths set";state.mode=BAD;break}state.have=0;state.mode=CODELENS;case CODELENS:while(state.have<state.nlen+state.ndist){for(;;){here=state.lencode[hold&(1<<state.lenbits)-1];here_bits=here>>>24;here_op=here>>>16&255;here_val=here&65535;if(here_bits<=bits){break}if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}if(here_val<16){hold>>>=here_bits;bits-=here_bits;state.lens[state.have++]=here_val}else{if(here_val===16){n=here_bits+2;while(bits<n){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}hold>>>=here_bits;bits-=here_bits;if(state.have===0){strm.msg="invalid bit length repeat";state.mode=BAD;break}len=state.lens[state.have-1];copy=3+(hold&3);hold>>>=2;bits-=2}else if(here_val===17){n=here_bits+3;while(bits<n){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}hold>>>=here_bits;bits-=here_bits;len=0;copy=3+(hold&7);hold>>>=3;bits-=3}else{n=here_bits+7;while(bits<n){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}hold>>>=here_bits;bits-=here_bits;len=0;copy=11+(hold&127);hold>>>=7;bits-=7}if(state.have+copy>state.nlen+state.ndist){strm.msg="invalid bit length repeat";state.mode=BAD;break}while(copy--){state.lens[state.have++]=len}}}if(state.mode===BAD){break}if(state.lens[256]===0){strm.msg="invalid code -- missing end-of-block";state.mode=BAD;break}state.lenbits=9;opts={bits:state.lenbits};ret=inflate_table(LENS,state.lens,0,state.nlen,state.lencode,0,state.work,opts);state.lenbits=opts.bits;if(ret){strm.msg="invalid literal/lengths set";state.mode=BAD;break}state.distbits=6;state.distcode=state.distdyn;opts={bits:state.distbits};ret=inflate_table(DISTS,state.lens,state.nlen,state.ndist,state.distcode,0,state.work,opts);state.distbits=opts.bits;if(ret){strm.msg="invalid distances set";state.mode=BAD;break}state.mode=LEN_;if(flush===Z_TREES){break inf_leave}case LEN_:state.mode=LEN;case LEN:if(have>=6&&left>=258){strm.next_out=put;strm.avail_out=left;strm.next_in=next;strm.avail_in=have;state.hold=hold;state.bits=bits;inflate_fast(strm,_out);put=strm.next_out;output=strm.output;left=strm.avail_out;next=strm.next_in;input=strm.input;have=strm.avail_in;hold=state.hold;bits=state.bits;if(state.mode===TYPE){state.back=-1}break}state.back=0;for(;;){here=state.lencode[hold&(1<<state.lenbits)-1];here_bits=here>>>24;here_op=here>>>16&255;here_val=here&65535;if(here_bits<=bits){break}if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}if(here_op&&(here_op&240)===0){last_bits=here_bits;last_op=here_op;last_val=here_val;for(;;){here=state.lencode[last_val+((hold&(1<<last_bits+last_op)-1)>>last_bits)];here_bits=here>>>24;here_op=here>>>16&255;here_val=here&65535;if(last_bits+here_bits<=bits){break}if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}hold>>>=last_bits;bits-=last_bits;state.back+=last_bits}hold>>>=here_bits;bits-=here_bits;state.back+=here_bits;state.length=here_val;if(here_op===0){state.mode=LIT;break}if(here_op&32){state.back=-1;state.mode=TYPE;break}if(here_op&64){strm.msg="invalid literal/length code";state.mode=BAD;break}state.extra=here_op&15;state.mode=LENEXT;case LENEXT:if(state.extra){n=state.extra;while(bits<n){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}state.length+=hold&(1<<state.extra)-1;hold>>>=state.extra;bits-=state.extra;state.back+=state.extra}state.was=state.length;state.mode=DIST;case DIST:for(;;){here=state.distcode[hold&(1<<state.distbits)-1];here_bits=here>>>24;here_op=here>>>16&255;here_val=here&65535;if(here_bits<=bits){break}if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}if((here_op&240)===0){last_bits=here_bits;last_op=here_op;last_val=here_val;for(;;){here=state.distcode[last_val+((hold&(1<<last_bits+last_op)-1)>>last_bits)];here_bits=here>>>24;here_op=here>>>16&255;here_val=here&65535;if(last_bits+here_bits<=bits){break}if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}hold>>>=last_bits;bits-=last_bits;state.back+=last_bits}hold>>>=here_bits;bits-=here_bits;state.back+=here_bits;if(here_op&64){strm.msg="invalid distance code";state.mode=BAD;break}state.offset=here_val;state.extra=here_op&15;state.mode=DISTEXT;case DISTEXT:if(state.extra){n=state.extra;while(bits<n){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}state.offset+=hold&(1<<state.extra)-1;hold>>>=state.extra;bits-=state.extra;state.back+=state.extra}if(state.offset>state.dmax){strm.msg="invalid distance too far back";state.mode=BAD;break}state.mode=MATCH;case MATCH:if(left===0){break inf_leave}copy=_out-left;if(state.offset>copy){copy=state.offset-copy;if(copy>state.whave){if(state.sane){strm.msg="invalid distance too far back";state.mode=BAD;break}}if(copy>state.wnext){copy-=state.wnext;from=state.wsize-copy}else{from=state.wnext-copy}if(copy>state.length){copy=state.length}from_source=state.window}else{from_source=output;from=put-state.offset;copy=state.length}if(copy>left){copy=left}left-=copy;state.length-=copy;do{output[put++]=from_source[from++]}while(--copy);if(state.length===0){state.mode=LEN}break;case LIT:if(left===0){break inf_leave}output[put++]=state.length;left--;state.mode=LEN;break;case CHECK:if(state.wrap){while(bits<32){if(have===0){break inf_leave}have--;hold|=input[next++]<<bits;bits+=8}_out-=left;strm.total_out+=_out;state.total+=_out;if(_out){strm.adler=state.check=state.flags?crc32(state.check,output,_out,put-_out):adler32(state.check,output,_out,put-_out)}_out=left;if((state.flags?hold:ZSWAP32(hold))!==state.check){strm.msg="incorrect data check";state.mode=BAD;break}hold=0;bits=0}state.mode=LENGTH;case LENGTH:if(state.wrap&&state.flags){while(bits<32){if(have===0){break inf_leave}have--;hold+=input[next++]<<bits;bits+=8}if(hold!==(state.total&4294967295)){strm.msg="incorrect length check";state.mode=BAD;break}hold=0;bits=0}state.mode=DONE;case DONE:ret=Z_STREAM_END;break inf_leave;case BAD:ret=Z_DATA_ERROR;break inf_leave;case MEM:return Z_MEM_ERROR;case SYNC:default:return Z_STREAM_ERROR}}strm.next_out=put;strm.avail_out=left;strm.next_in=next;strm.avail_in=have;state.hold=hold;state.bits=bits;if(state.wsize||_out!==strm.avail_out&&state.mode<BAD&&(state.mode<CHECK||flush!==Z_FINISH)){if(updatewindow(strm,strm.output,strm.next_out,_out-strm.avail_out)){state.mode=MEM;return Z_MEM_ERROR}}_in-=strm.avail_in;_out-=strm.avail_out;strm.total_in+=_in;strm.total_out+=_out;state.total+=_out;if(state.wrap&&_out){strm.adler=state.check=state.flags?crc32(state.check,output,_out,strm.next_out-_out):adler32(state.check,output,_out,strm.next_out-_out)}strm.data_type=state.bits+(state.last?64:0)+(state.mode===TYPE?128:0)+(state.mode===LEN_||state.mode===COPY_?256:0);if((_in===0&&_out===0||flush===Z_FINISH)&&ret===Z_OK){ret=Z_BUF_ERROR}return ret}function inflateEnd(strm){if(!strm||!strm.state){return Z_STREAM_ERROR}var state=strm.state;if(state.window){state.window=null}strm.state=null;return Z_OK}function inflateGetHeader(strm,head){var state;if(!strm||!strm.state){return Z_STREAM_ERROR}state=strm.state;if((state.wrap&2)===0){return Z_STREAM_ERROR}state.head=head;head.done=false;return Z_OK}exports.inflateReset=inflateReset;exports.inflateReset2=inflateReset2;exports.inflateResetKeep=inflateResetKeep;exports.inflateInit=inflateInit;exports.inflateInit2=inflateInit2;exports.inflate=inflate;exports.inflateEnd=inflateEnd;exports.inflateGetHeader=inflateGetHeader; +exports.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":27,"./adler32":29,"./crc32":31,"./inffast":34,"./inftrees":36}],36:[function(_dereq_,module,exports){"use strict";var utils=_dereq_("../utils/common");var MAXBITS=15;var ENOUGH_LENS=852;var ENOUGH_DISTS=592;var CODES=0;var LENS=1;var DISTS=2;var lbase=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0];var lext=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78];var dbase=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0];var dext=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];module.exports=function inflate_table(type,lens,lens_index,codes,table,table_index,work,opts){var bits=opts.bits;var len=0;var sym=0;var min=0,max=0;var root=0;var curr=0;var drop=0;var left=0;var used=0;var huff=0;var incr;var fill;var low;var mask;var next;var base=null;var base_index=0;var end;var count=new utils.Buf16(MAXBITS+1);var offs=new utils.Buf16(MAXBITS+1);var extra=null;var extra_index=0;var here_bits,here_op,here_val;for(len=0;len<=MAXBITS;len++){count[len]=0}for(sym=0;sym<codes;sym++){count[lens[lens_index+sym]]++}root=bits;for(max=MAXBITS;max>=1;max--){if(count[max]!==0){break}}if(root>max){root=max}if(max===0){table[table_index++]=1<<24|64<<16|0;table[table_index++]=1<<24|64<<16|0;opts.bits=1;return 0}for(min=1;min<max;min++){if(count[min]!==0){break}}if(root<min){root=min}left=1;for(len=1;len<=MAXBITS;len++){left<<=1;left-=count[len];if(left<0){return-1}}if(left>0&&(type===CODES||max!==1)){return-1}offs[1]=0;for(len=1;len<MAXBITS;len++){offs[len+1]=offs[len]+count[len]}for(sym=0;sym<codes;sym++){if(lens[lens_index+sym]!==0){work[offs[lens[lens_index+sym]]++]=sym}}if(type===CODES){base=extra=work;end=19}else if(type===LENS){base=lbase;base_index-=257;extra=lext;extra_index-=257;end=256}else{base=dbase;extra=dext;end=-1}huff=0;sym=0;len=min;next=table_index;curr=root;drop=0;low=-1;used=1<<root;mask=used-1;if(type===LENS&&used>ENOUGH_LENS||type===DISTS&&used>ENOUGH_DISTS){return 1}var i=0;for(;;){i++;here_bits=len-drop;if(work[sym]<end){here_op=0;here_val=work[sym]}else if(work[sym]>end){here_op=extra[extra_index+work[sym]];here_val=base[base_index+work[sym]]}else{here_op=32+64;here_val=0}incr=1<<len-drop;fill=1<<curr;min=fill;do{fill-=incr;table[next+(huff>>drop)+fill]=here_bits<<24|here_op<<16|here_val|0}while(fill!==0);incr=1<<len-1;while(huff&incr){incr>>=1}if(incr!==0){huff&=incr-1;huff+=incr}else{huff=0}sym++;if(--count[len]===0){if(len===max){break}len=lens[lens_index+work[sym]]}if(len>root&&(huff&mask)!==low){if(drop===0){drop=root}next+=min;curr=len-drop;left=1<<curr;while(curr+drop<max){left-=count[curr+drop];if(left<=0){break}curr++;left<<=1}used+=1<<curr;if(type===LENS&&used>ENOUGH_LENS||type===DISTS&&used>ENOUGH_DISTS){return 1}low=huff&mask;table[low]=root<<24|curr<<16|next-table_index|0}}if(huff!==0){table[next+huff]=len-drop<<24|64<<16|0}opts.bits=root;return 0}},{"../utils/common":27}],37:[function(_dereq_,module,exports){"use strict";module.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],38:[function(_dereq_,module,exports){"use strict";var utils=_dereq_("../utils/common");var Z_FIXED=4;var Z_BINARY=0;var Z_TEXT=1;var Z_UNKNOWN=2;function zero(buf){var len=buf.length;while(--len>=0){buf[len]=0}}var STORED_BLOCK=0;var STATIC_TREES=1;var DYN_TREES=2;var MIN_MATCH=3;var MAX_MATCH=258;var LENGTH_CODES=29;var LITERALS=256;var L_CODES=LITERALS+1+LENGTH_CODES;var D_CODES=30;var BL_CODES=19;var HEAP_SIZE=2*L_CODES+1;var MAX_BITS=15;var Buf_size=16;var MAX_BL_BITS=7;var END_BLOCK=256;var REP_3_6=16;var REPZ_3_10=17;var REPZ_11_138=18;var extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];var extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];var extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];var bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];var DIST_CODE_LEN=512;var static_ltree=new Array((L_CODES+2)*2);zero(static_ltree);var static_dtree=new Array(D_CODES*2);zero(static_dtree);var _dist_code=new Array(DIST_CODE_LEN);zero(_dist_code);var _length_code=new Array(MAX_MATCH-MIN_MATCH+1);zero(_length_code);var base_length=new Array(LENGTH_CODES);zero(base_length);var base_dist=new Array(D_CODES);zero(base_dist);var StaticTreeDesc=function(static_tree,extra_bits,extra_base,elems,max_length){this.static_tree=static_tree;this.extra_bits=extra_bits;this.extra_base=extra_base;this.elems=elems;this.max_length=max_length;this.has_stree=static_tree&&static_tree.length};var static_l_desc;var static_d_desc;var static_bl_desc;var TreeDesc=function(dyn_tree,stat_desc){this.dyn_tree=dyn_tree;this.max_code=0;this.stat_desc=stat_desc};function d_code(dist){return dist<256?_dist_code[dist]:_dist_code[256+(dist>>>7)]}function put_short(s,w){s.pending_buf[s.pending++]=w&255;s.pending_buf[s.pending++]=w>>>8&255}function send_bits(s,value,length){if(s.bi_valid>Buf_size-length){s.bi_buf|=value<<s.bi_valid&65535;put_short(s,s.bi_buf);s.bi_buf=value>>Buf_size-s.bi_valid;s.bi_valid+=length-Buf_size}else{s.bi_buf|=value<<s.bi_valid&65535;s.bi_valid+=length}}function send_code(s,c,tree){send_bits(s,tree[c*2],tree[c*2+1])}function bi_reverse(code,len){var res=0;do{res|=code&1;code>>>=1;res<<=1}while(--len>0);return res>>>1}function bi_flush(s){if(s.bi_valid===16){put_short(s,s.bi_buf);s.bi_buf=0;s.bi_valid=0}else if(s.bi_valid>=8){s.pending_buf[s.pending++]=s.bi_buf&255;s.bi_buf>>=8;s.bi_valid-=8}}function gen_bitlen(s,desc){var tree=desc.dyn_tree;var max_code=desc.max_code;var stree=desc.stat_desc.static_tree;var has_stree=desc.stat_desc.has_stree;var extra=desc.stat_desc.extra_bits;var base=desc.stat_desc.extra_base;var max_length=desc.stat_desc.max_length;var h;var n,m;var bits;var xbits;var f;var overflow=0;for(bits=0;bits<=MAX_BITS;bits++){s.bl_count[bits]=0}tree[s.heap[s.heap_max]*2+1]=0;for(h=s.heap_max+1;h<HEAP_SIZE;h++){n=s.heap[h];bits=tree[tree[n*2+1]*2+1]+1;if(bits>max_length){bits=max_length;overflow++}tree[n*2+1]=bits;if(n>max_code){continue}s.bl_count[bits]++;xbits=0;if(n>=base){xbits=extra[n-base]}f=tree[n*2];s.opt_len+=f*(bits+xbits);if(has_stree){s.static_len+=f*(stree[n*2+1]+xbits)}}if(overflow===0){return}do{bits=max_length-1;while(s.bl_count[bits]===0){bits--}s.bl_count[bits]--;s.bl_count[bits+1]+=2;s.bl_count[max_length]--;overflow-=2}while(overflow>0);for(bits=max_length;bits!==0;bits--){n=s.bl_count[bits];while(n!==0){m=s.heap[--h];if(m>max_code){continue}if(tree[m*2+1]!==bits){s.opt_len+=(bits-tree[m*2+1])*tree[m*2];tree[m*2+1]=bits}n--}}}function gen_codes(tree,max_code,bl_count){var next_code=new Array(MAX_BITS+1);var code=0;var bits;var n;for(bits=1;bits<=MAX_BITS;bits++){next_code[bits]=code=code+bl_count[bits-1]<<1}for(n=0;n<=max_code;n++){var len=tree[n*2+1];if(len===0){continue}tree[n*2]=bi_reverse(next_code[len]++,len)}}function tr_static_init(){var n;var bits;var length;var code;var dist;var bl_count=new Array(MAX_BITS+1);length=0;for(code=0;code<LENGTH_CODES-1;code++){base_length[code]=length;for(n=0;n<1<<extra_lbits[code];n++){_length_code[length++]=code}}_length_code[length-1]=code;dist=0;for(code=0;code<16;code++){base_dist[code]=dist;for(n=0;n<1<<extra_dbits[code];n++){_dist_code[dist++]=code}}dist>>=7;for(;code<D_CODES;code++){base_dist[code]=dist<<7;for(n=0;n<1<<extra_dbits[code]-7;n++){_dist_code[256+dist++]=code}}for(bits=0;bits<=MAX_BITS;bits++){bl_count[bits]=0}n=0;while(n<=143){static_ltree[n*2+1]=8;n++;bl_count[8]++}while(n<=255){static_ltree[n*2+1]=9;n++;bl_count[9]++}while(n<=279){static_ltree[n*2+1]=7;n++;bl_count[7]++}while(n<=287){static_ltree[n*2+1]=8;n++;bl_count[8]++}gen_codes(static_ltree,L_CODES+1,bl_count);for(n=0;n<D_CODES;n++){static_dtree[n*2+1]=5;static_dtree[n*2]=bi_reverse(n,5)}static_l_desc=new StaticTreeDesc(static_ltree,extra_lbits,LITERALS+1,L_CODES,MAX_BITS);static_d_desc=new StaticTreeDesc(static_dtree,extra_dbits,0,D_CODES,MAX_BITS);static_bl_desc=new StaticTreeDesc(new Array(0),extra_blbits,0,BL_CODES,MAX_BL_BITS)}function init_block(s){var n;for(n=0;n<L_CODES;n++){s.dyn_ltree[n*2]=0}for(n=0;n<D_CODES;n++){s.dyn_dtree[n*2]=0}for(n=0;n<BL_CODES;n++){s.bl_tree[n*2]=0}s.dyn_ltree[END_BLOCK*2]=1;s.opt_len=s.static_len=0;s.last_lit=s.matches=0}function bi_windup(s){if(s.bi_valid>8){put_short(s,s.bi_buf)}else if(s.bi_valid>0){s.pending_buf[s.pending++]=s.bi_buf}s.bi_buf=0;s.bi_valid=0}function copy_block(s,buf,len,header){bi_windup(s);if(header){put_short(s,len);put_short(s,~len)}utils.arraySet(s.pending_buf,s.window,buf,len,s.pending);s.pending+=len}function smaller(tree,n,m,depth){var _n2=n*2;var _m2=m*2;return tree[_n2]<tree[_m2]||tree[_n2]===tree[_m2]&&depth[n]<=depth[m]}function pqdownheap(s,tree,k){var v=s.heap[k];var j=k<<1;while(j<=s.heap_len){if(j<s.heap_len&&smaller(tree,s.heap[j+1],s.heap[j],s.depth)){j++}if(smaller(tree,v,s.heap[j],s.depth)){break}s.heap[k]=s.heap[j];k=j;j<<=1}s.heap[k]=v}function compress_block(s,ltree,dtree){var dist;var lc;var lx=0;var code;var extra;if(s.last_lit!==0){do{dist=s.pending_buf[s.d_buf+lx*2]<<8|s.pending_buf[s.d_buf+lx*2+1];lc=s.pending_buf[s.l_buf+lx];lx++;if(dist===0){send_code(s,lc,ltree)}else{code=_length_code[lc];send_code(s,code+LITERALS+1,ltree);extra=extra_lbits[code];if(extra!==0){lc-=base_length[code];send_bits(s,lc,extra)}dist--;code=d_code(dist);send_code(s,code,dtree);extra=extra_dbits[code];if(extra!==0){dist-=base_dist[code];send_bits(s,dist,extra)}}}while(lx<s.last_lit)}send_code(s,END_BLOCK,ltree)}function build_tree(s,desc){var tree=desc.dyn_tree;var stree=desc.stat_desc.static_tree;var has_stree=desc.stat_desc.has_stree;var elems=desc.stat_desc.elems;var n,m;var max_code=-1;var node;s.heap_len=0;s.heap_max=HEAP_SIZE;for(n=0;n<elems;n++){if(tree[n*2]!==0){s.heap[++s.heap_len]=max_code=n;s.depth[n]=0}else{tree[n*2+1]=0}}while(s.heap_len<2){node=s.heap[++s.heap_len]=max_code<2?++max_code:0;tree[node*2]=1;s.depth[node]=0;s.opt_len--;if(has_stree){s.static_len-=stree[node*2+1]}}desc.max_code=max_code;for(n=s.heap_len>>1;n>=1;n--){pqdownheap(s,tree,n)}node=elems;do{n=s.heap[1];s.heap[1]=s.heap[s.heap_len--];pqdownheap(s,tree,1);m=s.heap[1];s.heap[--s.heap_max]=n;s.heap[--s.heap_max]=m;tree[node*2]=tree[n*2]+tree[m*2];s.depth[node]=(s.depth[n]>=s.depth[m]?s.depth[n]:s.depth[m])+1;tree[n*2+1]=tree[m*2+1]=node;s.heap[1]=node++;pqdownheap(s,tree,1)}while(s.heap_len>=2);s.heap[--s.heap_max]=s.heap[1];gen_bitlen(s,desc);gen_codes(tree,max_code,s.bl_count)}function scan_tree(s,tree,max_code){var n;var prevlen=-1;var curlen;var nextlen=tree[0*2+1];var count=0;var max_count=7;var min_count=4;if(nextlen===0){max_count=138;min_count=3}tree[(max_code+1)*2+1]=65535;for(n=0;n<=max_code;n++){curlen=nextlen;nextlen=tree[(n+1)*2+1];if(++count<max_count&&curlen===nextlen){continue}else if(count<min_count){s.bl_tree[curlen*2]+=count}else if(curlen!==0){if(curlen!==prevlen){s.bl_tree[curlen*2]++}s.bl_tree[REP_3_6*2]++}else if(count<=10){s.bl_tree[REPZ_3_10*2]++}else{s.bl_tree[REPZ_11_138*2]++}count=0;prevlen=curlen;if(nextlen===0){max_count=138;min_count=3}else if(curlen===nextlen){max_count=6;min_count=3}else{max_count=7;min_count=4}}}function send_tree(s,tree,max_code){var n;var prevlen=-1;var curlen;var nextlen=tree[0*2+1];var count=0;var max_count=7;var min_count=4;if(nextlen===0){max_count=138;min_count=3}for(n=0;n<=max_code;n++){curlen=nextlen;nextlen=tree[(n+1)*2+1];if(++count<max_count&&curlen===nextlen){continue}else if(count<min_count){do{send_code(s,curlen,s.bl_tree)}while(--count!==0)}else if(curlen!==0){if(curlen!==prevlen){send_code(s,curlen,s.bl_tree);count--}send_code(s,REP_3_6,s.bl_tree);send_bits(s,count-3,2)}else if(count<=10){send_code(s,REPZ_3_10,s.bl_tree);send_bits(s,count-3,3)}else{send_code(s,REPZ_11_138,s.bl_tree);send_bits(s,count-11,7)}count=0;prevlen=curlen;if(nextlen===0){max_count=138;min_count=3}else if(curlen===nextlen){max_count=6;min_count=3}else{max_count=7;min_count=4}}}function build_bl_tree(s){var max_blindex;scan_tree(s,s.dyn_ltree,s.l_desc.max_code);scan_tree(s,s.dyn_dtree,s.d_desc.max_code);build_tree(s,s.bl_desc);for(max_blindex=BL_CODES-1;max_blindex>=3;max_blindex--){if(s.bl_tree[bl_order[max_blindex]*2+1]!==0){break}}s.opt_len+=3*(max_blindex+1)+5+5+4;return max_blindex}function send_all_trees(s,lcodes,dcodes,blcodes){var rank;send_bits(s,lcodes-257,5);send_bits(s,dcodes-1,5);send_bits(s,blcodes-4,4);for(rank=0;rank<blcodes;rank++){send_bits(s,s.bl_tree[bl_order[rank]*2+1],3)}send_tree(s,s.dyn_ltree,lcodes-1);send_tree(s,s.dyn_dtree,dcodes-1)}function detect_data_type(s){var black_mask=4093624447;var n;for(n=0;n<=31;n++,black_mask>>>=1){if(black_mask&1&&s.dyn_ltree[n*2]!==0){return Z_BINARY}}if(s.dyn_ltree[9*2]!==0||s.dyn_ltree[10*2]!==0||s.dyn_ltree[13*2]!==0){return Z_TEXT}for(n=32;n<LITERALS;n++){if(s.dyn_ltree[n*2]!==0){return Z_TEXT}}return Z_BINARY}var static_init_done=false;function _tr_init(s){if(!static_init_done){tr_static_init();static_init_done=true}s.l_desc=new TreeDesc(s.dyn_ltree,static_l_desc);s.d_desc=new TreeDesc(s.dyn_dtree,static_d_desc);s.bl_desc=new TreeDesc(s.bl_tree,static_bl_desc);s.bi_buf=0;s.bi_valid=0;init_block(s)}function _tr_stored_block(s,buf,stored_len,last){send_bits(s,(STORED_BLOCK<<1)+(last?1:0),3);copy_block(s,buf,stored_len,true)}function _tr_align(s){send_bits(s,STATIC_TREES<<1,3);send_code(s,END_BLOCK,static_ltree);bi_flush(s)}function _tr_flush_block(s,buf,stored_len,last){var opt_lenb,static_lenb;var max_blindex=0;if(s.level>0){if(s.strm.data_type===Z_UNKNOWN){s.strm.data_type=detect_data_type(s)}build_tree(s,s.l_desc);build_tree(s,s.d_desc);max_blindex=build_bl_tree(s);opt_lenb=s.opt_len+3+7>>>3;static_lenb=s.static_len+3+7>>>3;if(static_lenb<=opt_lenb){opt_lenb=static_lenb}}else{opt_lenb=static_lenb=stored_len+5}if(stored_len+4<=opt_lenb&&buf!==-1){_tr_stored_block(s,buf,stored_len,last)}else if(s.strategy===Z_FIXED||static_lenb===opt_lenb){send_bits(s,(STATIC_TREES<<1)+(last?1:0),3);compress_block(s,static_ltree,static_dtree)}else{send_bits(s,(DYN_TREES<<1)+(last?1:0),3);send_all_trees(s,s.l_desc.max_code+1,s.d_desc.max_code+1,max_blindex+1);compress_block(s,s.dyn_ltree,s.dyn_dtree)}init_block(s);if(last){bi_windup(s)}}function _tr_tally(s,dist,lc){s.pending_buf[s.d_buf+s.last_lit*2]=dist>>>8&255;s.pending_buf[s.d_buf+s.last_lit*2+1]=dist&255;s.pending_buf[s.l_buf+s.last_lit]=lc&255;s.last_lit++;if(dist===0){s.dyn_ltree[lc*2]++}else{s.matches++;dist--;s.dyn_ltree[(_length_code[lc]+LITERALS+1)*2]++;s.dyn_dtree[d_code(dist)*2]++}return s.last_lit===s.lit_bufsize-1}exports._tr_init=_tr_init;exports._tr_stored_block=_tr_stored_block;exports._tr_flush_block=_tr_flush_block;exports._tr_tally=_tr_tally;exports._tr_align=_tr_align},{"../utils/common":27}],39:[function(_dereq_,module,exports){"use strict";function ZStream(){this.input=null;this.next_in=0;this.avail_in=0;this.total_in=0;this.output=null;this.next_out=0;this.avail_out=0;this.total_out=0;this.msg="";this.state=null;this.data_type=2;this.adler=0}module.exports=ZStream},{}]},{},[9])(9)});var XLSX={};(function make_xlsx(XLSX){XLSX.version="0.8.0";var current_codepage=1200,current_cptable;if(typeof module!=="undefined"&&typeof require!=="undefined"){if(typeof cptable==="undefined")cptable=require("./dist/cpexcel");current_cptable=cptable[current_codepage]}function reset_cp(){set_cp(1200)}var set_cp=function(cp){current_codepage=cp};function char_codes(data){var o=[];for(var i=0,len=data.length;i<len;++i)o[i]=data.charCodeAt(i);return o}var debom_xml=function(data){return data};var _getchar=function _gc1(x){return String.fromCharCode(x)};if(typeof cptable!=="undefined"){set_cp=function(cp){current_codepage=cp;current_cptable=cptable[cp]};debom_xml=function(data){if(data.charCodeAt(0)===255&&data.charCodeAt(1)===254){return cptable.utils.decode(1200,char_codes(data.substr(2)))}return data};_getchar=function _gc2(x){if(current_codepage===1200)return String.fromCharCode(x);return cptable.utils.decode(current_codepage,[x&255,x>>8])[0]}}var Base64=function make_b64(){var map="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";return{encode:function(input,utf8){var o="";var c1,c2,c3,e1,e2,e3,e4;for(var i=0;i<input.length;){c1=input.charCodeAt(i++);c2=input.charCodeAt(i++);c3=input.charCodeAt(i++);e1=c1>>2;e2=(c1&3)<<4|c2>>4;e3=(c2&15)<<2|c3>>6;e4=c3&63;if(isNaN(c2)){e3=e4=64}else if(isNaN(c3)){e4=64}o+=map.charAt(e1)+map.charAt(e2)+map.charAt(e3)+map.charAt(e4)}return o},decode:function b64_decode(input,utf8){var o="";var c1,c2,c3;var e1,e2,e3,e4;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var i=0;i<input.length;){e1=map.indexOf(input.charAt(i++));e2=map.indexOf(input.charAt(i++));e3=map.indexOf(input.charAt(i++));e4=map.indexOf(input.charAt(i++));c1=e1<<2|e2>>4;c2=(e2&15)<<4|e3>>2;c3=(e3&3)<<6|e4;o+=String.fromCharCode(c1);if(e3!=64){o+=String.fromCharCode(c2)}if(e4!=64){o+=String.fromCharCode(c3)}}return o}}}();var has_buf=typeof Buffer!=="undefined";function new_raw_buf(len){return new(has_buf?Buffer:Array)(len)}function s2a(s){if(has_buf)return new Buffer(s,"binary");return s.split("").map(function(x){return x.charCodeAt(0)&255})}var bconcat=function(bufs){return[].concat.apply([],bufs)};var chr0=/\u0000/g,chr1=/[\u0001-\u0006]/;var SSF={};var make_ssf=function make_ssf(SSF){SSF.version="0.8.1";function _strrev(x){var o="",i=x.length-1;while(i>=0)o+=x.charAt(i--);return o}function fill(c,l){var o="";while(o.length<l)o+=c;return o}function pad0(v,d){var t=""+v;return t.length>=d?t:fill("0",d-t.length)+t}function pad_(v,d){var t=""+v;return t.length>=d?t:fill(" ",d-t.length)+t}function rpad_(v,d){var t=""+v;return t.length>=d?t:t+fill(" ",d-t.length)}function pad0r1(v,d){var t=""+Math.round(v);return t.length>=d?t:fill("0",d-t.length)+t}function pad0r2(v,d){var t=""+v;return t.length>=d?t:fill("0",d-t.length)+t}var p2_32=Math.pow(2,32);function pad0r(v,d){if(v>p2_32||v<-p2_32)return pad0r1(v,d);var i=Math.round(v);return pad0r2(i,d)}function isgeneral(s,i){return s.length>=7+i&&(s.charCodeAt(i)|32)===103&&(s.charCodeAt(i+1)|32)===101&&(s.charCodeAt(i+2)|32)===110&&(s.charCodeAt(i+3)|32)===101&&(s.charCodeAt(i+4)|32)===114&&(s.charCodeAt(i+5)|32)===97&&(s.charCodeAt(i+6)|32)===108}var opts_fmt=[["date1904",0],["output",""],["WTF",false]];function fixopts(o){for(var y=0;y!=opts_fmt.length;++y)if(o[opts_fmt[y][0]]===undefined)o[opts_fmt[y][0]]=opts_fmt[y][1]}SSF.opts=opts_fmt;var table_fmt={0:"General",1:"0",2:"0.00",3:"#,##0",4:"#,##0.00",9:"0%",10:"0.00%",11:"0.00E+00",12:"# ?/?",13:"# ??/??",14:"m/d/yy",15:"d-mmm-yy",16:"d-mmm",17:"mmm-yy",18:"h:mm AM/PM",19:"h:mm:ss AM/PM",20:"h:mm",21:"h:mm:ss",22:"m/d/yy h:mm",37:"#,##0 ;(#,##0)",38:"#,##0 ;[Red](#,##0)",39:"#,##0.00;(#,##0.00)",40:"#,##0.00;[Red](#,##0.00)",45:"mm:ss",46:"[h]:mm:ss",47:"mmss.0",48:"##0.0E+0",49:"@",56:'"上åˆ/ä¸‹åˆ "hh"時"mm"分"ss"秒 "',65535:"General"};var days=[["Sun","Sunday"],["Mon","Monday"],["Tue","Tuesday"],["Wed","Wednesday"],["Thu","Thursday"],["Fri","Friday"],["Sat","Saturday"]];var months=[["J","Jan","January"],["F","Feb","February"],["M","Mar","March"],["A","Apr","April"],["M","May","May"],["J","Jun","June"],["J","Jul","July"],["A","Aug","August"],["S","Sep","September"],["O","Oct","October"],["N","Nov","November"],["D","Dec","December"]];function frac(x,D,mixed){var sgn=x<0?-1:1;var B=x*sgn;var P_2=0,P_1=1,P=0;var Q_2=1,Q_1=0,Q=0;var A=Math.floor(B);while(Q_1<D){A=Math.floor(B);P=A*P_1+P_2;Q=A*Q_1+Q_2;if(B-A<5e-10)break;B=1/(B-A);P_2=P_1;P_1=P;Q_2=Q_1;Q_1=Q}if(Q>D){Q=Q_1;P=P_1}if(Q>D){Q=Q_2;P=P_2}if(!mixed)return[0,sgn*P,Q];if(Q===0)throw"Unexpected state: "+P+" "+P_1+" "+P_2+" "+Q+" "+Q_1+" "+Q_2;var q=Math.floor(sgn*P/Q);return[q,sgn*P-q*Q,Q]}function general_fmt_int(v,opts){return""+v}SSF._general_int=general_fmt_int;var general_fmt_num=function make_general_fmt_num(){var gnr1=/\.(\d*[1-9])0+$/,gnr2=/\.0*$/,gnr4=/\.(\d*[1-9])0+/,gnr5=/\.0*[Ee]/,gnr6=/(E[+-])(\d)$/;function gfn2(v){var w=v<0?12:11;var o=gfn5(v.toFixed(12));if(o.length<=w)return o;o=v.toPrecision(10);if(o.length<=w)return o;return v.toExponential(5)}function gfn3(v){var o=v.toFixed(11).replace(gnr1,".$1");if(o.length>(v<0?12:11))o=v.toPrecision(6);return o}function gfn4(o){for(var i=0;i!=o.length;++i)if((o.charCodeAt(i)|32)===101)return o.replace(gnr4,".$1").replace(gnr5,"E").replace("e","E").replace(gnr6,"$10$2");return o}function gfn5(o){return o.indexOf(".")>-1?o.replace(gnr2,"").replace(gnr1,".$1"):o}return function general_fmt_num(v,opts){var V=Math.floor(Math.log(Math.abs(v))*Math.LOG10E),o;if(V>=-4&&V<=-1)o=v.toPrecision(10+V);else if(Math.abs(V)<=9)o=gfn2(v);else if(V===10)o=v.toFixed(10).substr(0,12);else o=gfn3(v);return gfn5(gfn4(o))}}();SSF._general_num=general_fmt_num;function general_fmt(v,opts){switch(typeof v){case"string":return v;case"boolean":return v?"TRUE":"FALSE";case"number":return(v|0)===v?general_fmt_int(v,opts):general_fmt_num(v,opts)}throw new Error("unsupported value in General format: "+v)}SSF._general=general_fmt;function fix_hijri(date,o){return 0}function parse_date_code(v,opts,b2){if(v>2958465||v<0)return null;var date=v|0,time=Math.floor(86400*(v-date)),dow=0;var dout=[];var out={D:date,T:time,u:86400*(v-date)-time,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(out.u)<1e-6)out.u=0;fixopts(opts!=null?opts:opts=[]);if(opts.date1904)date+=1462;if(out.u>.999){out.u=0;if(++time==86400){time=0;++date}}if(date===60){dout=b2?[1317,10,29]:[1900,2,29];dow=3}else if(date===0){dout=b2?[1317,8,29]:[1900,1,0];dow=6}else{if(date>60)--date;var d=new Date(1900,0,1);d.setDate(d.getDate()+date-1);dout=[d.getFullYear(),d.getMonth()+1,d.getDate()];dow=d.getDay();if(date<60)dow=(dow+6)%7;if(b2)dow=fix_hijri(d,dout)}out.y=dout[0];out.m=dout[1];out.d=dout[2];out.S=time%60;time=Math.floor(time/60);out.M=time%60;time=Math.floor(time/60);out.H=time;out.q=dow;return out}SSF.parse_date_code=parse_date_code;function write_date(type,fmt,val,ss0){var o="",ss=0,tt=0,y=val.y,out,outl=0;switch(type){case 98:y=val.y+543;case 121:switch(fmt.length){case 1:case 2:out=y%100;outl=2;break;default:out=y%1e4;outl=4;break}break;case 109:switch(fmt.length){case 1:case 2:out=val.m;outl=fmt.length;break;case 3:return months[val.m-1][1];case 5:return months[val.m-1][0];default:return months[val.m-1][2]}break;case 100:switch(fmt.length){case 1:case 2:out=val.d;outl=fmt.length;break;case 3:return days[val.q][0];default:return days[val.q][1]}break;case 104:switch(fmt.length){case 1:case 2:out=1+(val.H+11)%12;outl=fmt.length;break;default:throw"bad hour format: "+fmt}break;case 72:switch(fmt.length){case 1:case 2:out=val.H;outl=fmt.length;break;default:throw"bad hour format: "+fmt}break;case 77:switch(fmt.length){case 1:case 2:out=val.M;outl=fmt.length;break;default:throw"bad minute format: "+fmt}break;case 115:if(val.u===0)switch(fmt){case"s":case"ss":return pad0(val.S,fmt.length);case".0":case".00":case".000":}switch(fmt){case"s":case"ss":case".0":case".00":case".000":if(ss0>=2)tt=ss0===3?1e3:100;else tt=ss0===1?10:1;ss=Math.round(tt*(val.S+val.u));if(ss>=60*tt)ss=0;if(fmt==="s")return ss===0?"0":""+ss/tt;o=pad0(ss,2+ss0);if(fmt==="ss")return o.substr(0,2);return"."+o.substr(2,fmt.length-1);default:throw"bad second format: "+fmt}case 90:switch(fmt){case"[h]":case"[hh]":out=val.D*24+val.H;break;case"[m]":case"[mm]":out=(val.D*24+val.H)*60+val.M;break;case"[s]":case"[ss]":out=((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u);break;default:throw"bad abstime format: "+fmt}outl=fmt.length===3?1:2;break;case 101:out=y;outl=1}if(outl>0)return pad0(out,outl);else return""}function commaify(s){if(s.length<=3)return s;var j=s.length%3,o=s.substr(0,j);for(;j!=s.length;j+=3)o+=(o.length>0?",":"")+s.substr(j,3);return o}var write_num=function make_write_num(){var pct1=/%/g;function write_num_pct(type,fmt,val){var sfmt=fmt.replace(pct1,""),mul=fmt.length-sfmt.length;return write_num(type,sfmt,val*Math.pow(10,2*mul))+fill("%",mul)}function write_num_cm(type,fmt,val){var idx=fmt.length-1;while(fmt.charCodeAt(idx-1)===44)--idx;return write_num(type,fmt.substr(0,idx),val/Math.pow(10,3*(fmt.length-idx)))}function write_num_exp(fmt,val){var o;var idx=fmt.indexOf("E")-fmt.indexOf(".")-1;if(fmt.match(/^#+0.0E\+0$/)){var period=fmt.indexOf(".");if(period===-1)period=fmt.indexOf("E");var ee=Math.floor(Math.log(Math.abs(val))*Math.LOG10E)%period;if(ee<0)ee+=period;o=(val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);if(o.indexOf("e")===-1){var fakee=Math.floor(Math.log(Math.abs(val))*Math.LOG10E);if(o.indexOf(".")===-1)o=o[0]+"."+o.substr(1)+"E+"+(fakee-o.length+ee);else o+="E+"+(fakee-ee);while(o.substr(0,2)==="0."){o=o[0]+o.substr(2,period)+"."+o.substr(2+period);o=o.replace(/^0+([1-9])/,"$1").replace(/^0+\./,"0.")}o=o.replace(/\+-/,"-")}o=o.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function($$,$1,$2,$3){return $1+$2+$3.substr(0,(period+ee)%period)+"."+$3.substr(ee)+"E"})}else o=val.toExponential(idx);if(fmt.match(/E\+00$/)&&o.match(/e[+-]\d$/))o=o.substr(0,o.length-1)+"0"+o[o.length-1];if(fmt.match(/E\-/)&&o.match(/e\+/))o=o.replace(/e\+/,"e");return o.replace("e","E")}var frac1=/# (\?+)( ?)\/( ?)(\d+)/;function write_num_f1(r,aval,sign){var den=parseInt(r[4]),rr=Math.round(aval*den),base=Math.floor(rr/den);var myn=rr-base*den,myd=den;return sign+(base===0?"":""+base)+" "+(myn===0?fill(" ",r[1].length+1+r[4].length):pad_(myn,r[1].length)+r[2]+"/"+r[3]+pad0(myd,r[4].length))}function write_num_f2(r,aval,sign){return sign+(aval===0?"":""+aval)+fill(" ",r[1].length+2+r[4].length)}var dec1=/^#*0*\.(0+)/;var closeparen=/\).*[0#]/;var phone=/\(###\) ###\\?-####/;function hashq(str){var o="",cc;for(var i=0;i!=str.length;++i)switch(cc=str.charCodeAt(i)){case 35:break;case 63:o+=" ";break;case 48:o+="0";break;default:o+=String.fromCharCode(cc)}return o}function rnd(val,d){var dd=Math.pow(10,d);return""+Math.round(val*dd)/dd}function dec(val,d){return Math.round((val-Math.floor(val))*Math.pow(10,d))}function flr(val){if(val<2147483647&&val>-2147483648)return""+(val>=0?val|0:val-1|0);return""+Math.floor(val)}function write_num_flt(type,fmt,val){if(type.charCodeAt(0)===40&&!fmt.match(closeparen)){var ffmt=fmt.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");if(val>=0)return write_num_flt("n",ffmt,val);return"("+write_num_flt("n",ffmt,-val)+")"}if(fmt.charCodeAt(fmt.length-1)===44)return write_num_cm(type,fmt,val);if(fmt.indexOf("%")!==-1)return write_num_pct(type,fmt,val);if(fmt.indexOf("E")!==-1)return write_num_exp(fmt,val);if(fmt.charCodeAt(0)===36)return"$"+write_num_flt(type,fmt.substr(fmt[1]==" "?2:1),val);var o,oo;var r,ri,ff,aval=Math.abs(val),sign=val<0?"-":"";if(fmt.match(/^00+$/))return sign+pad0r(aval,fmt.length);if(fmt.match(/^[#?]+$/)){o=pad0r(val,0);if(o==="0")o="";return o.length>fmt.length?o:hashq(fmt.substr(0,fmt.length-o.length))+o}if((r=fmt.match(frac1))!==null)return write_num_f1(r,aval,sign);if(fmt.match(/^#+0+$/)!==null)return sign+pad0r(aval,fmt.length-fmt.indexOf("0"));if((r=fmt.match(dec1))!==null){o=rnd(val,r[1].length).replace(/^([^\.]+)$/,"$1."+r[1]).replace(/\.$/,"."+r[1]).replace(/\.(\d*)$/,function($$,$1){return"."+$1+fill("0",r[1].length-$1.length)});return fmt.indexOf("0.")!==-1?o:o.replace(/^0\./,".")}fmt=fmt.replace(/^#+([0.])/,"$1");if((r=fmt.match(/^(0*)\.(#*)$/))!==null){return sign+rnd(aval,r[2].length).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,r[1].length?"0.":".")}if((r=fmt.match(/^#,##0(\.?)$/))!==null)return sign+commaify(pad0r(aval,0));if((r=fmt.match(/^#,##0\.([#0]*0)$/))!==null){return val<0?"-"+write_num_flt(type,fmt,-val):commaify(""+Math.floor(val))+"."+pad0(dec(val,r[1].length),r[1].length)}if((r=fmt.match(/^#,#*,#0/))!==null)return write_num_flt(type,fmt.replace(/^#,#*,/,""),val);if((r=fmt.match(/^([0#]+)(\\?-([0#]+))+$/))!==null){o=_strrev(write_num_flt(type,fmt.replace(/[\\-]/g,""),val));ri=0;return _strrev(_strrev(fmt.replace(/\\/g,"")).replace(/[0#]/g,function(x){return ri<o.length?o[ri++]:x==="0"?"0":""}))}if(fmt.match(phone)!==null){o=write_num_flt(type,"##########",val);return"("+o.substr(0,3)+") "+o.substr(3,3)+"-"+o.substr(6)}var oa="";if((r=fmt.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/))!==null){ri=Math.min(r[4].length,7);ff=frac(aval,Math.pow(10,ri)-1,false);o=""+sign;oa=write_num("n",r[1],ff[1]);if(oa[oa.length-1]==" ")oa=oa.substr(0,oa.length-1)+"0";o+=oa+r[2]+"/"+r[3];oa=rpad_(ff[2],ri);if(oa.length<r[4].length)oa=hashq(r[4].substr(r[4].length-oa.length))+oa;o+=oa;return o}if((r=fmt.match(/^# ([#0?]+)( ?)\/( ?)([#0?]+)/))!==null){ri=Math.min(Math.max(r[1].length,r[4].length),7);ff=frac(aval,Math.pow(10,ri)-1,true);return sign+(ff[0]||(ff[1]?"":"0"))+" "+(ff[1]?pad_(ff[1],ri)+r[2]+"/"+r[3]+rpad_(ff[2],ri):fill(" ",2*ri+1+r[2].length+r[3].length))}if((r=fmt.match(/^[#0?]+$/))!==null){o=pad0r(val,0);if(fmt.length<=o.length)return o;return hashq(fmt.substr(0,fmt.length-o.length))+o}if((r=fmt.match(/^([#0?]+)\.([#0]+)$/))!==null){o=""+val.toFixed(Math.min(r[2].length,10)).replace(/([^0])0+$/,"$1");ri=o.indexOf(".");var lres=fmt.indexOf(".")-ri,rres=fmt.length-o.length-lres;return hashq(fmt.substr(0,lres)+o+fmt.substr(fmt.length-rres))}if((r=fmt.match(/^00,000\.([#0]*0)$/))!==null){ri=dec(val,r[1].length);return val<0?"-"+write_num_flt(type,fmt,-val):commaify(flr(val)).replace(/^\d,\d{3}$/,"0$&").replace(/^\d*$/,function($$){return"00,"+($$.length<3?pad0(0,3-$$.length):"")+$$})+"."+pad0(ri,r[1].length)}switch(fmt){case"#,###":var x=commaify(pad0r(aval,0));return x!=="0"?sign+x:"";default:}throw new Error("unsupported format |"+fmt+"|")}function write_num_cm2(type,fmt,val){var idx=fmt.length-1;while(fmt.charCodeAt(idx-1)===44)--idx;return write_num(type,fmt.substr(0,idx),val/Math.pow(10,3*(fmt.length-idx)))}function write_num_pct2(type,fmt,val){var sfmt=fmt.replace(pct1,""),mul=fmt.length-sfmt.length;return write_num(type,sfmt,val*Math.pow(10,2*mul))+fill("%",mul)}function write_num_exp2(fmt,val){var o;var idx=fmt.indexOf("E")-fmt.indexOf(".")-1;if(fmt.match(/^#+0.0E\+0$/)){var period=fmt.indexOf(".");if(period===-1)period=fmt.indexOf("E");var ee=Math.floor(Math.log(Math.abs(val))*Math.LOG10E)%period;if(ee<0)ee+=period;o=(val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);if(!o.match(/[Ee]/)){var fakee=Math.floor(Math.log(Math.abs(val))*Math.LOG10E);if(o.indexOf(".")===-1)o=o[0]+"."+o.substr(1)+"E+"+(fakee-o.length+ee);else o+="E+"+(fakee-ee);o=o.replace(/\+-/,"-")}o=o.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function($$,$1,$2,$3){return $1+$2+$3.substr(0,(period+ee)%period)+"."+$3.substr(ee)+"E"})}else o=val.toExponential(idx);if(fmt.match(/E\+00$/)&&o.match(/e[+-]\d$/))o=o.substr(0,o.length-1)+"0"+o[o.length-1];if(fmt.match(/E\-/)&&o.match(/e\+/))o=o.replace(/e\+/,"e");return o.replace("e","E")}function write_num_int(type,fmt,val){if(type.charCodeAt(0)===40&&!fmt.match(closeparen)){var ffmt=fmt.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");if(val>=0)return write_num_int("n",ffmt,val);return"("+write_num_int("n",ffmt,-val)+")"}if(fmt.charCodeAt(fmt.length-1)===44)return write_num_cm2(type,fmt,val);if(fmt.indexOf("%")!==-1)return write_num_pct2(type,fmt,val);if(fmt.indexOf("E")!==-1)return write_num_exp2(fmt,val);if(fmt.charCodeAt(0)===36)return"$"+write_num_int(type,fmt.substr(fmt[1]==" "?2:1),val);var o;var r,ri,ff,aval=Math.abs(val),sign=val<0?"-":"";if(fmt.match(/^00+$/))return sign+pad0(aval,fmt.length);if(fmt.match(/^[#?]+$/)){o=""+val;if(val===0)o="";return o.length>fmt.length?o:hashq(fmt.substr(0,fmt.length-o.length))+o}if((r=fmt.match(frac1))!==null)return write_num_f2(r,aval,sign);if(fmt.match(/^#+0+$/)!==null)return sign+pad0(aval,fmt.length-fmt.indexOf("0"));if((r=fmt.match(dec1))!==null){o=(""+val).replace(/^([^\.]+)$/,"$1."+r[1]).replace(/\.$/,"."+r[1]).replace(/\.(\d*)$/,function($$,$1){return"."+$1+fill("0",r[1].length-$1.length)});return fmt.indexOf("0.")!==-1?o:o.replace(/^0\./,".") +}fmt=fmt.replace(/^#+([0.])/,"$1");if((r=fmt.match(/^(0*)\.(#*)$/))!==null){return sign+(""+aval).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,r[1].length?"0.":".")}if((r=fmt.match(/^#,##0(\.?)$/))!==null)return sign+commaify(""+aval);if((r=fmt.match(/^#,##0\.([#0]*0)$/))!==null){return val<0?"-"+write_num_int(type,fmt,-val):commaify(""+val)+"."+fill("0",r[1].length)}if((r=fmt.match(/^#,#*,#0/))!==null)return write_num_int(type,fmt.replace(/^#,#*,/,""),val);if((r=fmt.match(/^([0#]+)(\\?-([0#]+))+$/))!==null){o=_strrev(write_num_int(type,fmt.replace(/[\\-]/g,""),val));ri=0;return _strrev(_strrev(fmt.replace(/\\/g,"")).replace(/[0#]/g,function(x){return ri<o.length?o[ri++]:x==="0"?"0":""}))}if(fmt.match(phone)!==null){o=write_num_int(type,"##########",val);return"("+o.substr(0,3)+") "+o.substr(3,3)+"-"+o.substr(6)}var oa="";if((r=fmt.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/))!==null){ri=Math.min(r[4].length,7);ff=frac(aval,Math.pow(10,ri)-1,false);o=""+sign;oa=write_num("n",r[1],ff[1]);if(oa[oa.length-1]==" ")oa=oa.substr(0,oa.length-1)+"0";o+=oa+r[2]+"/"+r[3];oa=rpad_(ff[2],ri);if(oa.length<r[4].length)oa=hashq(r[4].substr(r[4].length-oa.length))+oa;o+=oa;return o}if((r=fmt.match(/^# ([#0?]+)( ?)\/( ?)([#0?]+)/))!==null){ri=Math.min(Math.max(r[1].length,r[4].length),7);ff=frac(aval,Math.pow(10,ri)-1,true);return sign+(ff[0]||(ff[1]?"":"0"))+" "+(ff[1]?pad_(ff[1],ri)+r[2]+"/"+r[3]+rpad_(ff[2],ri):fill(" ",2*ri+1+r[2].length+r[3].length))}if((r=fmt.match(/^[#0?]+$/))!==null){o=""+val;if(fmt.length<=o.length)return o;return hashq(fmt.substr(0,fmt.length-o.length))+o}if((r=fmt.match(/^([#0]+)\.([#0]+)$/))!==null){o=""+val.toFixed(Math.min(r[2].length,10)).replace(/([^0])0+$/,"$1");ri=o.indexOf(".");var lres=fmt.indexOf(".")-ri,rres=fmt.length-o.length-lres;return hashq(fmt.substr(0,lres)+o+fmt.substr(fmt.length-rres))}if((r=fmt.match(/^00,000\.([#0]*0)$/))!==null){return val<0?"-"+write_num_int(type,fmt,-val):commaify(""+val).replace(/^\d,\d{3}$/,"0$&").replace(/^\d*$/,function($$){return"00,"+($$.length<3?pad0(0,3-$$.length):"")+$$})+"."+pad0(0,r[1].length)}switch(fmt){case"#,###":var x=commaify(""+aval);return x!=="0"?sign+x:"";default:}throw new Error("unsupported format |"+fmt+"|")}return function write_num(type,fmt,val){return(val|0)===val?write_num_int(type,fmt,val):write_num_flt(type,fmt,val)}}();function split_fmt(fmt){var out=[];var in_str=false,cc;for(var i=0,j=0;i<fmt.length;++i)switch(cc=fmt.charCodeAt(i)){case 34:in_str=!in_str;break;case 95:case 42:case 92:++i;break;case 59:out[out.length]=fmt.substr(j,i-j);j=i+1}out[out.length]=fmt.substr(j);if(in_str===true)throw new Error("Format |"+fmt+"| unterminated string ");return out}SSF._split=split_fmt;var abstime=/\[[HhMmSs]*\]/;function eval_fmt(fmt,v,opts,flen){var out=[],o="",i=0,c="",lst="t",q,dt,j,cc;var hr="H";while(i<fmt.length){switch(c=fmt[i]){case"G":if(!isgeneral(fmt,i))throw new Error("unrecognized character "+c+" in "+fmt);out[out.length]={t:"G",v:"General"};i+=7;break;case'"':for(o="";(cc=fmt.charCodeAt(++i))!==34&&i<fmt.length;)o+=String.fromCharCode(cc);out[out.length]={t:"t",v:o};++i;break;case"\\":var w=fmt[++i],t=w==="("||w===")"?w:"t";out[out.length]={t:t,v:w};++i;break;case"_":out[out.length]={t:"t",v:" "};i+=2;break;case"@":out[out.length]={t:"T",v:v};++i;break;case"B":case"b":if(fmt[i+1]==="1"||fmt[i+1]==="2"){if(dt==null){dt=parse_date_code(v,opts,fmt[i+1]==="2");if(dt==null)return""}out[out.length]={t:"X",v:fmt.substr(i,2)};lst=c;i+=2;break}case"M":case"D":case"Y":case"H":case"S":case"E":c=c.toLowerCase();case"m":case"d":case"y":case"h":case"s":case"e":case"g":if(v<0)return"";if(dt==null){dt=parse_date_code(v,opts);if(dt==null)return""}o=c;while(++i<fmt.length&&fmt[i].toLowerCase()===c)o+=c;if(c==="m"&&lst.toLowerCase()==="h")c="M";if(c==="h")c=hr;out[out.length]={t:c,v:o};lst=c;break;case"A":q={t:c,v:"A"};if(dt==null)dt=parse_date_code(v,opts);if(fmt.substr(i,3)==="A/P"){if(dt!=null)q.v=dt.H>=12?"P":"A";q.t="T";hr="h";i+=3}else if(fmt.substr(i,5)==="AM/PM"){if(dt!=null)q.v=dt.H>=12?"PM":"AM";q.t="T";i+=5;hr="h"}else{q.t="t";++i}if(dt==null&&q.t==="T")return"";out[out.length]=q;lst=c;break;case"[":o=c;while(fmt[i++]!=="]"&&i<fmt.length)o+=fmt[i];if(o.substr(-1)!=="]")throw'unterminated "[" block: |'+o+"|";if(o.match(abstime)){if(dt==null){dt=parse_date_code(v,opts);if(dt==null)return""}out[out.length]={t:"Z",v:o.toLowerCase()}}else{o=""}break;case".":if(dt!=null){o=c;while((c=fmt[++i])==="0")o+=c;out[out.length]={t:"s",v:o};break}case"0":case"#":o=c;while("0#?.,E+-%".indexOf(c=fmt[++i])>-1||c=="\\"&&fmt[i+1]=="-"&&"0#".indexOf(fmt[i+2])>-1)o+=c;out[out.length]={t:"n",v:o};break;case"?":o=c;while(fmt[++i]===c)o+=c;q={t:c,v:o};out[out.length]=q;lst=c;break;case"*":++i;if(fmt[i]==" "||fmt[i]=="*")++i;break;case"(":case")":out[out.length]={t:flen===1?"t":c,v:c};++i;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":o=c;while("0123456789".indexOf(fmt[++i])>-1)o+=fmt[i];out[out.length]={t:"D",v:o};break;case" ":out[out.length]={t:c,v:c};++i;break;default:if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxz".indexOf(c)===-1)throw new Error("unrecognized character "+c+" in "+fmt);out[out.length]={t:"t",v:c};++i;break}}var bt=0,ss0=0,ssm;for(i=out.length-1,lst="t";i>=0;--i){switch(out[i].t){case"h":case"H":out[i].t=hr;lst="h";if(bt<1)bt=1;break;case"s":if(ssm=out[i].v.match(/\.0+$/))ss0=Math.max(ss0,ssm[0].length-1);if(bt<3)bt=3;case"d":case"y":case"M":case"e":lst=out[i].t;break;case"m":if(lst==="s"){out[i].t="M";if(bt<2)bt=2}break;case"X":if(out[i].v==="B2");break;case"Z":if(bt<1&&out[i].v.match(/[Hh]/))bt=1;if(bt<2&&out[i].v.match(/[Mm]/))bt=2;if(bt<3&&out[i].v.match(/[Ss]/))bt=3}}switch(bt){case 0:break;case 1:if(dt.u>=.5){dt.u=0;++dt.S}if(dt.S>=60){dt.S=0;++dt.M}if(dt.M>=60){dt.M=0;++dt.H}break;case 2:if(dt.u>=.5){dt.u=0;++dt.S}if(dt.S>=60){dt.S=0;++dt.M}break}var nstr="",jj;for(i=0;i<out.length;++i){switch(out[i].t){case"t":case"T":case" ":case"D":break;case"X":out[i]=undefined;break;case"d":case"m":case"y":case"h":case"H":case"M":case"s":case"e":case"b":case"Z":out[i].v=write_date(out[i].t.charCodeAt(0),out[i].v,dt,ss0);out[i].t="t";break;case"n":case"(":case"?":jj=i+1;while(out[jj]!=null&&((c=out[jj].t)==="?"||c==="D"||(c===" "||c==="t")&&out[jj+1]!=null&&(out[jj+1].t==="?"||out[jj+1].t==="t"&&out[jj+1].v==="/")||out[i].t==="("&&(c===" "||c==="n"||c===")")||c==="t"&&(out[jj].v==="/"||"$€".indexOf(out[jj].v)>-1||out[jj].v===" "&&out[jj+1]!=null&&out[jj+1].t=="?"))){out[i].v+=out[jj].v;out[jj]=undefined;++jj}nstr+=out[i].v;i=jj-1;break;case"G":out[i].t="t";out[i].v=general_fmt(v,opts);break}}var vv="",myv,ostr;if(nstr.length>0){myv=v<0&&nstr.charCodeAt(0)===45?-v:v;ostr=write_num(nstr.charCodeAt(0)===40?"(":"n",nstr,myv);jj=ostr.length-1;var decpt=out.length;for(i=0;i<out.length;++i)if(out[i]!=null&&out[i].v.indexOf(".")>-1){decpt=i;break}var lasti=out.length;if(decpt===out.length&&ostr.indexOf("E")===-1){for(i=out.length-1;i>=0;--i){if(out[i]==null||"n?(".indexOf(out[i].t)===-1)continue;if(jj>=out[i].v.length-1){jj-=out[i].v.length;out[i].v=ostr.substr(jj+1,out[i].v.length)}else if(jj<0)out[i].v="";else{out[i].v=ostr.substr(0,jj+1);jj=-1}out[i].t="t";lasti=i}if(jj>=0&&lasti<out.length)out[lasti].v=ostr.substr(0,jj+1)+out[lasti].v}else if(decpt!==out.length&&ostr.indexOf("E")===-1){jj=ostr.indexOf(".")-1;for(i=decpt;i>=0;--i){if(out[i]==null||"n?(".indexOf(out[i].t)===-1)continue;j=out[i].v.indexOf(".")>-1&&i===decpt?out[i].v.indexOf(".")-1:out[i].v.length-1;vv=out[i].v.substr(j+1);for(;j>=0;--j){if(jj>=0&&(out[i].v[j]==="0"||out[i].v[j]==="#"))vv=ostr[jj--]+vv}out[i].v=vv;out[i].t="t";lasti=i}if(jj>=0&&lasti<out.length)out[lasti].v=ostr.substr(0,jj+1)+out[lasti].v;jj=ostr.indexOf(".")+1;for(i=decpt;i<out.length;++i){if(out[i]==null||"n?(".indexOf(out[i].t)===-1&&i!==decpt)continue;j=out[i].v.indexOf(".")>-1&&i===decpt?out[i].v.indexOf(".")+1:0;vv=out[i].v.substr(0,j);for(;j<out[i].v.length;++j){if(jj<ostr.length)vv+=ostr[jj++]}out[i].v=vv;out[i].t="t";lasti=i}}}for(i=0;i<out.length;++i)if(out[i]!=null&&"n(?".indexOf(out[i].t)>-1){myv=flen>1&&v<0&&i>0&&out[i-1].v==="-"?-v:v;out[i].v=write_num(out[i].t,out[i].v,myv);out[i].t="t"}var retval="";for(i=0;i!==out.length;++i)if(out[i]!=null)retval+=out[i].v;return retval}SSF._eval=eval_fmt;var cfregex=/\[[=<>]/;var cfregex2=/\[([=<>]*)(-?\d+\.?\d*)\]/;function chkcond(v,rr){if(rr==null)return false;var thresh=parseFloat(rr[2]);switch(rr[1]){case"=":if(v==thresh)return true;break;case">":if(v>thresh)return true;break;case"<":if(v<thresh)return true;break;case"<>":if(v!=thresh)return true;break;case">=":if(v>=thresh)return true;break;case"<=":if(v<=thresh)return true;break}return false}function choose_fmt(f,v){var fmt=split_fmt(f);var l=fmt.length,lat=fmt[l-1].indexOf("@");if(l<4&&lat>-1)--l;if(fmt.length>4)throw"cannot find right format for |"+fmt+"|";if(typeof v!=="number")return[4,fmt.length===4||lat>-1?fmt[fmt.length-1]:"@"];switch(fmt.length){case 1:fmt=lat>-1?["General","General","General",fmt[0]]:[fmt[0],fmt[0],fmt[0],"@"];break;case 2:fmt=lat>-1?[fmt[0],fmt[0],fmt[0],fmt[1]]:[fmt[0],fmt[1],fmt[0],"@"];break;case 3:fmt=lat>-1?[fmt[0],fmt[1],fmt[0],fmt[2]]:[fmt[0],fmt[1],fmt[2],"@"];break;case 4:break}var ff=v>0?fmt[0]:v<0?fmt[1]:fmt[2];if(fmt[0].indexOf("[")===-1&&fmt[1].indexOf("[")===-1)return[l,ff];if(fmt[0].match(cfregex)!=null||fmt[1].match(cfregex)!=null){var m1=fmt[0].match(cfregex2);var m2=fmt[1].match(cfregex2);return chkcond(v,m1)?[l,fmt[0]]:chkcond(v,m2)?[l,fmt[1]]:[l,fmt[m1!=null&&m2!=null?2:1]]}return[l,ff]}function format(fmt,v,o){fixopts(o!=null?o:o=[]);var sfmt="";switch(typeof fmt){case"string":sfmt=fmt;break;case"number":sfmt=(o.table!=null?o.table:table_fmt)[fmt];break}if(isgeneral(sfmt,0))return general_fmt(v,o);var f=choose_fmt(sfmt,v);if(isgeneral(f[1]))return general_fmt(v,o);if(v===true)v="TRUE";else if(v===false)v="FALSE";else if(v===""||v==null)return"";return eval_fmt(f[1],v,o,f[0])}SSF._table=table_fmt;SSF.load=function load_entry(fmt,idx){table_fmt[idx]=fmt};SSF.format=format;SSF.get_table=function get_table(){return table_fmt};SSF.load_table=function load_table(tbl){for(var i=0;i!=392;++i)if(tbl[i]!==undefined)SSF.load(tbl[i],i)}};make_ssf(SSF);var XLMLFormatMap={"General Number":"General","General Date":SSF._table[22],"Long Date":"dddd, mmmm dd, yyyy","Medium Date":SSF._table[15],"Short Date":SSF._table[14],"Long Time":SSF._table[19],"Medium Time":SSF._table[18],"Short Time":SSF._table[20],Currency:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',Fixed:SSF._table[2],Standard:SSF._table[4],Percent:SSF._table[10],Scientific:SSF._table[11],"Yes/No":'"Yes";"Yes";"No";@',"True/False":'"True";"True";"False";@',"On/Off":'"Yes";"Yes";"No";@'};var DO_NOT_EXPORT_CFB=true;var CFB=function _CFB(){var exports={};exports.version="0.10.2";function parse(file){var mver=3;var ssz=512;var nmfs=0;var ndfs=0;var dir_start=0;var minifat_start=0;var difat_start=0;var fat_addrs=[];var blob=file.slice(0,512);prep_blob(blob,0);var mv=check_get_mver(blob);mver=mv[0];switch(mver){case 3:ssz=512;break;case 4:ssz=4096;break;default:throw"Major Version: Expected 3 or 4 saw "+mver}if(ssz!==512){blob=file.slice(0,ssz);prep_blob(blob,28)}var header=file.slice(0,ssz);check_shifts(blob,mver);var nds=blob.read_shift(4,"i");if(mver===3&&nds!==0)throw"# Directory Sectors: Expected 0 saw "+nds;blob.l+=4;dir_start=blob.read_shift(4,"i");blob.l+=4;blob.chk("00100000","Mini Stream Cutoff Size: ");minifat_start=blob.read_shift(4,"i");nmfs=blob.read_shift(4,"i");difat_start=blob.read_shift(4,"i");ndfs=blob.read_shift(4,"i");for(var q,j=0;j<109;++j){q=blob.read_shift(4,"i");if(q<0)break;fat_addrs[j]=q}var sectors=sectorify(file,ssz);sleuth_fat(difat_start,ndfs,sectors,ssz,fat_addrs);var sector_list=make_sector_list(sectors,dir_start,fat_addrs,ssz);sector_list[dir_start].name="!Directory";if(nmfs>0&&minifat_start!==ENDOFCHAIN)sector_list[minifat_start].name="!MiniFAT";sector_list[fat_addrs[0]].name="!FAT";sector_list.fat_addrs=fat_addrs;sector_list.ssz=ssz;var files={},Paths=[],FileIndex=[],FullPaths=[],FullPathDir={};read_directory(dir_start,sector_list,sectors,Paths,nmfs,files,FileIndex);build_full_paths(FileIndex,FullPathDir,FullPaths,Paths);var root_name=Paths.shift();Paths.root=root_name;var find_path=make_find_path(FullPaths,Paths,FileIndex,files,root_name);return{raw:{header:header,sectors:sectors},FileIndex:FileIndex,FullPaths:FullPaths,FullPathDir:FullPathDir,find:find_path}}function check_get_mver(blob){blob.chk(HEADER_SIGNATURE,"Header Signature: ");blob.chk(HEADER_CLSID,"CLSID: ");var mver=blob.read_shift(2,"u");return[blob.read_shift(2,"u"),mver]}function check_shifts(blob,mver){var shift=9;blob.chk("feff","Byte Order: ");switch(shift=blob.read_shift(2)){case 9:if(mver!==3)throw"MajorVersion/SectorShift Mismatch";break;case 12:if(mver!==4)throw"MajorVersion/SectorShift Mismatch";break;default:throw"Sector Shift: Expected 9 or 12 saw "+shift}blob.chk("0600","Mini Sector Shift: ");blob.chk("000000000000","Reserved: ")}function sectorify(file,ssz){var nsectors=Math.ceil(file.length/ssz)-1;var sectors=new Array(nsectors);for(var i=1;i<nsectors;++i)sectors[i-1]=file.slice(i*ssz,(i+1)*ssz);sectors[nsectors-1]=file.slice(nsectors*ssz);return sectors}function build_full_paths(FI,FPD,FP,Paths){var i=0,L=0,R=0,C=0,j=0,pl=Paths.length;var dad=new Array(pl),q=new Array(pl);for(;i<pl;++i){dad[i]=q[i]=i;FP[i]=Paths[i]}for(;j<q.length;++j){i=q[j];L=FI[i].L;R=FI[i].R;C=FI[i].C;if(dad[i]===i){if(L!==-1&&dad[L]!==L)dad[i]=dad[L];if(R!==-1&&dad[R]!==R)dad[i]=dad[R]}if(C!==-1)dad[C]=i;if(L!==-1){dad[L]=dad[i];q.push(L)}if(R!==-1){dad[R]=dad[i];q.push(R)}}for(i=1;i!==pl;++i)if(dad[i]===i){if(R!==-1&&dad[R]!==R)dad[i]=dad[R];else if(L!==-1&&dad[L]!==L)dad[i]=dad[L]}for(i=1;i<pl;++i){if(FI[i].type===0)continue;j=dad[i];if(j===0)FP[i]=FP[0]+"/"+FP[i];else while(j!==0){FP[i]=FP[j]+"/"+FP[i];j=dad[j]}dad[i]=0}FP[0]+="/";for(i=1;i<pl;++i){if(FI[i].type!==2)FP[i]+="/";FPD[FP[i]]=FI[i]}}function make_find_path(FullPaths,Paths,FileIndex,files,root_name){var UCFullPaths=new Array(FullPaths.length);var UCPaths=new Array(Paths.length),i;for(i=0;i<FullPaths.length;++i)UCFullPaths[i]=FullPaths[i].toUpperCase().replace(chr0,"").replace(chr1,"!");for(i=0;i<Paths.length;++i)UCPaths[i]=Paths[i].toUpperCase().replace(chr0,"").replace(chr1,"!");return function find_path(path){var k;if(path.charCodeAt(0)===47){k=true;path=root_name+path}else k=path.indexOf("/")!==-1;var UCPath=path.toUpperCase().replace(chr0,"").replace(chr1,"!");var w=k===true?UCFullPaths.indexOf(UCPath):UCPaths.indexOf(UCPath);if(w===-1)return null;return k===true?FileIndex[w]:files[Paths[w]]}}function sleuth_fat(idx,cnt,sectors,ssz,fat_addrs){var q;if(idx===ENDOFCHAIN){if(cnt!==0)throw"DIFAT chain shorter than expected"}else if(idx!==-1){var sector=sectors[idx],m=(ssz>>>2)-1;for(var i=0;i<m;++i){if((q=__readInt32LE(sector,i*4))===ENDOFCHAIN)break;fat_addrs.push(q)}sleuth_fat(__readInt32LE(sector,ssz-4),cnt-1,sectors,ssz,fat_addrs)}}function get_sector_list(sectors,start,fat_addrs,ssz,chkd){var sl=sectors.length;var buf,buf_chain;if(!chkd)chkd=new Array(sl);var modulus=ssz-1,j,jj;buf=[];buf_chain=[];for(j=start;j>=0;){chkd[j]=true;buf[buf.length]=j;buf_chain.push(sectors[j]);var addr=fat_addrs[Math.floor(j*4/ssz)];jj=j*4&modulus;if(ssz<4+jj)throw"FAT boundary crossed: "+j+" 4 "+ssz;j=__readInt32LE(sectors[addr],jj)}return{nodes:buf,data:__toBuffer([buf_chain])}}function make_sector_list(sectors,dir_start,fat_addrs,ssz){var sl=sectors.length,sector_list=new Array(sl);var chkd=new Array(sl),buf,buf_chain;var modulus=ssz-1,i,j,k,jj;for(i=0;i<sl;++i){buf=[];k=i+dir_start;if(k>=sl)k-=sl;if(chkd[k]===true)continue;buf_chain=[];for(j=k;j>=0;){chkd[j]=true;buf[buf.length]=j;buf_chain.push(sectors[j]);var addr=fat_addrs[Math.floor(j*4/ssz)];jj=j*4&modulus;if(ssz<4+jj)throw"FAT boundary crossed: "+j+" 4 "+ssz;j=__readInt32LE(sectors[addr],jj)}sector_list[k]={nodes:buf,data:__toBuffer([buf_chain])}}return sector_list}function read_directory(dir_start,sector_list,sectors,Paths,nmfs,files,FileIndex){var blob;var minifat_store=0,pl=Paths.length?2:0;var sector=sector_list[dir_start].data;var i=0,namelen=0,name,o,ctime,mtime;for(;i<sector.length;i+=128){blob=sector.slice(i,i+128);prep_blob(blob,64);namelen=blob.read_shift(2);if(namelen===0)continue;name=__utf16le(blob,0,namelen-pl);Paths.push(name);o={name:name,type:blob.read_shift(1),color:blob.read_shift(1),L:blob.read_shift(4,"i"),R:blob.read_shift(4,"i"),C:blob.read_shift(4,"i"),clsid:blob.read_shift(16),state:blob.read_shift(4,"i")};ctime=blob.read_shift(2)+blob.read_shift(2)+blob.read_shift(2)+blob.read_shift(2);if(ctime!==0){o.ctime=ctime;o.ct=read_date(blob,blob.l-8)}mtime=blob.read_shift(2)+blob.read_shift(2)+blob.read_shift(2)+blob.read_shift(2);if(mtime!==0){o.mtime=mtime;o.mt=read_date(blob,blob.l-8)}o.start=blob.read_shift(4,"i");o.size=blob.read_shift(4,"i");if(o.type===5){minifat_store=o.start;if(nmfs>0&&minifat_store!==ENDOFCHAIN)sector_list[minifat_store].name="!StreamData"}else if(o.size>=4096){o.storage="fat";if(sector_list[o.start]===undefined)sector_list[o.start]=get_sector_list(sectors,o.start,sector_list.fat_addrs,sector_list.ssz);sector_list[o.start].name=o.name;o.content=sector_list[o.start].data.slice(0,o.size);prep_blob(o.content,0)}else{o.storage="minifat";if(minifat_store!==ENDOFCHAIN&&o.start!==ENDOFCHAIN){o.content=sector_list[minifat_store].data.slice(o.start*MSSZ,o.start*MSSZ+o.size);prep_blob(o.content,0)}}files[name]=o;FileIndex.push(o)}}function read_date(blob,offset){return new Date((__readUInt32LE(blob,offset+4)/1e7*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7-11644473600)*1e3)}var fs;function readFileSync(filename,options){if(fs===undefined)fs=require("fs");return parse(fs.readFileSync(filename),options)}function readSync(blob,options){switch(options!==undefined&&options.type!==undefined?options.type:"base64"){case"file":return readFileSync(blob,options);case"base64":return parse(s2a(Base64.decode(blob)),options);case"binary":return parse(s2a(blob),options)}return parse(blob)}var MSSZ=64;var ENDOFCHAIN=-2;var HEADER_SIGNATURE="d0cf11e0a1b11ae1";var HEADER_CLSID="00000000000000000000000000000000";var consts={MAXREGSECT:-6,DIFSECT:-4,FATSECT:-3,ENDOFCHAIN:ENDOFCHAIN,FREESECT:-1,HEADER_SIGNATURE:HEADER_SIGNATURE,HEADER_MINOR_VERSION:"3e00",MAXREGSID:-6,NOSTREAM:-1,HEADER_CLSID:HEADER_CLSID,EntryTypes:["unknown","storage","stream","lockbytes","property","root"]};exports.read=readSync;exports.parse=parse;exports.utils={ReadShift:ReadShift,CheckField:CheckField,prep_blob:prep_blob,bconcat:bconcat,consts:consts};return exports}();if(typeof require!=="undefined"&&typeof module!=="undefined"&&typeof DO_NOT_EXPORT_CFB==="undefined"){module.exports=CFB}function isval(x){return x!==undefined&&x!==null}function keys(o){return Object.keys(o)}function evert_key(obj,key){var o=[],K=keys(obj);for(var i=0;i!==K.length;++i)o[obj[K[i]][key]]=K[i];return o}function evert(obj){var o=[],K=keys(obj);for(var i=0;i!==K.length;++i)o[obj[K[i]]]=K[i];return o}function evert_num(obj){var o=[],K=keys(obj);for(var i=0;i!==K.length;++i)o[obj[K[i]]]=parseInt(K[i],10);return o}function evert_arr(obj){var o=[],K=keys(obj);for(var i=0;i!==K.length;++i){if(o[obj[K[i]]]==null)o[obj[K[i]]]=[];o[obj[K[i]]].push(K[i])}return o}function datenum(v,date1904){if(date1904)v+=1462;var epoch=Date.parse(v);return(epoch+22091616e5)/(24*60*60*1e3)}function cc2str(arr){var o="";for(var i=0;i!=arr.length;++i)o+=String.fromCharCode(arr[i]);return o}function getdata(data){if(!data)return null;if(data.name.substr(-4)===".bin"){if(data.data)return char_codes(data.data);if(data.asNodeBuffer&&has_buf)return data.asNodeBuffer();if(data._data&&data._data.getContent)return Array.prototype.slice.call(data._data.getContent())}else{if(data.data)return data.name.substr(-4)!==".bin"?debom_xml(data.data):char_codes(data.data);if(data.asNodeBuffer&&has_buf)return debom_xml(data.asNodeBuffer().toString("binary"));if(data.asBinary)return debom_xml(data.asBinary());if(data._data&&data._data.getContent)return debom_xml(cc2str(Array.prototype.slice.call(data._data.getContent(),0)))}return null}function safegetzipfile(zip,file){var f=file;if(zip.files[f])return zip.files[f];f=file.toLowerCase();if(zip.files[f])return zip.files[f];f=f.replace(/\//g,"\\");if(zip.files[f])return zip.files[f];return null}function getzipfile(zip,file){var o=safegetzipfile(zip,file);if(o==null)throw new Error("Cannot find file "+file+" in zip");return o}function getzipdata(zip,file,safe){if(!safe)return getdata(getzipfile(zip,file));if(!file)return null;try{return getzipdata(zip,file)}catch(e){return null}}var _fs,jszip;if(typeof JSZip!=="undefined")jszip=JSZip;if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports){if(has_buf&&typeof jszip==="undefined")jszip=require("js"+"zip");if(typeof jszip==="undefined")jszip=require("./js"+"zip").JSZip;_fs=require("f"+"s")}}var attregexg=/([\w:]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:'))/g;var tagregex=/<[^>]*>/g;var nsregex=/<\w*:/,nsregex2=/<(\/?)\w+:/;function parsexmltag(tag,skip_root){var z=[];var eq=0,c=0;for(;eq!==tag.length;++eq)if((c=tag.charCodeAt(eq))===32||c===10||c===13)break;if(!skip_root)z[0]=tag.substr(0,eq);if(eq===tag.length)return z;var m=tag.match(attregexg),j=0,w="",v="",i=0,q="",cc="";if(m)for(i=0;i!=m.length;++i){cc=m[i];for(c=0;c!=cc.length;++c)if(cc.charCodeAt(c)===61)break;q=cc.substr(0,c);v=cc.substring(c+2,cc.length-1);for(j=0;j!=q.length;++j)if(q.charCodeAt(j)===58)break;if(j===q.length)z[q]=v;else z[(j===5&&q.substr(0,5)==="xmlns"?"xmlns":"")+q.substr(j+1)]=v}return z}function strip_ns(x){return x.replace(nsregex2,"<$1")}var encodings={""":'"',"'":"'",">":">","<":"<","&":"&"};var rencoding=evert(encodings);var rencstr="&<>'\"".split("");var unescapexml=function(){var encregex=/&[a-z]*;/g,coderegex=/_x([\da-fA-F]+)_/g;return function unescapexml(text){var s=text+"";return s.replace(encregex,function($$){return encodings[$$]}).replace(coderegex,function(m,c){return String.fromCharCode(parseInt(c,16))})}}();var decregex=/[&<>'"]/g,charegex=/[\u0000-\u0008\u000b-\u001f]/g;function escapexml(text){var s=text+"";return s.replace(decregex,function(y){return rencoding[y]}).replace(charegex,function(s){return"_x"+("000"+s.charCodeAt(0).toString(16)).substr(-4)+"_"})}var xlml_fixstr=function(){var entregex=/&#(\d+);/g;function entrepl($$,$1){return String.fromCharCode(parseInt($1,10))}return function xlml_fixstr(str){return str.replace(entregex,entrepl)}}();function parsexmlbool(value,tag){switch(value){case"1":case"true":case"TRUE":return true;default:return false}}var utf8read=function utf8reada(orig){var out="",i=0,c=0,d=0,e=0,f=0,w=0;while(i<orig.length){c=orig.charCodeAt(i++);if(c<128){out+=String.fromCharCode(c);continue}d=orig.charCodeAt(i++);if(c>191&&c<224){out+=String.fromCharCode((c&31)<<6|d&63);continue}e=orig.charCodeAt(i++);if(c<240){out+=String.fromCharCode((c&15)<<12|(d&63)<<6|e&63);continue}f=orig.charCodeAt(i++);w=((c&7)<<18|(d&63)<<12|(e&63)<<6|f&63)-65536;out+=String.fromCharCode(55296+(w>>>10&1023));out+=String.fromCharCode(56320+(w&1023))}return out};if(has_buf){var utf8readb=function utf8readb(data){var out=new Buffer(2*data.length),w,i,j=1,k=0,ww=0,c;for(i=0;i<data.length;i+=j){j=1;if((c=data.charCodeAt(i))<128)w=c;else if(c<224){w=(c&31)*64+(data.charCodeAt(i+1)&63);j=2}else if(c<240){w=(c&15)*4096+(data.charCodeAt(i+1)&63)*64+(data.charCodeAt(i+2)&63);j=3}else{j=4;w=(c&7)*262144+(data.charCodeAt(i+1)&63)*4096+(data.charCodeAt(i+2)&63)*64+(data.charCodeAt(i+3)&63);w-=65536;ww=55296+(w>>>10&1023);w=56320+(w&1023)}if(ww!==0){out[k++]=ww&255;out[k++]=ww>>>8;ww=0}out[k++]=w%256;out[k++]=w>>>8}out.length=k;return out.toString("ucs2")};var corpus="foo bar baz☃ðŸÂ£";if(utf8read(corpus)==utf8readb(corpus))utf8read=utf8readb;var utf8readc=function utf8readc(data){return Buffer(data,"binary").toString("utf8")};if(utf8read(corpus)==utf8readc(corpus))utf8read=utf8readc}var matchtag=function(){var mtcache={};return function matchtag(f,g){var t=f+"|"+g;if(mtcache[t]!==undefined)return mtcache[t];return mtcache[t]=new RegExp("<(?:\\w+:)?"+f+'(?: xml:space="preserve")?(?:[^>]*)>([^☃]*)</(?:\\w+:)?'+f+">",g||"")}}();var vtregex=function(){var vt_cache={};return function vt_regex(bt){if(vt_cache[bt]!==undefined)return vt_cache[bt];return vt_cache[bt]=new RegExp("<vt:"+bt+">(.*?)</vt:"+bt+">","g")}}();var vtvregex=/<\/?vt:variant>/g,vtmregex=/<vt:([^>]*)>(.*)</;function parseVector(data){var h=parsexmltag(data);var matches=data.match(vtregex(h.baseType))||[];if(matches.length!=h.size)throw"unexpected vector length "+matches.length+" != "+h.size;var res=[];matches.forEach(function(x){var v=x.replace(vtvregex,"").match(vtmregex);res.push({v:v[2],t:v[1]})});return res}var wtregex=/(^\s|\s$|\n)/;function writetag(f,g){return"<"+f+(g.match(wtregex)?' xml:space="preserve"':"")+">"+g+"</"+f+">"}function wxt_helper(h){return keys(h).map(function(k){return" "+k+'="'+h[k]+'"'}).join("")}function writextag(f,g,h){return"<"+f+(isval(h)?wxt_helper(h):"")+(isval(g)?(g.match(wtregex)?' xml:space="preserve"':"")+">"+g+"</"+f:"/")+">"}function write_w3cdtf(d,t){try{return d.toISOString().replace(/\.\d*/,"")}catch(e){if(t)throw e}}function write_vt(s){switch(typeof s){case"string":return writextag("vt:lpwstr",s);case"number":return writextag((s|0)==s?"vt:i4":"vt:r8",String(s));case"boolean":return writextag("vt:bool",s?"true":"false")}if(s instanceof Date)return writextag("vt:filetime",write_w3cdtf(s));throw new Error("Unable to serialize "+s)}var XML_HEADER='<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\r\n';var XMLNS={dc:"http://purl.org/dc/elements/1.1/",dcterms:"http://purl.org/dc/terms/",dcmitype:"http://purl.org/dc/dcmitype/",mx:"http://schemas.microsoft.com/office/mac/excel/2008/main",r:"http://schemas.openxmlformats.org/officeDocument/2006/relationships",sjs:"http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties",vt:"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes",xsi:"http://www.w3.org/2001/XMLSchema-instance",xsd:"http://www.w3.org/2001/XMLSchema"};XMLNS.main=["http://schemas.openxmlformats.org/spreadsheetml/2006/main","http://purl.oclc.org/ooxml/spreadsheetml/main","http://schemas.microsoft.com/office/excel/2006/main","http://schemas.microsoft.com/office/excel/2006/2"];function readIEEE754(buf,idx,isLE,nl,ml){if(isLE===undefined)isLE=true;if(!nl)nl=8;if(!ml&&nl===8)ml=52;var e,m,el=nl*8-ml-1,eMax=(1<<el)-1,eBias=eMax>>1;var bits=-7,d=isLE?-1:1,i=isLE?nl-1:0,s=buf[idx+i];i+=d;e=s&(1<<-bits)-1;s>>>=-bits;bits+=el;for(;bits>0;e=e*256+buf[idx+i],i+=d,bits-=8);m=e&(1<<-bits)-1;e>>>=-bits;bits+=ml;for(;bits>0;m=m*256+buf[idx+i],i+=d,bits-=8);if(e===eMax)return m?NaN:(s?-1:1)*Infinity;else if(e===0)e=1-eBias;else{m=m+Math.pow(2,ml);e=e-eBias}return(s?-1:1)*m*Math.pow(2,e-ml)}var __toBuffer,___toBuffer;__toBuffer=___toBuffer=function toBuffer_(bufs){var x=[];for(var i=0;i<bufs[0].length;++i){x.push.apply(x,bufs[0][i])}return x};var __utf16le,___utf16le;__utf16le=___utf16le=function utf16le_(b,s,e){var ss=[];for(var i=s;i<e;i+=2)ss.push(String.fromCharCode(__readUInt16LE(b,i)));return ss.join("")};var __hexlify,___hexlify;__hexlify=___hexlify=function hexlify_(b,s,l){return b.slice(s,s+l).map(function(x){return(x<16?"0":"")+x.toString(16)}).join("")};var __utf8,___utf8;__utf8=___utf8=function(b,s,e){var ss=[];for(var i=s;i<e;i++)ss.push(String.fromCharCode(__readUInt8(b,i)));return ss.join("")};var __lpstr,___lpstr;__lpstr=___lpstr=function lpstr_(b,i){var len=__readUInt32LE(b,i);return len>0?__utf8(b,i+4,i+4+len-1):""};var __lpwstr,___lpwstr;__lpwstr=___lpwstr=function lpwstr_(b,i){var len=2*__readUInt32LE(b,i);return len>0?__utf8(b,i+4,i+4+len-1):""};var __double,___double;__double=___double=function(b,idx){return readIEEE754(b,idx)};var is_buf=function is_buf_a(a){return Array.isArray(a)};if(has_buf){__utf16le=function utf16le_b(b,s,e){if(!Buffer.isBuffer(b))return ___utf16le(b,s,e);return b.toString("utf16le",s,e)};__hexlify=function(b,s,l){return Buffer.isBuffer(b)?b.toString("hex",s,s+l):___hexlify(b,s,l)};__lpstr=function lpstr_b(b,i){if(!Buffer.isBuffer(b))return ___lpstr(b,i);var len=b.readUInt32LE(i);return len>0?b.toString("utf8",i+4,i+4+len-1):""};__lpwstr=function lpwstr_b(b,i){if(!Buffer.isBuffer(b))return ___lpwstr(b,i);var len=2*b.readUInt32LE(i);return b.toString("utf16le",i+4,i+4+len-1)};__utf8=function utf8_b(s,e){return this.toString("utf8",s,e)};__toBuffer=function(bufs){return bufs[0].length>0&&Buffer.isBuffer(bufs[0][0])?Buffer.concat(bufs[0]):___toBuffer(bufs)};bconcat=function(bufs){return Buffer.isBuffer(bufs[0])?Buffer.concat(bufs):[].concat.apply([],bufs)};__double=function double_(b,i){if(Buffer.isBuffer(b))return b.readDoubleLE(i);return ___double(b,i)};is_buf=function is_buf_b(a){return Buffer.isBuffer(a)||Array.isArray(a)}}if(typeof cptable!=="undefined"){__utf16le=function(b,s,e){return cptable.utils.decode(1200,b.slice(s,e))};__utf8=function(b,s,e){return cptable.utils.decode(65001,b.slice(s,e))};__lpstr=function(b,i){var len=__readUInt32LE(b,i);return len>0?cptable.utils.decode(current_codepage,b.slice(i+4,i+4+len-1)):""};__lpwstr=function(b,i){var len=2*__readUInt32LE(b,i);return len>0?cptable.utils.decode(1200,b.slice(i+4,i+4+len-1)):""}}var __readUInt8=function(b,idx){return b[idx]};var __readUInt16LE=function(b,idx){return b[idx+1]*(1<<8)+b[idx]};var __readInt16LE=function(b,idx){var u=b[idx+1]*(1<<8)+b[idx];return u<32768?u:(65535-u+1)*-1};var __readUInt32LE=function(b,idx){return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]};var __readInt32LE=function(b,idx){return b[idx+3]<<24|b[idx+2]<<16|b[idx+1]<<8|b[idx]};var ___unhexlify=function(s){return s.match(/../g).map(function(x){return parseInt(x,16)})};var __unhexlify=typeof Buffer!=="undefined"?function(s){return Buffer.isBuffer(s)?new Buffer(s,"hex"):___unhexlify(s)}:___unhexlify;function ReadShift(size,t){var o="",oI,oR,oo=[],w,vv,i,loc;switch(t){case"dbcs":loc=this.l;if(has_buf&&Buffer.isBuffer(this))o=this.slice(this.l,this.l+2*size).toString("utf16le");else for(i=0;i!=size;++i){o+=String.fromCharCode(__readUInt16LE(this,loc));loc+=2}size*=2;break;case"utf8":o=__utf8(this,this.l,this.l+size);break;case"utf16le":size*=2;o=__utf16le(this,this.l,this.l+size);break;case"lpstr":o=__lpstr(this,this.l);size=5+o.length;break;case"lpwstr":o=__lpwstr(this,this.l);size=5+o.length;if(o[o.length-1]=="\x00")size+=2;break;case"cstr":size=0;o="";while((w=__readUInt8(this,this.l+size++))!==0)oo.push(_getchar(w));o=oo.join("");break;case"wstr":size=0;o="";while((w=__readUInt16LE(this,this.l+size))!==0){oo.push(_getchar(w));size+=2}size+=2;o=oo.join("");break;case"dbcs-cont":o="";loc=this.l;for(i=0;i!=size;++i){if(this.lens&&this.lens.indexOf(loc)!==-1){w=__readUInt8(this,loc);this.l=loc+1;vv=ReadShift.call(this,size-i,w?"dbcs-cont":"sbcs-cont");return oo.join("")+vv}oo.push(_getchar(__readUInt16LE(this,loc)));loc+=2}o=oo.join("");size*=2;break;case"sbcs-cont":o="";loc=this.l;for(i=0;i!=size;++i){if(this.lens&&this.lens.indexOf(loc)!==-1){w=__readUInt8(this,loc);this.l=loc+1;vv=ReadShift.call(this,size-i,w?"dbcs-cont":"sbcs-cont");return oo.join("")+vv}oo.push(_getchar(__readUInt8(this,loc)));loc+=1}o=oo.join("");break;default:switch(size){case 1:oI=__readUInt8(this,this.l);this.l++;return oI;case 2:oI=(t==="i"?__readInt16LE:__readUInt16LE)(this,this.l);this.l+=2;return oI;case 4:if(t==="i"||(this[this.l+3]&128)===0){oI=__readInt32LE(this,this.l);this.l+=4;return oI}else{oR=__readUInt32LE(this,this.l);this.l+=4;return oR}break;case 8:if(t==="f"){oR=__double(this,this.l);this.l+=8;return oR}case 16:o=__hexlify(this,this.l,size);break}}this.l+=size;return o}function WriteShift(t,val,f){var size,i;if(f==="dbcs"){for(i=0;i!=val.length;++i)this.writeUInt16LE(val.charCodeAt(i),this.l+2*i);size=2*val.length}else switch(t){case 1:size=1;this[this.l]=val&255;break;case 3:size=3;this[this.l+2]=val&255;val>>>=8; +this[this.l+1]=val&255;val>>>=8;this[this.l]=val&255;break;case 4:size=4;this.writeUInt32LE(val,this.l);break;case 8:size=8;if(f==="f"){this.writeDoubleLE(val,this.l);break}case 16:break;case-4:size=4;this.writeInt32LE(val,this.l);break}this.l+=size;return this}function CheckField(hexstr,fld){var m=__hexlify(this,this.l,hexstr.length>>1);if(m!==hexstr)throw fld+"Expected "+hexstr+" saw "+m;this.l+=hexstr.length>>1}function prep_blob(blob,pos){blob.l=pos;blob.read_shift=ReadShift;blob.chk=CheckField;blob.write_shift=WriteShift}function parsenoop(blob,length){blob.l+=length}function writenoop(blob,length){blob.l+=length}function new_buf(sz){var o=new_raw_buf(sz);prep_blob(o,0);return o}function recordhopper(data,cb,opts){var tmpbyte,cntbyte,length;prep_blob(data,data.l||0);while(data.l<data.length){var RT=data.read_shift(1);if(RT&128)RT=(RT&127)+((data.read_shift(1)&127)<<7);var R=XLSBRecordEnum[RT]||XLSBRecordEnum[65535];tmpbyte=data.read_shift(1);length=tmpbyte&127;for(cntbyte=1;cntbyte<4&&tmpbyte&128;++cntbyte)length+=((tmpbyte=data.read_shift(1))&127)<<7*cntbyte;var d=R.f(data,length,opts);if(cb(d,R,RT))return}}function buf_array(){var bufs=[],blksz=2048;var newblk=function ba_newblk(sz){var o=new_buf(sz);prep_blob(o,0);return o};var curbuf=newblk(blksz);var endbuf=function ba_endbuf(){curbuf.length=curbuf.l;if(curbuf.length>0)bufs.push(curbuf);curbuf=null};var next=function ba_next(sz){if(sz<curbuf.length-curbuf.l)return curbuf;endbuf();return curbuf=newblk(Math.max(sz+1,blksz))};var end=function ba_end(){endbuf();return __toBuffer([bufs])};var push=function ba_push(buf){endbuf();curbuf=buf;next(blksz)};return{next:next,push:push,end:end,_bufs:bufs}}function write_record(ba,type,payload,length){var t=evert_RE[type],l;if(!length)length=XLSBRecordEnum[t].p||(payload||[]).length||0;l=1+(t>=128?1:0)+1+length;if(length>=128)++l;if(length>=16384)++l;if(length>=2097152)++l;var o=ba.next(l);if(t<=127)o.write_shift(1,t);else{o.write_shift(1,(t&127)+128);o.write_shift(1,t>>7)}for(var i=0;i!=4;++i){if(length>=128){o.write_shift(1,(length&127)+128);length>>=7}else{o.write_shift(1,length);break}}if(length>0&&is_buf(payload))ba.push(payload)}function shift_cell_xls(cell,tgt){if(tgt.s){if(cell.cRel)cell.c+=tgt.s.c;if(cell.rRel)cell.r+=tgt.s.r}else{cell.c+=tgt.c;cell.r+=tgt.r}cell.cRel=cell.rRel=0;while(cell.c>=256)cell.c-=256;while(cell.r>=65536)cell.r-=65536;return cell}function shift_range_xls(cell,range){cell.s=shift_cell_xls(cell.s,range.s);cell.e=shift_cell_xls(cell.e,range.s);return cell}var OFFCRYPTO={};var make_offcrypto=function(O,_crypto){var crypto;if(typeof _crypto!=="undefined")crypto=_crypto;else if(typeof require!=="undefined"){try{crypto=require("cry"+"pto")}catch(e){crypto=null}}O.rc4=function(key,data){var S=new Array(256);var c=0,i=0,j=0,t=0;for(i=0;i!=256;++i)S[i]=i;for(i=0;i!=256;++i){j=j+S[i]+key[i%key.length].charCodeAt(0)&255;t=S[i];S[i]=S[j];S[j]=t}i=j=0;out=Buffer(data.length);for(c=0;c!=data.length;++c){i=i+1&255;j=(j+S[i])%256;t=S[i];S[i]=S[j];S[j]=t;out[c]=data[c]^S[S[i]+S[j]&255]}return out};if(crypto){O.md5=function(hex){return crypto.createHash("md5").update(hex).digest("hex")}}else{O.md5=function(hex){throw"unimplemented"}}};make_offcrypto(OFFCRYPTO,typeof crypto!=="undefined"?crypto:undefined);function parse_StrRun(data,length){return{ich:data.read_shift(2),ifnt:data.read_shift(2)}}function parse_RichStr(data,length){var start=data.l;var flags=data.read_shift(1);var str=parse_XLWideString(data);var rgsStrRun=[];var z={t:str,h:str};if((flags&1)!==0){var dwSizeStrRun=data.read_shift(4);for(var i=0;i!=dwSizeStrRun;++i)rgsStrRun.push(parse_StrRun(data));z.r=rgsStrRun}else z.r="<t>"+escapexml(str)+"</t>";if((flags&2)!==0){}data.l=start+length;return z}function write_RichStr(str,o){if(o==null)o=new_buf(5+2*str.t.length);o.write_shift(1,0);write_XLWideString(str.t,o);return o}function parse_XLSBCell(data){var col=data.read_shift(4);var iStyleRef=data.read_shift(2);iStyleRef+=data.read_shift(1)<<16;var fPhShow=data.read_shift(1);return{c:col,iStyleRef:iStyleRef}}function write_XLSBCell(cell,o){if(o==null)o=new_buf(8);o.write_shift(-4,cell.c);o.write_shift(3,cell.iStyleRef===undefined?cell.iStyleRef:cell.s);o.write_shift(1,0);return o}function parse_XLSBCodeName(data,length){return parse_XLWideString(data,length)}function parse_XLNullableWideString(data){var cchCharacters=data.read_shift(4);return cchCharacters===0||cchCharacters===4294967295?"":data.read_shift(cchCharacters,"dbcs")}function write_XLNullableWideString(data,o){if(!o)o=new_buf(127);o.write_shift(4,data.length>0?data.length:4294967295);if(data.length>0)o.write_shift(0,data,"dbcs");return o}function parse_XLWideString(data){var cchCharacters=data.read_shift(4);return cchCharacters===0?"":data.read_shift(cchCharacters,"dbcs")}function write_XLWideString(data,o){if(o==null)o=new_buf(4+2*data.length);o.write_shift(4,data.length);if(data.length>0)o.write_shift(0,data,"dbcs");return o}var parse_RelID=parse_XLNullableWideString;var write_RelID=write_XLNullableWideString;function parse_RkNumber(data){var b=data.slice(data.l,data.l+4);var fX100=b[0]&1,fInt=b[0]&2;data.l+=4;b[0]&=252;var RK=fInt===0?__double([0,0,0,0,b[0],b[1],b[2],b[3]],0):__readInt32LE(b,0)>>2;return fX100?RK/100:RK}function parse_UncheckedRfX(data){var cell={s:{},e:{}};cell.s.r=data.read_shift(4);cell.e.r=data.read_shift(4);cell.s.c=data.read_shift(4);cell.e.c=data.read_shift(4);return cell}function write_UncheckedRfX(r,o){if(!o)o=new_buf(16);o.write_shift(4,r.s.r);o.write_shift(4,r.e.r);o.write_shift(4,r.s.c);o.write_shift(4,r.e.c);return o}function parse_Xnum(data,length){return data.read_shift(8,"f")}function write_Xnum(data,o){return(o||new_buf(8)).write_shift(8,"f",data)}var BErr={0:"#NULL!",7:"#DIV/0!",15:"#VALUE!",23:"#REF!",29:"#NAME?",36:"#NUM!",42:"#N/A",43:"#GETTING_DATA",255:"#WTF?"};var RBErr=evert_num(BErr);function parse_BrtColor(data,length){var out={};var d=data.read_shift(1);out.fValidRGB=d&1;out.xColorType=d>>>1;out.index=data.read_shift(1);out.nTintAndShade=data.read_shift(2,"i");out.bRed=data.read_shift(1);out.bGreen=data.read_shift(1);out.bBlue=data.read_shift(1);out.bAlpha=data.read_shift(1)}function parse_FontFlags(data,length){var d=data.read_shift(1);data.l++;var out={fItalic:d&2,fStrikeout:d&8,fOutline:d&16,fShadow:d&32,fCondense:d&64,fExtend:d&128};return out}{var VT_EMPTY=0;var VT_NULL=1;var VT_I2=2;var VT_I4=3;var VT_R4=4;var VT_R8=5;var VT_CY=6;var VT_DATE=7;var VT_BSTR=8;var VT_ERROR=10;var VT_BOOL=11;var VT_VARIANT=12;var VT_DECIMAL=14;var VT_I1=16;var VT_UI1=17;var VT_UI2=18;var VT_UI4=19;var VT_I8=20;var VT_UI8=21;var VT_INT=22;var VT_UINT=23;var VT_LPSTR=30;var VT_LPWSTR=31;var VT_FILETIME=64;var VT_BLOB=65;var VT_STREAM=66;var VT_STORAGE=67;var VT_STREAMED_Object=68;var VT_STORED_Object=69;var VT_BLOB_Object=70;var VT_CF=71;var VT_CLSID=72;var VT_VERSIONED_STREAM=73;var VT_VECTOR=4096;var VT_ARRAY=8192;var VT_STRING=80;var VT_USTR=81;var VT_CUSTOM=[VT_STRING,VT_USTR]}var DocSummaryPIDDSI={1:{n:"CodePage",t:VT_I2},2:{n:"Category",t:VT_STRING},3:{n:"PresentationFormat",t:VT_STRING},4:{n:"ByteCount",t:VT_I4},5:{n:"LineCount",t:VT_I4},6:{n:"ParagraphCount",t:VT_I4},7:{n:"SlideCount",t:VT_I4},8:{n:"NoteCount",t:VT_I4},9:{n:"HiddenCount",t:VT_I4},10:{n:"MultimediaClipCount",t:VT_I4},11:{n:"Scale",t:VT_BOOL},12:{n:"HeadingPair",t:VT_VECTOR|VT_VARIANT},13:{n:"DocParts",t:VT_VECTOR|VT_LPSTR},14:{n:"Manager",t:VT_STRING},15:{n:"Company",t:VT_STRING},16:{n:"LinksDirty",t:VT_BOOL},17:{n:"CharacterCount",t:VT_I4},19:{n:"SharedDoc",t:VT_BOOL},22:{n:"HLinksChanged",t:VT_BOOL},23:{n:"AppVersion",t:VT_I4,p:"version"},26:{n:"ContentType",t:VT_STRING},27:{n:"ContentStatus",t:VT_STRING},28:{n:"Language",t:VT_STRING},29:{n:"Version",t:VT_STRING},255:{}};var SummaryPIDSI={1:{n:"CodePage",t:VT_I2},2:{n:"Title",t:VT_STRING},3:{n:"Subject",t:VT_STRING},4:{n:"Author",t:VT_STRING},5:{n:"Keywords",t:VT_STRING},6:{n:"Comments",t:VT_STRING},7:{n:"Template",t:VT_STRING},8:{n:"LastAuthor",t:VT_STRING},9:{n:"RevNumber",t:VT_STRING},10:{n:"EditTime",t:VT_FILETIME},11:{n:"LastPrinted",t:VT_FILETIME},12:{n:"CreatedDate",t:VT_FILETIME},13:{n:"ModifiedDate",t:VT_FILETIME},14:{n:"PageCount",t:VT_I4},15:{n:"WordCount",t:VT_I4},16:{n:"CharCount",t:VT_I4},17:{n:"Thumbnail",t:VT_CF},18:{n:"ApplicationName",t:VT_LPSTR},19:{n:"DocumentSecurity",t:VT_I4},255:{}};var SpecialProperties={2147483648:{n:"Locale",t:VT_UI4},2147483651:{n:"Behavior",t:VT_UI4},1919054434:{}};(function(){for(var y in SpecialProperties)if(SpecialProperties.hasOwnProperty(y))DocSummaryPIDDSI[y]=SummaryPIDSI[y]=SpecialProperties[y]})();var CountryEnum={1:"US",2:"CA",3:"",7:"RU",20:"EG",30:"GR",31:"NL",32:"BE",33:"FR",34:"ES",36:"HU",39:"IT",41:"CH",43:"AT",44:"GB",45:"DK",46:"SE",47:"NO",48:"PL",49:"DE",52:"MX",55:"BR",61:"AU",64:"NZ",66:"TH",81:"JP",82:"KR",84:"VN",86:"CN",90:"TR",105:"JS",213:"DZ",216:"MA",218:"LY",351:"PT",354:"IS",358:"FI",420:"CZ",886:"TW",961:"LB",962:"JO",963:"SY",964:"IQ",965:"KW",966:"SA",971:"AE",972:"IL",974:"QA",981:"IR",65535:"US"};var XLSFillPattern=[null,"solid","mediumGray","darkGray","lightGray","darkHorizontal","darkVertical","darkDown","darkUp","darkGrid","darkTrellis","lightHorizontal","lightVertical","lightDown","lightUp","lightGrid","lightTrellis","gray125","gray0625"];function rgbify(arr){return arr.map(function(x){return[x>>16&255,x>>8&255,x&255]})}var XLSIcv=rgbify([0,16777215,16711680,65280,255,16776960,16711935,65535,0,16777215,16711680,65280,255,16776960,16711935,65535,8388608,32768,128,8421376,8388736,32896,12632256,8421504,10066431,10040166,16777164,13434879,6684774,16744576,26316,13421823,128,16711935,16776960,65535,8388736,8388608,32896,255,52479,13434879,13434828,16777113,10079487,16751052,13408767,16764057,3368703,3394764,10079232,16763904,16750848,16737792,6710937,9868950,13158,3381606,13056,3355392,10040064,10040166,3355545,3355443,16777215,0]);var ct2type={"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":"workbooks","application/vnd.ms-excel.binIndexWs":"TODO","application/vnd.ms-excel.chartsheet":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":"TODO","application/vnd.ms-excel.dialogsheet":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":"TODO","application/vnd.ms-excel.macrosheet":"TODO","application/vnd.ms-excel.macrosheet+xml":"TODO","application/vnd.ms-excel.intlmacrosheet":"TODO","application/vnd.ms-excel.binIndexMs":"TODO","application/vnd.openxmlformats-package.core-properties+xml":"coreprops","application/vnd.openxmlformats-officedocument.custom-properties+xml":"custprops","application/vnd.openxmlformats-officedocument.extended-properties+xml":"extprops","application/vnd.openxmlformats-officedocument.customXmlProperties+xml":"TODO","application/vnd.ms-excel.comments":"comments","application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":"comments","application/vnd.ms-excel.pivotTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml":"TODO","application/vnd.ms-excel.calcChain":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings":"TODO","application/vnd.ms-office.activeX":"TODO","application/vnd.ms-office.activeX+xml":"TODO","application/vnd.ms-excel.attachedToolbars":"TODO","application/vnd.ms-excel.connections":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":"TODO","application/vnd.ms-excel.externalLink":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml":"TODO","application/vnd.ms-excel.sheetMetadata":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml":"TODO","application/vnd.ms-excel.pivotCacheDefinition":"TODO","application/vnd.ms-excel.pivotCacheRecords":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml":"TODO","application/vnd.ms-excel.queryTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml":"TODO","application/vnd.ms-excel.userNames":"TODO","application/vnd.ms-excel.revisionHeaders":"TODO","application/vnd.ms-excel.revisionLog":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml":"TODO","application/vnd.ms-excel.tableSingleCells":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml":"TODO","application/vnd.ms-excel.slicer":"TODO","application/vnd.ms-excel.slicerCache":"TODO","application/vnd.ms-excel.slicer+xml":"TODO","application/vnd.ms-excel.slicerCache+xml":"TODO","application/vnd.ms-excel.wsSortMap":"TODO","application/vnd.ms-excel.table":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":"TODO","application/vnd.openxmlformats-officedocument.theme+xml":"themes","application/vnd.ms-excel.Timeline+xml":"TODO","application/vnd.ms-excel.TimelineCache+xml":"TODO","application/vnd.ms-office.vbaProject":"vba","application/vnd.ms-office.vbaProjectSignature":"vba","application/vnd.ms-office.volatileDependencies":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml":"TODO","application/vnd.ms-excel.controlproperties+xml":"TODO","application/vnd.openxmlformats-officedocument.model+data":"TODO","application/vnd.ms-excel.Survey+xml":"TODO","application/vnd.openxmlformats-officedocument.drawing+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.chart+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml":"TODO","application/vnd.openxmlformats-officedocument.vmlDrawing":"TODO","application/vnd.openxmlformats-package.relationships+xml":"rels","application/vnd.openxmlformats-officedocument.oleObject":"TODO",sheet:"js"};var CT_LIST=function(){var o={workbooks:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml",xlsm:"application/vnd.ms-excel.sheet.macroEnabled.main+xml",xlsb:"application/vnd.ms-excel.sheet.binary.macroEnabled.main",xltx:"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml"},strs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml",xlsb:"application/vnd.ms-excel.sharedStrings"},sheets:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",xlsb:"application/vnd.ms-excel.worksheet"},styles:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml",xlsb:"application/vnd.ms-excel.styles"}};keys(o).forEach(function(k){if(!o[k].xlsm)o[k].xlsm=o[k].xlsx});keys(o).forEach(function(k){keys(o[k]).forEach(function(v){ct2type[o[k][v]]=k})});return o}();var type2ct=evert_arr(ct2type);XMLNS.CT="http://schemas.openxmlformats.org/package/2006/content-types";function parse_ct(data,opts){var ctext={};if(!data||!data.match)return data;var ct={workbooks:[],sheets:[],calcchains:[],themes:[],styles:[],coreprops:[],extprops:[],custprops:[],strs:[],comments:[],vba:[],TODO:[],rels:[],xmlns:""};(data.match(tagregex)||[]).forEach(function(x){var y=parsexmltag(x);switch(y[0].replace(nsregex,"<")){case"<?xml":break;case"<Types":ct.xmlns=y["xmlns"+(y[0].match(/<(\w+):/)||["",""])[1]];break;case"<Default":ctext[y.Extension]=y.ContentType;break;case"<Override":if(ct[ct2type[y.ContentType]]!==undefined)ct[ct2type[y.ContentType]].push(y.PartName);else if(opts.WTF)console.error(y);break}});if(ct.xmlns!==XMLNS.CT)throw new Error("Unknown Namespace: "+ct.xmlns);ct.calcchain=ct.calcchains.length>0?ct.calcchains[0]:"";ct.sst=ct.strs.length>0?ct.strs[0]:"";ct.style=ct.styles.length>0?ct.styles[0]:"";ct.defaults=ctext;delete ct.calcchains;return ct}var CTYPE_XML_ROOT=writextag("Types",null,{xmlns:XMLNS.CT,"xmlns:xsd":XMLNS.xsd,"xmlns:xsi":XMLNS.xsi});var CTYPE_DEFAULTS=[["xml","application/xml"],["bin","application/vnd.ms-excel.sheet.binary.macroEnabled.main"],["rels",type2ct.rels[0]]].map(function(x){return writextag("Default",null,{Extension:x[0],ContentType:x[1]})});function write_ct(ct,opts){var o=[],v;o[o.length]=XML_HEADER;o[o.length]=CTYPE_XML_ROOT;o=o.concat(CTYPE_DEFAULTS);var f1=function(w){if(ct[w]&&ct[w].length>0){v=ct[w][0];o[o.length]=writextag("Override",null,{PartName:(v[0]=="/"?"":"/")+v,ContentType:CT_LIST[w][opts.bookType||"xlsx"]})}};var f2=function(w){ct[w].forEach(function(v){o[o.length]=writextag("Override",null,{PartName:(v[0]=="/"?"":"/")+v,ContentType:CT_LIST[w][opts.bookType||"xlsx"]})})};var f3=function(t){(ct[t]||[]).forEach(function(v){o[o.length]=writextag("Override",null,{PartName:(v[0]=="/"?"":"/")+v,ContentType:type2ct[t][0]})})};f1("workbooks");f2("sheets");f3("themes");["strs","styles"].forEach(f1);["coreprops","extprops","custprops"].forEach(f3);if(o.length>2){o[o.length]="</Types>";o[1]=o[1].replace("/>",">")}return o.join("")}var RELS={WB:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",SHEET:"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument"};function parse_rels(data,currentFilePath){if(!data)return data;if(currentFilePath.charAt(0)!=="/"){currentFilePath="/"+currentFilePath}var rels={};var hash={};var resolveRelativePathIntoAbsolute=function(to){var toksFrom=currentFilePath.split("/");toksFrom.pop();var toksTo=to.split("/");var reversed=[];while(toksTo.length!==0){var tokTo=toksTo.shift();if(tokTo===".."){toksFrom.pop()}else if(tokTo!=="."){toksFrom.push(tokTo)}}return toksFrom.join("/")};data.match(tagregex).forEach(function(x){var y=parsexmltag(x);if(y[0]==="<Relationship"){var rel={};rel.Type=y.Type;rel.Target=y.Target;rel.Id=y.Id;rel.TargetMode=y.TargetMode;var canonictarget=y.TargetMode==="External"?y.Target:resolveRelativePathIntoAbsolute(y.Target);rels[canonictarget]=rel;hash[y.Id]=rel}});rels["!id"]=hash;return rels}XMLNS.RELS="http://schemas.openxmlformats.org/package/2006/relationships";var RELS_ROOT=writextag("Relationships",null,{xmlns:XMLNS.RELS});function write_rels(rels){var o=[];o[o.length]=XML_HEADER;o[o.length]=RELS_ROOT;keys(rels["!id"]).forEach(function(rid){var rel=rels["!id"][rid];o[o.length]=writextag("Relationship",null,rel)});if(o.length>2){o[o.length]="</Relationships>";o[1]=o[1].replace("/>",">")}return o.join("")}var CORE_PROPS=[["cp:category","Category"],["cp:contentStatus","ContentStatus"],["cp:keywords","Keywords"],["cp:lastModifiedBy","LastAuthor"],["cp:lastPrinted","LastPrinted"],["cp:revision","RevNumber"],["cp:version","Version"],["dc:creator","Author"],["dc:description","Comments"],["dc:identifier","Identifier"],["dc:language","Language"],["dc:subject","Subject"],["dc:title","Title"],["dcterms:created","CreatedDate","date"],["dcterms:modified","ModifiedDate","date"]];XMLNS.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/metadata/core-properties";RELS.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties";var CORE_PROPS_REGEX=function(){var r=new Array(CORE_PROPS.length);for(var i=0;i<CORE_PROPS.length;++i){var f=CORE_PROPS[i];var g="(?:"+f[0].substr(0,f[0].indexOf(":"))+":)"+f[0].substr(f[0].indexOf(":")+1);r[i]=new RegExp("<"+g+"[^>]*>(.*)</"+g+">")}return r}();function parse_core_props(data){var p={};for(var i=0;i<CORE_PROPS.length;++i){var f=CORE_PROPS[i],cur=data.match(CORE_PROPS_REGEX[i]);if(cur!=null&&cur.length>0)p[f[1]]=cur[1];if(f[2]==="date"&&p[f[1]])p[f[1]]=new Date(p[f[1]])}return p}var CORE_PROPS_XML_ROOT=writextag("cp:coreProperties",null,{"xmlns:cp":XMLNS.CORE_PROPS,"xmlns:dc":XMLNS.dc,"xmlns:dcterms":XMLNS.dcterms,"xmlns:dcmitype":XMLNS.dcmitype,"xmlns:xsi":XMLNS.xsi});function cp_doit(f,g,h,o,p){if(p[f]!=null||g==null||g==="")return;p[f]=g;o[o.length]=h?writextag(f,g,h):writetag(f,g)}function write_core_props(cp,opts){var o=[XML_HEADER,CORE_PROPS_XML_ROOT],p={};if(!cp)return o.join("");if(cp.CreatedDate!=null)cp_doit("dcterms:created",typeof cp.CreatedDate==="string"?cp.CreatedDate:write_w3cdtf(cp.CreatedDate,opts.WTF),{"xsi:type":"dcterms:W3CDTF"},o,p);if(cp.ModifiedDate!=null)cp_doit("dcterms:modified",typeof cp.ModifiedDate==="string"?cp.ModifiedDate:write_w3cdtf(cp.ModifiedDate,opts.WTF),{"xsi:type":"dcterms:W3CDTF"},o,p);for(var i=0;i!=CORE_PROPS.length;++i){var f=CORE_PROPS[i];cp_doit(f[0],cp[f[1]],null,o,p)}if(o.length>2){o[o.length]="</cp:coreProperties>";o[1]=o[1].replace("/>",">")}return o.join("")}var EXT_PROPS=[["Application","Application","string"],["AppVersion","AppVersion","string"],["Company","Company","string"],["DocSecurity","DocSecurity","string"],["Manager","Manager","string"],["HyperlinksChanged","HyperlinksChanged","bool"],["SharedDoc","SharedDoc","bool"],["LinksUpToDate","LinksUpToDate","bool"],["ScaleCrop","ScaleCrop","bool"],["HeadingPairs","HeadingPairs","raw"],["TitlesOfParts","TitlesOfParts","raw"]];XMLNS.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties";RELS.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties";function parse_ext_props(data,p){var q={};if(!p)p={};EXT_PROPS.forEach(function(f){switch(f[2]){case"string":p[f[1]]=(data.match(matchtag(f[0]))||[])[1];break;case"bool":p[f[1]]=(data.match(matchtag(f[0]))||[])[1]==="true";break;case"raw":var cur=data.match(new RegExp("<"+f[0]+"[^>]*>(.*)</"+f[0]+">"));if(cur&&cur.length>0)q[f[1]]=cur[1];break}});if(q.HeadingPairs&&q.TitlesOfParts){var v=parseVector(q.HeadingPairs);var j=0,widx=0;for(var i=0;i!==v.length;++i){switch(v[i].v){case"Worksheets":widx=j;p.Worksheets=+v[++i].v;break;case"Named Ranges":++i;break}}var parts=parseVector(q.TitlesOfParts).map(function(x){return utf8read(x.v)});p.SheetNames=parts.slice(widx,widx+p.Worksheets)}return p}var EXT_PROPS_XML_ROOT=writextag("Properties",null,{xmlns:XMLNS.EXT_PROPS,"xmlns:vt":XMLNS.vt});function write_ext_props(cp,opts){var o=[],p={},W=writextag;if(!cp)cp={};cp.Application="SheetJS";o[o.length]=XML_HEADER;o[o.length]=EXT_PROPS_XML_ROOT;EXT_PROPS.forEach(function(f){if(cp[f[1]]===undefined)return;var v;switch(f[2]){case"string":v=cp[f[1]];break;case"bool":v=cp[f[1]]?"true":"false";break}if(v!==undefined)o[o.length]=W(f[0],v)});o[o.length]=W("HeadingPairs",W("vt:vector",W("vt:variant","<vt:lpstr>Worksheets</vt:lpstr>")+W("vt:variant",W("vt:i4",String(cp.Worksheets))),{size:2,baseType:"variant"}));o[o.length]=W("TitlesOfParts",W("vt:vector",cp.SheetNames.map(function(s){return"<vt:lpstr>"+s+"</vt:lpstr>"}).join(""),{size:cp.Worksheets,baseType:"lpstr"}));if(o.length>2){o[o.length]="</Properties>";o[1]=o[1].replace("/>",">")}return o.join("")}XMLNS.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/custom-properties";RELS.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties";var custregex=/<[^>]+>[^<]*/g;function parse_cust_props(data,opts){var p={},name;var m=data.match(custregex);if(m)for(var i=0;i!=m.length;++i){var x=m[i],y=parsexmltag(x);switch(y[0]){case"<?xml":break;case"<Properties":if(y.xmlns!==XMLNS.CUST_PROPS)throw"unrecognized xmlns "+y.xmlns;if(y.xmlnsvt&&y.xmlnsvt!==XMLNS.vt)throw"unrecognized vt "+y.xmlnsvt;break;case"<property":name=y.name;break;case"</property>":name=null;break;default:if(x.indexOf("<vt:")===0){var toks=x.split(">");var type=toks[0].substring(4),text=toks[1];switch(type){case"lpstr":case"lpwstr":case"bstr":case"lpwstr":p[name]=unescapexml(text);break;case"bool":p[name]=parsexmlbool(text,"<vt:bool>");break;case"i1":case"i2":case"i4":case"i8":case"int":case"uint":p[name]=parseInt(text,10);break;case"r4":case"r8":case"decimal":p[name]=parseFloat(text);break;case"filetime":case"date":p[name]=new Date(text);break;case"cy":case"error":p[name]=unescapexml(text);break;default:if(typeof console!=="undefined")console.warn("Unexpected",x,type,toks)}}else if(x.substr(0,2)==="</"){}else if(opts.WTF)throw new Error(x)}}return p}var CUST_PROPS_XML_ROOT=writextag("Properties",null,{xmlns:XMLNS.CUST_PROPS,"xmlns:vt":XMLNS.vt});function write_cust_props(cp,opts){var o=[XML_HEADER,CUST_PROPS_XML_ROOT];if(!cp)return o.join("");var pid=1;keys(cp).forEach(function custprop(k){++pid;o[o.length]=writextag("property",write_vt(cp[k]),{fmtid:"{D5CDD505-2E9C-101B-9397-08002B2CF9AE}",pid:pid,name:k})});if(o.length>2){o[o.length]="</Properties>";o[1]=o[1].replace("/>",">")}return o.join("")}function xlml_set_prop(Props,tag,val){switch(tag){case"Description":tag="Comments";break}Props[tag]=val}function parse_FILETIME(blob){var dwLowDateTime=blob.read_shift(4),dwHighDateTime=blob.read_shift(4);return new Date((dwHighDateTime/1e7*Math.pow(2,32)+dwLowDateTime/1e7-11644473600)*1e3).toISOString().replace(/\.000/,"")}function parse_lpstr(blob,type,pad){var str=blob.read_shift(0,"lpstr");if(pad)blob.l+=4-(str.length+1&3)&3;return str}function parse_lpwstr(blob,type,pad){var str=blob.read_shift(0,"lpwstr");if(pad)blob.l+=4-(str.length+1&3)&3;return str}function parse_VtStringBase(blob,stringType,pad){if(stringType===31)return parse_lpwstr(blob);return parse_lpstr(blob,stringType,pad)}function parse_VtString(blob,t,pad){return parse_VtStringBase(blob,t,pad===false?0:4)}function parse_VtUnalignedString(blob,t){if(!t)throw new Error("dafuq?");return parse_VtStringBase(blob,t,0)}function parse_VtVecUnalignedLpstrValue(blob){var length=blob.read_shift(4);var ret=[];for(var i=0;i!=length;++i)ret[i]=blob.read_shift(0,"lpstr");return ret}function parse_VtVecUnalignedLpstr(blob){return parse_VtVecUnalignedLpstrValue(blob)}function parse_VtHeadingPair(blob){var headingString=parse_TypedPropertyValue(blob,VT_USTR);var headerParts=parse_TypedPropertyValue(blob,VT_I4);return[headingString,headerParts]}function parse_VtVecHeadingPairValue(blob){var cElements=blob.read_shift(4);var out=[];for(var i=0;i!=cElements/2;++i)out.push(parse_VtHeadingPair(blob));return out}function parse_VtVecHeadingPair(blob){return parse_VtVecHeadingPairValue(blob)}function parse_dictionary(blob,CodePage){var cnt=blob.read_shift(4);var dict={};for(var j=0;j!=cnt;++j){var pid=blob.read_shift(4);var len=blob.read_shift(4);dict[pid]=blob.read_shift(len,CodePage===1200?"utf16le":"utf8").replace(chr0,"").replace(chr1,"!")}if(blob.l&3)blob.l=blob.l>>2+1<<2;return dict}function parse_BLOB(blob){var size=blob.read_shift(4);var bytes=blob.slice(blob.l,blob.l+size);if(size&3>0)blob.l+=4-(size&3)&3;return bytes}function parse_ClipboardData(blob){var o={};o.Size=blob.read_shift(4);blob.l+=o.Size;return o}function parse_VtVector(blob,cb){}function parse_TypedPropertyValue(blob,type,_opts){var t=blob.read_shift(2),ret,opts=_opts||{};blob.l+=2;if(type!==VT_VARIANT)if(t!==type&&VT_CUSTOM.indexOf(type)===-1)throw new Error("Expected type "+type+" saw "+t);switch(type===VT_VARIANT?t:type){case 2:ret=blob.read_shift(2,"i");if(!opts.raw)blob.l+=2;return ret;case 3:ret=blob.read_shift(4,"i");return ret;case 11:return blob.read_shift(4)!==0;case 19:ret=blob.read_shift(4);return ret;case 30:return parse_lpstr(blob,t,4).replace(chr0,"");case 31:return parse_lpwstr(blob);case 64:return parse_FILETIME(blob);case 65:return parse_BLOB(blob);case 71:return parse_ClipboardData(blob);case 80:return parse_VtString(blob,t,!opts.raw&&4).replace(chr0,"");case 81:return parse_VtUnalignedString(blob,t,4).replace(chr0,"");case 4108:return parse_VtVecHeadingPair(blob);case 4126:return parse_VtVecUnalignedLpstr(blob);default:throw new Error("TypedPropertyValue unrecognized type "+type+" "+t)}}function parse_PropertySet(blob,PIDSI){var start_addr=blob.l;var size=blob.read_shift(4);var NumProps=blob.read_shift(4);var Props=[],i=0;var CodePage=0;var Dictionary=-1,DictObj;for(i=0;i!=NumProps;++i){var PropID=blob.read_shift(4);var Offset=blob.read_shift(4);Props[i]=[PropID,Offset+start_addr]}var PropH={};for(i=0;i!=NumProps;++i){if(blob.l!==Props[i][1]){var fail=true;if(i>0&&PIDSI)switch(PIDSI[Props[i-1][0]].t){case 2:if(blob.l+2===Props[i][1]){blob.l+=2;fail=false}break;case 80:if(blob.l<=Props[i][1]){blob.l=Props[i][1];fail=false}break;case 4108:if(blob.l<=Props[i][1]){blob.l=Props[i][1];fail=false}break}if(!PIDSI&&blob.l<=Props[i][1]){fail=false;blob.l=Props[i][1]}if(fail)throw new Error("Read Error: Expected address "+Props[i][1]+" at "+blob.l+" :"+i)}if(PIDSI){var piddsi=PIDSI[Props[i][0]];PropH[piddsi.n]=parse_TypedPropertyValue(blob,piddsi.t,{raw:true});if(piddsi.p==="version")PropH[piddsi.n]=String(PropH[piddsi.n]>>16)+"."+String(PropH[piddsi.n]&65535);if(piddsi.n=="CodePage")switch(PropH[piddsi.n]){case 0:PropH[piddsi.n]=1252;case 1e4:case 1252:case 874:case 1250:case 1251:case 1253:case 1254:case 1255:case 1256:case 1257:case 1258:case 932:case 936:case 949:case 950:case 1200:case 1201:case 65e3:case-536:case 65001:case-535:set_cp(CodePage=PropH[piddsi.n]);break;default:throw new Error("Unsupported CodePage: "+PropH[piddsi.n])}}else{if(Props[i][0]===1){CodePage=PropH.CodePage=parse_TypedPropertyValue(blob,VT_I2);set_cp(CodePage);if(Dictionary!==-1){var oldpos=blob.l;blob.l=Props[Dictionary][1];DictObj=parse_dictionary(blob,CodePage);blob.l=oldpos}}else if(Props[i][0]===0){if(CodePage===0){Dictionary=i;blob.l=Props[i+1][1];continue}DictObj=parse_dictionary(blob,CodePage)}else{var name=DictObj[Props[i][0]];var val;switch(blob[blob.l]){case 65:blob.l+=4;val=parse_BLOB(blob);break;case 30:blob.l+=4;val=parse_VtString(blob,blob[blob.l-4]);break;case 31:blob.l+=4;val=parse_VtString(blob,blob[blob.l-4]);break;case 3:blob.l+=4;val=blob.read_shift(4,"i");break;case 19:blob.l+=4;val=blob.read_shift(4);break;case 5:blob.l+=4;val=blob.read_shift(8,"f");break;case 11:blob.l+=4;val=parsebool(blob,4);break;case 64:blob.l+=4;val=new Date(parse_FILETIME(blob));break;default:throw new Error("unparsed value: "+blob[blob.l])}PropH[name]=val}}}blob.l=start_addr+size;return PropH}function parse_PropertySetStream(file,PIDSI){var blob=file.content;prep_blob(blob,0);var NumSets,FMTID0,FMTID1,Offset0,Offset1;blob.chk("feff","Byte Order: ");var vers=blob.read_shift(2);var SystemIdentifier=blob.read_shift(4);blob.chk(CFB.utils.consts.HEADER_CLSID,"CLSID: ");NumSets=blob.read_shift(4);if(NumSets!==1&&NumSets!==2)throw"Unrecognized #Sets: "+NumSets;FMTID0=blob.read_shift(16);Offset0=blob.read_shift(4);if(NumSets===1&&Offset0!==blob.l)throw"Length mismatch";else if(NumSets===2){FMTID1=blob.read_shift(16);Offset1=blob.read_shift(4)}var PSet0=parse_PropertySet(blob,PIDSI);var rval={SystemIdentifier:SystemIdentifier};for(var y in PSet0)rval[y]=PSet0[y];rval.FMTID=FMTID0;if(NumSets===1)return rval;if(blob.l!==Offset1)throw"Length mismatch 2: "+blob.l+" !== "+Offset1;var PSet1;try{PSet1=parse_PropertySet(blob,null)}catch(e){}for(y in PSet1)rval[y]=PSet1[y];rval.FMTID=[FMTID0,FMTID1];return rval}function parsenoop2(blob,length){blob.read_shift(length);return null}function parslurp(blob,length,cb){var arr=[],target=blob.l+length;while(blob.l<target)arr.push(cb(blob,target-blob.l));if(target!==blob.l)throw new Error("Slurp error");return arr}function parslurp2(blob,length,cb){var arr=[],target=blob.l+length,len=blob.read_shift(2);while(len--!==0)arr.push(cb(blob,target-blob.l));if(target!==blob.l)throw new Error("Slurp error");return arr}function parsebool(blob,length){return blob.read_shift(length)===1}function parseuint16(blob){return blob.read_shift(2,"u")}function parseuint16a(blob,length){return parslurp(blob,length,parseuint16)}var parse_Boolean=parsebool;function parse_Bes(blob){var v=blob.read_shift(1),t=blob.read_shift(1);return t===1?v:v===1 +}function parse_ShortXLUnicodeString(blob,length,opts){var cch=blob.read_shift(1);var width=1,encoding="sbcs-cont";var cp=current_codepage;if(opts&&opts.biff>=8)current_codepage=1200;if(opts===undefined||opts.biff!==5){var fHighByte=blob.read_shift(1);if(fHighByte){width=2;encoding="dbcs-cont"}}var o=cch?blob.read_shift(cch,encoding):"";current_codepage=cp;return o}function parse_XLUnicodeRichExtendedString(blob){var cp=current_codepage;current_codepage=1200;var cch=blob.read_shift(2),flags=blob.read_shift(1);var fHighByte=flags&1,fExtSt=flags&4,fRichSt=flags&8;var width=1+(flags&1);var cRun,cbExtRst;var z={};if(fRichSt)cRun=blob.read_shift(2);if(fExtSt)cbExtRst=blob.read_shift(4);var encoding=flags&1?"dbcs-cont":"sbcs-cont";var msg=cch===0?"":blob.read_shift(cch,encoding);if(fRichSt)blob.l+=4*cRun;if(fExtSt)blob.l+=cbExtRst;z.t=msg;if(!fRichSt){z.raw="<t>"+z.t+"</t>";z.r=z.t}current_codepage=cp;return z}function parse_XLUnicodeStringNoCch(blob,cch,opts){var retval;var fHighByte=blob.read_shift(1);if(fHighByte===0){retval=blob.read_shift(cch,"sbcs-cont")}else{retval=blob.read_shift(cch,"dbcs-cont")}return retval}function parse_XLUnicodeString(blob,length,opts){var cch=blob.read_shift(opts!==undefined&&opts.biff>0&&opts.biff<8?1:2);if(cch===0){blob.l++;return""}return parse_XLUnicodeStringNoCch(blob,cch,opts)}function parse_XLUnicodeString2(blob,length,opts){if(opts.biff!==5&&opts.biff!==2)return parse_XLUnicodeString(blob,length,opts);var cch=blob.read_shift(1);if(cch===0){blob.l++;return""}return blob.read_shift(cch,"sbcs-cont")}var parse_ControlInfo=parsenoop;var parse_URLMoniker=function(blob,length){var len=blob.read_shift(4),start=blob.l;var extra=false;if(len>24){blob.l+=len-24;if(blob.read_shift(16)==="795881f43b1d7f48af2c825dc4852763")extra=true;blob.l=start}var url=blob.read_shift((extra?len-24:len)>>1,"utf16le").replace(chr0,"");if(extra)blob.l+=24;return url};var parse_FileMoniker=function(blob,length){var cAnti=blob.read_shift(2);var ansiLength=blob.read_shift(4);var ansiPath=blob.read_shift(ansiLength,"cstr");var endServer=blob.read_shift(2);var versionNumber=blob.read_shift(2);var cbUnicodePathSize=blob.read_shift(4);if(cbUnicodePathSize===0)return ansiPath.replace(/\\/g,"/");var cbUnicodePathBytes=blob.read_shift(4);var usKeyValue=blob.read_shift(2);var unicodePath=blob.read_shift(cbUnicodePathBytes>>1,"utf16le").replace(chr0,"");return unicodePath};var parse_HyperlinkMoniker=function(blob,length){var clsid=blob.read_shift(16);length-=16;switch(clsid){case"e0c9ea79f9bace118c8200aa004ba90b":return parse_URLMoniker(blob,length);case"0303000000000000c000000000000046":return parse_FileMoniker(blob,length);default:throw"unsupported moniker "+clsid}};var parse_HyperlinkString=function(blob,length){var len=blob.read_shift(4);var o=blob.read_shift(len,"utf16le").replace(chr0,"");return o};var parse_Hyperlink=function(blob,length){var end=blob.l+length;var sVer=blob.read_shift(4);if(sVer!==2)throw new Error("Unrecognized streamVersion: "+sVer);var flags=blob.read_shift(2);blob.l+=2;var displayName,targetFrameName,moniker,oleMoniker,location,guid,fileTime;if(flags&16)displayName=parse_HyperlinkString(blob,end-blob.l);if(flags&128)targetFrameName=parse_HyperlinkString(blob,end-blob.l);if((flags&257)===257)moniker=parse_HyperlinkString(blob,end-blob.l);if((flags&257)===1)oleMoniker=parse_HyperlinkMoniker(blob,end-blob.l);if(flags&8)location=parse_HyperlinkString(blob,end-blob.l);if(flags&32)guid=blob.read_shift(16);if(flags&64)fileTime=parse_FILETIME(blob,8);blob.l=end;var target=targetFrameName||moniker||oleMoniker;if(location)target+="#"+location;return{Target:target}};function parse_LongRGBA(blob,length){var r=blob.read_shift(1),g=blob.read_shift(1),b=blob.read_shift(1),a=blob.read_shift(1);return[r,g,b,a]}function parse_LongRGB(blob,length){var x=parse_LongRGBA(blob,length);x[3]=0;return x}function parse_XLSCell(blob,length){var rw=blob.read_shift(2);var col=blob.read_shift(2);var ixfe=blob.read_shift(2);return{r:rw,c:col,ixfe:ixfe}}function parse_frtHeader(blob){var rt=blob.read_shift(2);var flags=blob.read_shift(2);blob.l+=8;return{type:rt,flags:flags}}function parse_OptXLUnicodeString(blob,length,opts){return length===0?"":parse_XLUnicodeString2(blob,length,opts)}var HIDEOBJENUM=["SHOWALL","SHOWPLACEHOLDER","HIDEALL"];var parse_HideObjEnum=parseuint16;function parse_XTI(blob,length){var iSupBook=blob.read_shift(2),itabFirst=blob.read_shift(2,"i"),itabLast=blob.read_shift(2,"i");return[iSupBook,itabFirst,itabLast]}function parse_RkRec(blob,length){var ixfe=blob.read_shift(2);var RK=parse_RkNumber(blob);return[ixfe,RK]}function parse_AddinUdf(blob,length){blob.l+=4;length-=4;var l=blob.l+length;var udfName=parse_ShortXLUnicodeString(blob,length);var cb=blob.read_shift(2);l-=blob.l;if(cb!==l)throw"Malformed AddinUdf: padding = "+l+" != "+cb;blob.l+=cb;return udfName}function parse_Ref8U(blob,length){var rwFirst=blob.read_shift(2);var rwLast=blob.read_shift(2);var colFirst=blob.read_shift(2);var colLast=blob.read_shift(2);return{s:{c:colFirst,r:rwFirst},e:{c:colLast,r:rwLast}}}function parse_RefU(blob,length){var rwFirst=blob.read_shift(2);var rwLast=blob.read_shift(2);var colFirst=blob.read_shift(1);var colLast=blob.read_shift(1);return{s:{c:colFirst,r:rwFirst},e:{c:colLast,r:rwLast}}}var parse_Ref=parse_RefU;function parse_FtCmo(blob,length){blob.l+=4;var ot=blob.read_shift(2);var id=blob.read_shift(2);var flags=blob.read_shift(2);blob.l+=12;return[id,ot,flags]}function parse_FtNts(blob,length){var out={};blob.l+=4;blob.l+=16;out.fSharedNote=blob.read_shift(2);blob.l+=4;return out}function parse_FtCf(blob,length){var out={};blob.l+=4;blob.cf=blob.read_shift(2);return out}var FtTab={21:parse_FtCmo,19:parsenoop,18:function(blob,length){blob.l+=12},17:function(blob,length){blob.l+=8},16:parsenoop,15:parsenoop,13:parse_FtNts,12:function(blob,length){blob.l+=24},11:function(blob,length){blob.l+=10},10:function(blob,length){blob.l+=16},9:parsenoop,8:function(blob,length){blob.l+=6},7:parse_FtCf,6:function(blob,length){blob.l+=6},4:parsenoop,0:function(blob,length){blob.l+=4}};function parse_FtArray(blob,length,ot){var s=blob.l;var fts=[];while(blob.l<s+length){var ft=blob.read_shift(2);blob.l-=2;try{fts.push(FtTab[ft](blob,s+length-blob.l))}catch(e){blob.l=s+length;return fts}}if(blob.l!=s+length)blob.l=s+length;return fts}var parse_FontIndex=parseuint16;function parse_BOF(blob,length){var o={};o.BIFFVer=blob.read_shift(2);length-=2;switch(o.BIFFVer){case 1536:case 1280:case 2:case 7:break;default:throw"Unexpected BIFF Ver "+o.BIFFVer}blob.read_shift(length);return o}function parse_InterfaceHdr(blob,length){if(length===0)return 1200;var q;if((q=blob.read_shift(2))!==1200)throw"InterfaceHdr codePage "+q;return 1200}function parse_WriteAccess(blob,length,opts){if(opts.enc){blob.l+=length;return""}var l=blob.l;var UserName=parse_XLUnicodeString(blob,0,opts);blob.read_shift(length+l-blob.l);return UserName}function parse_BoundSheet8(blob,length,opts){var pos=blob.read_shift(4);var hidden=blob.read_shift(1)>>6;var dt=blob.read_shift(1);switch(dt){case 0:dt="Worksheet";break;case 1:dt="Macrosheet";break;case 2:dt="Chartsheet";break;case 6:dt="VBAModule";break}var name=parse_ShortXLUnicodeString(blob,0,opts);if(name.length===0)name="Sheet1";return{pos:pos,hs:hidden,dt:dt,name:name}}function parse_SST(blob,length){var cnt=blob.read_shift(4);var ucnt=blob.read_shift(4);var strs=[];for(var i=0;i!=ucnt;++i){strs.push(parse_XLUnicodeRichExtendedString(blob))}strs.Count=cnt;strs.Unique=ucnt;return strs}function parse_ExtSST(blob,length){var extsst={};extsst.dsst=blob.read_shift(2);blob.l+=length-2;return extsst}function parse_Row(blob,length){var rw=blob.read_shift(2),col=blob.read_shift(2),Col=blob.read_shift(2),rht=blob.read_shift(2);blob.read_shift(4);var flags=blob.read_shift(1);blob.read_shift(1);blob.read_shift(2);return{r:rw,c:col,cnt:Col-col}}function parse_ForceFullCalculation(blob,length){var header=parse_frtHeader(blob);if(header.type!=2211)throw"Invalid Future Record "+header.type;var fullcalc=blob.read_shift(4);return fullcalc!==0}var parse_CompressPictures=parsenoop2;function parse_RecalcId(blob,length){blob.read_shift(2);return blob.read_shift(4)}function parse_DefaultRowHeight(blob,length){var f=blob.read_shift(2),miyRw;miyRw=blob.read_shift(2);var fl={Unsynced:f&1,DyZero:(f&2)>>1,ExAsc:(f&4)>>2,ExDsc:(f&8)>>3};return[fl,miyRw]}function parse_Window1(blob,length){var xWn=blob.read_shift(2),yWn=blob.read_shift(2),dxWn=blob.read_shift(2),dyWn=blob.read_shift(2);var flags=blob.read_shift(2),iTabCur=blob.read_shift(2),iTabFirst=blob.read_shift(2);var ctabSel=blob.read_shift(2),wTabRatio=blob.read_shift(2);return{Pos:[xWn,yWn],Dim:[dxWn,dyWn],Flags:flags,CurTab:iTabCur,FirstTab:iTabFirst,Selected:ctabSel,TabRatio:wTabRatio}}function parse_Font(blob,length,opts){blob.l+=14;var name=parse_ShortXLUnicodeString(blob,0,opts);return name}function parse_LabelSst(blob,length){var cell=parse_XLSCell(blob);cell.isst=blob.read_shift(4);return cell}function parse_Label(blob,length,opts){var cell=parse_XLSCell(blob,6);var str=parse_XLUnicodeString(blob,length-6,opts);cell.val=str;return cell}function parse_Format(blob,length,opts){var ifmt=blob.read_shift(2);var fmtstr=parse_XLUnicodeString2(blob,0,opts);return[ifmt,fmtstr]}function parse_Dimensions(blob,length){var w=length===10?2:4;var r=blob.read_shift(w),R=blob.read_shift(w),c=blob.read_shift(2),C=blob.read_shift(2);blob.l+=2;return{s:{r:r,c:c},e:{r:R,c:C}}}function parse_RK(blob,length){var rw=blob.read_shift(2),col=blob.read_shift(2);var rkrec=parse_RkRec(blob);return{r:rw,c:col,ixfe:rkrec[0],rknum:rkrec[1]}}function parse_MulRk(blob,length){var target=blob.l+length-2;var rw=blob.read_shift(2),col=blob.read_shift(2);var rkrecs=[];while(blob.l<target)rkrecs.push(parse_RkRec(blob));if(blob.l!==target)throw"MulRK read error";var lastcol=blob.read_shift(2);if(rkrecs.length!=lastcol-col+1)throw"MulRK length mismatch";return{r:rw,c:col,C:lastcol,rkrec:rkrecs}}function parse_CellStyleXF(blob,length,style){var o={};var a=blob.read_shift(4),b=blob.read_shift(4);var c=blob.read_shift(4),d=blob.read_shift(2);o.patternType=XLSFillPattern[c>>26];o.icvFore=d&127;o.icvBack=d>>7&127;return o}function parse_CellXF(blob,length){return parse_CellStyleXF(blob,length,0)}function parse_StyleXF(blob,length){return parse_CellStyleXF(blob,length,1)}function parse_XF(blob,length){var o={};o.ifnt=blob.read_shift(2);o.ifmt=blob.read_shift(2);o.flags=blob.read_shift(2);o.fStyle=o.flags>>2&1;length-=6;o.data=parse_CellStyleXF(blob,length,o.fStyle);return o}function parse_Guts(blob,length){blob.l+=4;var out=[blob.read_shift(2),blob.read_shift(2)];if(out[0]!==0)out[0]--;if(out[1]!==0)out[1]--;if(out[0]>7||out[1]>7)throw"Bad Gutters: "+out;return out}function parse_BoolErr(blob,length){var cell=parse_XLSCell(blob,6);var val=parse_Bes(blob,2);cell.val=val;cell.t=val===true||val===false?"b":"e";return cell}function parse_Number(blob,length){var cell=parse_XLSCell(blob,6);var xnum=parse_Xnum(blob,8);cell.val=xnum;return cell}var parse_XLHeaderFooter=parse_OptXLUnicodeString;function parse_SupBook(blob,length,opts){var end=blob.l+length;var ctab=blob.read_shift(2);var cch=blob.read_shift(2);var virtPath;if(cch>=1&&cch<=255)virtPath=parse_XLUnicodeStringNoCch(blob,cch);var rgst=blob.read_shift(end-blob.l);opts.sbcch=cch;return[cch,ctab,virtPath,rgst]}function parse_ExternName(blob,length,opts){var flags=blob.read_shift(2);var body;var o={fBuiltIn:flags&1,fWantAdvise:flags>>>1&1,fWantPict:flags>>>2&1,fOle:flags>>>3&1,fOleLink:flags>>>4&1,cf:flags>>>5&1023,fIcon:flags>>>15&1};if(opts.sbcch===14849)body=parse_AddinUdf(blob,length-2);o.body=body||blob.read_shift(length-2);return o}function parse_Lbl(blob,length,opts){if(opts.biff<8)return parse_Label(blob,length,opts);var target=blob.l+length;var flags=blob.read_shift(2);var chKey=blob.read_shift(1);var cch=blob.read_shift(1);var cce=blob.read_shift(2);blob.l+=2;var itab=blob.read_shift(2);blob.l+=4;var name=parse_XLUnicodeStringNoCch(blob,cch,opts);var rgce=parse_NameParsedFormula(blob,target-blob.l,opts,cce);return{chKey:chKey,Name:name,rgce:rgce}}function parse_ExternSheet(blob,length,opts){if(opts.biff<8)return parse_ShortXLUnicodeString(blob,length,opts);var o=parslurp2(blob,length,parse_XTI);var oo=[];if(opts.sbcch===1025){for(var i=0;i!=o.length;++i)oo.push(opts.snames[o[i][1]]);return oo}else return o}function parse_ShrFmla(blob,length,opts){var ref=parse_RefU(blob,6);blob.l++;var cUse=blob.read_shift(1);length-=8;return[parse_SharedParsedFormula(blob,length,opts),cUse]}function parse_Array(blob,length,opts){var ref=parse_Ref(blob,6);blob.l+=6;length-=12;return[ref,parse_ArrayParsedFormula(blob,length,opts,ref)]}function parse_MTRSettings(blob,length){var fMTREnabled=blob.read_shift(4)!==0;var fUserSetThreadCount=blob.read_shift(4)!==0;var cUserThreadCount=blob.read_shift(4);return[fMTREnabled,fUserSetThreadCount,cUserThreadCount]}function parse_NoteSh(blob,length,opts){if(opts.biff<8)return;var row=blob.read_shift(2),col=blob.read_shift(2);var flags=blob.read_shift(2),idObj=blob.read_shift(2);var stAuthor=parse_XLUnicodeString2(blob,0,opts);if(opts.biff<8)blob.read_shift(1);return[{r:row,c:col},stAuthor,idObj,flags]}function parse_Note(blob,length,opts){return parse_NoteSh(blob,length,opts)}function parse_MergeCells(blob,length){var merges=[];var cmcs=blob.read_shift(2);while(cmcs--)merges.push(parse_Ref8U(blob,length));return merges}function parse_Obj(blob,length){var cmo=parse_FtCmo(blob,22);var fts=parse_FtArray(blob,length-22,cmo[1]);return{cmo:cmo,ft:fts}}function parse_TxO(blob,length,opts){var s=blob.l;try{blob.l+=4;var ot=(opts.lastobj||{cmo:[0,0]}).cmo[1];var controlInfo;if([0,5,7,11,12,14].indexOf(ot)==-1)blob.l+=6;else controlInfo=parse_ControlInfo(blob,6,opts);var cchText=blob.read_shift(2);var cbRuns=blob.read_shift(2);var ifntEmpty=parse_FontIndex(blob,2);var len=blob.read_shift(2);blob.l+=len;var texts="";for(var i=1;i<blob.lens.length-1;++i){if(blob.l-s!=blob.lens[i])throw"TxO: bad continue record";var hdr=blob[blob.l];var t=parse_XLUnicodeStringNoCch(blob,blob.lens[i+1]-blob.lens[i]-1);texts+=t;if(texts.length>=(hdr?cchText:2*cchText))break}if(texts.length!==cchText&&texts.length!==cchText*2){throw"cchText: "+cchText+" != "+texts.length}blob.l=s+length;return{t:texts}}catch(e){blob.l=s+length;return{t:texts||""}}}var parse_HLink=function(blob,length){var ref=parse_Ref8U(blob,8);blob.l+=16;var hlink=parse_Hyperlink(blob,length-24);return[ref,hlink]};var parse_HLinkTooltip=function(blob,length){var end=blob.l+length;blob.read_shift(2);var ref=parse_Ref8U(blob,8);var wzTooltip=blob.read_shift((length-10)/2,"dbcs-cont");wzTooltip=wzTooltip.replace(chr0,"");return[ref,wzTooltip]};function parse_Country(blob,length){var o=[],d;d=blob.read_shift(2);o[0]=CountryEnum[d]||d;d=blob.read_shift(2);o[1]=CountryEnum[d]||d;return o}function parse_ClrtClient(blob,length){var ccv=blob.read_shift(2);var o=[];while(ccv-->0)o.push(parse_LongRGB(blob,8));return o}function parse_Palette(blob,length){var ccv=blob.read_shift(2);var o=[];while(ccv-->0)o.push(parse_LongRGB(blob,8));return o}function parse_XFCRC(blob,length){blob.l+=2;var o={cxfs:0,crc:0};o.cxfs=blob.read_shift(2);o.crc=blob.read_shift(4);return o}var parse_Style=parsenoop;var parse_StyleExt=parsenoop;var parse_ColInfo=parsenoop;var parse_Window2=parsenoop;var parse_Backup=parsebool;var parse_Blank=parse_XLSCell;var parse_BottomMargin=parse_Xnum;var parse_BuiltInFnGroupCount=parseuint16;var parse_CalcCount=parseuint16;var parse_CalcDelta=parse_Xnum;var parse_CalcIter=parsebool;var parse_CalcMode=parseuint16;var parse_CalcPrecision=parsebool;var parse_CalcRefMode=parsenoop2;var parse_CalcSaveRecalc=parsebool;var parse_CodePage=parseuint16;var parse_Compat12=parsebool;var parse_Date1904=parsebool;var parse_DefColWidth=parseuint16;var parse_DSF=parsenoop2;var parse_EntExU2=parsenoop2;var parse_EOF=parsenoop2;var parse_Excel9File=parsenoop2;var parse_FeatHdr=parsenoop2;var parse_FontX=parseuint16;var parse_Footer=parse_XLHeaderFooter;var parse_GridSet=parseuint16;var parse_HCenter=parsebool;var parse_Header=parse_XLHeaderFooter;var parse_HideObj=parse_HideObjEnum;var parse_InterfaceEnd=parsenoop2;var parse_LeftMargin=parse_Xnum;var parse_Mms=parsenoop2;var parse_ObjProtect=parsebool;var parse_Password=parseuint16;var parse_PrintGrid=parsebool;var parse_PrintRowCol=parsebool;var parse_PrintSize=parseuint16;var parse_Prot4Rev=parsebool;var parse_Prot4RevPass=parseuint16;var parse_Protect=parsebool;var parse_RefreshAll=parsebool;var parse_RightMargin=parse_Xnum;var parse_RRTabId=parseuint16a;var parse_ScenarioProtect=parsebool;var parse_Scl=parseuint16a;var parse_String=parse_XLUnicodeString;var parse_SxBool=parsebool;var parse_TopMargin=parse_Xnum;var parse_UsesELFs=parsebool;var parse_VCenter=parsebool;var parse_WinProtect=parsebool;var parse_WriteProtect=parsenoop;var parse_VerticalPageBreaks=parsenoop;var parse_HorizontalPageBreaks=parsenoop;var parse_Selection=parsenoop;var parse_Continue=parsenoop;var parse_Pane=parsenoop;var parse_Pls=parsenoop;var parse_DCon=parsenoop;var parse_DConRef=parsenoop;var parse_DConName=parsenoop;var parse_XCT=parsenoop;var parse_CRN=parsenoop;var parse_FileSharing=parsenoop;var parse_Uncalced=parsenoop;var parse_Template=parsenoop;var parse_Intl=parsenoop;var parse_WsBool=parsenoop;var parse_Sort=parsenoop;var parse_Sync=parsenoop;var parse_LPr=parsenoop;var parse_DxGCol=parsenoop;var parse_FnGroupName=parsenoop;var parse_FilterMode=parsenoop;var parse_AutoFilterInfo=parsenoop;var parse_AutoFilter=parsenoop;var parse_Setup=parsenoop;var parse_ScenMan=parsenoop;var parse_SCENARIO=parsenoop;var parse_SxView=parsenoop;var parse_Sxvd=parsenoop;var parse_SXVI=parsenoop;var parse_SxIvd=parsenoop;var parse_SXLI=parsenoop;var parse_SXPI=parsenoop;var parse_DocRoute=parsenoop;var parse_RecipName=parsenoop;var parse_MulBlank=parsenoop;var parse_SXDI=parsenoop;var parse_SXDB=parsenoop;var parse_SXFDB=parsenoop;var parse_SXDBB=parsenoop;var parse_SXNum=parsenoop;var parse_SxErr=parsenoop;var parse_SXInt=parsenoop;var parse_SXString=parsenoop;var parse_SXDtr=parsenoop;var parse_SxNil=parsenoop;var parse_SXTbl=parsenoop;var parse_SXTBRGIITM=parsenoop;var parse_SxTbpg=parsenoop;var parse_ObProj=parsenoop;var parse_SXStreamID=parsenoop;var parse_DBCell=parsenoop;var parse_SXRng=parsenoop;var parse_SxIsxoper=parsenoop;var parse_BookBool=parsenoop;var parse_DbOrParamQry=parsenoop;var parse_OleObjectSize=parsenoop;var parse_SXVS=parsenoop;var parse_BkHim=parsenoop;var parse_MsoDrawingGroup=parsenoop;var parse_MsoDrawing=parsenoop;var parse_MsoDrawingSelection=parsenoop;var parse_PhoneticInfo=parsenoop;var parse_SxRule=parsenoop;var parse_SXEx=parsenoop;var parse_SxFilt=parsenoop;var parse_SxDXF=parsenoop;var parse_SxItm=parsenoop;var parse_SxName=parsenoop;var parse_SxSelect=parsenoop;var parse_SXPair=parsenoop;var parse_SxFmla=parsenoop;var parse_SxFormat=parsenoop;var parse_SXVDEx=parsenoop;var parse_SXFormula=parsenoop;var parse_SXDBEx=parsenoop;var parse_RRDInsDel=parsenoop;var parse_RRDHead=parsenoop;var parse_RRDChgCell=parsenoop;var parse_RRDRenSheet=parsenoop;var parse_RRSort=parsenoop;var parse_RRDMove=parsenoop;var parse_RRFormat=parsenoop;var parse_RRAutoFmt=parsenoop;var parse_RRInsertSh=parsenoop;var parse_RRDMoveBegin=parsenoop;var parse_RRDMoveEnd=parsenoop;var parse_RRDInsDelBegin=parsenoop;var parse_RRDInsDelEnd=parsenoop;var parse_RRDConflict=parsenoop;var parse_RRDDefName=parsenoop;var parse_RRDRstEtxp=parsenoop;var parse_LRng=parsenoop;var parse_CUsr=parsenoop;var parse_CbUsr=parsenoop;var parse_UsrInfo=parsenoop;var parse_UsrExcl=parsenoop;var parse_FileLock=parsenoop;var parse_RRDInfo=parsenoop;var parse_BCUsrs=parsenoop;var parse_UsrChk=parsenoop;var parse_UserBView=parsenoop;var parse_UserSViewBegin=parsenoop;var parse_UserSViewEnd=parsenoop;var parse_RRDUserView=parsenoop;var parse_Qsi=parsenoop;var parse_CondFmt=parsenoop;var parse_CF=parsenoop;var parse_DVal=parsenoop;var parse_DConBin=parsenoop;var parse_Lel=parsenoop;var parse_XLSCodeName=parse_XLUnicodeString;var parse_SXFDBType=parsenoop;var parse_ObNoMacros=parsenoop;var parse_Dv=parsenoop;var parse_Index=parsenoop;var parse_Table=parsenoop;var parse_BigName=parsenoop;var parse_ContinueBigName=parsenoop;var parse_WebPub=parsenoop;var parse_QsiSXTag=parsenoop;var parse_DBQueryExt=parsenoop;var parse_ExtString=parsenoop;var parse_TxtQry=parsenoop;var parse_Qsir=parsenoop;var parse_Qsif=parsenoop;var parse_RRDTQSIF=parsenoop;var parse_OleDbConn=parsenoop;var parse_WOpt=parsenoop;var parse_SXViewEx=parsenoop;var parse_SXTH=parsenoop;var parse_SXPIEx=parsenoop;var parse_SXVDTEx=parsenoop;var parse_SXViewEx9=parsenoop;var parse_ContinueFrt=parsenoop;var parse_RealTimeData=parsenoop;var parse_ChartFrtInfo=parsenoop;var parse_FrtWrapper=parsenoop;var parse_StartBlock=parsenoop;var parse_EndBlock=parsenoop;var parse_StartObject=parsenoop;var parse_EndObject=parsenoop;var parse_CatLab=parsenoop;var parse_YMult=parsenoop;var parse_SXViewLink=parsenoop;var parse_PivotChartBits=parsenoop;var parse_FrtFontList=parsenoop;var parse_SheetExt=parsenoop;var parse_BookExt=parsenoop;var parse_SXAddl=parsenoop;var parse_CrErr=parsenoop;var parse_HFPicture=parsenoop;var parse_Feat=parsenoop;var parse_DataLabExt=parsenoop;var parse_DataLabExtContents=parsenoop;var parse_CellWatch=parsenoop;var parse_FeatHdr11=parsenoop;var parse_Feature11=parsenoop;var parse_DropDownObjIds=parsenoop;var parse_ContinueFrt11=parsenoop;var parse_DConn=parsenoop;var parse_List12=parsenoop;var parse_Feature12=parsenoop;var parse_CondFmt12=parsenoop;var parse_CF12=parsenoop;var parse_CFEx=parsenoop;var parse_AutoFilter12=parsenoop;var parse_ContinueFrt12=parsenoop;var parse_MDTInfo=parsenoop;var parse_MDXStr=parsenoop;var parse_MDXTuple=parsenoop;var parse_MDXSet=parsenoop;var parse_MDXProp=parsenoop;var parse_MDXKPI=parsenoop;var parse_MDB=parsenoop;var parse_PLV=parsenoop;var parse_DXF=parsenoop;var parse_TableStyles=parsenoop;var parse_TableStyle=parsenoop;var parse_TableStyleElement=parsenoop;var parse_NamePublish=parsenoop;var parse_NameCmt=parsenoop;var parse_SortData=parsenoop;var parse_GUIDTypeLib=parsenoop;var parse_FnGrp12=parsenoop;var parse_NameFnGrp12=parsenoop;var parse_HeaderFooter=parsenoop;var parse_CrtLayout12=parsenoop;var parse_CrtMlFrt=parsenoop;var parse_CrtMlFrtContinue=parsenoop;var parse_ShapePropsStream=parsenoop;var parse_TextPropsStream=parsenoop;var parse_RichTextStream=parsenoop;var parse_CrtLayout12A=parsenoop;var parse_Units=parsenoop;var parse_Chart=parsenoop;var parse_Series=parsenoop;var parse_DataFormat=parsenoop;var parse_LineFormat=parsenoop;var parse_MarkerFormat=parsenoop;var parse_AreaFormat=parsenoop;var parse_PieFormat=parsenoop;var parse_AttachedLabel=parsenoop;var parse_SeriesText=parsenoop;var parse_ChartFormat=parsenoop;var parse_Legend=parsenoop;var parse_SeriesList=parsenoop;var parse_Bar=parsenoop;var parse_Line=parsenoop;var parse_Pie=parsenoop;var parse_Area=parsenoop;var parse_Scatter=parsenoop;var parse_CrtLine=parsenoop;var parse_Axis=parsenoop;var parse_Tick=parsenoop;var parse_ValueRange=parsenoop;var parse_CatSerRange=parsenoop;var parse_AxisLine=parsenoop;var parse_CrtLink=parsenoop;var parse_DefaultText=parsenoop;var parse_Text=parsenoop;var parse_ObjectLink=parsenoop;var parse_Frame=parsenoop;var parse_Begin=parsenoop;var parse_End=parsenoop;var parse_PlotArea=parsenoop;var parse_Chart3d=parsenoop;var parse_PicF=parsenoop;var parse_DropBar=parsenoop;var parse_Radar=parsenoop;var parse_Surf=parsenoop;var parse_RadarArea=parsenoop;var parse_AxisParent=parsenoop;var parse_LegendException=parsenoop;var parse_ShtProps=parsenoop;var parse_SerToCrt=parsenoop;var parse_AxesUsed=parsenoop;var parse_SBaseRef=parsenoop;var parse_SerParent=parsenoop;var parse_SerAuxTrend=parsenoop;var parse_IFmtRecord=parsenoop;var parse_Pos=parsenoop;var parse_AlRuns=parsenoop;var parse_BRAI=parsenoop;var parse_SerAuxErrBar=parsenoop;var parse_SerFmt=parsenoop;var parse_Chart3DBarShape=parsenoop;var parse_Fbi=parsenoop;var parse_BopPop=parsenoop;var parse_AxcExt=parsenoop;var parse_Dat=parsenoop;var parse_PlotGrowth=parsenoop;var parse_SIIndex=parsenoop;var parse_GelFrame=parsenoop;var parse_BopPopCustom=parsenoop;var parse_Fbi2=parsenoop;function parse_BIFF5String(blob){var len=blob.read_shift(1);return blob.read_shift(len,"sbcs-cont")}function parse_BIFF2STR(blob,length,opts){var cell=parse_XLSCell(blob,6);++blob.l;var str=parse_XLUnicodeString2(blob,length-7,opts);cell.val=str;return cell}function parse_BIFF2NUM(blob,length,opts){var cell=parse_XLSCell(blob,6);++blob.l;var num=parse_Xnum(blob,8);cell.val=num;return cell}var CS2CP={0:1252,1:65001,2:65001,77:1e4,128:932,129:949,130:1361,134:936,136:950,161:1253,162:1254,163:1258,177:1255,178:1256,186:1257,204:1251,222:874,238:1250,255:1252,69:6969};var parse_rs=function parse_rs_factory(){var tregex=matchtag("t"),rpregex=matchtag("rPr"),rregex=/<r>/g,rend=/<\/r>/,nlregex=/\r\n/g;var parse_rpr=function parse_rpr(rpr,intro,outro){var font={},cp=65001;var m=rpr.match(tagregex),i=0;if(m)for(;i!=m.length;++i){var y=parsexmltag(m[i]);switch(y[0]){case"<condense":break;case"<extend":break;case"<shadow":case"<shadow/>":break;case"<charset":if(y.val=="1")break;cp=CS2CP[parseInt(y.val,10)];break;case"<outline":case"<outline/>":break;case"<rFont":font.name=y.val;break;case"<sz":font.sz=y.val;break;case"<strike":if(!y.val)break;case"<strike/>":font.strike=1;break;case"</strike>":break;case"<u":if(!y.val)break;case"<u/>":font.u=1;break;case"</u>":break;case"<b":if(!y.val)break;case"<b/>":font.b=1;break;case"</b>":break;case"<i":if(!y.val)break;case"<i/>":font.i=1;break;case"</i>":break;case"<color":if(y.rgb)font.color=y.rgb.substr(2,6);break;case"<family":font.family=y.val;break;case"<vertAlign":break;case"<scheme":break;default:if(y[0].charCodeAt(1)!==47)throw"Unrecognized rich format "+y[0]}}var style=[];if(font.b)style.push("font-weight: bold;");if(font.i)style.push("font-style: italic;");intro.push('<span style="'+style.join("")+'">');outro.push("</span>");return cp};function parse_r(r){var terms=[[],"",[]];var t=r.match(tregex),cp=65001;if(!isval(t))return"";terms[1]=t[1];var rpr=r.match(rpregex);if(isval(rpr))cp=parse_rpr(rpr[1],terms[0],terms[2]);return terms[0].join("")+terms[1].replace(nlregex,"<br/>")+terms[2].join("")}return function parse_rs(rs){return rs.replace(rregex,"").split(rend).map(parse_r).join("")}}();var sitregex=/<t[^>]*>([^<]*)<\/t>/g,sirregex=/<r>/;function parse_si(x,opts){var html=opts?opts.cellHTML:true;var z={};if(!x)return null;var y;if(x.charCodeAt(1)===116){z.t=utf8read(unescapexml(x.substr(x.indexOf(">")+1).split(/<\/t>/)[0]));z.r=x;if(html)z.h=z.t}else if(y=x.match(sirregex)){z.r=x;z.t=utf8read(unescapexml(x.match(sitregex).join("").replace(tagregex,"")));if(html)z.h=parse_rs(x)}return z}var sstr0=/<sst([^>]*)>([\s\S]*)<\/sst>/;var sstr1=/<(?:si|sstItem)>/g;var sstr2=/<\/(?:si|sstItem)>/;function parse_sst_xml(data,opts){var s=[],ss;var sst=data.match(sstr0);if(isval(sst)){ss=sst[2].replace(sstr1,"").split(sstr2);for(var i=0;i!=ss.length;++i){var o=parse_si(ss[i],opts);if(o!=null)s[s.length]=o}sst=parsexmltag(sst[1]);s.Count=sst.count;s.Unique=sst.uniqueCount}return s}RELS.SST="http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings";var straywsregex=/^\s|\s$|[\t\n\r]/;function write_sst_xml(sst,opts){if(!opts.bookSST)return"";var o=[XML_HEADER];o[o.length]=writextag("sst",null,{xmlns:XMLNS.main[0],count:sst.Count,uniqueCount:sst.Unique});for(var i=0;i!=sst.length;++i){if(sst[i]==null)continue;var s=sst[i];var sitag="<si>";if(s.r)sitag+=s.r;else{sitag+="<t";if(s.t.match(straywsregex))sitag+=' xml:space="preserve"';sitag+=">"+escapexml(s.t)+"</t>"}sitag+="</si>";o[o.length]=sitag}if(o.length>2){o[o.length]="</sst>";o[1]=o[1].replace("/>",">")}return o.join("")}function parse_BrtBeginSst(data,length){return[data.read_shift(4),data.read_shift(4)]}function parse_sst_bin(data,opts){var s=[];var pass=false;recordhopper(data,function hopper_sst(val,R,RT){switch(R.n){case"BrtBeginSst":s.Count=val[0];s.Unique=val[1];break;case"BrtSSTItem":s.push(val);break;case"BrtEndSst":return true;case"BrtFRTBegin":pass=true;break;case"BrtFRTEnd":pass=false;break;default:if(!pass||opts.WTF)throw new Error("Unexpected record "+RT+" "+R.n)}});return s}function write_BrtBeginSst(sst,o){if(!o)o=new_buf(8);o.write_shift(4,sst.Count);o.write_shift(4,sst.Unique);return o}var write_BrtSSTItem=write_RichStr;function write_sst_bin(sst,opts){var ba=buf_array();write_record(ba,"BrtBeginSst",write_BrtBeginSst(sst));for(var i=0;i<sst.length;++i)write_record(ba,"BrtSSTItem",write_BrtSSTItem(sst[i]));write_record(ba,"BrtEndSst");return ba.end()}function _JS2ANSI(str){if(typeof cptable!=="undefined")return cptable.utils.encode(1252,str);return str.split("").map(function(x){return x.charCodeAt(0)})}function parse_Version(blob,length){var o={};o.Major=blob.read_shift(2);o.Minor=blob.read_shift(2);return o}function parse_EncryptionHeader(blob,length){var o={};o.Flags=blob.read_shift(4);var tmp=blob.read_shift(4);if(tmp!==0)throw"Unrecognized SizeExtra: "+tmp;o.AlgID=blob.read_shift(4);switch(o.AlgID){case 0:case 26625:case 26126:case 26127:case 26128:break;default:throw"Unrecognized encryption algorithm: "+o.AlgID}parsenoop(blob,length-12);return o}function parse_EncryptionVerifier(blob,length){return parsenoop(blob,length)}function parse_RC4CryptoHeader(blob,length){var o={};var vers=o.EncryptionVersionInfo=parse_Version(blob,4);length-=4;if(vers.Minor!=2)throw"unrecognized minor version code: "+vers.Minor;if(vers.Major>4||vers.Major<2)throw"unrecognized major version code: "+vers.Major;o.Flags=blob.read_shift(4);length-=4;var sz=blob.read_shift(4);length-=4;o.EncryptionHeader=parse_EncryptionHeader(blob,sz);length-=sz;o.EncryptionVerifier=parse_EncryptionVerifier(blob,length);return o}function parse_RC4Header(blob,length){var o={};var vers=o.EncryptionVersionInfo=parse_Version(blob,4);length-=4;if(vers.Major!=1||vers.Minor!=1)throw"unrecognized version code "+vers.Major+" : "+vers.Minor;o.Salt=blob.read_shift(16);o.EncryptedVerifier=blob.read_shift(16);o.EncryptedVerifierHash=blob.read_shift(16);return o}function crypto_CreatePasswordVerifier_Method1(Password){var Verifier=0,PasswordArray;var PasswordDecoded=_JS2ANSI(Password);var len=PasswordDecoded.length+1,i,PasswordByte;var Intermediate1,Intermediate2,Intermediate3;PasswordArray=new_raw_buf(len);PasswordArray[0]=PasswordDecoded.length;for(i=1;i!=len;++i)PasswordArray[i]=PasswordDecoded[i-1];for(i=len-1;i>=0;--i){PasswordByte=PasswordArray[i];Intermediate1=(Verifier&16384)===0?0:1;Intermediate2=Verifier<<1&32767;Intermediate3=Intermediate1|Intermediate2;Verifier=Intermediate3^PasswordByte}return Verifier^52811}var crypto_CreateXorArray_Method1=function(){var PadArray=[187,255,255,186,255,255,185,128,0,190,15,0,191,15,0];var InitialCode=[57840,7439,52380,33984,4364,3600,61902,12606,6258,57657,54287,34041,10252,43370,20163];var XorMatrix=[44796,19929,39858,10053,20106,40212,10761,31585,63170,64933,60267,50935,40399,11199,17763,35526,1453,2906,5812,11624,23248,885,1770,3540,7080,14160,28320,56640,55369,41139,20807,41614,21821,43642,17621,28485,56970,44341,19019,38038,14605,29210,60195,50791,40175,10751,21502,43004,24537,18387,36774,3949,7898,15796,31592,63184,47201,24803,49606,37805,14203,28406,56812,17824,35648,1697,3394,6788,13576,27152,43601,17539,35078,557,1114,2228,4456,30388,60776,51953,34243,7079,14158,28316,14128,28256,56512,43425,17251,34502,7597,13105,26210,52420,35241,883,1766,3532,4129,8258,16516,33032,4657,9314,18628];var Ror=function(Byte){return(Byte/2|Byte*128)&255};var XorRor=function(byte1,byte2){return Ror(byte1^byte2)};var CreateXorKey_Method1=function(Password){var XorKey=InitialCode[Password.length-1];var CurrentElement=104;for(var i=Password.length-1;i>=0;--i){var Char=Password[i];for(var j=0;j!=7;++j){if(Char&64)XorKey^=XorMatrix[CurrentElement];Char*=2; +--CurrentElement}}return XorKey};return function(password){var Password=_JS2ANSI(password);var XorKey=CreateXorKey_Method1(Password);var Index=Password.length;var ObfuscationArray=new_raw_buf(16);for(var i=0;i!=16;++i)ObfuscationArray[i]=0;var Temp,PasswordLastChar,PadIndex;if((Index&1)===1){Temp=XorKey>>8;ObfuscationArray[Index]=XorRor(PadArray[0],Temp);--Index;Temp=XorKey&255;PasswordLastChar=Password[Password.length-1];ObfuscationArray[Index]=XorRor(PasswordLastChar,Temp)}while(Index>0){--Index;Temp=XorKey>>8;ObfuscationArray[Index]=XorRor(Password[Index],Temp);--Index;Temp=XorKey&255;ObfuscationArray[Index]=XorRor(Password[Index],Temp)}Index=15;PadIndex=15-Password.length;while(PadIndex>0){Temp=XorKey>>8;ObfuscationArray[Index]=XorRor(PadArray[PadIndex],Temp);--Index;--PadIndex;Temp=XorKey&255;ObfuscationArray[Index]=XorRor(Password[Index],Temp);--Index;--PadIndex}return ObfuscationArray}}();var crypto_DecryptData_Method1=function(password,Data,XorArrayIndex,XorArray,O){if(!O)O=Data;if(!XorArray)XorArray=crypto_CreateXorArray_Method1(password);var Index,Value;for(Index=0;Index!=Data.length;++Index){Value=Data[Index];Value^=XorArray[XorArrayIndex];Value=(Value>>5|Value<<3)&255;O[Index]=Value;++XorArrayIndex}return[O,XorArrayIndex,XorArray]};var crypto_MakeXorDecryptor=function(password){var XorArrayIndex=0,XorArray=crypto_CreateXorArray_Method1(password);return function(Data){var O=crypto_DecryptData_Method1(null,Data,XorArrayIndex,XorArray);XorArrayIndex=O[1];return O[0]}};function parse_XORObfuscation(blob,length,opts,out){var o={key:parseuint16(blob),verificationBytes:parseuint16(blob)};if(opts.password)o.verifier=crypto_CreatePasswordVerifier_Method1(opts.password);out.valid=o.verificationBytes===o.verifier;if(out.valid)out.insitu_decrypt=crypto_MakeXorDecryptor(opts.password);return o}function parse_FilePassHeader(blob,length,oo){var o=oo||{};o.Info=blob.read_shift(2);blob.l-=2;if(o.Info===1)o.Data=parse_RC4Header(blob,length);else o.Data=parse_RC4CryptoHeader(blob,length);return o}function parse_FilePass(blob,length,opts){var o={Type:blob.read_shift(2)};if(o.Type)parse_FilePassHeader(blob,length-2,o);else parse_XORObfuscation(blob,length-2,opts,o);return o}function hex2RGB(h){var o=h.substr(h[0]==="#"?1:0,6);return[parseInt(o.substr(0,2),16),parseInt(o.substr(0,2),16),parseInt(o.substr(0,2),16)]}function rgb2Hex(rgb){for(var i=0,o=1;i!=3;++i)o=o*256+(rgb[i]>255?255:rgb[i]<0?0:rgb[i]);return o.toString(16).toUpperCase().substr(1)}function rgb2HSL(rgb){var R=rgb[0]/255,G=rgb[1]/255,B=rgb[2]/255;var M=Math.max(R,G,B),m=Math.min(R,G,B),C=M-m;if(C===0)return[0,0,R];var H6=0,S=0,L2=M+m;S=C/(L2>1?2-L2:L2);switch(M){case R:H6=((G-B)/C+6)%6;break;case G:H6=(B-R)/C+2;break;case B:H6=(R-G)/C+4;break}return[H6/6,S,L2/2]}function hsl2RGB(hsl){var H=hsl[0],S=hsl[1],L=hsl[2];var C=S*2*(L<.5?L:1-L),m=L-C/2;var rgb=[m,m,m],h6=6*H;var X;if(S!==0)switch(h6|0){case 0:case 6:X=C*h6;rgb[0]+=C;rgb[1]+=X;break;case 1:X=C*(2-h6);rgb[0]+=X;rgb[1]+=C;break;case 2:X=C*(h6-2);rgb[1]+=C;rgb[2]+=X;break;case 3:X=C*(4-h6);rgb[1]+=X;rgb[2]+=C;break;case 4:X=C*(h6-4);rgb[2]+=C;rgb[0]+=X;break;case 5:X=C*(6-h6);rgb[2]+=X;rgb[0]+=C;break}for(var i=0;i!=3;++i)rgb[i]=Math.round(rgb[i]*255);return rgb}function rgb_tint(hex,tint){if(tint===0)return hex;var hsl=rgb2HSL(hex2RGB(hex));if(tint<0)hsl[2]=hsl[2]*(1+tint);else hsl[2]=1-(1-hsl[2])*(1-tint);return rgb2Hex(hsl2RGB(hsl))}var DEF_MDW=7,MAX_MDW=15,MIN_MDW=1,MDW=DEF_MDW;function width2px(width){return(width+(128/MDW|0)/256)*MDW|0}function px2char(px){return((px-5)/MDW*100+.5|0)/100}function char2width(chr){return((chr*MDW+5)/MDW*256|0)/256}function cycle_width(collw){return char2width(px2char(width2px(collw)))}function find_mdw(collw,coll){if(cycle_width(collw)!=collw){for(MDW=DEF_MDW;MDW>MIN_MDW;--MDW)if(cycle_width(collw)===collw)break;if(MDW===MIN_MDW)for(MDW=DEF_MDW+1;MDW<MAX_MDW;++MDW)if(cycle_width(collw)===collw)break;if(MDW===MAX_MDW)MDW=DEF_MDW}}var XLMLPatternTypeMap={None:"none",Solid:"solid",Gray50:"mediumGray",Gray75:"darkGray",Gray25:"lightGray",HorzStripe:"darkHorizontal",VertStripe:"darkVertical",ReverseDiagStripe:"darkDown",DiagStripe:"darkUp",DiagCross:"darkGrid",ThickDiagCross:"darkTrellis",ThinHorzStripe:"lightHorizontal",ThinVertStripe:"lightVertical",ThinReverseDiagStripe:"lightDown",ThinHorzCross:"lightGrid"};var styles={};var themes={};function parse_fills(t,opts){styles.Fills=[];var fill={};t[0].match(tagregex).forEach(function(x){var y=parsexmltag(x);switch(y[0]){case"<fills":case"<fills>":case"</fills>":break;case"<fill>":break;case"</fill>":styles.Fills.push(fill);fill={};break;case"<patternFill":if(y.patternType)fill.patternType=y.patternType;break;case"<patternFill/>":case"</patternFill>":break;case"<bgColor":if(!fill.bgColor)fill.bgColor={};if(y.indexed)fill.bgColor.indexed=parseInt(y.indexed,10);if(y.theme)fill.bgColor.theme=parseInt(y.theme,10);if(y.tint)fill.bgColor.tint=parseFloat(y.tint);if(y.rgb)fill.bgColor.rgb=y.rgb.substring(y.rgb.length-6);break;case"<bgColor/>":case"</bgColor>":break;case"<fgColor":if(!fill.fgColor)fill.fgColor={};if(y.theme)fill.fgColor.theme=parseInt(y.theme,10);if(y.tint)fill.fgColor.tint=parseFloat(y.tint);if(y.rgb)fill.fgColor.rgb=y.rgb.substring(y.rgb.length-6);break;case"<fgColor/>":case"</fgColor>":break;default:if(opts.WTF)throw"unrecognized "+y[0]+" in fills"}})}function parse_numFmts(t,opts){styles.NumberFmt=[];var k=keys(SSF._table);for(var i=0;i<k.length;++i)styles.NumberFmt[k[i]]=SSF._table[k[i]];var m=t[0].match(tagregex);for(i=0;i<m.length;++i){var y=parsexmltag(m[i]);switch(y[0]){case"<numFmts":case"</numFmts>":case"<numFmts/>":case"<numFmts>":break;case"<numFmt":{var f=unescapexml(utf8read(y.formatCode)),j=parseInt(y.numFmtId,10);styles.NumberFmt[j]=f;if(j>0)SSF.load(f,j)}break;default:if(opts.WTF)throw"unrecognized "+y[0]+" in numFmts"}}}function write_numFmts(NF,opts){var o=["<numFmts>"];[[5,8],[23,26],[41,44],[63,66],[164,392]].forEach(function(r){for(var i=r[0];i<=r[1];++i)if(NF[i]!==undefined)o[o.length]=writextag("numFmt",null,{numFmtId:i,formatCode:escapexml(NF[i])})});if(o.length===1)return"";o[o.length]="</numFmts>";o[0]=writextag("numFmts",null,{count:o.length-2}).replace("/>",">");return o.join("")}function parse_cellXfs(t,opts){styles.CellXf=[];t[0].match(tagregex).forEach(function(x){var y=parsexmltag(x);switch(y[0]){case"<cellXfs":case"<cellXfs>":case"<cellXfs/>":case"</cellXfs>":break;case"<xf":delete y[0];if(y.numFmtId)y.numFmtId=parseInt(y.numFmtId,10);if(y.fillId)y.fillId=parseInt(y.fillId,10);styles.CellXf.push(y);break;case"</xf>":break;case"<alignment":case"<alignment/>":break;case"<protection":case"</protection>":case"<protection/>":break;case"<extLst":case"</extLst>":break;case"<ext":break;default:if(opts.WTF)throw"unrecognized "+y[0]+" in cellXfs"}})}function write_cellXfs(cellXfs){var o=[];o[o.length]=writextag("cellXfs",null);cellXfs.forEach(function(c){o[o.length]=writextag("xf",null,c)});o[o.length]="</cellXfs>";if(o.length===2)return"";o[0]=writextag("cellXfs",null,{count:o.length-2}).replace("/>",">");return o.join("")}var parse_sty_xml=function make_pstyx(){var numFmtRegex=/<numFmts([^>]*)>.*<\/numFmts>/;var cellXfRegex=/<cellXfs([^>]*)>.*<\/cellXfs>/;var fillsRegex=/<fills([^>]*)>.*<\/fills>/;return function parse_sty_xml(data,opts){var t;if(t=data.match(numFmtRegex))parse_numFmts(t,opts);if(t=data.match(fillsRegex))parse_fills(t,opts);if(t=data.match(cellXfRegex))parse_cellXfs(t,opts);return styles}}();var STYLES_XML_ROOT=writextag("styleSheet",null,{xmlns:XMLNS.main[0],"xmlns:vt":XMLNS.vt});RELS.STY="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles";function write_sty_xml(wb,opts){var o=[XML_HEADER,STYLES_XML_ROOT],w;if((w=write_numFmts(wb.SSF))!=null)o[o.length]=w;o[o.length]='<fonts count="1"><font><sz val="12"/><color theme="1"/><name val="Calibri"/><family val="2"/><scheme val="minor"/></font></fonts>';o[o.length]='<fills count="2"><fill><patternFill patternType="none"/></fill><fill><patternFill patternType="gray125"/></fill></fills>';o[o.length]='<borders count="1"><border><left/><right/><top/><bottom/><diagonal/></border></borders>';o[o.length]='<cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0"/></cellStyleXfs>';if(w=write_cellXfs(opts.cellXfs))o[o.length]=w;o[o.length]='<cellStyles count="1"><cellStyle name="Normal" xfId="0" builtinId="0"/></cellStyles>';o[o.length]='<dxfs count="0"/>';o[o.length]='<tableStyles count="0" defaultTableStyle="TableStyleMedium9" defaultPivotStyle="PivotStyleMedium4"/>';if(o.length>2){o[o.length]="</styleSheet>";o[1]=o[1].replace("/>",">")}return o.join("")}function parse_BrtFmt(data,length){var ifmt=data.read_shift(2);var stFmtCode=parse_XLWideString(data,length-2);return[ifmt,stFmtCode]}function parse_BrtFont(data,length){var out={flags:{}};out.dyHeight=data.read_shift(2);out.grbit=parse_FontFlags(data,2);out.bls=data.read_shift(2);out.sss=data.read_shift(2);out.uls=data.read_shift(1);out.bFamily=data.read_shift(1);out.bCharSet=data.read_shift(1);data.l++;out.brtColor=parse_BrtColor(data,8);out.bFontScheme=data.read_shift(1);out.name=parse_XLWideString(data,length-21);out.flags.Bold=out.bls===700;out.flags.Italic=out.grbit.fItalic;out.flags.Strikeout=out.grbit.fStrikeout;out.flags.Outline=out.grbit.fOutline;out.flags.Shadow=out.grbit.fShadow;out.flags.Condense=out.grbit.fCondense;out.flags.Extend=out.grbit.fExtend;out.flags.Sub=out.sss&2;out.flags.Sup=out.sss&1;return out}function parse_BrtXF(data,length){var ixfeParent=data.read_shift(2);var ifmt=data.read_shift(2);parsenoop(data,length-4);return{ixfe:ixfeParent,ifmt:ifmt}}function parse_sty_bin(data,opts){styles.NumberFmt=[];for(var y in SSF._table)styles.NumberFmt[y]=SSF._table[y];styles.CellXf=[];var state="";var pass=false;recordhopper(data,function hopper_sty(val,R,RT){switch(R.n){case"BrtFmt":styles.NumberFmt[val[0]]=val[1];SSF.load(val[1],val[0]);break;case"BrtFont":break;case"BrtKnownFonts":break;case"BrtFill":break;case"BrtBorder":break;case"BrtXF":if(state==="CELLXFS"){styles.CellXf.push(val)}break;case"BrtStyle":break;case"BrtDXF":break;case"BrtMRUColor":break;case"BrtIndexedColor":break;case"BrtBeginStyleSheet":break;case"BrtEndStyleSheet":break;case"BrtBeginTableStyle":break;case"BrtTableStyleElement":break;case"BrtEndTableStyle":break;case"BrtBeginFmts":state="FMTS";break;case"BrtEndFmts":state="";break;case"BrtBeginFonts":state="FONTS";break;case"BrtEndFonts":state="";break;case"BrtACBegin":state="ACFONTS";break;case"BrtACEnd":state="";break;case"BrtBeginFills":state="FILLS";break;case"BrtEndFills":state="";break;case"BrtBeginBorders":state="BORDERS";break;case"BrtEndBorders":state="";break;case"BrtBeginCellStyleXFs":state="CELLSTYLEXFS";break;case"BrtEndCellStyleXFs":state="";break;case"BrtBeginCellXFs":state="CELLXFS";break;case"BrtEndCellXFs":state="";break;case"BrtBeginStyles":state="STYLES";break;case"BrtEndStyles":state="";break;case"BrtBeginDXFs":state="DXFS";break;case"BrtEndDXFs":state="";break;case"BrtBeginTableStyles":state="TABLESTYLES";break;case"BrtEndTableStyles":state="";break;case"BrtBeginColorPalette":state="COLORPALETTE";break;case"BrtEndColorPalette":state="";break;case"BrtBeginIndexedColors":state="INDEXEDCOLORS";break;case"BrtEndIndexedColors":state="";break;case"BrtBeginMRUColors":state="MRUCOLORS";break;case"BrtEndMRUColors":state="";break;case"BrtFRTBegin":pass=true;break;case"BrtFRTEnd":pass=false;break;case"BrtBeginStyleSheetExt14":break;case"BrtBeginSlicerStyles":break;case"BrtEndSlicerStyles":break;case"BrtBeginTimelineStylesheetExt15":break;case"BrtEndTimelineStylesheetExt15":break;case"BrtBeginTimelineStyles":break;case"BrtEndTimelineStyles":break;case"BrtEndStyleSheetExt14":break;default:if(!pass||opts.WTF)throw new Error("Unexpected record "+RT+" "+R.n)}});return styles}function write_sty_bin(data,opts){var ba=buf_array();write_record(ba,"BrtBeginStyleSheet");write_record(ba,"BrtEndStyleSheet");return ba.end()}RELS.THEME="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme";function parse_clrScheme(t,opts){themes.themeElements.clrScheme=[];var color={};t[0].match(tagregex).forEach(function(x){var y=parsexmltag(x);switch(y[0]){case"<a:clrScheme":case"</a:clrScheme>":break;case"<a:srgbClr":color.rgb=y.val;break;case"<a:sysClr":color.rgb=y.lastClr;break;case"<a:dk1>":case"</a:dk1>":case"<a:dk2>":case"</a:dk2>":case"<a:lt1>":case"</a:lt1>":case"<a:lt2>":case"</a:lt2>":case"<a:accent1>":case"</a:accent1>":case"<a:accent2>":case"</a:accent2>":case"<a:accent3>":case"</a:accent3>":case"<a:accent4>":case"</a:accent4>":case"<a:accent5>":case"</a:accent5>":case"<a:accent6>":case"</a:accent6>":case"<a:hlink>":case"</a:hlink>":case"<a:folHlink>":case"</a:folHlink>":if(y[0][1]==="/"){themes.themeElements.clrScheme.push(color);color={}}else{color.name=y[0].substring(3,y[0].length-1)}break;default:if(opts.WTF)throw"unrecognized "+y[0]+" in clrScheme"}})}function parse_fontScheme(t,opts){}function parse_fmtScheme(t,opts){}var clrsregex=/<a:clrScheme([^>]*)>[^\u2603]*<\/a:clrScheme>/;var fntsregex=/<a:fontScheme([^>]*)>[^\u2603]*<\/a:fontScheme>/;var fmtsregex=/<a:fmtScheme([^>]*)>[^\u2603]*<\/a:fmtScheme>/;function parse_themeElements(data,opts){themes.themeElements={};var t;[["clrScheme",clrsregex,parse_clrScheme],["fontScheme",fntsregex,parse_fontScheme],["fmtScheme",fmtsregex,parse_fmtScheme]].forEach(function(m){if(!(t=data.match(m[1])))throw m[0]+" not found in themeElements";m[2](t,opts)})}var themeltregex=/<a:themeElements([^>]*)>[^\u2603]*<\/a:themeElements>/;function parse_theme_xml(data,opts){if(!data||data.length===0)return themes;var t;if(!(t=data.match(themeltregex)))throw"themeElements not found in theme";parse_themeElements(t[0],opts);return themes}function write_theme(){return'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n<a:theme xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" name="Office Theme"><a:themeElements><a:clrScheme name="Office"><a:dk1><a:sysClr val="windowText" lastClr="000000"/></a:dk1><a:lt1><a:sysClr val="window" lastClr="FFFFFF"/></a:lt1><a:dk2><a:srgbClr val="1F497D"/></a:dk2><a:lt2><a:srgbClr val="EEECE1"/></a:lt2><a:accent1><a:srgbClr val="4F81BD"/></a:accent1><a:accent2><a:srgbClr val="C0504D"/></a:accent2><a:accent3><a:srgbClr val="9BBB59"/></a:accent3><a:accent4><a:srgbClr val="8064A2"/></a:accent4><a:accent5><a:srgbClr val="4BACC6"/></a:accent5><a:accent6><a:srgbClr val="F79646"/></a:accent6><a:hlink><a:srgbClr val="0000FF"/></a:hlink><a:folHlink><a:srgbClr val="800080"/></a:folHlink></a:clrScheme><a:fontScheme name="Office"><a:majorFont><a:latin typeface="Cambria"/><a:ea typeface=""/><a:cs typeface=""/><a:font script="Jpan" typeface="ï¼ï¼³ Pゴシック"/><a:font script="Hang" typeface="ë§‘ì€ ê³ ë”•"/><a:font script="Hans" typeface="宋体"/><a:font script="Hant" typeface="新細明體"/><a:font script="Arab" typeface="Times New Roman"/><a:font script="Hebr" typeface="Times New Roman"/><a:font script="Thai" typeface="Tahoma"/><a:font script="Ethi" typeface="Nyala"/><a:font script="Beng" typeface="Vrinda"/><a:font script="Gujr" typeface="Shruti"/><a:font script="Khmr" typeface="MoolBoran"/><a:font script="Knda" typeface="Tunga"/><a:font script="Guru" typeface="Raavi"/><a:font script="Cans" typeface="Euphemia"/><a:font script="Cher" typeface="Plantagenet Cherokee"/><a:font script="Yiii" typeface="Microsoft Yi Baiti"/><a:font script="Tibt" typeface="Microsoft Himalaya"/><a:font script="Thaa" typeface="MV Boli"/><a:font script="Deva" typeface="Mangal"/><a:font script="Telu" typeface="Gautami"/><a:font script="Taml" typeface="Latha"/><a:font script="Syrc" typeface="Estrangelo Edessa"/><a:font script="Orya" typeface="Kalinga"/><a:font script="Mlym" typeface="Kartika"/><a:font script="Laoo" typeface="DokChampa"/><a:font script="Sinh" typeface="Iskoola Pota"/><a:font script="Mong" typeface="Mongolian Baiti"/><a:font script="Viet" typeface="Times New Roman"/><a:font script="Uigh" typeface="Microsoft Uighur"/><a:font script="Geor" typeface="Sylfaen"/></a:majorFont><a:minorFont><a:latin typeface="Calibri"/><a:ea typeface=""/><a:cs typeface=""/><a:font script="Jpan" typeface="ï¼ï¼³ Pゴシック"/><a:font script="Hang" typeface="ë§‘ì€ ê³ ë”•"/><a:font script="Hans" typeface="宋体"/><a:font script="Hant" typeface="新細明體"/><a:font script="Arab" typeface="Arial"/><a:font script="Hebr" typeface="Arial"/><a:font script="Thai" typeface="Tahoma"/><a:font script="Ethi" typeface="Nyala"/><a:font script="Beng" typeface="Vrinda"/><a:font script="Gujr" typeface="Shruti"/><a:font script="Khmr" typeface="DaunPenh"/><a:font script="Knda" typeface="Tunga"/><a:font script="Guru" typeface="Raavi"/><a:font script="Cans" typeface="Euphemia"/><a:font script="Cher" typeface="Plantagenet Cherokee"/><a:font script="Yiii" typeface="Microsoft Yi Baiti"/><a:font script="Tibt" typeface="Microsoft Himalaya"/><a:font script="Thaa" typeface="MV Boli"/><a:font script="Deva" typeface="Mangal"/><a:font script="Telu" typeface="Gautami"/><a:font script="Taml" typeface="Latha"/><a:font script="Syrc" typeface="Estrangelo Edessa"/><a:font script="Orya" typeface="Kalinga"/><a:font script="Mlym" typeface="Kartika"/><a:font script="Laoo" typeface="DokChampa"/><a:font script="Sinh" typeface="Iskoola Pota"/><a:font script="Mong" typeface="Mongolian Baiti"/><a:font script="Viet" typeface="Arial"/><a:font script="Uigh" typeface="Microsoft Uighur"/><a:font script="Geor" typeface="Sylfaen"/></a:minorFont></a:fontScheme><a:fmtScheme name="Office"><a:fillStyleLst><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="50000"/><a:satMod val="300000"/></a:schemeClr></a:gs><a:gs pos="35000"><a:schemeClr val="phClr"><a:tint val="37000"/><a:satMod val="300000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:tint val="15000"/><a:satMod val="350000"/></a:schemeClr></a:gs></a:gsLst><a:lin ang="16200000" scaled="1"/></a:gradFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="100000"/><a:shade val="100000"/><a:satMod val="130000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:tint val="50000"/><a:shade val="100000"/><a:satMod val="350000"/></a:schemeClr></a:gs></a:gsLst><a:lin ang="16200000" scaled="0"/></a:gradFill></a:fillStyleLst><a:lnStyleLst><a:ln w="9525" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"><a:shade val="95000"/><a:satMod val="105000"/></a:schemeClr></a:solidFill><a:prstDash val="solid"/></a:ln><a:ln w="25400" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln><a:ln w="38100" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln></a:lnStyleLst><a:effectStyleLst><a:effectStyle><a:effectLst><a:outerShdw blurRad="40000" dist="20000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="38000"/></a:srgbClr></a:outerShdw></a:effectLst></a:effectStyle><a:effectStyle><a:effectLst><a:outerShdw blurRad="40000" dist="23000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="35000"/></a:srgbClr></a:outerShdw></a:effectLst></a:effectStyle><a:effectStyle><a:effectLst><a:outerShdw blurRad="40000" dist="23000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="35000"/></a:srgbClr></a:outerShdw></a:effectLst><a:scene3d><a:camera prst="orthographicFront"><a:rot lat="0" lon="0" rev="0"/></a:camera><a:lightRig rig="threePt" dir="t"><a:rot lat="0" lon="0" rev="1200000"/></a:lightRig></a:scene3d><a:sp3d><a:bevelT w="63500" h="25400"/></a:sp3d></a:effectStyle></a:effectStyleLst><a:bgFillStyleLst><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="40000"/><a:satMod val="350000"/></a:schemeClr></a:gs><a:gs pos="40000"><a:schemeClr val="phClr"><a:tint val="45000"/><a:shade val="99000"/><a:satMod val="350000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:shade val="20000"/><a:satMod val="255000"/></a:schemeClr></a:gs></a:gsLst><a:path path="circle"><a:fillToRect l="50000" t="-80000" r="50000" b="180000"/></a:path></a:gradFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="80000"/><a:satMod val="300000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:shade val="30000"/><a:satMod val="200000"/></a:schemeClr></a:gs></a:gsLst><a:path path="circle"><a:fillToRect l="50000" t="50000" r="50000" b="50000"/></a:path></a:gradFill></a:bgFillStyleLst></a:fmtScheme></a:themeElements><a:objectDefaults><a:spDef><a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx="1"><a:schemeClr val="accent1"/></a:lnRef><a:fillRef idx="3"><a:schemeClr val="accent1"/></a:fillRef><a:effectRef idx="2"><a:schemeClr val="accent1"/></a:effectRef><a:fontRef idx="minor"><a:schemeClr val="lt1"/></a:fontRef></a:style></a:spDef><a:lnDef><a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx="2"><a:schemeClr val="accent1"/></a:lnRef><a:fillRef idx="0"><a:schemeClr val="accent1"/></a:fillRef><a:effectRef idx="1"><a:schemeClr val="accent1"/></a:effectRef><a:fontRef idx="minor"><a:schemeClr val="tx1"/></a:fontRef></a:style></a:lnDef></a:objectDefaults><a:extraClrSchemeLst/></a:theme>'}function parse_Theme(blob,length){var dwThemeVersion=blob.read_shift(4);if(dwThemeVersion===124226)return;blob.l+=length-4}function parse_ColorTheme(blob,length){return blob.read_shift(4)}function parse_FullColorExt(blob,length){var o={};o.xclrType=blob.read_shift(2);o.nTintShade=blob.read_shift(2);switch(o.xclrType){case 0:blob.l+=4;break;case 1:o.xclrValue=parse_IcvXF(blob,4);break;case 2:o.xclrValue=parse_LongRGBA(blob,4);break;case 3:o.xclrValue=parse_ColorTheme(blob,4);break;case 4:blob.l+=4;break}blob.l+=8;return o}function parse_IcvXF(blob,length){return parsenoop(blob,length)}function parse_XFExtGradient(blob,length){return parsenoop(blob,length)}function parse_ExtProp(blob,length){var extType=blob.read_shift(2);var cb=blob.read_shift(2);var o=[extType];switch(extType){case 4:case 5:case 7:case 8:case 9:case 10:case 11:case 13:o[1]=parse_FullColorExt(blob,cb);break;case 6:o[1]=parse_XFExtGradient(blob,cb);break;case 14:case 15:o[1]=blob.read_shift(cb===5?1:2);break;default:throw new Error("Unrecognized ExtProp type: "+extType+" "+cb)}return o}function parse_XFExt(blob,length){var end=blob.l+length;blob.l+=2;var ixfe=blob.read_shift(2);blob.l+=2;var cexts=blob.read_shift(2);var ext=[];while(cexts-->0)ext.push(parse_ExtProp(blob,end-blob.l));return{ixfe:ixfe,ext:ext}}function update_xfext(xf,xfext){xfext.forEach(function(xfe){switch(xfe[0]){case 4:break;case 5:break;case 7:case 8:case 9:case 10:break;case 13:break;case 14:break;default:throw"bafuq"+xfe[0].toString(16)}})}function parse_cc_xml(data,opts){var d=[];var l=0,i=1;(data.match(tagregex)||[]).forEach(function(x){var y=parsexmltag(x);switch(y[0]){case"<?xml":break;case"<calcChain":case"<calcChain>":case"</calcChain>":break;case"<c":delete y[0];if(y.i)i=y.i;else y.i=i;d.push(y);break}});return d}function write_cc_xml(data,opts){}function parse_BrtCalcChainItem$(data,length){var out={};out.i=data.read_shift(4);var cell={};cell.r=data.read_shift(4);cell.c=data.read_shift(4);out.r=encode_cell(cell);var flags=data.read_shift(1);if(flags&2)out.l="1";if(flags&8)out.a="1";return out}function parse_cc_bin(data,opts){var out=[];var pass=false;recordhopper(data,function hopper_cc(val,R,RT){switch(R.n){case"BrtCalcChainItem$":out.push(val);break;case"BrtBeginCalcChain$":break;case"BrtEndCalcChain$":break;default:if(!pass||opts.WTF)throw new Error("Unexpected record "+RT+" "+R.n)}});return out}function write_cc_bin(data,opts){}function parse_comments(zip,dirComments,sheets,sheetRels,opts){for(var i=0;i!=dirComments.length;++i){var canonicalpath=dirComments[i];var comments=parse_cmnt(getzipdata(zip,canonicalpath.replace(/^\//,""),true),canonicalpath,opts);if(!comments||!comments.length)continue;var sheetNames=keys(sheets);for(var j=0;j!=sheetNames.length;++j){var sheetName=sheetNames[j];var rels=sheetRels[sheetName];if(rels){var rel=rels[canonicalpath];if(rel)insertCommentsIntoSheet(sheetName,sheets[sheetName],comments)}}}}function insertCommentsIntoSheet(sheetName,sheet,comments){comments.forEach(function(comment){var cell=sheet[comment.ref];if(!cell){cell={};sheet[comment.ref]=cell;var range=safe_decode_range(sheet["!ref"]||"BDWGO1000001:A1");var thisCell=decode_cell(comment.ref);if(range.s.r>thisCell.r)range.s.r=thisCell.r;if(range.e.r<thisCell.r)range.e.r=thisCell.r;if(range.s.c>thisCell.c)range.s.c=thisCell.c;if(range.e.c<thisCell.c)range.e.c=thisCell.c;var encoded=encode_range(range);if(encoded!==sheet["!ref"])sheet["!ref"]=encoded}if(!cell.c)cell.c=[];var o={a:comment.author,t:comment.t,r:comment.r};if(comment.h)o.h=comment.h;cell.c.push(o)})}function parse_comments_xml(data,opts){if(data.match(/<(?:\w+:)?comments *\/>/))return[];var authors=[];var commentList=[];data.match(/<(?:\w+:)?authors>([^\u2603]*)<\/(?:\w+:)?authors>/)[1].split(/<\/\w*:?author>/).forEach(function(x){if(x===""||x.trim()==="")return;authors.push(x.match(/<(?:\w+:)?author[^>]*>(.*)/)[1])});(data.match(/<(?:\w+:)?commentList>([^\u2603]*)<\/(?:\w+:)?commentList>/)||["",""])[1].split(/<\/\w*:?comment>/).forEach(function(x,index){if(x===""||x.trim()==="")return;var y=parsexmltag(x.match(/<(?:\w+:)?comment[^>]*>/)[0]);var comment={author:y.authorId&&authors[y.authorId]?authors[y.authorId]:undefined,ref:y.ref,guid:y.guid};var cell=decode_cell(y.ref);if(opts.sheetRows&&opts.sheetRows<=cell.r)return;var textMatch=x.match(/<text>([^\u2603]*)<\/text>/);if(!textMatch||!textMatch[1])return;var rt=parse_si(textMatch[1]);comment.r=rt.r;comment.t=rt.t;if(opts.cellHTML)comment.h=rt.h;commentList.push(comment)});return commentList}function write_comments_xml(data,opts){}function parse_BrtBeginComment(data,length){var out={};out.iauthor=data.read_shift(4);var rfx=parse_UncheckedRfX(data,16);out.rfx=rfx.s;out.ref=encode_cell(rfx.s);data.l+=16;return out}var parse_BrtCommentAuthor=parse_XLWideString;var parse_BrtCommentText=parse_RichStr;function parse_comments_bin(data,opts){var out=[];var authors=[];var c={};var pass=false;recordhopper(data,function hopper_cmnt(val,R,RT){switch(R.n){case"BrtCommentAuthor":authors.push(val);break;case"BrtBeginComment":c=val;break;case"BrtCommentText":c.t=val.t;c.h=val.h;c.r=val.r;break;case"BrtEndComment":c.author=authors[c.iauthor];delete c.iauthor;if(opts.sheetRows&&opts.sheetRows<=c.rfx.r)break;delete c.rfx;out.push(c);break;case"BrtBeginComments":break;case"BrtEndComments":break;case"BrtBeginCommentAuthors":break;case"BrtEndCommentAuthors":break;case"BrtBeginCommentList":break;case"BrtEndCommentList":break;default:if(!pass||opts.WTF)throw new Error("Unexpected record "+RT+" "+R.n)}});return out}function write_comments_bin(data,opts){}var rc_to_a1=function(){var rcregex=/(^|[^A-Za-z])R(\[?)(-?\d+|)\]?C(\[?)(-?\d+|)\]?/g;var rcbase;function rcfunc($$,$1,$2,$3,$4,$5){var R=$3.length>0?parseInt($3,10)|0:0,C=$5.length>0?parseInt($5,10)|0:0;if(C<0&&$4.length===0)C=0;if($4.length>0)C+=rcbase.c;if($2.length>0)R+=rcbase.r;return $1+encode_col(C)+encode_row(R)}return function rc_to_a1(fstr,base){rcbase=base;return fstr.replace(rcregex,rcfunc)}}();function parseread(l){return function(blob,length){blob.l+=l;return}}function parseread1(blob,length){blob.l+=1;return}function parse_ColRelU(blob,length){var c=blob.read_shift(2);return[c&16383,c>>14&1,c>>15&1]}function parse_RgceArea(blob,length){var r=blob.read_shift(2),R=blob.read_shift(2);var c=parse_ColRelU(blob,2);var C=parse_ColRelU(blob,2);return{s:{r:r,c:c[0],cRel:c[1],rRel:c[2]},e:{r:R,c:C[0],cRel:C[1],rRel:C[2]}}}function parse_RgceAreaRel(blob,length){var r=blob.read_shift(2),R=blob.read_shift(2);var c=parse_ColRelU(blob,2);var C=parse_ColRelU(blob,2);return{s:{r:r,c:c[0],cRel:c[1],rRel:c[2]},e:{r:R,c:C[0],cRel:C[1],rRel:C[2]}}}function parse_RgceLoc(blob,length){var r=blob.read_shift(2);var c=parse_ColRelU(blob,2);return{r:r,c:c[0],cRel:c[1],rRel:c[2]}}function parse_RgceLocRel(blob,length){var r=blob.read_shift(2);var cl=blob.read_shift(2);var cRel=(cl&32768)>>15,rRel=(cl&16384)>>14;cl&=16383;if(cRel!==0)while(cl>=256)cl-=256;return{r:r,c:cl,cRel:cRel,rRel:rRel}}function parse_PtgArea(blob,length){var type=(blob[blob.l++]&96)>>5;var area=parse_RgceArea(blob,8);return[type,area]}function parse_PtgArea3d(blob,length){var type=(blob[blob.l++]&96)>>5;var ixti=blob.read_shift(2);var area=parse_RgceArea(blob,8);return[type,ixti,area]}function parse_PtgAreaErr(blob,length){var type=(blob[blob.l++]&96)>>5;blob.l+=8;return[type]}function parse_PtgAreaErr3d(blob,length){var type=(blob[blob.l++]&96)>>5;var ixti=blob.read_shift(2);blob.l+=8;return[type,ixti]}function parse_PtgAreaN(blob,length){var type=(blob[blob.l++]&96)>>5;var area=parse_RgceAreaRel(blob,8);return[type,area]}function parse_PtgArray(blob,length){var type=(blob[blob.l++]&96)>>5;blob.l+=7;return[type]}function parse_PtgAttrBaxcel(blob,length){var bitSemi=blob[blob.l+1]&1;var bitBaxcel=1;blob.l+=4;return[bitSemi,bitBaxcel]}function parse_PtgAttrChoose(blob,length){blob.l+=2;var offset=blob.read_shift(2);var o=[];for(var i=0;i<=offset;++i)o.push(blob.read_shift(2));return o}function parse_PtgAttrGoto(blob,length){var bitGoto=blob[blob.l+1]&255?1:0;blob.l+=2;return[bitGoto,blob.read_shift(2)]}function parse_PtgAttrIf(blob,length){var bitIf=blob[blob.l+1]&255?1:0;blob.l+=2;return[bitIf,blob.read_shift(2)]}function parse_PtgAttrSemi(blob,length){var bitSemi=blob[blob.l+1]&255?1:0;blob.l+=4;return[bitSemi]}function parse_PtgAttrSpaceType(blob,length){var type=blob.read_shift(1),cch=blob.read_shift(1);return[type,cch]}function parse_PtgAttrSpace(blob,length){blob.read_shift(2);return parse_PtgAttrSpaceType(blob,2)}function parse_PtgAttrSpaceSemi(blob,length){blob.read_shift(2);return parse_PtgAttrSpaceType(blob,2)}function parse_PtgRef(blob,length){var ptg=blob[blob.l]&31;var type=(blob[blob.l]&96)>>5;blob.l+=1;var loc=parse_RgceLoc(blob,4);return[type,loc]}function parse_PtgRefN(blob,length){var ptg=blob[blob.l]&31;var type=(blob[blob.l]&96)>>5;blob.l+=1;var loc=parse_RgceLocRel(blob,4);return[type,loc]}function parse_PtgRef3d(blob,length){var ptg=blob[blob.l]&31;var type=(blob[blob.l]&96)>>5;blob.l+=1;var ixti=blob.read_shift(2);var loc=parse_RgceLoc(blob,4);return[type,ixti,loc]}function parse_PtgFunc(blob,length){var ptg=blob[blob.l]&31;var type=(blob[blob.l]&96)>>5;blob.l+=1;var iftab=blob.read_shift(2);return[FtabArgc[iftab],Ftab[iftab]]}function parse_PtgFuncVar(blob,length){blob.l++;var cparams=blob.read_shift(1),tab=parsetab(blob);return[cparams,(tab[0]===0?Ftab:Cetab)[tab[1]]]}function parsetab(blob,length){return[blob[blob.l+1]>>7,blob.read_shift(2)&32767]}var parse_PtgAttrSum=parseread(4);var parse_PtgConcat=parseread1;function parse_PtgExp(blob,length){blob.l++;var row=blob.read_shift(2);var col=blob.read_shift(2);return[row,col]}function parse_PtgErr(blob,length){blob.l++;return BErr[blob.read_shift(1)]}function parse_PtgInt(blob,length){blob.l++;return blob.read_shift(2)}function parse_PtgBool(blob,length){blob.l++;return blob.read_shift(1)!==0}function parse_PtgNum(blob,length){blob.l++;return parse_Xnum(blob,8)}function parse_PtgStr(blob,length){blob.l++;return parse_ShortXLUnicodeString(blob)}function parse_SerAr(blob){var val=[];switch(val[0]=blob.read_shift(1)){case 4:val[1]=parsebool(blob,1)?"TRUE":"FALSE";blob.l+=7;break;case 16:val[1]=BErr[blob[blob.l]];blob.l+=8;break;case 0:blob.l+=8;break;case 1:val[1]=parse_Xnum(blob,8);break;case 2:val[1]=parse_XLUnicodeString(blob);break}return val}function parse_PtgExtraMem(blob,cce){var count=blob.read_shift(2);var out=[];for(var i=0;i!=count;++i)out.push(parse_Ref8U(blob,8));return out}function parse_PtgExtraArray(blob){var cols=1+blob.read_shift(1);var rows=1+blob.read_shift(2);for(var i=0,o=[];i!=rows&&(o[i]=[]);++i)for(var j=0;j!=cols;++j)o[i][j]=parse_SerAr(blob); +return o}function parse_PtgName(blob,length){var type=blob.read_shift(1)>>>5&3;var nameindex=blob.read_shift(4);return[type,0,nameindex]}function parse_PtgNameX(blob,length){var type=blob.read_shift(1)>>>5&3;var ixti=blob.read_shift(2);var nameindex=blob.read_shift(4);return[type,ixti,nameindex]}function parse_PtgMemArea(blob,length){var type=blob.read_shift(1)>>>5&3;blob.l+=4;var cce=blob.read_shift(2);return[type,cce]}function parse_PtgMemFunc(blob,length){var type=blob.read_shift(1)>>>5&3;var cce=blob.read_shift(2);return[type,cce]}function parse_PtgRefErr(blob,length){var type=blob.read_shift(1)>>>5&3;blob.l+=4;return[type]}var parse_PtgAdd=parseread1;var parse_PtgDiv=parseread1;var parse_PtgEq=parseread1;var parse_PtgGe=parseread1;var parse_PtgGt=parseread1;var parse_PtgIsect=parseread1;var parse_PtgLe=parseread1;var parse_PtgLt=parseread1;var parse_PtgMissArg=parseread1;var parse_PtgMul=parseread1;var parse_PtgNe=parseread1;var parse_PtgParen=parseread1;var parse_PtgPercent=parseread1;var parse_PtgPower=parseread1;var parse_PtgRange=parseread1;var parse_PtgSub=parseread1;var parse_PtgUminus=parseread1;var parse_PtgUnion=parseread1;var parse_PtgUplus=parseread1;var parse_PtgMemErr=parsenoop;var parse_PtgMemNoMem=parsenoop;var parse_PtgRefErr3d=parsenoop;var parse_PtgTbl=parsenoop;var PtgTypes={1:{n:"PtgExp",f:parse_PtgExp},2:{n:"PtgTbl",f:parse_PtgTbl},3:{n:"PtgAdd",f:parse_PtgAdd},4:{n:"PtgSub",f:parse_PtgSub},5:{n:"PtgMul",f:parse_PtgMul},6:{n:"PtgDiv",f:parse_PtgDiv},7:{n:"PtgPower",f:parse_PtgPower},8:{n:"PtgConcat",f:parse_PtgConcat},9:{n:"PtgLt",f:parse_PtgLt},10:{n:"PtgLe",f:parse_PtgLe},11:{n:"PtgEq",f:parse_PtgEq},12:{n:"PtgGe",f:parse_PtgGe},13:{n:"PtgGt",f:parse_PtgGt},14:{n:"PtgNe",f:parse_PtgNe},15:{n:"PtgIsect",f:parse_PtgIsect},16:{n:"PtgUnion",f:parse_PtgUnion},17:{n:"PtgRange",f:parse_PtgRange},18:{n:"PtgUplus",f:parse_PtgUplus},19:{n:"PtgUminus",f:parse_PtgUminus},20:{n:"PtgPercent",f:parse_PtgPercent},21:{n:"PtgParen",f:parse_PtgParen},22:{n:"PtgMissArg",f:parse_PtgMissArg},23:{n:"PtgStr",f:parse_PtgStr},28:{n:"PtgErr",f:parse_PtgErr},29:{n:"PtgBool",f:parse_PtgBool},30:{n:"PtgInt",f:parse_PtgInt},31:{n:"PtgNum",f:parse_PtgNum},32:{n:"PtgArray",f:parse_PtgArray},33:{n:"PtgFunc",f:parse_PtgFunc},34:{n:"PtgFuncVar",f:parse_PtgFuncVar},35:{n:"PtgName",f:parse_PtgName},36:{n:"PtgRef",f:parse_PtgRef},37:{n:"PtgArea",f:parse_PtgArea},38:{n:"PtgMemArea",f:parse_PtgMemArea},39:{n:"PtgMemErr",f:parse_PtgMemErr},40:{n:"PtgMemNoMem",f:parse_PtgMemNoMem},41:{n:"PtgMemFunc",f:parse_PtgMemFunc},42:{n:"PtgRefErr",f:parse_PtgRefErr},43:{n:"PtgAreaErr",f:parse_PtgAreaErr},44:{n:"PtgRefN",f:parse_PtgRefN},45:{n:"PtgAreaN",f:parse_PtgAreaN},57:{n:"PtgNameX",f:parse_PtgNameX},58:{n:"PtgRef3d",f:parse_PtgRef3d},59:{n:"PtgArea3d",f:parse_PtgArea3d},60:{n:"PtgRefErr3d",f:parse_PtgRefErr3d},61:{n:"PtgAreaErr3d",f:parse_PtgAreaErr3d},255:{}};var PtgDupes={64:32,96:32,65:33,97:33,66:34,98:34,67:35,99:35,68:36,100:36,69:37,101:37,70:38,102:38,71:39,103:39,72:40,104:40,73:41,105:41,74:42,106:42,75:43,107:43,76:44,108:44,77:45,109:45,89:57,121:57,90:58,122:58,91:59,123:59,92:60,124:60,93:61,125:61};(function(){for(var y in PtgDupes)PtgTypes[y]=PtgTypes[PtgDupes[y]]})();var Ptg18={};var Ptg19={1:{n:"PtgAttrSemi",f:parse_PtgAttrSemi},2:{n:"PtgAttrIf",f:parse_PtgAttrIf},4:{n:"PtgAttrChoose",f:parse_PtgAttrChoose},8:{n:"PtgAttrGoto",f:parse_PtgAttrGoto},16:{n:"PtgAttrSum",f:parse_PtgAttrSum},32:{n:"PtgAttrBaxcel",f:parse_PtgAttrBaxcel},64:{n:"PtgAttrSpace",f:parse_PtgAttrSpace},65:{n:"PtgAttrSpaceSemi",f:parse_PtgAttrSpaceSemi},255:{}};function parse_Formula(blob,length,opts){var cell=parse_XLSCell(blob,6);var val=parse_FormulaValue(blob,8);var flags=blob.read_shift(1);blob.read_shift(1);var chn=blob.read_shift(4);var cbf="";if(opts.biff===5)blob.l+=length-20;else cbf=parse_XLSCellParsedFormula(blob,length-20,opts);return{cell:cell,val:val[0],formula:cbf,shared:flags>>3&1,tt:val[1]}}function parse_FormulaValue(blob){var b;if(__readUInt16LE(blob,blob.l+6)!==65535)return[parse_Xnum(blob),"n"];switch(blob[blob.l]){case 0:blob.l+=8;return["String","s"];case 1:b=blob[blob.l+2]===1;blob.l+=8;return[b,"b"];case 2:b=blob[blob.l+2];blob.l+=8;return[b,"e"];case 3:blob.l+=8;return["","s"]}}function parse_RgbExtra(blob,length,rgce,opts){if(opts.biff<8)return parsenoop(blob,length);var target=blob.l+length;var o=[];for(var i=0;i!==rgce.length;++i){switch(rgce[i][0]){case"PtgArray":rgce[i][1]=parse_PtgExtraArray(blob);o.push(rgce[i][1]);break;case"PtgMemArea":rgce[i][2]=parse_PtgExtraMem(blob,rgce[i][1]);o.push(rgce[i][2]);break;default:break}}length=target-blob.l;if(length!==0)o.push(parsenoop(blob,length));return o}function parse_NameParsedFormula(blob,length,opts,cce){var target=blob.l+length;var rgce=parse_Rgce(blob,cce);var rgcb;if(target!==blob.l)rgcb=parse_RgbExtra(blob,target-blob.l,rgce,opts);return[rgce,rgcb]}function parse_XLSCellParsedFormula(blob,length,opts){var target=blob.l+length;var rgcb,cce=blob.read_shift(2);if(cce==65535)return[[],parsenoop(blob,length-2)];var rgce=parse_Rgce(blob,cce);if(length!==cce+2)rgcb=parse_RgbExtra(blob,length-cce-2,rgce,opts);return[rgce,rgcb]}function parse_SharedParsedFormula(blob,length,opts){var target=blob.l+length;var rgcb,cce=blob.read_shift(2);var rgce=parse_Rgce(blob,cce);if(cce==65535)return[[],parsenoop(blob,length-2)];if(length!==cce+2)rgcb=parse_RgbExtra(blob,target-cce-2,rgce,opts);return[rgce,rgcb]}function parse_ArrayParsedFormula(blob,length,opts,ref){var target=blob.l+length;var rgcb,cce=blob.read_shift(2);if(cce==65535)return[[],parsenoop(blob,length-2)];var rgce=parse_Rgce(blob,cce);if(length!==cce+2)rgcb=parse_RgbExtra(blob,target-cce-2,rgce,opts);return[rgce,rgcb]}function parse_Rgce(blob,length){var target=blob.l+length;var R,id,ptgs=[];while(target!=blob.l){length=target-blob.l;id=blob[blob.l];R=PtgTypes[id];if(id===24||id===25){id=blob[blob.l+1];R=(id===24?Ptg18:Ptg19)[id]}if(!R||!R.f){ptgs.push(parsenoop(blob,length))}else{ptgs.push([R.n,R.f(blob,length)])}}return ptgs}function mapper(x){return x.map(function f2(y){return y[1]}).join(",")}function stringify_formula(formula,range,cell,supbooks,opts){if(opts!==undefined&&opts.biff===5)return"BIFF5??";var _range=range!==undefined?range:{s:{c:0,r:0}};var stack=[],e1,e2,type,c,ixti,nameidx,r;if(!formula[0]||!formula[0][0])return"";for(var ff=0,fflen=formula[0].length;ff<fflen;++ff){var f=formula[0][ff];switch(f[0]){case"PtgUminus":stack.push("-"+stack.pop());break;case"PtgUplus":stack.push("+"+stack.pop());break;case"PtgPercent":stack.push(stack.pop()+"%");break;case"PtgAdd":e1=stack.pop();e2=stack.pop();stack.push(e2+"+"+e1);break;case"PtgSub":e1=stack.pop();e2=stack.pop();stack.push(e2+"-"+e1);break;case"PtgMul":e1=stack.pop();e2=stack.pop();stack.push(e2+"*"+e1);break;case"PtgDiv":e1=stack.pop();e2=stack.pop();stack.push(e2+"/"+e1);break;case"PtgPower":e1=stack.pop();e2=stack.pop();stack.push(e2+"^"+e1);break;case"PtgConcat":e1=stack.pop();e2=stack.pop();stack.push(e2+"&"+e1);break;case"PtgLt":e1=stack.pop();e2=stack.pop();stack.push(e2+"<"+e1);break;case"PtgLe":e1=stack.pop();e2=stack.pop();stack.push(e2+"<="+e1);break;case"PtgEq":e1=stack.pop();e2=stack.pop();stack.push(e2+"="+e1);break;case"PtgGe":e1=stack.pop();e2=stack.pop();stack.push(e2+">="+e1);break;case"PtgGt":e1=stack.pop();e2=stack.pop();stack.push(e2+">"+e1);break;case"PtgNe":e1=stack.pop();e2=stack.pop();stack.push(e2+"<>"+e1);break;case"PtgIsect":e1=stack.pop();e2=stack.pop();stack.push(e2+" "+e1);break;case"PtgUnion":e1=stack.pop();e2=stack.pop();stack.push(e2+","+e1);break;case"PtgRange":break;case"PtgAttrChoose":break;case"PtgAttrGoto":break;case"PtgAttrIf":break;case"PtgRef":type=f[1][0];c=shift_cell_xls(decode_cell(encode_cell(f[1][1])),_range);stack.push(encode_cell(c));break;case"PtgRefN":type=f[1][0];c=shift_cell_xls(decode_cell(encode_cell(f[1][1])),cell);stack.push(encode_cell(c));break;case"PtgRef3d":type=f[1][0];ixti=f[1][1];c=shift_cell_xls(f[1][2],_range);stack.push(supbooks[1][ixti+1]+"!"+encode_cell(c));break;case"PtgFunc":case"PtgFuncVar":var argc=f[1][0],func=f[1][1];if(!argc)argc=0;var args=stack.slice(-argc);stack.length-=argc;if(func==="User")func=args.shift();stack.push(func+"("+args.join(",")+")");break;case"PtgBool":stack.push(f[1]?"TRUE":"FALSE");break;case"PtgInt":stack.push(f[1]);break;case"PtgNum":stack.push(String(f[1]));break;case"PtgStr":stack.push('"'+f[1]+'"');break;case"PtgErr":stack.push(f[1]);break;case"PtgArea":type=f[1][0];r=shift_range_xls(f[1][1],_range);stack.push(encode_range(r));break;case"PtgArea3d":type=f[1][0];ixti=f[1][1];r=f[1][2];stack.push(supbooks[1][ixti+1]+"!"+encode_range(r));break;case"PtgAttrSum":stack.push("SUM("+stack.pop()+")");break;case"PtgAttrSemi":break;case"PtgName":nameidx=f[1][2];var lbl=supbooks[0][nameidx];var name=lbl.Name;if(name in XLSXFutureFunctions)name=XLSXFutureFunctions[name];stack.push(name);break;case"PtgNameX":var bookidx=f[1][1];nameidx=f[1][2];var externbook;if(supbooks[bookidx+1])externbook=supbooks[bookidx+1][nameidx];else if(supbooks[bookidx-1])externbook=supbooks[bookidx-1][nameidx];if(!externbook)externbook={body:"??NAMEX??"};stack.push(externbook.body);break;case"PtgParen":stack.push("("+stack.pop()+")");break;case"PtgRefErr":stack.push("#REF!");break;case"PtgExp":c={c:f[1][1],r:f[1][0]};var q={c:cell.c,r:cell.r};if(supbooks.sharedf[encode_cell(c)]){var parsedf=supbooks.sharedf[encode_cell(c)];stack.push(stringify_formula(parsedf,_range,q,supbooks,opts))}else{var fnd=false;for(e1=0;e1!=supbooks.arrayf.length;++e1){e2=supbooks.arrayf[e1];if(c.c<e2[0].s.c||c.c>e2[0].e.c)continue;if(c.r<e2[0].s.r||c.r>e2[0].e.r)continue;stack.push(stringify_formula(e2[1],_range,q,supbooks,opts))}if(!fnd)stack.push(f[1])}break;case"PtgArray":stack.push("{"+f[1].map(mapper).join(";")+"}");break;case"PtgMemArea":break;case"PtgAttrSpace":break;case"PtgTbl":break;case"PtgMemErr":break;case"PtgMissArg":stack.push("");break;case"PtgAreaErr":break;case"PtgAreaN":stack.push("");break;case"PtgRefErr3d":break;case"PtgMemFunc":break;default:throw"Unrecognized Formula Token: "+f}}return stack[0]}function parse_XLSBCellParsedFormula(data,length){var cce=data.read_shift(4);return parsenoop(data,length-4)}var PtgDataType={1:"REFERENCE",2:"VALUE",3:"ARRAY"};var Cetab={0:"BEEP",1:"OPEN",2:"OPEN.LINKS",3:"CLOSE.ALL",4:"SAVE",5:"SAVE.AS",6:"FILE.DELETE",7:"PAGE.SETUP",8:"PRINT",9:"PRINTER.SETUP",10:"QUIT",11:"NEW.WINDOW",12:"ARRANGE.ALL",13:"WINDOW.SIZE",14:"WINDOW.MOVE",15:"FULL",16:"CLOSE",17:"RUN",22:"SET.PRINT.AREA",23:"SET.PRINT.TITLES",24:"SET.PAGE.BREAK",25:"REMOVE.PAGE.BREAK",26:"FONT",27:"DISPLAY",28:"PROTECT.DOCUMENT",29:"PRECISION",30:"A1.R1C1",31:"CALCULATE.NOW",32:"CALCULATION",34:"DATA.FIND",35:"EXTRACT",36:"DATA.DELETE",37:"SET.DATABASE",38:"SET.CRITERIA",39:"SORT",40:"DATA.SERIES",41:"TABLE",42:"FORMAT.NUMBER",43:"ALIGNMENT",44:"STYLE",45:"BORDER",46:"CELL.PROTECTION",47:"COLUMN.WIDTH",48:"UNDO",49:"CUT",50:"COPY",51:"PASTE",52:"CLEAR",53:"PASTE.SPECIAL",54:"EDIT.DELETE",55:"INSERT",56:"FILL.RIGHT",57:"FILL.DOWN",61:"DEFINE.NAME",62:"CREATE.NAMES",63:"FORMULA.GOTO",64:"FORMULA.FIND",65:"SELECT.LAST.CELL",66:"SHOW.ACTIVE.CELL",67:"GALLERY.AREA",68:"GALLERY.BAR",69:"GALLERY.COLUMN",70:"GALLERY.LINE",71:"GALLERY.PIE",72:"GALLERY.SCATTER",73:"COMBINATION",74:"PREFERRED",75:"ADD.OVERLAY",76:"GRIDLINES",77:"SET.PREFERRED",78:"AXES",79:"LEGEND",80:"ATTACH.TEXT",81:"ADD.ARROW",82:"SELECT.CHART",83:"SELECT.PLOT.AREA",84:"PATTERNS",85:"MAIN.CHART",86:"OVERLAY",87:"SCALE",88:"FORMAT.LEGEND",89:"FORMAT.TEXT",90:"EDIT.REPEAT",91:"PARSE",92:"JUSTIFY",93:"HIDE",94:"UNHIDE",95:"WORKSPACE",96:"FORMULA",97:"FORMULA.FILL",98:"FORMULA.ARRAY",99:"DATA.FIND.NEXT",100:"DATA.FIND.PREV",101:"FORMULA.FIND.NEXT",102:"FORMULA.FIND.PREV",103:"ACTIVATE",104:"ACTIVATE.NEXT",105:"ACTIVATE.PREV",106:"UNLOCKED.NEXT",107:"UNLOCKED.PREV",108:"COPY.PICTURE",109:"SELECT",110:"DELETE.NAME",111:"DELETE.FORMAT",112:"VLINE",113:"HLINE",114:"VPAGE",115:"HPAGE",116:"VSCROLL",117:"HSCROLL",118:"ALERT",119:"NEW",120:"CANCEL.COPY",121:"SHOW.CLIPBOARD",122:"MESSAGE",124:"PASTE.LINK",125:"APP.ACTIVATE",126:"DELETE.ARROW",127:"ROW.HEIGHT",128:"FORMAT.MOVE",129:"FORMAT.SIZE",130:"FORMULA.REPLACE",131:"SEND.KEYS",132:"SELECT.SPECIAL",133:"APPLY.NAMES",134:"REPLACE.FONT",135:"FREEZE.PANES",136:"SHOW.INFO",137:"SPLIT",138:"ON.WINDOW",139:"ON.DATA",140:"DISABLE.INPUT",142:"OUTLINE",143:"LIST.NAMES",144:"FILE.CLOSE",145:"SAVE.WORKBOOK",146:"DATA.FORM",147:"COPY.CHART",148:"ON.TIME",149:"WAIT",150:"FORMAT.FONT",151:"FILL.UP",152:"FILL.LEFT",153:"DELETE.OVERLAY",155:"SHORT.MENUS",159:"SET.UPDATE.STATUS",161:"COLOR.PALETTE",162:"DELETE.STYLE",163:"WINDOW.RESTORE",164:"WINDOW.MAXIMIZE",166:"CHANGE.LINK",167:"CALCULATE.DOCUMENT",168:"ON.KEY",169:"APP.RESTORE",170:"APP.MOVE",171:"APP.SIZE",172:"APP.MINIMIZE",173:"APP.MAXIMIZE",174:"BRING.TO.FRONT",175:"SEND.TO.BACK",185:"MAIN.CHART.TYPE",186:"OVERLAY.CHART.TYPE",187:"SELECT.END",188:"OPEN.MAIL",189:"SEND.MAIL",190:"STANDARD.FONT",191:"CONSOLIDATE",192:"SORT.SPECIAL",193:"GALLERY.3D.AREA",194:"GALLERY.3D.COLUMN",195:"GALLERY.3D.LINE",196:"GALLERY.3D.PIE",197:"VIEW.3D",198:"GOAL.SEEK",199:"WORKGROUP",200:"FILL.GROUP",201:"UPDATE.LINK",202:"PROMOTE",203:"DEMOTE",204:"SHOW.DETAIL",206:"UNGROUP",207:"OBJECT.PROPERTIES",208:"SAVE.NEW.OBJECT",209:"SHARE",210:"SHARE.NAME",211:"DUPLICATE",212:"APPLY.STYLE",213:"ASSIGN.TO.OBJECT",214:"OBJECT.PROTECTION",215:"HIDE.OBJECT",216:"SET.EXTRACT",217:"CREATE.PUBLISHER",218:"SUBSCRIBE.TO",219:"ATTRIBUTES",220:"SHOW.TOOLBAR",222:"PRINT.PREVIEW",223:"EDIT.COLOR",224:"SHOW.LEVELS",225:"FORMAT.MAIN",226:"FORMAT.OVERLAY",227:"ON.RECALC",228:"EDIT.SERIES",229:"DEFINE.STYLE",240:"LINE.PRINT",243:"ENTER.DATA",249:"GALLERY.RADAR",250:"MERGE.STYLES",251:"EDITION.OPTIONS",252:"PASTE.PICTURE",253:"PASTE.PICTURE.LINK",254:"SPELLING",256:"ZOOM",259:"INSERT.OBJECT",260:"WINDOW.MINIMIZE",265:"SOUND.NOTE",266:"SOUND.PLAY",267:"FORMAT.SHAPE",268:"EXTEND.POLYGON",269:"FORMAT.AUTO",272:"GALLERY.3D.BAR",273:"GALLERY.3D.SURFACE",274:"FILL.AUTO",276:"CUSTOMIZE.TOOLBAR",277:"ADD.TOOL",278:"EDIT.OBJECT",279:"ON.DOUBLECLICK",280:"ON.ENTRY",281:"WORKBOOK.ADD",282:"WORKBOOK.MOVE",283:"WORKBOOK.COPY",284:"WORKBOOK.OPTIONS",285:"SAVE.WORKSPACE",288:"CHART.WIZARD",289:"DELETE.TOOL",290:"MOVE.TOOL",291:"WORKBOOK.SELECT",292:"WORKBOOK.ACTIVATE",293:"ASSIGN.TO.TOOL",295:"COPY.TOOL",296:"RESET.TOOL",297:"CONSTRAIN.NUMERIC",298:"PASTE.TOOL",302:"WORKBOOK.NEW",305:"SCENARIO.CELLS",306:"SCENARIO.DELETE",307:"SCENARIO.ADD",308:"SCENARIO.EDIT",309:"SCENARIO.SHOW",310:"SCENARIO.SHOW.NEXT",311:"SCENARIO.SUMMARY",312:"PIVOT.TABLE.WIZARD",313:"PIVOT.FIELD.PROPERTIES",314:"PIVOT.FIELD",315:"PIVOT.ITEM",316:"PIVOT.ADD.FIELDS",318:"OPTIONS.CALCULATION",319:"OPTIONS.EDIT",320:"OPTIONS.VIEW",321:"ADDIN.MANAGER",322:"MENU.EDITOR",323:"ATTACH.TOOLBARS",324:"VBAActivate",325:"OPTIONS.CHART",328:"VBA.INSERT.FILE",330:"VBA.PROCEDURE.DEFINITION",336:"ROUTING.SLIP",338:"ROUTE.DOCUMENT",339:"MAIL.LOGON",342:"INSERT.PICTURE",343:"EDIT.TOOL",344:"GALLERY.DOUGHNUT",350:"CHART.TREND",352:"PIVOT.ITEM.PROPERTIES",354:"WORKBOOK.INSERT",355:"OPTIONS.TRANSITION",356:"OPTIONS.GENERAL",370:"FILTER.ADVANCED",373:"MAIL.ADD.MAILER",374:"MAIL.DELETE.MAILER",375:"MAIL.REPLY",376:"MAIL.REPLY.ALL",377:"MAIL.FORWARD",378:"MAIL.NEXT.LETTER",379:"DATA.LABEL",380:"INSERT.TITLE",381:"FONT.PROPERTIES",382:"MACRO.OPTIONS",383:"WORKBOOK.HIDE",384:"WORKBOOK.UNHIDE",385:"WORKBOOK.DELETE",386:"WORKBOOK.NAME",388:"GALLERY.CUSTOM",390:"ADD.CHART.AUTOFORMAT",391:"DELETE.CHART.AUTOFORMAT",392:"CHART.ADD.DATA",393:"AUTO.OUTLINE",394:"TAB.ORDER",395:"SHOW.DIALOG",396:"SELECT.ALL",397:"UNGROUP.SHEETS",398:"SUBTOTAL.CREATE",399:"SUBTOTAL.REMOVE",400:"RENAME.OBJECT",412:"WORKBOOK.SCROLL",413:"WORKBOOK.NEXT",414:"WORKBOOK.PREV",415:"WORKBOOK.TAB.SPLIT",416:"FULL.SCREEN",417:"WORKBOOK.PROTECT",420:"SCROLLBAR.PROPERTIES",421:"PIVOT.SHOW.PAGES",422:"TEXT.TO.COLUMNS",423:"FORMAT.CHARTTYPE",424:"LINK.FORMAT",425:"TRACER.DISPLAY",430:"TRACER.NAVIGATE",431:"TRACER.CLEAR",432:"TRACER.ERROR",433:"PIVOT.FIELD.GROUP",434:"PIVOT.FIELD.UNGROUP",435:"CHECKBOX.PROPERTIES",436:"LABEL.PROPERTIES",437:"LISTBOX.PROPERTIES",438:"EDITBOX.PROPERTIES",439:"PIVOT.REFRESH",440:"LINK.COMBO",441:"OPEN.TEXT",442:"HIDE.DIALOG",443:"SET.DIALOG.FOCUS",444:"ENABLE.OBJECT",445:"PUSHBUTTON.PROPERTIES",446:"SET.DIALOG.DEFAULT",447:"FILTER",448:"FILTER.SHOW.ALL",449:"CLEAR.OUTLINE",450:"FUNCTION.WIZARD",451:"ADD.LIST.ITEM",452:"SET.LIST.ITEM",453:"REMOVE.LIST.ITEM",454:"SELECT.LIST.ITEM",455:"SET.CONTROL.VALUE",456:"SAVE.COPY.AS",458:"OPTIONS.LISTS.ADD",459:"OPTIONS.LISTS.DELETE",460:"SERIES.AXES",461:"SERIES.X",462:"SERIES.Y",463:"ERRORBAR.X",464:"ERRORBAR.Y",465:"FORMAT.CHART",466:"SERIES.ORDER",467:"MAIL.LOGOFF",468:"CLEAR.ROUTING.SLIP",469:"APP.ACTIVATE.MICROSOFT",470:"MAIL.EDIT.MAILER",471:"ON.SHEET",472:"STANDARD.WIDTH",473:"SCENARIO.MERGE",474:"SUMMARY.INFO",475:"FIND.FILE",476:"ACTIVE.CELL.FONT",477:"ENABLE.TIPWIZARD",478:"VBA.MAKE.ADDIN",480:"INSERTDATATABLE",481:"WORKGROUP.OPTIONS",482:"MAIL.SEND.MAILER",485:"AUTOCORRECT",489:"POST.DOCUMENT",491:"PICKLIST",493:"VIEW.SHOW",494:"VIEW.DEFINE",495:"VIEW.DELETE",509:"SHEET.BACKGROUND",510:"INSERT.MAP.OBJECT",511:"OPTIONS.MENONO",517:"MSOCHECKS",518:"NORMAL",519:"LAYOUT",520:"RM.PRINT.AREA",521:"CLEAR.PRINT.AREA",522:"ADD.PRINT.AREA",523:"MOVE.BRK",545:"HIDECURR.NOTE",546:"HIDEALL.NOTES",547:"DELETE.NOTE",548:"TRAVERSE.NOTES",549:"ACTIVATE.NOTES",620:"PROTECT.REVISIONS",621:"UNPROTECT.REVISIONS",647:"OPTIONS.ME",653:"WEB.PUBLISH",667:"NEWWEBQUERY",673:"PIVOT.TABLE.CHART",753:"OPTIONS.SAVE",755:"OPTIONS.SPELL",808:"HIDEALL.INKANNOTS"};var Ftab={0:"COUNT",1:"IF",2:"ISNA",3:"ISERROR",4:"SUM",5:"AVERAGE",6:"MIN",7:"MAX",8:"ROW",9:"COLUMN",10:"NA",11:"NPV",12:"STDEV",13:"DOLLAR",14:"FIXED",15:"SIN",16:"COS",17:"TAN",18:"ATAN",19:"PI",20:"SQRT",21:"EXP",22:"LN",23:"LOG10",24:"ABS",25:"INT",26:"SIGN",27:"ROUND",28:"LOOKUP",29:"INDEX",30:"REPT",31:"MID",32:"LEN",33:"VALUE",34:"TRUE",35:"FALSE",36:"AND",37:"OR",38:"NOT",39:"MOD",40:"DCOUNT",41:"DSUM",42:"DAVERAGE",43:"DMIN",44:"DMAX",45:"DSTDEV",46:"VAR",47:"DVAR",48:"TEXT",49:"LINEST",50:"TREND",51:"LOGEST",52:"GROWTH",53:"GOTO",54:"HALT",55:"RETURN",56:"PV",57:"FV",58:"NPER",59:"PMT",60:"RATE",61:"MIRR",62:"IRR",63:"RAND",64:"MATCH",65:"DATE",66:"TIME",67:"DAY",68:"MONTH",69:"YEAR",70:"WEEKDAY",71:"HOUR",72:"MINUTE",73:"SECOND",74:"NOW",75:"AREAS",76:"ROWS",77:"COLUMNS",78:"OFFSET",79:"ABSREF",80:"RELREF",81:"ARGUMENT",82:"SEARCH",83:"TRANSPOSE",84:"ERROR",85:"STEP",86:"TYPE",87:"ECHO",88:"SET.NAME",89:"CALLER",90:"DEREF",91:"WINDOWS",92:"SERIES",93:"DOCUMENTS",94:"ACTIVE.CELL",95:"SELECTION",96:"RESULT",97:"ATAN2",98:"ASIN",99:"ACOS",100:"CHOOSE",101:"HLOOKUP",102:"VLOOKUP",103:"LINKS",104:"INPUT",105:"ISREF",106:"GET.FORMULA",107:"GET.NAME",108:"SET.VALUE",109:"LOG",110:"EXEC",111:"CHAR",112:"LOWER",113:"UPPER",114:"PROPER",115:"LEFT",116:"RIGHT",117:"EXACT",118:"TRIM",119:"REPLACE",120:"SUBSTITUTE",121:"CODE",122:"NAMES",123:"DIRECTORY",124:"FIND",125:"CELL",126:"ISERR",127:"ISTEXT",128:"ISNUMBER",129:"ISBLANK",130:"T",131:"N",132:"FOPEN",133:"FCLOSE",134:"FSIZE",135:"FREADLN",136:"FREAD",137:"FWRITELN",138:"FWRITE",139:"FPOS",140:"DATEVALUE",141:"TIMEVALUE",142:"SLN",143:"SYD",144:"DDB",145:"GET.DEF",146:"REFTEXT",147:"TEXTREF",148:"INDIRECT",149:"REGISTER",150:"CALL",151:"ADD.BAR",152:"ADD.MENU",153:"ADD.COMMAND",154:"ENABLE.COMMAND",155:"CHECK.COMMAND",156:"RENAME.COMMAND",157:"SHOW.BAR",158:"DELETE.MENU",159:"DELETE.COMMAND",160:"GET.CHART.ITEM",161:"DIALOG.BOX",162:"CLEAN",163:"MDETERM",164:"MINVERSE",165:"MMULT",166:"FILES",167:"IPMT",168:"PPMT",169:"COUNTA",170:"CANCEL.KEY",171:"FOR",172:"WHILE",173:"BREAK",174:"NEXT",175:"INITIATE",176:"REQUEST",177:"POKE",178:"EXECUTE",179:"TERMINATE",180:"RESTART",181:"HELP",182:"GET.BAR",183:"PRODUCT",184:"FACT",185:"GET.CELL",186:"GET.WORKSPACE",187:"GET.WINDOW",188:"GET.DOCUMENT",189:"DPRODUCT",190:"ISNONTEXT",191:"GET.NOTE",192:"NOTE",193:"STDEVP",194:"VARP",195:"DSTDEVP",196:"DVARP",197:"TRUNC",198:"ISLOGICAL",199:"DCOUNTA",200:"DELETE.BAR",201:"UNREGISTER",204:"USDOLLAR",205:"FINDB",206:"SEARCHB",207:"REPLACEB",208:"LEFTB",209:"RIGHTB",210:"MIDB",211:"LENB",212:"ROUNDUP",213:"ROUNDDOWN",214:"ASC",215:"DBCS",216:"RANK",219:"ADDRESS",220:"DAYS360",221:"TODAY",222:"VDB",223:"ELSE",224:"ELSE.IF",225:"END.IF",226:"FOR.CELL",227:"MEDIAN",228:"SUMPRODUCT",229:"SINH",230:"COSH",231:"TANH",232:"ASINH",233:"ACOSH",234:"ATANH",235:"DGET",236:"CREATE.OBJECT",237:"VOLATILE",238:"LAST.ERROR",239:"CUSTOM.UNDO",240:"CUSTOM.REPEAT",241:"FORMULA.CONVERT",242:"GET.LINK.INFO",243:"TEXT.BOX",244:"INFO",245:"GROUP",246:"GET.OBJECT",247:"DB",248:"PAUSE",251:"RESUME",252:"FREQUENCY",253:"ADD.TOOLBAR",254:"DELETE.TOOLBAR",255:"User",256:"RESET.TOOLBAR",257:"EVALUATE",258:"GET.TOOLBAR",259:"GET.TOOL",260:"SPELLING.CHECK",261:"ERROR.TYPE",262:"APP.TITLE",263:"WINDOW.TITLE",264:"SAVE.TOOLBAR",265:"ENABLE.TOOL",266:"PRESS.TOOL",267:"REGISTER.ID",268:"GET.WORKBOOK",269:"AVEDEV",270:"BETADIST",271:"GAMMALN",272:"BETAINV",273:"BINOMDIST",274:"CHIDIST",275:"CHIINV",276:"COMBIN",277:"CONFIDENCE",278:"CRITBINOM",279:"EVEN",280:"EXPONDIST",281:"FDIST",282:"FINV",283:"FISHER",284:"FISHERINV",285:"FLOOR",286:"GAMMADIST",287:"GAMMAINV",288:"CEILING",289:"HYPGEOMDIST",290:"LOGNORMDIST",291:"LOGINV",292:"NEGBINOMDIST",293:"NORMDIST",294:"NORMSDIST",295:"NORMINV",296:"NORMSINV",297:"STANDARDIZE",298:"ODD",299:"PERMUT",300:"POISSON",301:"TDIST",302:"WEIBULL",303:"SUMXMY2",304:"SUMX2MY2",305:"SUMX2PY2",306:"CHITEST",307:"CORREL",308:"COVAR",309:"FORECAST",310:"FTEST",311:"INTERCEPT",312:"PEARSON",313:"RSQ",314:"STEYX",315:"SLOPE",316:"TTEST",317:"PROB",318:"DEVSQ",319:"GEOMEAN",320:"HARMEAN",321:"SUMSQ",322:"KURT",323:"SKEW",324:"ZTEST",325:"LARGE",326:"SMALL",327:"QUARTILE",328:"PERCENTILE",329:"PERCENTRANK",330:"MODE",331:"TRIMMEAN",332:"TINV",334:"MOVIE.COMMAND",335:"GET.MOVIE",336:"CONCATENATE",337:"POWER",338:"PIVOT.ADD.DATA",339:"GET.PIVOT.TABLE",340:"GET.PIVOT.FIELD",341:"GET.PIVOT.ITEM",342:"RADIANS",343:"DEGREES",344:"SUBTOTAL",345:"SUMIF",346:"COUNTIF",347:"COUNTBLANK",348:"SCENARIO.GET",349:"OPTIONS.LISTS.GET",350:"ISPMT",351:"DATEDIF",352:"DATESTRING",353:"NUMBERSTRING",354:"ROMAN",355:"OPEN.DIALOG",356:"SAVE.DIALOG",357:"VIEW.GET",358:"GETPIVOTDATA",359:"HYPERLINK",360:"PHONETIC",361:"AVERAGEA",362:"MAXA",363:"MINA",364:"STDEVPA",365:"VARPA",366:"STDEVA",367:"VARA",368:"BAHTTEXT",369:"THAIDAYOFWEEK",370:"THAIDIGIT",371:"THAIMONTHOFYEAR",372:"THAINUMSOUND",373:"THAINUMSTRING",374:"THAISTRINGLENGTH",375:"ISTHAIDIGIT",376:"ROUNDBAHTDOWN",377:"ROUNDBAHTUP",378:"THAIYEAR",379:"RTD"};var FtabArgc={2:1,3:1,15:1,16:1,17:1,18:1,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:2,30:2,31:3,32:1,33:1,38:1,39:2,40:3,41:3,42:3,43:3,44:3,45:3,47:3,48:2,53:1,61:3,65:3,66:3,67:1,68:1,69:1,71:1,72:1,73:1,75:1,76:1,77:1,79:2,80:2,83:1,86:1,90:1,97:2,98:1,99:1,105:1,111:1,112:1,113:1,114:1,117:2,118:1,119:4,121:1,126:1,127:1,128:1,129:1,130:1,131:1,133:1,134:1,135:1,136:2,137:2,138:2,140:1,141:1,142:3,143:4,162:1,163:1,164:1,165:2,172:1,175:2,176:2,177:3,178:2,179:1,184:1,189:3,190:1,195:3,196:3,198:1,199:3,201:1,207:4,210:3,211:1,212:2,213:2,214:1,215:1,229:1,230:1,231:1,232:1,233:1,234:1,235:3,244:1,252:2,257:1,261:1,271:1,273:4,274:2,275:2,276:2,277:3,278:3,279:1,280:3,281:3,282:3,283:1,284:1,285:2,286:4,287:3,288:2,289:4,290:3,291:3,292:3,293:4,294:1,295:3,296:1,297:3,298:1,299:2,300:3,301:3,302:4,303:2,304:2,305:2,306:2,307:2,308:2,309:3,310:2,311:2,312:2,313:2,314:2,315:2,316:4,325:2,326:2,327:2,328:2,331:2,332:2,337:2,342:1,343:1,346:2,347:1,350:4,351:3,352:1,353:2,360:1,368:1,369:1,370:1,371:1,372:1,373:1,374:1,375:1,376:1,377:1,378:1,65535:0};var XLSXFutureFunctions={"_xlfn.ACOT":"ACOT","_xlfn.ACOTH":"ACOTH","_xlfn.AGGREGATE":"AGGREGATE","_xlfn.ARABIC":"ARABIC","_xlfn.AVERAGEIF":"AVERAGEIF","_xlfn.AVERAGEIFS":"AVERAGEIFS","_xlfn.BASE":"BASE","_xlfn.BETA.DIST":"BETA.DIST","_xlfn.BETA.INV":"BETA.INV","_xlfn.BINOM.DIST":"BINOM.DIST","_xlfn.BINOM.DIST.RANGE":"BINOM.DIST.RANGE","_xlfn.BINOM.INV":"BINOM.INV","_xlfn.BITAND":"BITAND","_xlfn.BITLSHIFT":"BITLSHIFT","_xlfn.BITOR":"BITOR","_xlfn.BITRSHIFT":"BITRSHIFT","_xlfn.BITXOR":"BITXOR","_xlfn.CEILING.MATH":"CEILING.MATH","_xlfn.CEILING.PRECISE":"CEILING.PRECISE","_xlfn.CHISQ.DIST":"CHISQ.DIST","_xlfn.CHISQ.DIST.RT":"CHISQ.DIST.RT","_xlfn.CHISQ.INV":"CHISQ.INV","_xlfn.CHISQ.INV.RT":"CHISQ.INV.RT","_xlfn.CHISQ.TEST":"CHISQ.TEST","_xlfn.COMBINA":"COMBINA","_xlfn.CONFIDENCE.NORM":"CONFIDENCE.NORM","_xlfn.CONFIDENCE.T":"CONFIDENCE.T","_xlfn.COT":"COT","_xlfn.COTH":"COTH","_xlfn.COUNTIFS":"COUNTIFS","_xlfn.COVARIANCE.P":"COVARIANCE.P","_xlfn.COVARIANCE.S":"COVARIANCE.S","_xlfn.CSC":"CSC","_xlfn.CSCH":"CSCH","_xlfn.DAYS":"DAYS","_xlfn.DECIMAL":"DECIMAL","_xlfn.ECMA.CEILING":"ECMA.CEILING","_xlfn.ERF.PRECISE":"ERF.PRECISE","_xlfn.ERFC.PRECISE":"ERFC.PRECISE","_xlfn.EXPON.DIST":"EXPON.DIST","_xlfn.F.DIST":"F.DIST","_xlfn.F.DIST.RT":"F.DIST.RT","_xlfn.F.INV":"F.INV","_xlfn.F.INV.RT":"F.INV.RT","_xlfn.F.TEST":"F.TEST","_xlfn.FILTERXML":"FILTERXML","_xlfn.FLOOR.MATH":"FLOOR.MATH","_xlfn.FLOOR.PRECISE":"FLOOR.PRECISE","_xlfn.FORMULATEXT":"FORMULATEXT","_xlfn.GAMMA":"GAMMA","_xlfn.GAMMA.DIST":"GAMMA.DIST","_xlfn.GAMMA.INV":"GAMMA.INV","_xlfn.GAMMALN.PRECISE":"GAMMALN.PRECISE","_xlfn.GAUSS":"GAUSS","_xlfn.HYPGEOM.DIST":"HYPGEOM.DIST","_xlfn.IFNA":"IFNA","_xlfn.IFERROR":"IFERROR","_xlfn.IMCOSH":"IMCOSH","_xlfn.IMCOT":"IMCOT","_xlfn.IMCSC":"IMCSC","_xlfn.IMCSCH":"IMCSCH","_xlfn.IMSEC":"IMSEC","_xlfn.IMSECH":"IMSECH","_xlfn.IMSINH":"IMSINH","_xlfn.IMTAN":"IMTAN","_xlfn.ISFORMULA":"ISFORMULA","_xlfn.ISO.CEILING":"ISO.CEILING","_xlfn.ISOWEEKNUM":"ISOWEEKNUM","_xlfn.LOGNORM.DIST":"LOGNORM.DIST","_xlfn.LOGNORM.INV":"LOGNORM.INV","_xlfn.MODE.MULT":"MODE.MULT","_xlfn.MODE.SNGL":"MODE.SNGL","_xlfn.MUNIT":"MUNIT","_xlfn.NEGBINOM.DIST":"NEGBINOM.DIST","_xlfn.NETWORKDAYS.INTL":"NETWORKDAYS.INTL","_xlfn.NIGBINOM":"NIGBINOM","_xlfn.NORM.DIST":"NORM.DIST","_xlfn.NORM.INV":"NORM.INV","_xlfn.NORM.S.DIST":"NORM.S.DIST","_xlfn.NORM.S.INV":"NORM.S.INV","_xlfn.NUMBERVALUE":"NUMBERVALUE","_xlfn.PDURATION":"PDURATION","_xlfn.PERCENTILE.EXC":"PERCENTILE.EXC","_xlfn.PERCENTILE.INC":"PERCENTILE.INC","_xlfn.PERCENTRANK.EXC":"PERCENTRANK.EXC","_xlfn.PERCENTRANK.INC":"PERCENTRANK.INC","_xlfn.PERMUTATIONA":"PERMUTATIONA","_xlfn.PHI":"PHI","_xlfn.POISSON.DIST":"POISSON.DIST","_xlfn.QUARTILE.EXC":"QUARTILE.EXC","_xlfn.QUARTILE.INC":"QUARTILE.INC","_xlfn.QUERYSTRING":"QUERYSTRING","_xlfn.RANK.AVG":"RANK.AVG","_xlfn.RANK.EQ":"RANK.EQ","_xlfn.RRI":"RRI","_xlfn.SEC":"SEC","_xlfn.SECH":"SECH","_xlfn.SHEET":"SHEET","_xlfn.SHEETS":"SHEETS","_xlfn.SKEW.P":"SKEW.P","_xlfn.STDEV.P":"STDEV.P","_xlfn.STDEV.S":"STDEV.S","_xlfn.SUMIFS":"SUMIFS","_xlfn.T.DIST":"T.DIST","_xlfn.T.DIST.2T":"T.DIST.2T","_xlfn.T.DIST.RT":"T.DIST.RT","_xlfn.T.INV":"T.INV","_xlfn.T.INV.2T":"T.INV.2T","_xlfn.T.TEST":"T.TEST","_xlfn.UNICHAR":"UNICHAR","_xlfn.UNICODE":"UNICODE","_xlfn.VAR.P":"VAR.P","_xlfn.VAR.S":"VAR.S","_xlfn.WEBSERVICE":"WEBSERVICE","_xlfn.WEIBULL.DIST":"WEIBULL.DIST","_xlfn.WORKDAY.INTL":"WORKDAY.INTL","_xlfn.XOR":"XOR","_xlfn.Z.TEST":"Z.TEST"};var strs={};var _ssfopts={};RELS.WS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet";function get_sst_id(sst,str){for(var i=0,len=sst.length;i<len;++i)if(sst[i].t===str){sst.Count++;return i}sst[len]={t:str};sst.Count++;sst.Unique++;return len}function get_cell_style(styles,cell,opts){var z=opts.revssf[cell.z!=null?cell.z:"General"];for(var i=0,len=styles.length;i!=len;++i)if(styles[i].numFmtId===z)return i;styles[len]={numFmtId:z,fontId:0,fillId:0,borderId:0,xfId:0,applyNumberFormat:1};return len}function safe_format(p,fmtid,fillid,opts){try{if(p.t==="e")p.w=p.w||BErr[p.v];else if(fmtid===0){if(p.t==="n"){if((p.v|0)===p.v)p.w=SSF._general_int(p.v,_ssfopts);else p.w=SSF._general_num(p.v,_ssfopts)}else if(p.t==="d"){var dd=datenum(p.v);if((dd|0)===dd)p.w=SSF._general_int(dd,_ssfopts);else p.w=SSF._general_num(dd,_ssfopts)}else if(p.v===undefined)return"";else p.w=SSF._general(p.v,_ssfopts)}else if(p.t==="d")p.w=SSF.format(fmtid,datenum(p.v),_ssfopts);else p.w=SSF.format(fmtid,p.v,_ssfopts);if(opts.cellNF)p.z=SSF._table[fmtid]}catch(e){if(opts.WTF)throw e}if(fillid)try{p.s=styles.Fills[fillid];if(p.s.fgColor&&p.s.fgColor.theme){p.s.fgColor.rgb=rgb_tint(themes.themeElements.clrScheme[p.s.fgColor.theme].rgb,p.s.fgColor.tint||0);if(opts.WTF)p.s.fgColor.raw_rgb=themes.themeElements.clrScheme[p.s.fgColor.theme].rgb}if(p.s.bgColor&&p.s.bgColor.theme){p.s.bgColor.rgb=rgb_tint(themes.themeElements.clrScheme[p.s.bgColor.theme].rgb,p.s.bgColor.tint||0);if(opts.WTF)p.s.bgColor.raw_rgb=themes.themeElements.clrScheme[p.s.bgColor.theme].rgb}}catch(e){if(opts.WTF)throw e}}function parse_ws_xml_dim(ws,s){var d=safe_decode_range(s);if(d.s.r<=d.e.r&&d.s.c<=d.e.c&&d.s.r>=0&&d.s.c>=0)ws["!ref"]=encode_range(d)}var mergecregex=/<mergeCell ref="[A-Z0-9:]+"\s*\/>/g;var sheetdataregex=/<(?:\w+:)?sheetData>([^\u2603]*)<\/(?:\w+:)?sheetData>/;var hlinkregex=/<hyperlink[^>]*\/>/g;var dimregex=/"(\w*:\w*)"/;var colregex=/<col[^>]*\/>/g;function parse_ws_xml(data,opts,rels){if(!data)return data;var s={};var ridx=data.indexOf("<dimension");if(ridx>0){var ref=data.substr(ridx,50).match(dimregex);if(ref!=null)parse_ws_xml_dim(s,ref[1])}var mergecells=[];if(data.indexOf("</mergeCells>")!==-1){var merges=data.match(mergecregex);for(ridx=0;ridx!=merges.length;++ridx)mergecells[ridx]=safe_decode_range(merges[ridx].substr(merges[ridx].indexOf('"')+1))}var columns=[];if(opts.cellStyles&&data.indexOf("</cols>")!==-1){var cols=data.match(colregex);parse_ws_xml_cols(columns,cols)}var refguess={s:{r:1e6,c:1e6},e:{r:0,c:0}};var mtch=data.match(sheetdataregex);if(mtch)parse_ws_xml_data(mtch[1],s,opts,refguess);if(data.indexOf("</hyperlinks>")!==-1)parse_ws_xml_hlinks(s,data.match(hlinkregex),rels);if(!s["!ref"]&&refguess.e.c>=refguess.s.c&&refguess.e.r>=refguess.s.r)s["!ref"]=encode_range(refguess);if(opts.sheetRows>0&&s["!ref"]){var tmpref=safe_decode_range(s["!ref"]);if(opts.sheetRows<+tmpref.e.r){tmpref.e.r=opts.sheetRows-1;if(tmpref.e.r>refguess.e.r)tmpref.e.r=refguess.e.r;if(tmpref.e.r<tmpref.s.r)tmpref.s.r=tmpref.e.r;if(tmpref.e.c>refguess.e.c)tmpref.e.c=refguess.e.c;if(tmpref.e.c<tmpref.s.c)tmpref.s.c=tmpref.e.c;s["!fullref"]=s["!ref"];s["!ref"]=encode_range(tmpref)}}if(mergecells.length>0)s["!merges"]=mergecells;if(columns.length>0)s["!cols"]=columns;return s}function write_ws_xml_merges(merges){if(merges.length==0)return"";var o='<mergeCells count="'+merges.length+'">';for(var i=0;i!=merges.length;++i)o+='<mergeCell ref="'+encode_range(merges[i])+'"/>';return o+"</mergeCells>"}function parse_ws_xml_hlinks(s,data,rels){for(var i=0;i!=data.length;++i){var val=parsexmltag(data[i],true);if(!val.ref)return;var rel=rels?rels["!id"][val.id]:null;if(rel){val.Target=rel.Target;if(val.location)val.Target+="#"+val.location;val.Rel=rel}else{val.Target=val.location;rel={Target:val.location,TargetMode:"Internal"};val.Rel=rel}var rng=safe_decode_range(val.ref);for(var R=rng.s.r;R<=rng.e.r;++R)for(var C=rng.s.c;C<=rng.e.c;++C){var addr=encode_cell({c:C,r:R});if(!s[addr])s[addr]={t:"stub",v:undefined};s[addr].l=val}}}function parse_ws_xml_cols(columns,cols){var seencol=false;for(var coli=0;coli!=cols.length;++coli){var coll=parsexmltag(cols[coli],true);var colm=parseInt(coll.min,10)-1,colM=parseInt(coll.max,10)-1;delete coll.min;delete coll.max;if(!seencol&&coll.width){seencol=true;find_mdw(+coll.width,coll)}if(coll.width){coll.wpx=width2px(+coll.width);coll.wch=px2char(coll.wpx);coll.MDW=MDW}while(colm<=colM)columns[colm++]=coll}}function write_ws_xml_cols(ws,cols){var o=["<cols>"],col,width;for(var i=0;i!=cols.length;++i){if(!(col=cols[i]))continue;var p={min:i+1,max:i+1};width=-1;if(col.wpx)width=px2char(col.wpx);else if(col.wch)width=col.wch;if(width>-1){p.width=char2width(width);p.customWidth=1}o[o.length]=writextag("col",null,p)}o[o.length]="</cols>";return o.join("") +}function write_ws_xml_cell(cell,ref,ws,opts,idx,wb){if(cell.v===undefined)return"";var vv="";var oldt=cell.t,oldv=cell.v;switch(cell.t){case"b":vv=cell.v?"1":"0";break;case"n":vv=""+cell.v;break;case"e":vv=BErr[cell.v];break;case"d":if(opts.cellDates)vv=new Date(cell.v).toISOString();else{cell.t="n";vv=""+(cell.v=datenum(cell.v));if(typeof cell.z==="undefined")cell.z=SSF._table[14]}break;default:vv=cell.v;break}var v=writetag("v",escapexml(vv)),o={r:ref};var os=get_cell_style(opts.cellXfs,cell,opts);if(os!==0)o.s=os;switch(cell.t){case"n":break;case"d":o.t="d";break;case"b":o.t="b";break;case"e":o.t="e";break;default:if(opts.bookSST){v=writetag("v",""+get_sst_id(opts.Strings,cell.v));o.t="s";break}o.t="str";break}if(cell.t!=oldt){cell.t=oldt;cell.v=oldv}return writextag("c",v,o)}var parse_ws_xml_data=function parse_ws_xml_data_factory(){var cellregex=/<(?:\w+:)?c[ >]/,rowregex=/<\/(?:\w+:)?row>/;var rregex=/r=["']([^"']*)["']/,isregex=/<is>([\S\s]*?)<\/is>/;var match_v=matchtag("v"),match_f=matchtag("f");return function parse_ws_xml_data(sdata,s,opts,guess){var ri=0,x="",cells=[],cref=[],idx=0,i=0,cc=0,d="",p;var tag,tagr=0,tagc=0;var sstr;var fmtid=0,fillid=0,do_format=Array.isArray(styles.CellXf),cf;for(var marr=sdata.split(rowregex),mt=0,marrlen=marr.length;mt!=marrlen;++mt){x=marr[mt].trim();var xlen=x.length;if(xlen===0)continue;for(ri=0;ri<xlen;++ri)if(x.charCodeAt(ri)===62)break;++ri;tag=parsexmltag(x.substr(0,ri),true);tagr=typeof tag.r!=="undefined"?parseInt(tag.r,10):tagr+1;tagc=-1;if(opts.sheetRows&&opts.sheetRows<tagr)continue;if(guess.s.r>tagr-1)guess.s.r=tagr-1;if(guess.e.r<tagr-1)guess.e.r=tagr-1;cells=x.substr(ri).split(cellregex);for(ri=typeof tag.r==="undefined"?0:1;ri!=cells.length;++ri){x=cells[ri].trim();if(x.length===0)continue;cref=x.match(rregex);idx=ri;i=0;cc=0;x="<c "+(x.substr(0,1)=="<"?">":"")+x;if(cref!==null&&cref.length===2){idx=0;d=cref[1];for(i=0;i!=d.length;++i){if((cc=d.charCodeAt(i)-64)<1||cc>26)break;idx=26*idx+cc}--idx;tagc=idx}else++tagc;for(i=0;i!=x.length;++i)if(x.charCodeAt(i)===62)break;++i;tag=parsexmltag(x.substr(0,i),true);if(!tag.r)tag.r=utils.encode_cell({r:tagr-1,c:tagc});d=x.substr(i);p={t:""};if((cref=d.match(match_v))!==null&&cref[1]!=="")p.v=unescapexml(cref[1]);if(opts.cellFormula&&(cref=d.match(match_f))!==null)p.f=unescapexml(cref[1]);if(tag.t===undefined&&p.v===undefined){if(!opts.sheetStubs)continue;p.t="stub"}else p.t=tag.t||"n";if(guess.s.c>idx)guess.s.c=idx;if(guess.e.c<idx)guess.e.c=idx;switch(p.t){case"n":p.v=parseFloat(p.v);break;case"s":sstr=strs[parseInt(p.v,10)];p.v=sstr.t;p.r=sstr.r;if(opts.cellHTML)p.h=sstr.h;break;case"str":p.t="s";p.v=p.v!=null?utf8read(p.v):"";if(opts.cellHTML)p.h=p.v;break;case"inlineStr":cref=d.match(isregex);p.t="s";if(cref!==null){sstr=parse_si(cref[1]);p.v=sstr.t}else p.v="";break;case"b":p.v=parsexmlbool(p.v);break;case"d":if(!opts.cellDates){p.v=datenum(p.v);p.t="n"}break;case"e":p.w=p.v;p.v=RBErr[p.v];break}fmtid=fillid=0;if(do_format&&tag.s!==undefined){cf=styles.CellXf[tag.s];if(cf!=null){if(cf.numFmtId!=null)fmtid=cf.numFmtId;if(opts.cellStyles&&cf.fillId!=null)fillid=cf.fillId}}safe_format(p,fmtid,fillid,opts);s[tag.r]=p}}}}();function write_ws_xml_data(ws,opts,idx,wb){var o=[],r=[],range=safe_decode_range(ws["!ref"]),cell,ref,rr="",cols=[],R,C;for(C=range.s.c;C<=range.e.c;++C)cols[C]=encode_col(C);for(R=range.s.r;R<=range.e.r;++R){r=[];rr=encode_row(R);for(C=range.s.c;C<=range.e.c;++C){ref=cols[C]+rr;if(ws[ref]===undefined)continue;if((cell=write_ws_xml_cell(ws[ref],ref,ws,opts,idx,wb))!=null)r.push(cell)}if(r.length>0)o[o.length]=writextag("row",r.join(""),{r:rr})}return o.join("")}var WS_XML_ROOT=writextag("worksheet",null,{xmlns:XMLNS.main[0],"xmlns:r":XMLNS.r});function write_ws_xml(idx,opts,wb){var o=[XML_HEADER,WS_XML_ROOT];var s=wb.SheetNames[idx],sidx=0,rdata="";var ws=wb.Sheets[s];if(ws===undefined)ws={};var ref=ws["!ref"];if(ref===undefined)ref="A1";o[o.length]=writextag("dimension",null,{ref:ref});if(ws["!cols"]!==undefined&&ws["!cols"].length>0)o[o.length]=write_ws_xml_cols(ws,ws["!cols"]);o[sidx=o.length]="<sheetData/>";if(ws["!ref"]!==undefined){rdata=write_ws_xml_data(ws,opts,idx,wb);if(rdata.length>0)o[o.length]=rdata}if(o.length>sidx+1){o[o.length]="</sheetData>";o[sidx]=o[sidx].replace("/>",">")}if(ws["!merges"]!==undefined&&ws["!merges"].length>0)o[o.length]=write_ws_xml_merges(ws["!merges"]);if(o.length>2){o[o.length]="</worksheet>";o[1]=o[1].replace("/>",">")}return o.join("")}function parse_BrtRowHdr(data,length){var z=[];z.r=data.read_shift(4);data.l+=length-4;return z}var parse_BrtWsDim=parse_UncheckedRfX;var write_BrtWsDim=write_UncheckedRfX;function parse_BrtWsProp(data,length){var z={};data.l+=19;z.name=parse_XLSBCodeName(data,length-19);return z}function parse_BrtCellBlank(data,length){var cell=parse_XLSBCell(data);return[cell]}function write_BrtCellBlank(cell,val,o){if(o==null)o=new_buf(8);return write_XLSBCell(val,o)}function parse_BrtCellBool(data,length){var cell=parse_XLSBCell(data);var fBool=data.read_shift(1);return[cell,fBool,"b"]}function parse_BrtCellError(data,length){var cell=parse_XLSBCell(data);var fBool=data.read_shift(1);return[cell,fBool,"e"]}function parse_BrtCellIsst(data,length){var cell=parse_XLSBCell(data);var isst=data.read_shift(4);return[cell,isst,"s"]}function parse_BrtCellReal(data,length){var cell=parse_XLSBCell(data);var value=parse_Xnum(data);return[cell,value,"n"]}function parse_BrtCellRk(data,length){var cell=parse_XLSBCell(data);var value=parse_RkNumber(data);return[cell,value,"n"]}function parse_BrtCellSt(data,length){var cell=parse_XLSBCell(data);var value=parse_XLWideString(data);return[cell,value,"str"]}function parse_BrtFmlaBool(data,length,opts){var cell=parse_XLSBCell(data);var value=data.read_shift(1);var o=[cell,value,"b"];if(opts.cellFormula){var formula=parse_XLSBCellParsedFormula(data,length-9);o[3]=""}else data.l+=length-9;return o}function parse_BrtFmlaError(data,length,opts){var cell=parse_XLSBCell(data);var value=data.read_shift(1);var o=[cell,value,"e"];if(opts.cellFormula){var formula=parse_XLSBCellParsedFormula(data,length-9);o[3]=""}else data.l+=length-9;return o}function parse_BrtFmlaNum(data,length,opts){var cell=parse_XLSBCell(data);var value=parse_Xnum(data);var o=[cell,value,"n"];if(opts.cellFormula){var formula=parse_XLSBCellParsedFormula(data,length-16);o[3]=""}else data.l+=length-16;return o}function parse_BrtFmlaString(data,length,opts){var start=data.l;var cell=parse_XLSBCell(data);var value=parse_XLWideString(data);var o=[cell,value,"str"];if(opts.cellFormula){var formula=parse_XLSBCellParsedFormula(data,start+length-data.l)}else data.l=start+length;return o}var parse_BrtMergeCell=parse_UncheckedRfX;function parse_BrtHLink(data,length,opts){var end=data.l+length;var rfx=parse_UncheckedRfX(data,16);var relId=parse_XLNullableWideString(data);var loc=parse_XLWideString(data);var tooltip=parse_XLWideString(data);var display=parse_XLWideString(data);data.l=end;return{rfx:rfx,relId:relId,loc:loc,tooltip:tooltip,display:display}}function parse_ws_bin(data,opts,rels){if(!data)return data;if(!rels)rels={"!id":{}};var s={};var ref;var refguess={s:{r:1e6,c:1e6},e:{r:0,c:0}};var pass=false,end=false;var row,p,cf,R,C,addr,sstr,rr;var mergecells=[];recordhopper(data,function ws_parse(val,R){if(end)return;switch(R.n){case"BrtWsDim":ref=val;break;case"BrtRowHdr":row=val;if(opts.sheetRows&&opts.sheetRows<=row.r)end=true;rr=encode_row(row.r);break;case"BrtFmlaBool":case"BrtFmlaError":case"BrtFmlaNum":case"BrtFmlaString":case"BrtCellBool":case"BrtCellError":case"BrtCellIsst":case"BrtCellReal":case"BrtCellRk":case"BrtCellSt":p={t:val[2]};switch(val[2]){case"n":p.v=val[1];break;case"s":sstr=strs[val[1]];p.v=sstr.t;p.r=sstr.r;break;case"b":p.v=val[1]?true:false;break;case"e":p.v=val[1];p.w=BErr[p.v];break;case"str":p.t="s";p.v=utf8read(val[1]);break}if(opts.cellFormula&&val.length>3)p.f=val[3];if(cf=styles.CellXf[val[0].iStyleRef])safe_format(p,cf.ifmt,null,opts);s[encode_col(C=val[0].c)+rr]=p;if(refguess.s.r>row.r)refguess.s.r=row.r;if(refguess.s.c>C)refguess.s.c=C;if(refguess.e.r<row.r)refguess.e.r=row.r;if(refguess.e.c<C)refguess.e.c=C;break;case"BrtCellBlank":if(!opts.sheetStubs)break;p={t:"s",v:undefined};s[encode_col(C=val[0].c)+rr]=p;if(refguess.s.r>row.r)refguess.s.r=row.r;if(refguess.s.c>C)refguess.s.c=C;if(refguess.e.r<row.r)refguess.e.r=row.r;if(refguess.e.c<C)refguess.e.c=C;break;case"BrtBeginMergeCells":break;case"BrtEndMergeCells":break;case"BrtMergeCell":mergecells.push(val);break;case"BrtHLink":var rel=rels["!id"][val.relId];if(rel){val.Target=rel.Target;if(val.loc)val.Target+="#"+val.loc;val.Rel=rel}for(R=val.rfx.s.r;R<=val.rfx.e.r;++R)for(C=val.rfx.s.c;C<=val.rfx.e.c;++C){addr=encode_cell({c:C,r:R});if(!s[addr])s[addr]={t:"s",v:undefined};s[addr].l=val}break;case"BrtArrFmla":break;case"BrtShrFmla":break;case"BrtBeginSheet":break;case"BrtWsProp":break;case"BrtSheetCalcProp":break;case"BrtBeginWsViews":break;case"BrtBeginWsView":break;case"BrtPane":break;case"BrtSel":break;case"BrtEndWsView":break;case"BrtEndWsViews":break;case"BrtACBegin":break;case"BrtRwDescent":break;case"BrtACEnd":break;case"BrtWsFmtInfoEx14":break;case"BrtWsFmtInfo":break;case"BrtBeginColInfos":break;case"BrtColInfo":break;case"BrtEndColInfos":break;case"BrtBeginSheetData":break;case"BrtEndSheetData":break;case"BrtSheetProtection":break;case"BrtPrintOptions":break;case"BrtMargins":break;case"BrtPageSetup":break;case"BrtFRTBegin":pass=true;break;case"BrtFRTEnd":pass=false;break;case"BrtEndSheet":break;case"BrtDrawing":break;case"BrtLegacyDrawing":break;case"BrtLegacyDrawingHF":break;case"BrtPhoneticInfo":break;case"BrtBeginHeaderFooter":break;case"BrtEndHeaderFooter":break;case"BrtBrk":break;case"BrtBeginRwBrk":break;case"BrtEndRwBrk":break;case"BrtBeginColBrk":break;case"BrtEndColBrk":break;case"BrtBeginUserShViews":break;case"BrtBeginUserShView":break;case"BrtEndUserShView":break;case"BrtEndUserShViews":break;case"BrtBkHim":break;case"BrtBeginOleObjects":break;case"BrtOleObject":break;case"BrtEndOleObjects":break;case"BrtBeginListParts":break;case"BrtListPart":break;case"BrtEndListParts":break;case"BrtBeginSortState":break;case"BrtBeginSortCond":break;case"BrtEndSortCond":break;case"BrtEndSortState":break;case"BrtBeginConditionalFormatting":break;case"BrtEndConditionalFormatting":break;case"BrtBeginCFRule":break;case"BrtEndCFRule":break;case"BrtBeginDVals":break;case"BrtDVal":break;case"BrtEndDVals":break;case"BrtRangeProtection":break;case"BrtBeginDCon":break;case"BrtEndDCon":break;case"BrtBeginDRefs":break;case"BrtDRef":break;case"BrtEndDRefs":break;case"BrtBeginActiveXControls":break;case"BrtActiveX":break;case"BrtEndActiveXControls":break;case"BrtBeginAFilter":break;case"BrtEndAFilter":break;case"BrtBeginFilterColumn":break;case"BrtBeginFilters":break;case"BrtFilter":break;case"BrtEndFilters":break;case"BrtEndFilterColumn":break;case"BrtDynamicFilter":break;case"BrtTop10Filter":break;case"BrtBeginCustomFilters":break;case"BrtCustomFilter":break;case"BrtEndCustomFilters":break;case"BrtBeginSmartTags":break;case"BrtBeginCellSmartTags":break;case"BrtBeginCellSmartTag":break;case"BrtCellSmartTagProperty":break;case"BrtEndCellSmartTag":break;case"BrtEndCellSmartTags":break;case"BrtEndSmartTags":break;case"BrtBeginCellWatches":break;case"BrtCellWatch":break;case"BrtEndCellWatches":break;case"BrtTable":break;case"BrtBeginCellIgnoreECs":break;case"BrtCellIgnoreEC":break;case"BrtEndCellIgnoreECs":break;default:if(!pass||opts.WTF)throw new Error("Unexpected record "+R.n)}},opts);if(!s["!ref"]&&(refguess.s.r<1e6||ref.e.r>0||ref.e.c>0||ref.s.r>0||ref.s.c>0))s["!ref"]=encode_range(ref);if(opts.sheetRows&&s["!ref"]){var tmpref=safe_decode_range(s["!ref"]);if(opts.sheetRows<+tmpref.e.r){tmpref.e.r=opts.sheetRows-1;if(tmpref.e.r>refguess.e.r)tmpref.e.r=refguess.e.r;if(tmpref.e.r<tmpref.s.r)tmpref.s.r=tmpref.e.r;if(tmpref.e.c>refguess.e.c)tmpref.e.c=refguess.e.c;if(tmpref.e.c<tmpref.s.c)tmpref.s.c=tmpref.e.c;s["!fullref"]=s["!ref"];s["!ref"]=encode_range(tmpref)}}if(mergecells.length>0)s["!merges"]=mergecells;return s}function write_ws_bin_cell(ba,cell,R,C,opts){if(cell.v===undefined)return"";var vv="";switch(cell.t){case"b":vv=cell.v?"1":"0";break;case"n":case"e":vv=""+cell.v;break;default:vv=cell.v;break}var o={r:R,c:C};o.s=get_cell_style(opts.cellXfs,cell,opts);switch(cell.t){case"s":case"str":if(opts.bookSST){vv=get_sst_id(opts.Strings,cell.v);o.t="s";break}o.t="str";break;case"n":break;case"b":o.t="b";break;case"e":o.t="e";break}write_record(ba,"BrtCellBlank",write_BrtCellBlank(cell,o))}function write_CELLTABLE(ba,ws,idx,opts,wb){var range=safe_decode_range(ws["!ref"]||"A1"),ref,rr="",cols=[];write_record(ba,"BrtBeginSheetData");for(var R=range.s.r;R<=range.e.r;++R){rr=encode_row(R);for(var C=range.s.c;C<=range.e.c;++C){if(R===range.s.r)cols[C]=encode_col(C);ref=cols[C]+rr;if(!ws[ref])continue;write_ws_bin_cell(ba,ws[ref],R,C,opts)}}write_record(ba,"BrtEndSheetData")}function write_ws_bin(idx,opts,wb){var ba=buf_array();var s=wb.SheetNames[idx],ws=wb.Sheets[s]||{};var r=safe_decode_range(ws["!ref"]||"A1");write_record(ba,"BrtBeginSheet");write_record(ba,"BrtWsDim",write_BrtWsDim(r));write_CELLTABLE(ba,ws,idx,opts,wb);write_record(ba,"BrtEndSheet");return ba.end()}var WBPropsDef=[["allowRefreshQuery","0"],["autoCompressPictures","1"],["backupFile","0"],["checkCompatibility","0"],["codeName",""],["date1904","0"],["dateCompatibility","1"],["filterPrivacy","0"],["hidePivotFieldList","0"],["promptedSolutions","0"],["publishItems","0"],["refreshAllConnections",false],["saveExternalLinkValues","1"],["showBorderUnselectedTables","1"],["showInkAnnotation","1"],["showObjects","all"],["showPivotChartFilter","0"]];var WBViewDef=[["activeTab","0"],["autoFilterDateGrouping","1"],["firstSheet","0"],["minimized","0"],["showHorizontalScroll","1"],["showSheetTabs","1"],["showVerticalScroll","1"],["tabRatio","600"],["visibility","visible"]];var SheetDef=[["state","visible"]];var CalcPrDef=[["calcCompleted","true"],["calcMode","auto"],["calcOnSave","true"],["concurrentCalc","true"],["fullCalcOnLoad","false"],["fullPrecision","true"],["iterate","false"],["iterateCount","100"],["iterateDelta","0.001"],["refMode","A1"]];var CustomWBViewDef=[["autoUpdate","false"],["changesSavedWin","false"],["includeHiddenRowCol","true"],["includePrintSettings","true"],["maximized","false"],["minimized","false"],["onlySync","false"],["personalView","false"],["showComments","commIndicator"],["showFormulaBar","true"],["showHorizontalScroll","true"],["showObjects","all"],["showSheetTabs","true"],["showStatusbar","true"],["showVerticalScroll","true"],["tabRatio","600"],["xWindow","0"],["yWindow","0"]];function push_defaults_array(target,defaults){for(var j=0;j!=target.length;++j){var w=target[j];for(var i=0;i!=defaults.length;++i){var z=defaults[i];if(w[z[0]]==null)w[z[0]]=z[1]}}}function push_defaults(target,defaults){for(var i=0;i!=defaults.length;++i){var z=defaults[i];if(target[z[0]]==null)target[z[0]]=z[1]}}function parse_wb_defaults(wb){push_defaults(wb.WBProps,WBPropsDef);push_defaults(wb.CalcPr,CalcPrDef);push_defaults_array(wb.WBView,WBViewDef);push_defaults_array(wb.Sheets,SheetDef);_ssfopts.date1904=parsexmlbool(wb.WBProps.date1904,"date1904")}var wbnsregex=/<\w+:workbook/;function parse_wb_xml(data,opts){var wb={AppVersion:{},WBProps:{},WBView:[],Sheets:[],CalcPr:{},xmlns:""};var pass=false,xmlns="xmlns";data.match(tagregex).forEach(function xml_wb(x){var y=parsexmltag(x);switch(strip_ns(y[0])){case"<?xml":break;case"<workbook":if(x.match(wbnsregex))xmlns="xmlns"+x.match(/<(\w+):/)[1];wb.xmlns=y[xmlns];break;case"</workbook>":break;case"<fileVersion":delete y[0];wb.AppVersion=y;break;case"<fileVersion/>":break;case"<fileSharing":case"<fileSharing/>":break;case"<workbookPr":delete y[0];wb.WBProps=y;break;case"<workbookPr/>":delete y[0];wb.WBProps=y;break;case"<workbookProtection":break;case"<workbookProtection/>":break;case"<bookViews>":case"</bookViews>":break;case"<workbookView":delete y[0];wb.WBView.push(y);break;case"<sheets>":case"</sheets>":break;case"<sheet":delete y[0];y.name=utf8read(y.name);wb.Sheets.push(y);break;case"<functionGroups":case"<functionGroups/>":break;case"<functionGroup":break;case"<externalReferences":case"</externalReferences>":case"<externalReferences>":break;case"<externalReference":break;case"<definedNames/>":break;case"<definedNames>":case"<definedNames":pass=true;break;case"</definedNames>":pass=false;break;case"<definedName":case"<definedName/>":case"</definedName>":break;case"<calcPr":delete y[0];wb.CalcPr=y;break;case"<calcPr/>":delete y[0];wb.CalcPr=y;break;case"<oleSize":break;case"<customWorkbookViews>":case"</customWorkbookViews>":case"<customWorkbookViews":break;case"<customWorkbookView":case"</customWorkbookView>":break;case"<pivotCaches>":case"</pivotCaches>":case"<pivotCaches":break;case"<pivotCache":break;case"<smartTagPr":case"<smartTagPr/>":break;case"<smartTagTypes":case"<smartTagTypes>":case"</smartTagTypes>":break;case"<smartTagType":break;case"<webPublishing":case"<webPublishing/>":break;case"<fileRecoveryPr":case"<fileRecoveryPr/>":break;case"<webPublishObjects>":case"<webPublishObjects":case"</webPublishObjects>":break;case"<webPublishObject":break;case"<extLst>":case"</extLst>":case"<extLst/>":break;case"<ext":pass=true;break;case"</ext>":pass=false;break;case"<ArchID":break;case"<AlternateContent":pass=true;break;case"</AlternateContent>":pass=false;break;default:if(!pass&&opts.WTF)throw"unrecognized "+y[0]+" in workbook"}});if(XMLNS.main.indexOf(wb.xmlns)===-1)throw new Error("Unknown Namespace: "+wb.xmlns);parse_wb_defaults(wb);return wb}var WB_XML_ROOT=writextag("workbook",null,{xmlns:XMLNS.main[0],"xmlns:r":XMLNS.r});function safe1904(wb){try{return parsexmlbool(wb.Workbook.WBProps.date1904)?"true":"false"}catch(e){return"false"}}function write_wb_xml(wb,opts){var o=[XML_HEADER];o[o.length]=WB_XML_ROOT;o[o.length]=writextag("workbookPr",null,{date1904:safe1904(wb)});o[o.length]="<sheets>";for(var i=0;i!=wb.SheetNames.length;++i)o[o.length]=writextag("sheet",null,{name:wb.SheetNames[i].substr(0,31),sheetId:""+(i+1),"r:id":"rId"+(i+1)});o[o.length]="</sheets>";if(o.length>2){o[o.length]="</workbook>";o[1]=o[1].replace("/>",">")}return o.join("")}function parse_BrtBundleSh(data,length){var z={};z.hsState=data.read_shift(4);z.iTabID=data.read_shift(4);z.strRelID=parse_RelID(data,length-8);z.name=parse_XLWideString(data);return z}function write_BrtBundleSh(data,o){if(!o)o=new_buf(127);o.write_shift(4,data.hsState);o.write_shift(4,data.iTabID);write_RelID(data.strRelID,o);write_XLWideString(data.name.substr(0,31),o);return o}function parse_BrtWbProp(data,length){data.read_shift(4);var dwThemeVersion=data.read_shift(4);var strName=length>8?parse_XLWideString(data):"";return[dwThemeVersion,strName]}function write_BrtWbProp(data,o){if(!o)o=new_buf(8);o.write_shift(4,0);o.write_shift(4,0);return o}function parse_BrtFRTArchID$(data,length){var o={};data.read_shift(4);o.ArchID=data.read_shift(4);data.l+=length-8;return o}function parse_wb_bin(data,opts){var wb={AppVersion:{},WBProps:{},WBView:[],Sheets:[],CalcPr:{},xmlns:""};var pass=false,z;recordhopper(data,function hopper_wb(val,R){switch(R.n){case"BrtBundleSh":wb.Sheets.push(val);break;case"BrtBeginBook":break;case"BrtFileVersion":break;case"BrtWbProp":break;case"BrtACBegin":break;case"BrtAbsPath15":break;case"BrtACEnd":break;case"BrtWbFactoid":break;case"BrtBookProtection":break;case"BrtBeginBookViews":break;case"BrtBookView":break;case"BrtEndBookViews":break;case"BrtBeginBundleShs":break;case"BrtEndBundleShs":break;case"BrtBeginFnGroup":break;case"BrtEndFnGroup":break;case"BrtBeginExternals":break;case"BrtSupSelf":break;case"BrtSupBookSrc":break;case"BrtExternSheet":break;case"BrtEndExternals":break;case"BrtName":break;case"BrtCalcProp":break;case"BrtUserBookView":break;case"BrtBeginPivotCacheIDs":break;case"BrtBeginPivotCacheID":break;case"BrtEndPivotCacheID":break;case"BrtEndPivotCacheIDs":break;case"BrtWebOpt":break;case"BrtFileRecover":break;case"BrtFileSharing":break;case"BrtBeginSmartTagTypes":break;case"BrtSmartTagType":break;case"BrtEndSmartTagTypes":break;case"BrtFRTBegin":pass=true;break;case"BrtFRTArchID$":break;case"BrtWorkBookPr15":break;case"BrtFRTEnd":pass=false;break;case"BrtEndBook":break;default:if(!pass||opts.WTF)throw new Error("Unexpected record "+R.n)}});parse_wb_defaults(wb);return wb}function write_BUNDLESHS(ba,wb,opts){write_record(ba,"BrtBeginBundleShs");for(var idx=0;idx!=wb.SheetNames.length;++idx){var d={hsState:0,iTabID:idx+1,strRelID:"rId"+(idx+1),name:wb.SheetNames[idx]};write_record(ba,"BrtBundleSh",write_BrtBundleSh(d))}write_record(ba,"BrtEndBundleShs")}function write_BrtFileVersion(data,o){if(!o)o=new_buf(127);for(var i=0;i!=4;++i)o.write_shift(4,0);write_XLWideString("SheetJS",o);write_XLWideString(XLSX.version,o);write_XLWideString(XLSX.version,o);write_XLWideString("7262",o);o.length=o.l;return o}function write_BOOKVIEWS(ba,wb,opts){write_record(ba,"BrtBeginBookViews");write_record(ba,"BrtEndBookViews")}function write_BrtCalcProp(data,o){if(!o)o=new_buf(26);o.write_shift(4,0);o.write_shift(4,1);o.write_shift(4,0);write_Xnum(0,o);o.write_shift(-4,1023);o.write_shift(1,51);o.write_shift(1,0);return o}function write_BrtFileRecover(data,o){if(!o)o=new_buf(1);o.write_shift(1,0);return o}function write_wb_bin(wb,opts){var ba=buf_array();write_record(ba,"BrtBeginBook");write_record(ba,"BrtFileVersion",write_BrtFileVersion());write_record(ba,"BrtWbProp",write_BrtWbProp());write_BOOKVIEWS(ba,wb,opts);write_BUNDLESHS(ba,wb,opts);write_record(ba,"BrtCalcProp",write_BrtCalcProp());write_record(ba,"BrtFileRecover",write_BrtFileRecover());write_record(ba,"BrtEndBook");return ba.end()}function parse_wb(data,name,opts){return(name.substr(-4)===".bin"?parse_wb_bin:parse_wb_xml)(data,opts)}function parse_ws(data,name,opts,rels){return(name.substr(-4)===".bin"?parse_ws_bin:parse_ws_xml)(data,opts,rels)}function parse_sty(data,name,opts){return(name.substr(-4)===".bin"?parse_sty_bin:parse_sty_xml)(data,opts)}function parse_theme(data,name,opts){return parse_theme_xml(data,opts)}function parse_sst(data,name,opts){return(name.substr(-4)===".bin"?parse_sst_bin:parse_sst_xml)(data,opts)}function parse_cmnt(data,name,opts){return(name.substr(-4)===".bin"?parse_comments_bin:parse_comments_xml)(data,opts)}function parse_cc(data,name,opts){return(name.substr(-4)===".bin"?parse_cc_bin:parse_cc_xml)(data,opts)}function write_wb(wb,name,opts){return(name.substr(-4)===".bin"?write_wb_bin:write_wb_xml)(wb,opts)}function write_ws(data,name,opts,wb){return(name.substr(-4)===".bin"?write_ws_bin:write_ws_xml)(data,opts,wb)}function write_sty(data,name,opts){return(name.substr(-4)===".bin"?write_sty_bin:write_sty_xml)(data,opts)}function write_sst(data,name,opts){return(name.substr(-4)===".bin"?write_sst_bin:write_sst_xml)(data,opts)}var attregexg2=/([\w:]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:'))/g;var attregex2=/([\w:]+)=((?:")(?:[^"]*)(?:")|(?:')(?:[^']*)(?:'))/;var _chr=function(c){return String.fromCharCode(c)};function xlml_parsexmltag(tag,skip_root){var words=tag.split(/\s+/);var z=[];if(!skip_root)z[0]=words[0];if(words.length===1)return z;var m=tag.match(attregexg2),y,j,w,i;if(m)for(i=0;i!=m.length;++i){y=m[i].match(attregex2);if((j=y[1].indexOf(":"))===-1)z[y[1]]=y[2].substr(1,y[2].length-2);else{if(y[1].substr(0,6)==="xmlns:")w="xmlns"+y[1].substr(6);else w=y[1].substr(j+1);z[w]=y[2].substr(1,y[2].length-2)}}return z}function xlml_parsexmltagobj(tag){var words=tag.split(/\s+/);var z={};if(words.length===1)return z;var m=tag.match(attregexg2),y,j,w,i;if(m)for(i=0;i!=m.length;++i){y=m[i].match(attregex2);if((j=y[1].indexOf(":"))===-1)z[y[1]]=y[2].substr(1,y[2].length-2);else{if(y[1].substr(0,6)==="xmlns:")w="xmlns"+y[1].substr(6);else w=y[1].substr(j+1);z[w]=y[2].substr(1,y[2].length-2)}}return z}function xlml_format(format,value){var fmt=XLMLFormatMap[format]||unescapexml(format);if(fmt==="General")return SSF._general(value);return SSF.format(fmt,value)}function xlml_set_custprop(Custprops,Rn,cp,val){switch((cp[0].match(/dt:dt="([\w.]+)"/)||["",""])[1]){case"boolean":val=parsexmlbool(val);break;case"i2":case"int":val=parseInt(val,10);break;case"r4":case"float":val=parseFloat(val);break;case"date":case"dateTime.tz":val=new Date(val);break;case"i8":case"string":case"fixed":case"uuid":case"bin.base64":break;default:throw"bad custprop:"+cp[0]}Custprops[unescapexml(Rn[3])]=val}function safe_format_xlml(cell,nf,o){try{if(cell.t==="e"){cell.w=cell.w||BErr[cell.v]}else if(nf==="General"){if(cell.t==="n"){if((cell.v|0)===cell.v)cell.w=SSF._general_int(cell.v);else cell.w=SSF._general_num(cell.v)}else cell.w=SSF._general(cell.v)}else cell.w=xlml_format(nf||"General",cell.v);if(o.cellNF)cell.z=XLMLFormatMap[nf]||nf||"General"}catch(e){if(o.WTF)throw e}}function process_style_xlml(styles,stag,opts){if(opts.cellStyles){if(stag.Interior){var I=stag.Interior;if(I.Pattern)I.patternType=XLMLPatternTypeMap[I.Pattern]||I.Pattern}}styles[stag.ID]=stag}function parse_xlml_data(xml,ss,data,cell,base,styles,csty,row,o){var nf="General",sid=cell.StyleID,S={};o=o||{};var interiors=[];if(sid===undefined&&row)sid=row.StyleID;if(sid===undefined&&csty)sid=csty.StyleID;while(styles[sid]!==undefined){if(styles[sid].nf)nf=styles[sid].nf;if(styles[sid].Interior)interiors.push(styles[sid].Interior);if(!styles[sid].Parent)break;sid=styles[sid].Parent}switch(data.Type){case"Boolean":cell.t="b";cell.v=parsexmlbool(xml);break;case"String":cell.t="s";cell.r=xlml_fixstr(unescapexml(xml));cell.v=xml.indexOf("<")>-1?ss:cell.r;break;case"DateTime":cell.v=(Date.parse(xml)-new Date(Date.UTC(1899,11,30)))/(24*60*60*1e3);if(cell.v!==cell.v)cell.v=unescapexml(xml);else if(cell.v>=1&&cell.v<60)cell.v=cell.v-1;if(!nf||nf=="General")nf="yyyy-mm-dd";case"Number":if(cell.v===undefined)cell.v=+xml;if(!cell.t)cell.t="n";break;case"Error":cell.t="e";cell.v=RBErr[xml];cell.w=xml;break;default:cell.t="s";cell.v=xlml_fixstr(ss);break}safe_format_xlml(cell,nf,o);if(o.cellFormula!=null&&cell.Formula){cell.f=rc_to_a1(unescapexml(cell.Formula),base);cell.Formula=undefined}if(o.cellStyles){interiors.forEach(function(x){if(!S.patternType&&x.patternType)S.patternType=x.patternType});cell.s=S}cell.ixfe=cell.StyleID!==undefined?cell.StyleID:"Default"}function xlml_clean_comment(comment){comment.t=comment.v;comment.v=comment.w=comment.ixfe=undefined}function xlml_normalize(d){if(has_buf&&Buffer.isBuffer(d))return d.toString("utf8");if(typeof d==="string")return d;throw"badf"}var xlmlregex=/<(\/?)([a-z0-9]*:|)(\w+)[^>]*>/gm;function parse_xlml_xml(d,opts){var str=xlml_normalize(d);var Rn;var state=[],tmp;var sheets={},sheetnames=[],cursheet={},sheetname="";var table={},cell={},row={},dtag,didx;var c=0,r=0;var refguess={s:{r:1e6,c:1e6},e:{r:0,c:0}};var styles={},stag={};var ss="",fidx=0;var mergecells=[];var Props={},Custprops={},pidx=0,cp={};var comments=[],comment={};var cstys=[],csty;xlmlregex.lastIndex=0;while(Rn=xlmlregex.exec(str))switch(Rn[3]){case"Data":if(state[state.length-1][1])break;if(Rn[1]==="/")parse_xlml_data(str.slice(didx,Rn.index),ss,dtag,state[state.length-1][0]=="Comment"?comment:cell,{c:c,r:r},styles,cstys[c],row,opts);else{ss="";dtag=xlml_parsexmltag(Rn[0]);didx=Rn.index+Rn[0].length}break;case"Cell":if(Rn[1]==="/"){if(comments.length>0)cell.c=comments;if((!opts.sheetRows||opts.sheetRows>r)&&cell.v!==undefined)cursheet[encode_col(c)+encode_row(r)]=cell;if(cell.HRef){cell.l={Target:cell.HRef,tooltip:cell.HRefScreenTip};cell.HRef=cell.HRefScreenTip=undefined}if(cell.MergeAcross||cell.MergeDown){var cc=c+(parseInt(cell.MergeAcross,10)|0);var rr=r+(parseInt(cell.MergeDown,10)|0);mergecells.push({s:{c:c,r:r},e:{c:cc,r:rr}})}++c;if(cell.MergeAcross)c+=+cell.MergeAcross}else{cell=xlml_parsexmltagobj(Rn[0]);if(cell.Index)c=+cell.Index-1;if(c<refguess.s.c)refguess.s.c=c;if(c>refguess.e.c)refguess.e.c=c;if(Rn[0].substr(-2)==="/>")++c;comments=[]}break;case"Row":if(Rn[1]==="/"||Rn[0].substr(-2)==="/>"){if(r<refguess.s.r)refguess.s.r=r;if(r>refguess.e.r)refguess.e.r=r;if(Rn[0].substr(-2)==="/>"){row=xlml_parsexmltag(Rn[0]);if(row.Index)r=+row.Index-1}c=0;++r}else{row=xlml_parsexmltag(Rn[0]);if(row.Index)r=+row.Index-1}break;case"Worksheet":if(Rn[1]==="/"){if((tmp=state.pop())[0]!==Rn[3])throw"Bad state: "+tmp;sheetnames.push(sheetname);if(refguess.s.r<=refguess.e.r&&refguess.s.c<=refguess.e.c)cursheet["!ref"]=encode_range(refguess);if(mergecells.length)cursheet["!merges"]=mergecells;sheets[sheetname]=cursheet}else{refguess={s:{r:1e6,c:1e6},e:{r:0,c:0}};r=c=0;state.push([Rn[3],false]);tmp=xlml_parsexmltag(Rn[0]);sheetname=tmp.Name;cursheet={};mergecells=[]}break;case"Table":if(Rn[1]==="/"){if((tmp=state.pop())[0]!==Rn[3])throw"Bad state: "+tmp}else if(Rn[0].slice(-2)=="/>")break;else{table=xlml_parsexmltag(Rn[0]);state.push([Rn[3],false]);cstys=[]}break;case"Style":if(Rn[1]==="/")process_style_xlml(styles,stag,opts);else stag=xlml_parsexmltag(Rn[0]);break;case"NumberFormat":stag.nf=xlml_parsexmltag(Rn[0]).Format||"General";break;case"Column":if(state[state.length-1][0]!=="Table")break;csty=xlml_parsexmltag(Rn[0]);cstys[csty.Index-1||cstys.length]=csty;for(var i=0;i<+csty.Span;++i)cstys[cstys.length]=csty;break;case"NamedRange":break;case"NamedCell":break;case"B":break;case"I":break;case"U":break;case"S":break;case"Sub":break;case"Sup":break;case"Span":break;case"Border":break;case"Alignment":break;case"Borders":break;case"Font":if(Rn[0].substr(-2)==="/>")break;else if(Rn[1]==="/")ss+=str.slice(fidx,Rn.index);else fidx=Rn.index+Rn[0].length;break;case"Interior":if(!opts.cellStyles)break;stag.Interior=xlml_parsexmltag(Rn[0]);break;case"Protection":break;case"Author":case"Title":case"Description":case"Created":case"Keywords":case"Subject":case"Category":case"Company":case"LastAuthor":case"LastSaved":case"LastPrinted":case"Version":case"Revision":case"TotalTime":case"HyperlinkBase":case"Manager":if(Rn[0].substr(-2)==="/>")break;else if(Rn[1]==="/")xlml_set_prop(Props,Rn[3],str.slice(pidx,Rn.index));else pidx=Rn.index+Rn[0].length;break;case"Paragraphs":break;case"Styles":case"Workbook":if(Rn[1]==="/"){if((tmp=state.pop())[0]!==Rn[3])throw"Bad state: "+tmp}else state.push([Rn[3],false]);break;case"Comment":if(Rn[1]==="/"){if((tmp=state.pop())[0]!==Rn[3])throw"Bad state: "+tmp;xlml_clean_comment(comment);comments.push(comment)}else{state.push([Rn[3],false]);tmp=xlml_parsexmltag(Rn[0]);comment={a:tmp.Author}}break;case"Name":break;case"ComponentOptions":case"DocumentProperties":case"CustomDocumentProperties":case"OfficeDocumentSettings":case"PivotTable":case"PivotCache":case"Names":case"MapInfo":case"PageBreaks":case"QueryTable":case"DataValidation":case"AutoFilter":case"Sorting":case"Schema":case"data":case"ConditionalFormatting":case"SmartTagType":case"SmartTags":case"ExcelWorkbook":case"WorkbookOptions":case"WorksheetOptions":if(Rn[1]==="/"){if((tmp=state.pop())[0]!==Rn[3])throw"Bad state: "+tmp}else if(Rn[0].charAt(Rn[0].length-2)!=="/")state.push([Rn[3],true]);break;default:var seen=true;switch(state[state.length-1][0]){case"OfficeDocumentSettings":switch(Rn[3]){case"AllowPNG":break;case"RemovePersonalInformation":break;case"DownloadComponents":break;case"LocationOfComponents":break;case"Colors":break;case"Color":break;case"Index":break;case"RGB":break;case"PixelsPerInch":break;case"TargetScreenSize":break;case"ReadOnlyRecommended":break;default:seen=false}break;case"ComponentOptions":switch(Rn[3]){case"Toolbar":break;case"HideOfficeLogo":break;case"SpreadsheetAutoFit":break;case"Label":break;case"Caption":break;case"MaxHeight":break;case"MaxWidth":break;case"NextSheetNumber":break;default:seen=false}break;case"ExcelWorkbook":switch(Rn[3]){case"WindowHeight":break;case"WindowWidth":break;case"WindowTopX":break;case"WindowTopY":break;case"TabRatio":break;case"ProtectStructure":break;case"ProtectWindows":break;case"ActiveSheet":break;case"DisplayInkNotes":break;case"FirstVisibleSheet":break;case"SupBook":break;case"SheetName":break; +case"SheetIndex":break;case"SheetIndexFirst":break;case"SheetIndexLast":break;case"Dll":break;case"AcceptLabelsInFormulas":break;case"DoNotSaveLinkValues":break;case"Date1904":break;case"Iteration":break;case"MaxIterations":break;case"MaxChange":break;case"Path":break;case"Xct":break;case"Count":break;case"SelectedSheets":break;case"Calculation":break;case"Uncalced":break;case"StartupPrompt":break;case"Crn":break;case"ExternName":break;case"Formula":break;case"ColFirst":break;case"ColLast":break;case"WantAdvise":break;case"Boolean":break;case"Error":break;case"Text":break;case"OLE":break;case"NoAutoRecover":break;case"PublishObjects":break;case"DoNotCalculateBeforeSave":break;case"Number":break;case"RefModeR1C1":break;case"EmbedSaveSmartTags":break;default:seen=false}break;case"WorkbookOptions":switch(Rn[3]){case"OWCVersion":break;case"Height":break;case"Width":break;default:seen=false}break;case"WorksheetOptions":switch(Rn[3]){case"Unsynced":break;case"Visible":break;case"Print":break;case"Panes":break;case"Scale":break;case"Pane":break;case"Number":break;case"Layout":break;case"Header":break;case"Footer":break;case"PageSetup":break;case"PageMargins":break;case"Selected":break;case"ProtectObjects":break;case"EnableSelection":break;case"ProtectScenarios":break;case"ValidPrinterInfo":break;case"HorizontalResolution":break;case"VerticalResolution":break;case"NumberofCopies":break;case"ActiveRow":break;case"ActiveCol":break;case"ActivePane":break;case"TopRowVisible":break;case"TopRowBottomPane":break;case"LeftColumnVisible":break;case"LeftColumnRightPane":break;case"FitToPage":break;case"RangeSelection":break;case"PaperSizeIndex":break;case"PageLayoutZoom":break;case"PageBreakZoom":break;case"FilterOn":break;case"DoNotDisplayGridlines":break;case"SplitHorizontal":break;case"SplitVertical":break;case"FreezePanes":break;case"FrozenNoSplit":break;case"FitWidth":break;case"FitHeight":break;case"CommentsLayout":break;case"Zoom":break;case"LeftToRight":break;case"Gridlines":break;case"AllowSort":break;case"AllowFilter":break;case"AllowInsertRows":break;case"AllowDeleteRows":break;case"AllowInsertCols":break;case"AllowDeleteCols":break;case"AllowInsertHyperlinks":break;case"AllowFormatCells":break;case"AllowSizeCols":break;case"AllowSizeRows":break;case"NoSummaryRowsBelowDetail":break;case"TabColorIndex":break;case"DoNotDisplayHeadings":break;case"ShowPageLayoutZoom":break;case"NoSummaryColumnsRightDetail":break;case"BlackAndWhite":break;case"DoNotDisplayZeros":break;case"DisplayPageBreak":break;case"RowColHeadings":break;case"DoNotDisplayOutline":break;case"NoOrientation":break;case"AllowUsePivotTables":break;case"ZeroHeight":break;case"ViewableRange":break;case"Selection":break;case"ProtectContents":break;default:seen=false}break;case"PivotTable":case"PivotCache":switch(Rn[3]){case"ImmediateItemsOnDrop":break;case"ShowPageMultipleItemLabel":break;case"CompactRowIndent":break;case"Location":break;case"PivotField":break;case"Orientation":break;case"LayoutForm":break;case"LayoutSubtotalLocation":break;case"LayoutCompactRow":break;case"Position":break;case"PivotItem":break;case"DataType":break;case"DataField":break;case"SourceName":break;case"ParentField":break;case"PTLineItems":break;case"PTLineItem":break;case"CountOfSameItems":break;case"Item":break;case"ItemType":break;case"PTSource":break;case"CacheIndex":break;case"ConsolidationReference":break;case"FileName":break;case"Reference":break;case"NoColumnGrand":break;case"NoRowGrand":break;case"BlankLineAfterItems":break;case"Hidden":break;case"Subtotal":break;case"BaseField":break;case"MapChildItems":break;case"Function":break;case"RefreshOnFileOpen":break;case"PrintSetTitles":break;case"MergeLabels":break;case"DefaultVersion":break;case"RefreshName":break;case"RefreshDate":break;case"RefreshDateCopy":break;case"VersionLastRefresh":break;case"VersionLastUpdate":break;case"VersionUpdateableMin":break;case"VersionRefreshableMin":break;case"Calculation":break;default:seen=false}break;case"PageBreaks":switch(Rn[3]){case"ColBreaks":break;case"ColBreak":break;case"RowBreaks":break;case"RowBreak":break;case"ColStart":break;case"ColEnd":break;case"RowEnd":break;default:seen=false}break;case"AutoFilter":switch(Rn[3]){case"AutoFilterColumn":break;case"AutoFilterCondition":break;case"AutoFilterAnd":break;case"AutoFilterOr":break;default:seen=false}break;case"QueryTable":switch(Rn[3]){case"Id":break;case"AutoFormatFont":break;case"AutoFormatPattern":break;case"QuerySource":break;case"QueryType":break;case"EnableRedirections":break;case"RefreshedInXl9":break;case"URLString":break;case"HTMLTables":break;case"Connection":break;case"CommandText":break;case"RefreshInfo":break;case"NoTitles":break;case"NextId":break;case"ColumnInfo":break;case"OverwriteCells":break;case"DoNotPromptForFile":break;case"TextWizardSettings":break;case"Source":break;case"Number":break;case"Decimal":break;case"ThousandSeparator":break;case"TrailingMinusNumbers":break;case"FormatSettings":break;case"FieldType":break;case"Delimiters":break;case"Tab":break;case"Comma":break;case"AutoFormatName":break;case"VersionLastEdit":break;case"VersionLastRefresh":break;default:seen=false}break;case"Sorting":case"ConditionalFormatting":case"DataValidation":switch(Rn[3]){case"Range":break;case"Type":break;case"Min":break;case"Max":break;case"Sort":break;case"Descending":break;case"Order":break;case"CaseSensitive":break;case"Value":break;case"ErrorStyle":break;case"ErrorMessage":break;case"ErrorTitle":break;case"CellRangeList":break;case"InputMessage":break;case"InputTitle":break;case"ComboHide":break;case"InputHide":break;case"Condition":break;case"Qualifier":break;case"UseBlank":break;case"Value1":break;case"Value2":break;case"Format":break;default:seen=false}break;case"MapInfo":case"Schema":case"data":switch(Rn[3]){case"Map":break;case"Entry":break;case"Range":break;case"XPath":break;case"Field":break;case"XSDType":break;case"FilterOn":break;case"Aggregate":break;case"ElementType":break;case"AttributeType":break;case"schema":case"element":case"complexType":case"datatype":case"all":case"attribute":case"extends":break;case"row":break;default:seen=false}break;case"SmartTags":break;default:seen=false;break}if(seen)break;if(!state[state.length-1][1])throw"Unrecognized tag: "+Rn[3]+"|"+state.join("|");if(state[state.length-1][0]==="CustomDocumentProperties"){if(Rn[0].substr(-2)==="/>")break;else if(Rn[1]==="/")xlml_set_custprop(Custprops,Rn,cp,str.slice(pidx,Rn.index));else{cp=Rn;pidx=Rn.index+Rn[0].length}break}if(opts.WTF)throw"Unrecognized tag: "+Rn[3]+"|"+state.join("|")}var out={};if(!opts.bookSheets&&!opts.bookProps)out.Sheets=sheets;out.SheetNames=sheetnames;out.SSF=SSF.get_table();out.Props=Props;out.Custprops=Custprops;return out}function parse_xlml(data,opts){fix_read_opts(opts=opts||{});switch(opts.type||"base64"){case"base64":return parse_xlml_xml(Base64.decode(data),opts);case"binary":case"buffer":case"file":return parse_xlml_xml(data,opts);case"array":return parse_xlml_xml(data.map(_chr).join(""),opts)}}function write_xlml(wb,opts){}function parse_compobj(obj){var v={};var o=obj.content;var l=28,m;m=__lpstr(o,l);l+=4+__readUInt32LE(o,l);v.UserType=m;m=__readUInt32LE(o,l);l+=4;switch(m){case 0:break;case 4294967295:case 4294967294:l+=4;break;default:if(m>400)throw new Error("Unsupported Clipboard: "+m.toString(16));l+=m}m=__lpstr(o,l);l+=m.length===0?0:5+m.length;v.Reserved1=m;if((m=__readUInt32LE(o,l))!==1907550708)return v;throw"Unsupported Unicode Extension"}function slurp(R,blob,length,opts){var l=length;var bufs=[];var d=blob.slice(blob.l,blob.l+l);if(opts&&opts.enc&&opts.enc.insitu_decrypt)switch(R.n){case"BOF":case"FilePass":case"FileLock":case"InterfaceHdr":case"RRDInfo":case"RRDHead":case"UsrExcl":break;default:if(d.length===0)break;opts.enc.insitu_decrypt(d)}bufs.push(d);blob.l+=l;var next=XLSRecordEnum[__readUInt16LE(blob,blob.l)];while(next!=null&&next.n==="Continue"){l=__readUInt16LE(blob,blob.l+2);bufs.push(blob.slice(blob.l+4,blob.l+4+l));blob.l+=4+l;next=XLSRecordEnum[__readUInt16LE(blob,blob.l)]}var b=bconcat(bufs);prep_blob(b,0);var ll=0;b.lens=[];for(var j=0;j<bufs.length;++j){b.lens.push(ll);ll+=bufs[j].length}return R.f(b,b.length,opts)}function safe_format_xf(p,opts,date1904){if(!p.XF)return;try{var fmtid=p.XF.ifmt||0;if(p.t==="e"){p.w=p.w||BErr[p.v]}else if(fmtid===0){if(p.t==="n"){if((p.v|0)===p.v)p.w=SSF._general_int(p.v);else p.w=SSF._general_num(p.v)}else p.w=SSF._general(p.v)}else p.w=SSF.format(fmtid,p.v,{date1904:date1904||false});if(opts.cellNF)p.z=SSF._table[fmtid]}catch(e){if(opts.WTF)throw e}}function make_cell(val,ixfe,t){return{v:val,ixfe:ixfe,t:t}}function parse_workbook(blob,options){var wb={opts:{}};var Sheets={};var out={};var Directory={};var found_sheet=false;var range={};var last_formula=null;var sst=[];var cur_sheet="";var Preamble={};var lastcell,last_cell,cc,cmnt,rng,rngC,rngR;var shared_formulae={};var array_formulae=[];var temp_val;var country;var cell_valid=true;var XFs=[];var palette=[];var get_rgb=function getrgb(icv){if(icv<8)return XLSIcv[icv];if(icv<64)return palette[icv-8]||XLSIcv[icv];return XLSIcv[icv]};var process_cell_style=function pcs(cell,line){var xfd=line.XF.data;if(!xfd||!xfd.patternType)return;line.s={};line.s.patternType=xfd.patternType;var t;if(t=rgb2Hex(get_rgb(xfd.icvFore))){line.s.fgColor={rgb:t}}if(t=rgb2Hex(get_rgb(xfd.icvBack))){line.s.bgColor={rgb:t}}};var addcell=function addcell(cell,line,options){if(!cell_valid)return;if(options.cellStyles&&line.XF&&line.XF.data)process_cell_style(cell,line);lastcell=cell;last_cell=encode_cell(cell);if(range.s){if(cell.r<range.s.r)range.s.r=cell.r;if(cell.c<range.s.c)range.s.c=cell.c}if(range.e){if(cell.r+1>range.e.r)range.e.r=cell.r+1;if(cell.c+1>range.e.c)range.e.c=cell.c+1}if(options.sheetRows&&lastcell.r>=options.sheetRows)cell_valid=false;else out[last_cell]=line};var opts={enc:false,sbcch:0,snames:[],sharedf:shared_formulae,arrayf:array_formulae,rrtabid:[],lastuser:"",biff:8,codepage:0,winlocked:0,wtf:false};if(options.password)opts.password=options.password;var mergecells=[];var objects=[];var supbooks=[[]];var sbc=0,sbci=0,sbcli=0;supbooks.SheetNames=opts.snames;supbooks.sharedf=opts.sharedf;supbooks.arrayf=opts.arrayf;var last_Rn="";var file_depth=0;opts.codepage=1200;set_cp(1200);while(blob.l<blob.length-1){var s=blob.l;var RecordType=blob.read_shift(2);if(RecordType===0&&last_Rn==="EOF")break;var length=blob.l===blob.length?0:blob.read_shift(2),y;var R=XLSRecordEnum[RecordType];if(R&&R.f){if(options.bookSheets){if(last_Rn==="BoundSheet8"&&R.n!=="BoundSheet8")break}last_Rn=R.n;if(R.r===2||R.r==12){var rt=blob.read_shift(2);length-=2;if(!opts.enc&&rt!==RecordType)throw"rt mismatch";if(R.r==12){blob.l+=10;length-=10}}var val;if(R.n==="EOF")val=R.f(blob,length,opts);else val=slurp(R,blob,length,opts);var Rn=R.n;if(opts.biff===5||opts.biff===2)switch(Rn){case"Lbl":Rn="Label";break}switch(Rn){case"Date1904":wb.opts.Date1904=val;break;case"WriteProtect":wb.opts.WriteProtect=true;break;case"FilePass":if(!opts.enc)blob.l=0;opts.enc=val;if(opts.WTF)console.error(val);if(!options.password)throw new Error("File is password-protected");if(val.Type!==0)throw new Error("Encryption scheme unsupported");if(!val.valid)throw new Error("Password is incorrect");break;case"WriteAccess":opts.lastuser=val;break;case"FileSharing":break;case"CodePage":if(val===21010)val=1200;else if(val===32769)val=1252;opts.codepage=val;set_cp(val);break;case"RRTabId":opts.rrtabid=val;break;case"WinProtect":opts.winlocked=val;break;case"Template":break;case"RefreshAll":wb.opts.RefreshAll=val;break;case"BookBool":break;case"UsesELFs":break;case"MTRSettings":{if(val[0]&&val[1])throw"Unsupported threads: "+val}break;case"CalcCount":wb.opts.CalcCount=val;break;case"CalcDelta":wb.opts.CalcDelta=val;break;case"CalcIter":wb.opts.CalcIter=val;break;case"CalcMode":wb.opts.CalcMode=val;break;case"CalcPrecision":wb.opts.CalcPrecision=val;break;case"CalcSaveRecalc":wb.opts.CalcSaveRecalc=val;break;case"CalcRefMode":opts.CalcRefMode=val;break;case"Uncalced":break;case"ForceFullCalculation":wb.opts.FullCalc=val;break;case"WsBool":break;case"XF":XFs.push(val);break;case"ExtSST":break;case"BookExt":break;case"RichTextStream":break;case"BkHim":break;case"SupBook":supbooks[++sbc]=[val];sbci=0;break;case"ExternName":supbooks[sbc][++sbci]=val;break;case"Index":break;case"Lbl":supbooks[0][++sbcli]=val;break;case"ExternSheet":supbooks[sbc]=supbooks[sbc].concat(val);sbci+=val.length;break;case"Protect":out["!protect"]=val;break;case"Password":if(val!==0&&opts.WTF)console.error("Password verifier: "+val);break;case"Prot4Rev":case"Prot4RevPass":break;case"BoundSheet8":{Directory[val.pos]=val;opts.snames.push(val.name)}break;case"EOF":{if(--file_depth)break;if(range.e){out["!range"]=range;if(range.e.r>0&&range.e.c>0){range.e.r--;range.e.c--;out["!ref"]=encode_range(range);range.e.r++;range.e.c++}if(mergecells.length>0)out["!merges"]=mergecells;if(objects.length>0)out["!objects"]=objects}if(cur_sheet==="")Preamble=out;else Sheets[cur_sheet]=out;out={}}break;case"BOF":{if(opts.biff!==8);else if(val.BIFFVer===1280)opts.biff=5;else if(val.BIFFVer===2)opts.biff=2;else if(val.BIFFVer===7)opts.biff=2;if(file_depth++)break;cell_valid=true;out={};if(opts.biff===2){if(cur_sheet==="")cur_sheet="Sheet1";range={s:{r:0,c:0},e:{r:0,c:0}}}else cur_sheet=(Directory[s]||{name:""}).name;mergecells=[];objects=[]}break;case"Number":case"BIFF2NUM":{temp_val={ixfe:val.ixfe,XF:XFs[val.ixfe],v:val.val,t:"n"};if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell({c:val.c,r:val.r},temp_val,options)}break;case"BoolErr":{temp_val={ixfe:val.ixfe,XF:XFs[val.ixfe],v:val.val,t:val.t};if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell({c:val.c,r:val.r},temp_val,options)}break;case"RK":{temp_val={ixfe:val.ixfe,XF:XFs[val.ixfe],v:val.rknum,t:"n"};if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell({c:val.c,r:val.r},temp_val,options)}break;case"MulRk":{for(var j=val.c;j<=val.C;++j){var ixfe=val.rkrec[j-val.c][0];temp_val={ixfe:ixfe,XF:XFs[ixfe],v:val.rkrec[j-val.c][1],t:"n"};if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell({c:j,r:val.r},temp_val,options)}}break;case"Formula":{switch(val.val){case"String":last_formula=val;break;case"Array Formula":throw"Array Formula unsupported";default:temp_val={v:val.val,ixfe:val.cell.ixfe,t:val.tt};temp_val.XF=XFs[temp_val.ixfe];if(options.cellFormula)temp_val.f="="+stringify_formula(val.formula,range,val.cell,supbooks,opts);if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell(val.cell,temp_val,options);last_formula=val}}break;case"String":{if(last_formula){last_formula.val=val;temp_val={v:last_formula.val,ixfe:last_formula.cell.ixfe,t:"s"};temp_val.XF=XFs[temp_val.ixfe];if(options.cellFormula)temp_val.f="="+stringify_formula(last_formula.formula,range,last_formula.cell,supbooks,opts);if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell(last_formula.cell,temp_val,options);last_formula=null}}break;case"Array":{array_formulae.push(val)}break;case"ShrFmla":{if(!cell_valid)break;shared_formulae[encode_cell(last_formula.cell)]=val[0]}break;case"LabelSst":temp_val=make_cell(sst[val.isst].t,val.ixfe,"s");temp_val.XF=XFs[temp_val.ixfe];if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell({c:val.c,r:val.r},temp_val,options);break;case"Label":case"BIFF2STR":temp_val=make_cell(val.val,val.ixfe,"s");temp_val.XF=XFs[temp_val.ixfe];if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell({c:val.c,r:val.r},temp_val,options);break;case"Dimensions":{if(file_depth===1)range=val}break;case"SST":{sst=val}break;case"Format":{SSF.load(val[1],val[0])}break;case"MergeCells":mergecells=mergecells.concat(val);break;case"Obj":objects[val.cmo[0]]=opts.lastobj=val;break;case"TxO":opts.lastobj.TxO=val;break;case"HLink":{for(rngR=val[0].s.r;rngR<=val[0].e.r;++rngR)for(rngC=val[0].s.c;rngC<=val[0].e.c;++rngC)if(out[encode_cell({c:rngC,r:rngR})])out[encode_cell({c:rngC,r:rngR})].l=val[1]}break;case"HLinkTooltip":{for(rngR=val[0].s.r;rngR<=val[0].e.r;++rngR)for(rngC=val[0].s.c;rngC<=val[0].e.c;++rngC)if(out[encode_cell({c:rngC,r:rngR})])out[encode_cell({c:rngC,r:rngR})].l.tooltip=val[1]}break;case"Note":{if(opts.biff<=5&&opts.biff>=2)break;cc=out[encode_cell(val[0])];var noteobj=objects[val[2]];if(!cc)break;if(!cc.c)cc.c=[];cmnt={a:val[1],t:noteobj.TxO.t};cc.c.push(cmnt)}break;default:switch(R.n){case"ClrtClient":break;case"XFExt":update_xfext(XFs[val.ixfe],val.ext);break;case"NameCmt":break;case"Header":break;case"Footer":break;case"HCenter":break;case"VCenter":break;case"Pls":break;case"Setup":break;case"DefColWidth":break;case"GCW":break;case"LHRecord":break;case"ColInfo":break;case"Row":break;case"DBCell":break;case"MulBlank":break;case"EntExU2":break;case"SxView":break;case"Sxvd":break;case"SXVI":break;case"SXVDEx":break;case"SxIvd":break;case"SXDI":break;case"SXLI":break;case"SXEx":break;case"QsiSXTag":break;case"Selection":break;case"Feat":break;case"FeatHdr":case"FeatHdr11":break;case"Feature11":case"Feature12":case"List12":break;case"Blank":break;case"Country":country=val;break;case"RecalcId":break;case"DefaultRowHeight":case"DxGCol":break;case"Fbi":case"Fbi2":case"GelFrame":break;case"Font":break;case"XFCRC":break;case"Style":break;case"StyleExt":break;case"Palette":palette=val;break;case"Theme":break;case"ScenarioProtect":break;case"ObjProtect":break;case"CondFmt12":break;case"Table":break;case"TableStyles":break;case"TableStyle":break;case"TableStyleElement":break;case"SXStreamID":break;case"SXVS":break;case"DConRef":break;case"SXAddl":break;case"DConBin":break;case"DConName":break;case"SXPI":break;case"SxFormat":break;case"SxSelect":break;case"SxRule":break;case"SxFilt":break;case"SxItm":break;case"SxDXF":break;case"ScenMan":break;case"DCon":break;case"CellWatch":break;case"PrintRowCol":break;case"PrintGrid":break;case"PrintSize":break;case"XCT":break;case"CRN":break;case"Scl":{}break;case"SheetExt":{}break;case"SheetExtOptional":{}break;case"ObNoMacros":{}break;case"ObProj":{}break;case"CodeName":{}break;case"GUIDTypeLib":{}break;case"WOpt":break;case"PhoneticInfo":break;case"OleObjectSize":break;case"DXF":case"DXFN":case"DXFN12":case"DXFN12List":case"DXFN12NoCB":break;case"Dv":case"DVal":break;case"BRAI":case"Series":case"SeriesText":break;case"DConn":break;case"DbOrParamQry":break;case"DBQueryExt":break;case"IFmtRecord":break;case"CondFmt":case"CF":case"CF12":case"CFEx":break;case"Excel9File":break;case"Units":break;case"InterfaceHdr":case"Mms":case"InterfaceEnd":case"DSF":case"BuiltInFnGroupCount":case"Window1":case"Window2":case"HideObj":case"GridSet":case"Guts":case"UserBView":case"UserSViewBegin":case"UserSViewEnd":case"Pane":break;default:switch(R.n){case"Dat":case"Begin":case"End":case"StartBlock":case"EndBlock":case"Frame":case"Area":case"Axis":case"AxisLine":case"Tick":break;case"AxesUsed":case"CrtLayout12":case"CrtLayout12A":case"CrtLink":case"CrtLine":case"CrtMlFrt":case"CrtMlFrtContinue":break;case"LineFormat":case"AreaFormat":case"Chart":case"Chart3d":case"Chart3DBarShape":case"ChartFormat":case"ChartFrtInfo":break;case"PlotArea":case"PlotGrowth":break;case"SeriesList":case"SerParent":case"SerAuxTrend":break;case"DataFormat":case"SerToCrt":case"FontX":break;case"CatSerRange":case"AxcExt":case"SerFmt":break;case"ShtProps":break;case"DefaultText":case"Text":case"CatLab":break;case"DataLabExtContents":break;case"Legend":case"LegendException":break;case"Pie":case"Scatter":break;case"PieFormat":case"MarkerFormat":break;case"StartObject":case"EndObject":break;case"AlRuns":case"ObjectLink":break;case"SIIndex":break;case"AttachedLabel":case"YMult":break;case"Line":case"Bar":break;case"Surf":break;case"AxisParent":break;case"Pos":break;case"ValueRange":break;case"SXViewEx9":break;case"SXViewLink":break;case"PivotChartBits":break;case"SBaseRef":break;case"TextPropsStream":break;case"LnExt":break;case"MkrExt":break;case"CrtCoopt":break;case"Qsi":case"Qsif":case"Qsir":case"QsiSXTag":break;case"TxtQry":break;case"FilterMode":break;case"AutoFilter":case"AutoFilterInfo":break;case"AutoFilter12":break;case"DropDownObjIds":break;case"Sort":break;case"SortData":break;case"ShapePropsStream":break;case"MsoDrawing":case"MsoDrawingGroup":case"MsoDrawingSelection":break;case"ImData":break;case"WebPub":case"AutoWebPub":case"RightMargin":case"LeftMargin":case"TopMargin":case"BottomMargin":case"HeaderFooter":case"HFPicture":case"PLV":case"HorizontalPageBreaks":case"VerticalPageBreaks":case"Backup":case"CompressPictures":case"Compat12":break;case"Continue":case"ContinueFrt12":break;case"FrtFontList":case"FrtWrapper":break;case"ExternCount":break;case"RString":break;case"TabIdConf":case"Radar":case"RadarArea":case"DropBar":case"Intl":case"CoordList":case"SerAuxErrBar":break;default:switch(R.n){case"SCENARIO":case"DConBin":case"PicF":case"DataLabExt":case"Lel":case"BopPop":case"BopPopCustom":case"RealTimeData":case"Name":break;default:if(options.WTF)throw"Unrecognized Record "+R.n}}}}}else blob.l+=length}var sheetnamesraw=opts.biff===2?["Sheet1"]:Object.keys(Directory).sort(function(a,b){return Number(a)-Number(b)}).map(function(x){return Directory[x].name});var sheetnames=sheetnamesraw.slice();wb.Directory=sheetnamesraw;wb.SheetNames=sheetnamesraw;if(!options.bookSheets)wb.Sheets=Sheets;wb.Preamble=Preamble;wb.Strings=sst;wb.SSF=SSF.get_table();if(opts.enc)wb.Encryption=opts.enc;wb.Metadata={};if(country!==undefined)wb.Metadata.Country=country;return wb}function parse_xlscfb(cfb,options){if(!options)options={};fix_read_opts(options);reset_cp();var CompObj,Summary,Workbook;if(cfb.find){CompObj=cfb.find("!CompObj");Summary=cfb.find("!SummaryInformation");Workbook=cfb.find("/Workbook")}else{prep_blob(cfb,0);Workbook={content:cfb}}if(!Workbook)Workbook=cfb.find("/Book");var CompObjP,SummaryP,WorkbookP;if(CompObj)CompObjP=parse_compobj(CompObj);if(options.bookProps&&!options.bookSheets)WorkbookP={};else{if(Workbook)WorkbookP=parse_workbook(Workbook.content,options,!!Workbook.find);else throw new Error("Cannot find Workbook stream")}if(cfb.find)parse_props(cfb);var props={};for(var y in cfb.Summary)props[y]=cfb.Summary[y];for(y in cfb.DocSummary)props[y]=cfb.DocSummary[y];WorkbookP.Props=WorkbookP.Custprops=props;if(options.bookFiles)WorkbookP.cfb=cfb;WorkbookP.CompObjP=CompObjP;return WorkbookP}function parse_props(cfb){var DSI=cfb.find("!DocumentSummaryInformation");if(DSI)try{cfb.DocSummary=parse_PropertySetStream(DSI,DocSummaryPIDDSI)}catch(e){}var SI=cfb.find("!SummaryInformation");if(SI)try{cfb.Summary=parse_PropertySetStream(SI,SummaryPIDSI)}catch(e){}}var XLSBRecordEnum={0:{n:"BrtRowHdr",f:parse_BrtRowHdr},1:{n:"BrtCellBlank",f:parse_BrtCellBlank},2:{n:"BrtCellRk",f:parse_BrtCellRk},3:{n:"BrtCellError",f:parse_BrtCellError},4:{n:"BrtCellBool",f:parse_BrtCellBool},5:{n:"BrtCellReal",f:parse_BrtCellReal},6:{n:"BrtCellSt",f:parse_BrtCellSt},7:{n:"BrtCellIsst",f:parse_BrtCellIsst},8:{n:"BrtFmlaString",f:parse_BrtFmlaString},9:{n:"BrtFmlaNum",f:parse_BrtFmlaNum},10:{n:"BrtFmlaBool",f:parse_BrtFmlaBool},11:{n:"BrtFmlaError",f:parse_BrtFmlaError},16:{n:"BrtFRTArchID$",f:parse_BrtFRTArchID$},19:{n:"BrtSSTItem",f:parse_RichStr},20:{n:"BrtPCDIMissing",f:parsenoop},21:{n:"BrtPCDINumber",f:parsenoop},22:{n:"BrtPCDIBoolean",f:parsenoop},23:{n:"BrtPCDIError",f:parsenoop},24:{n:"BrtPCDIString",f:parsenoop},25:{n:"BrtPCDIDatetime",f:parsenoop},26:{n:"BrtPCDIIndex",f:parsenoop},27:{n:"BrtPCDIAMissing",f:parsenoop},28:{n:"BrtPCDIANumber",f:parsenoop},29:{n:"BrtPCDIABoolean",f:parsenoop},30:{n:"BrtPCDIAError",f:parsenoop},31:{n:"BrtPCDIAString",f:parsenoop},32:{n:"BrtPCDIADatetime",f:parsenoop},33:{n:"BrtPCRRecord",f:parsenoop},34:{n:"BrtPCRRecordDt",f:parsenoop},35:{n:"BrtFRTBegin",f:parsenoop},36:{n:"BrtFRTEnd",f:parsenoop},37:{n:"BrtACBegin",f:parsenoop},38:{n:"BrtACEnd",f:parsenoop},39:{n:"BrtName",f:parsenoop},40:{n:"BrtIndexRowBlock",f:parsenoop},42:{n:"BrtIndexBlock",f:parsenoop},43:{n:"BrtFont",f:parse_BrtFont},44:{n:"BrtFmt",f:parse_BrtFmt},45:{n:"BrtFill",f:parsenoop},46:{n:"BrtBorder",f:parsenoop},47:{n:"BrtXF",f:parse_BrtXF},48:{n:"BrtStyle",f:parsenoop},49:{n:"BrtCellMeta",f:parsenoop},50:{n:"BrtValueMeta",f:parsenoop},51:{n:"BrtMdb",f:parsenoop},52:{n:"BrtBeginFmd",f:parsenoop},53:{n:"BrtEndFmd",f:parsenoop},54:{n:"BrtBeginMdx",f:parsenoop},55:{n:"BrtEndMdx",f:parsenoop},56:{n:"BrtBeginMdxTuple",f:parsenoop},57:{n:"BrtEndMdxTuple",f:parsenoop},58:{n:"BrtMdxMbrIstr",f:parsenoop},59:{n:"BrtStr",f:parsenoop},60:{n:"BrtColInfo",f:parsenoop},62:{n:"BrtCellRString",f:parsenoop},63:{n:"BrtCalcChainItem$",f:parse_BrtCalcChainItem$},64:{n:"BrtDVal",f:parsenoop},65:{n:"BrtSxvcellNum",f:parsenoop},66:{n:"BrtSxvcellStr",f:parsenoop},67:{n:"BrtSxvcellBool",f:parsenoop},68:{n:"BrtSxvcellErr",f:parsenoop},69:{n:"BrtSxvcellDate",f:parsenoop},70:{n:"BrtSxvcellNil",f:parsenoop},128:{n:"BrtFileVersion",f:parsenoop},129:{n:"BrtBeginSheet",f:parsenoop},130:{n:"BrtEndSheet",f:parsenoop},131:{n:"BrtBeginBook",f:parsenoop,p:0},132:{n:"BrtEndBook",f:parsenoop},133:{n:"BrtBeginWsViews",f:parsenoop},134:{n:"BrtEndWsViews",f:parsenoop},135:{n:"BrtBeginBookViews",f:parsenoop},136:{n:"BrtEndBookViews",f:parsenoop},137:{n:"BrtBeginWsView",f:parsenoop},138:{n:"BrtEndWsView",f:parsenoop},139:{n:"BrtBeginCsViews",f:parsenoop},140:{n:"BrtEndCsViews",f:parsenoop},141:{n:"BrtBeginCsView",f:parsenoop},142:{n:"BrtEndCsView",f:parsenoop},143:{n:"BrtBeginBundleShs",f:parsenoop},144:{n:"BrtEndBundleShs",f:parsenoop},145:{n:"BrtBeginSheetData",f:parsenoop},146:{n:"BrtEndSheetData",f:parsenoop},147:{n:"BrtWsProp",f:parse_BrtWsProp},148:{n:"BrtWsDim",f:parse_BrtWsDim,p:16},151:{n:"BrtPane",f:parsenoop},152:{n:"BrtSel",f:parsenoop},153:{n:"BrtWbProp",f:parse_BrtWbProp},154:{n:"BrtWbFactoid",f:parsenoop},155:{n:"BrtFileRecover",f:parsenoop},156:{n:"BrtBundleSh",f:parse_BrtBundleSh},157:{n:"BrtCalcProp",f:parsenoop},158:{n:"BrtBookView",f:parsenoop},159:{n:"BrtBeginSst",f:parse_BrtBeginSst},160:{n:"BrtEndSst",f:parsenoop},161:{n:"BrtBeginAFilter",f:parsenoop},162:{n:"BrtEndAFilter",f:parsenoop},163:{n:"BrtBeginFilterColumn",f:parsenoop},164:{n:"BrtEndFilterColumn",f:parsenoop},165:{n:"BrtBeginFilters",f:parsenoop},166:{n:"BrtEndFilters",f:parsenoop},167:{n:"BrtFilter",f:parsenoop},168:{n:"BrtColorFilter",f:parsenoop},169:{n:"BrtIconFilter",f:parsenoop},170:{n:"BrtTop10Filter",f:parsenoop},171:{n:"BrtDynamicFilter",f:parsenoop},172:{n:"BrtBeginCustomFilters",f:parsenoop},173:{n:"BrtEndCustomFilters",f:parsenoop},174:{n:"BrtCustomFilter",f:parsenoop},175:{n:"BrtAFilterDateGroupItem",f:parsenoop},176:{n:"BrtMergeCell",f:parse_BrtMergeCell},177:{n:"BrtBeginMergeCells",f:parsenoop},178:{n:"BrtEndMergeCells",f:parsenoop},179:{n:"BrtBeginPivotCacheDef",f:parsenoop},180:{n:"BrtEndPivotCacheDef",f:parsenoop},181:{n:"BrtBeginPCDFields",f:parsenoop},182:{n:"BrtEndPCDFields",f:parsenoop},183:{n:"BrtBeginPCDField",f:parsenoop},184:{n:"BrtEndPCDField",f:parsenoop},185:{n:"BrtBeginPCDSource",f:parsenoop},186:{n:"BrtEndPCDSource",f:parsenoop},187:{n:"BrtBeginPCDSRange",f:parsenoop},188:{n:"BrtEndPCDSRange",f:parsenoop},189:{n:"BrtBeginPCDFAtbl",f:parsenoop},190:{n:"BrtEndPCDFAtbl",f:parsenoop},191:{n:"BrtBeginPCDIRun",f:parsenoop},192:{n:"BrtEndPCDIRun",f:parsenoop},193:{n:"BrtBeginPivotCacheRecords",f:parsenoop},194:{n:"BrtEndPivotCacheRecords",f:parsenoop},195:{n:"BrtBeginPCDHierarchies",f:parsenoop},196:{n:"BrtEndPCDHierarchies",f:parsenoop},197:{n:"BrtBeginPCDHierarchy",f:parsenoop},198:{n:"BrtEndPCDHierarchy",f:parsenoop},199:{n:"BrtBeginPCDHFieldsUsage",f:parsenoop},200:{n:"BrtEndPCDHFieldsUsage",f:parsenoop},201:{n:"BrtBeginExtConnection",f:parsenoop},202:{n:"BrtEndExtConnection",f:parsenoop},203:{n:"BrtBeginECDbProps",f:parsenoop},204:{n:"BrtEndECDbProps",f:parsenoop},205:{n:"BrtBeginECOlapProps",f:parsenoop},206:{n:"BrtEndECOlapProps",f:parsenoop},207:{n:"BrtBeginPCDSConsol",f:parsenoop},208:{n:"BrtEndPCDSConsol",f:parsenoop},209:{n:"BrtBeginPCDSCPages",f:parsenoop},210:{n:"BrtEndPCDSCPages",f:parsenoop},211:{n:"BrtBeginPCDSCPage",f:parsenoop},212:{n:"BrtEndPCDSCPage",f:parsenoop},213:{n:"BrtBeginPCDSCPItem",f:parsenoop},214:{n:"BrtEndPCDSCPItem",f:parsenoop},215:{n:"BrtBeginPCDSCSets",f:parsenoop},216:{n:"BrtEndPCDSCSets",f:parsenoop},217:{n:"BrtBeginPCDSCSet",f:parsenoop},218:{n:"BrtEndPCDSCSet",f:parsenoop},219:{n:"BrtBeginPCDFGroup",f:parsenoop},220:{n:"BrtEndPCDFGroup",f:parsenoop},221:{n:"BrtBeginPCDFGItems",f:parsenoop},222:{n:"BrtEndPCDFGItems",f:parsenoop},223:{n:"BrtBeginPCDFGRange",f:parsenoop},224:{n:"BrtEndPCDFGRange",f:parsenoop},225:{n:"BrtBeginPCDFGDiscrete",f:parsenoop},226:{n:"BrtEndPCDFGDiscrete",f:parsenoop},227:{n:"BrtBeginPCDSDTupleCache",f:parsenoop},228:{n:"BrtEndPCDSDTupleCache",f:parsenoop},229:{n:"BrtBeginPCDSDTCEntries",f:parsenoop},230:{n:"BrtEndPCDSDTCEntries",f:parsenoop},231:{n:"BrtBeginPCDSDTCEMembers",f:parsenoop},232:{n:"BrtEndPCDSDTCEMembers",f:parsenoop},233:{n:"BrtBeginPCDSDTCEMember",f:parsenoop},234:{n:"BrtEndPCDSDTCEMember",f:parsenoop},235:{n:"BrtBeginPCDSDTCQueries",f:parsenoop},236:{n:"BrtEndPCDSDTCQueries",f:parsenoop},237:{n:"BrtBeginPCDSDTCQuery",f:parsenoop},238:{n:"BrtEndPCDSDTCQuery",f:parsenoop},239:{n:"BrtBeginPCDSDTCSets",f:parsenoop},240:{n:"BrtEndPCDSDTCSets",f:parsenoop},241:{n:"BrtBeginPCDSDTCSet",f:parsenoop},242:{n:"BrtEndPCDSDTCSet",f:parsenoop},243:{n:"BrtBeginPCDCalcItems",f:parsenoop},244:{n:"BrtEndPCDCalcItems",f:parsenoop},245:{n:"BrtBeginPCDCalcItem",f:parsenoop},246:{n:"BrtEndPCDCalcItem",f:parsenoop},247:{n:"BrtBeginPRule",f:parsenoop},248:{n:"BrtEndPRule",f:parsenoop},249:{n:"BrtBeginPRFilters",f:parsenoop},250:{n:"BrtEndPRFilters",f:parsenoop},251:{n:"BrtBeginPRFilter",f:parsenoop},252:{n:"BrtEndPRFilter",f:parsenoop},253:{n:"BrtBeginPNames",f:parsenoop},254:{n:"BrtEndPNames",f:parsenoop},255:{n:"BrtBeginPName",f:parsenoop},256:{n:"BrtEndPName",f:parsenoop},257:{n:"BrtBeginPNPairs",f:parsenoop},258:{n:"BrtEndPNPairs",f:parsenoop},259:{n:"BrtBeginPNPair",f:parsenoop},260:{n:"BrtEndPNPair",f:parsenoop},261:{n:"BrtBeginECWebProps",f:parsenoop},262:{n:"BrtEndECWebProps",f:parsenoop},263:{n:"BrtBeginEcWpTables",f:parsenoop},264:{n:"BrtEndECWPTables",f:parsenoop},265:{n:"BrtBeginECParams",f:parsenoop},266:{n:"BrtEndECParams",f:parsenoop},267:{n:"BrtBeginECParam",f:parsenoop},268:{n:"BrtEndECParam",f:parsenoop},269:{n:"BrtBeginPCDKPIs",f:parsenoop},270:{n:"BrtEndPCDKPIs",f:parsenoop},271:{n:"BrtBeginPCDKPI",f:parsenoop},272:{n:"BrtEndPCDKPI",f:parsenoop},273:{n:"BrtBeginDims",f:parsenoop},274:{n:"BrtEndDims",f:parsenoop},275:{n:"BrtBeginDim",f:parsenoop},276:{n:"BrtEndDim",f:parsenoop},277:{n:"BrtIndexPartEnd",f:parsenoop},278:{n:"BrtBeginStyleSheet",f:parsenoop},279:{n:"BrtEndStyleSheet",f:parsenoop},280:{n:"BrtBeginSXView",f:parsenoop},281:{n:"BrtEndSXVI",f:parsenoop},282:{n:"BrtBeginSXVI",f:parsenoop},283:{n:"BrtBeginSXVIs",f:parsenoop},284:{n:"BrtEndSXVIs",f:parsenoop},285:{n:"BrtBeginSXVD",f:parsenoop},286:{n:"BrtEndSXVD",f:parsenoop},287:{n:"BrtBeginSXVDs",f:parsenoop},288:{n:"BrtEndSXVDs",f:parsenoop},289:{n:"BrtBeginSXPI",f:parsenoop},290:{n:"BrtEndSXPI",f:parsenoop},291:{n:"BrtBeginSXPIs",f:parsenoop},292:{n:"BrtEndSXPIs",f:parsenoop},293:{n:"BrtBeginSXDI",f:parsenoop},294:{n:"BrtEndSXDI",f:parsenoop},295:{n:"BrtBeginSXDIs",f:parsenoop},296:{n:"BrtEndSXDIs",f:parsenoop},297:{n:"BrtBeginSXLI",f:parsenoop},298:{n:"BrtEndSXLI",f:parsenoop},299:{n:"BrtBeginSXLIRws",f:parsenoop},300:{n:"BrtEndSXLIRws",f:parsenoop},301:{n:"BrtBeginSXLICols",f:parsenoop},302:{n:"BrtEndSXLICols",f:parsenoop},303:{n:"BrtBeginSXFormat",f:parsenoop},304:{n:"BrtEndSXFormat",f:parsenoop},305:{n:"BrtBeginSXFormats",f:parsenoop},306:{n:"BrtEndSxFormats",f:parsenoop},307:{n:"BrtBeginSxSelect",f:parsenoop},308:{n:"BrtEndSxSelect",f:parsenoop},309:{n:"BrtBeginISXVDRws",f:parsenoop},310:{n:"BrtEndISXVDRws",f:parsenoop},311:{n:"BrtBeginISXVDCols",f:parsenoop},312:{n:"BrtEndISXVDCols",f:parsenoop},313:{n:"BrtEndSXLocation",f:parsenoop},314:{n:"BrtBeginSXLocation",f:parsenoop},315:{n:"BrtEndSXView",f:parsenoop},316:{n:"BrtBeginSXTHs",f:parsenoop},317:{n:"BrtEndSXTHs",f:parsenoop},318:{n:"BrtBeginSXTH",f:parsenoop},319:{n:"BrtEndSXTH",f:parsenoop},320:{n:"BrtBeginISXTHRws",f:parsenoop},321:{n:"BrtEndISXTHRws",f:parsenoop},322:{n:"BrtBeginISXTHCols",f:parsenoop},323:{n:"BrtEndISXTHCols",f:parsenoop},324:{n:"BrtBeginSXTDMPS",f:parsenoop},325:{n:"BrtEndSXTDMPs",f:parsenoop},326:{n:"BrtBeginSXTDMP",f:parsenoop},327:{n:"BrtEndSXTDMP",f:parsenoop},328:{n:"BrtBeginSXTHItems",f:parsenoop},329:{n:"BrtEndSXTHItems",f:parsenoop},330:{n:"BrtBeginSXTHItem",f:parsenoop},331:{n:"BrtEndSXTHItem",f:parsenoop},332:{n:"BrtBeginMetadata",f:parsenoop},333:{n:"BrtEndMetadata",f:parsenoop},334:{n:"BrtBeginEsmdtinfo",f:parsenoop},335:{n:"BrtMdtinfo",f:parsenoop},336:{n:"BrtEndEsmdtinfo",f:parsenoop},337:{n:"BrtBeginEsmdb",f:parsenoop},338:{n:"BrtEndEsmdb",f:parsenoop},339:{n:"BrtBeginEsfmd",f:parsenoop},340:{n:"BrtEndEsfmd",f:parsenoop},341:{n:"BrtBeginSingleCells",f:parsenoop},342:{n:"BrtEndSingleCells",f:parsenoop},343:{n:"BrtBeginList",f:parsenoop},344:{n:"BrtEndList",f:parsenoop},345:{n:"BrtBeginListCols",f:parsenoop},346:{n:"BrtEndListCols",f:parsenoop},347:{n:"BrtBeginListCol",f:parsenoop},348:{n:"BrtEndListCol",f:parsenoop},349:{n:"BrtBeginListXmlCPr",f:parsenoop},350:{n:"BrtEndListXmlCPr",f:parsenoop},351:{n:"BrtListCCFmla",f:parsenoop},352:{n:"BrtListTrFmla",f:parsenoop},353:{n:"BrtBeginExternals",f:parsenoop},354:{n:"BrtEndExternals",f:parsenoop},355:{n:"BrtSupBookSrc",f:parsenoop},357:{n:"BrtSupSelf",f:parsenoop},358:{n:"BrtSupSame",f:parsenoop},359:{n:"BrtSupTabs",f:parsenoop},360:{n:"BrtBeginSupBook",f:parsenoop},361:{n:"BrtPlaceholderName",f:parsenoop},362:{n:"BrtExternSheet",f:parsenoop},363:{n:"BrtExternTableStart",f:parsenoop},364:{n:"BrtExternTableEnd",f:parsenoop},366:{n:"BrtExternRowHdr",f:parsenoop},367:{n:"BrtExternCellBlank",f:parsenoop},368:{n:"BrtExternCellReal",f:parsenoop},369:{n:"BrtExternCellBool",f:parsenoop},370:{n:"BrtExternCellError",f:parsenoop},371:{n:"BrtExternCellString",f:parsenoop},372:{n:"BrtBeginEsmdx",f:parsenoop},373:{n:"BrtEndEsmdx",f:parsenoop},374:{n:"BrtBeginMdxSet",f:parsenoop},375:{n:"BrtEndMdxSet",f:parsenoop},376:{n:"BrtBeginMdxMbrProp",f:parsenoop},377:{n:"BrtEndMdxMbrProp",f:parsenoop},378:{n:"BrtBeginMdxKPI",f:parsenoop},379:{n:"BrtEndMdxKPI",f:parsenoop},380:{n:"BrtBeginEsstr",f:parsenoop},381:{n:"BrtEndEsstr",f:parsenoop},382:{n:"BrtBeginPRFItem",f:parsenoop},383:{n:"BrtEndPRFItem",f:parsenoop},384:{n:"BrtBeginPivotCacheIDs",f:parsenoop},385:{n:"BrtEndPivotCacheIDs",f:parsenoop},386:{n:"BrtBeginPivotCacheID",f:parsenoop},387:{n:"BrtEndPivotCacheID",f:parsenoop},388:{n:"BrtBeginISXVIs",f:parsenoop},389:{n:"BrtEndISXVIs",f:parsenoop},390:{n:"BrtBeginColInfos",f:parsenoop},391:{n:"BrtEndColInfos",f:parsenoop},392:{n:"BrtBeginRwBrk",f:parsenoop},393:{n:"BrtEndRwBrk",f:parsenoop},394:{n:"BrtBeginColBrk",f:parsenoop},395:{n:"BrtEndColBrk",f:parsenoop},396:{n:"BrtBrk",f:parsenoop},397:{n:"BrtUserBookView",f:parsenoop},398:{n:"BrtInfo",f:parsenoop},399:{n:"BrtCUsr",f:parsenoop},400:{n:"BrtUsr",f:parsenoop},401:{n:"BrtBeginUsers",f:parsenoop},403:{n:"BrtEOF",f:parsenoop},404:{n:"BrtUCR",f:parsenoop},405:{n:"BrtRRInsDel",f:parsenoop},406:{n:"BrtRREndInsDel",f:parsenoop},407:{n:"BrtRRMove",f:parsenoop},408:{n:"BrtRREndMove",f:parsenoop},409:{n:"BrtRRChgCell",f:parsenoop},410:{n:"BrtRREndChgCell",f:parsenoop},411:{n:"BrtRRHeader",f:parsenoop},412:{n:"BrtRRUserView",f:parsenoop},413:{n:"BrtRRRenSheet",f:parsenoop},414:{n:"BrtRRInsertSh",f:parsenoop},415:{n:"BrtRRDefName",f:parsenoop},416:{n:"BrtRRNote",f:parsenoop},417:{n:"BrtRRConflict",f:parsenoop},418:{n:"BrtRRTQSIF",f:parsenoop},419:{n:"BrtRRFormat",f:parsenoop},420:{n:"BrtRREndFormat",f:parsenoop},421:{n:"BrtRRAutoFmt",f:parsenoop},422:{n:"BrtBeginUserShViews",f:parsenoop},423:{n:"BrtBeginUserShView",f:parsenoop},424:{n:"BrtEndUserShView",f:parsenoop},425:{n:"BrtEndUserShViews",f:parsenoop},426:{n:"BrtArrFmla",f:parsenoop},427:{n:"BrtShrFmla",f:parsenoop},428:{n:"BrtTable",f:parsenoop},429:{n:"BrtBeginExtConnections",f:parsenoop},430:{n:"BrtEndExtConnections",f:parsenoop},431:{n:"BrtBeginPCDCalcMems",f:parsenoop},432:{n:"BrtEndPCDCalcMems",f:parsenoop},433:{n:"BrtBeginPCDCalcMem",f:parsenoop},434:{n:"BrtEndPCDCalcMem",f:parsenoop},435:{n:"BrtBeginPCDHGLevels",f:parsenoop},436:{n:"BrtEndPCDHGLevels",f:parsenoop},437:{n:"BrtBeginPCDHGLevel",f:parsenoop},438:{n:"BrtEndPCDHGLevel",f:parsenoop},439:{n:"BrtBeginPCDHGLGroups",f:parsenoop},440:{n:"BrtEndPCDHGLGroups",f:parsenoop},441:{n:"BrtBeginPCDHGLGroup",f:parsenoop},442:{n:"BrtEndPCDHGLGroup",f:parsenoop},443:{n:"BrtBeginPCDHGLGMembers",f:parsenoop},444:{n:"BrtEndPCDHGLGMembers",f:parsenoop},445:{n:"BrtBeginPCDHGLGMember",f:parsenoop},446:{n:"BrtEndPCDHGLGMember",f:parsenoop},447:{n:"BrtBeginQSI",f:parsenoop},448:{n:"BrtEndQSI",f:parsenoop},449:{n:"BrtBeginQSIR",f:parsenoop},450:{n:"BrtEndQSIR",f:parsenoop},451:{n:"BrtBeginDeletedNames",f:parsenoop},452:{n:"BrtEndDeletedNames",f:parsenoop},453:{n:"BrtBeginDeletedName",f:parsenoop},454:{n:"BrtEndDeletedName",f:parsenoop},455:{n:"BrtBeginQSIFs",f:parsenoop},456:{n:"BrtEndQSIFs",f:parsenoop},457:{n:"BrtBeginQSIF",f:parsenoop},458:{n:"BrtEndQSIF",f:parsenoop},459:{n:"BrtBeginAutoSortScope",f:parsenoop},460:{n:"BrtEndAutoSortScope",f:parsenoop},461:{n:"BrtBeginConditionalFormatting",f:parsenoop},462:{n:"BrtEndConditionalFormatting",f:parsenoop},463:{n:"BrtBeginCFRule",f:parsenoop},464:{n:"BrtEndCFRule",f:parsenoop},465:{n:"BrtBeginIconSet",f:parsenoop},466:{n:"BrtEndIconSet",f:parsenoop},467:{n:"BrtBeginDatabar",f:parsenoop},468:{n:"BrtEndDatabar",f:parsenoop},469:{n:"BrtBeginColorScale",f:parsenoop},470:{n:"BrtEndColorScale",f:parsenoop},471:{n:"BrtCFVO",f:parsenoop},472:{n:"BrtExternValueMeta",f:parsenoop},473:{n:"BrtBeginColorPalette",f:parsenoop},474:{n:"BrtEndColorPalette",f:parsenoop},475:{n:"BrtIndexedColor",f:parsenoop},476:{n:"BrtMargins",f:parsenoop},477:{n:"BrtPrintOptions",f:parsenoop},478:{n:"BrtPageSetup",f:parsenoop},479:{n:"BrtBeginHeaderFooter",f:parsenoop},480:{n:"BrtEndHeaderFooter",f:parsenoop},481:{n:"BrtBeginSXCrtFormat",f:parsenoop},482:{n:"BrtEndSXCrtFormat",f:parsenoop},483:{n:"BrtBeginSXCrtFormats",f:parsenoop},484:{n:"BrtEndSXCrtFormats",f:parsenoop},485:{n:"BrtWsFmtInfo",f:parsenoop},486:{n:"BrtBeginMgs",f:parsenoop},487:{n:"BrtEndMGs",f:parsenoop},488:{n:"BrtBeginMGMaps",f:parsenoop},489:{n:"BrtEndMGMaps",f:parsenoop},490:{n:"BrtBeginMG",f:parsenoop},491:{n:"BrtEndMG",f:parsenoop},492:{n:"BrtBeginMap",f:parsenoop},493:{n:"BrtEndMap",f:parsenoop},494:{n:"BrtHLink",f:parse_BrtHLink},495:{n:"BrtBeginDCon",f:parsenoop},496:{n:"BrtEndDCon",f:parsenoop},497:{n:"BrtBeginDRefs",f:parsenoop},498:{n:"BrtEndDRefs",f:parsenoop},499:{n:"BrtDRef",f:parsenoop},500:{n:"BrtBeginScenMan",f:parsenoop},501:{n:"BrtEndScenMan",f:parsenoop},502:{n:"BrtBeginSct",f:parsenoop},503:{n:"BrtEndSct",f:parsenoop},504:{n:"BrtSlc",f:parsenoop},505:{n:"BrtBeginDXFs",f:parsenoop},506:{n:"BrtEndDXFs",f:parsenoop},507:{n:"BrtDXF",f:parsenoop},508:{n:"BrtBeginTableStyles",f:parsenoop},509:{n:"BrtEndTableStyles",f:parsenoop},510:{n:"BrtBeginTableStyle",f:parsenoop},511:{n:"BrtEndTableStyle",f:parsenoop},512:{n:"BrtTableStyleElement",f:parsenoop},513:{n:"BrtTableStyleClient",f:parsenoop},514:{n:"BrtBeginVolDeps",f:parsenoop},515:{n:"BrtEndVolDeps",f:parsenoop},516:{n:"BrtBeginVolType",f:parsenoop},517:{n:"BrtEndVolType",f:parsenoop},518:{n:"BrtBeginVolMain",f:parsenoop},519:{n:"BrtEndVolMain",f:parsenoop},520:{n:"BrtBeginVolTopic",f:parsenoop},521:{n:"BrtEndVolTopic",f:parsenoop},522:{n:"BrtVolSubtopic",f:parsenoop},523:{n:"BrtVolRef",f:parsenoop},524:{n:"BrtVolNum",f:parsenoop},525:{n:"BrtVolErr",f:parsenoop},526:{n:"BrtVolStr",f:parsenoop},527:{n:"BrtVolBool",f:parsenoop},528:{n:"BrtBeginCalcChain$",f:parsenoop},529:{n:"BrtEndCalcChain$",f:parsenoop},530:{n:"BrtBeginSortState",f:parsenoop},531:{n:"BrtEndSortState",f:parsenoop},532:{n:"BrtBeginSortCond",f:parsenoop},533:{n:"BrtEndSortCond",f:parsenoop},534:{n:"BrtBookProtection",f:parsenoop},535:{n:"BrtSheetProtection",f:parsenoop},536:{n:"BrtRangeProtection",f:parsenoop},537:{n:"BrtPhoneticInfo",f:parsenoop},538:{n:"BrtBeginECTxtWiz",f:parsenoop},539:{n:"BrtEndECTxtWiz",f:parsenoop},540:{n:"BrtBeginECTWFldInfoLst",f:parsenoop},541:{n:"BrtEndECTWFldInfoLst",f:parsenoop},542:{n:"BrtBeginECTwFldInfo",f:parsenoop},548:{n:"BrtFileSharing",f:parsenoop},549:{n:"BrtOleSize",f:parsenoop},550:{n:"BrtDrawing",f:parsenoop},551:{n:"BrtLegacyDrawing",f:parsenoop},552:{n:"BrtLegacyDrawingHF",f:parsenoop},553:{n:"BrtWebOpt",f:parsenoop},554:{n:"BrtBeginWebPubItems",f:parsenoop},555:{n:"BrtEndWebPubItems",f:parsenoop},556:{n:"BrtBeginWebPubItem",f:parsenoop},557:{n:"BrtEndWebPubItem",f:parsenoop},558:{n:"BrtBeginSXCondFmt",f:parsenoop},559:{n:"BrtEndSXCondFmt",f:parsenoop},560:{n:"BrtBeginSXCondFmts",f:parsenoop},561:{n:"BrtEndSXCondFmts",f:parsenoop},562:{n:"BrtBkHim",f:parsenoop},564:{n:"BrtColor",f:parsenoop},565:{n:"BrtBeginIndexedColors",f:parsenoop},566:{n:"BrtEndIndexedColors",f:parsenoop},569:{n:"BrtBeginMRUColors",f:parsenoop},570:{n:"BrtEndMRUColors",f:parsenoop},572:{n:"BrtMRUColor",f:parsenoop},573:{n:"BrtBeginDVals",f:parsenoop},574:{n:"BrtEndDVals",f:parsenoop},577:{n:"BrtSupNameStart",f:parsenoop},578:{n:"BrtSupNameValueStart",f:parsenoop},579:{n:"BrtSupNameValueEnd",f:parsenoop},580:{n:"BrtSupNameNum",f:parsenoop},581:{n:"BrtSupNameErr",f:parsenoop},582:{n:"BrtSupNameSt",f:parsenoop},583:{n:"BrtSupNameNil",f:parsenoop},584:{n:"BrtSupNameBool",f:parsenoop},585:{n:"BrtSupNameFmla",f:parsenoop},586:{n:"BrtSupNameBits",f:parsenoop},587:{n:"BrtSupNameEnd",f:parsenoop},588:{n:"BrtEndSupBook",f:parsenoop},589:{n:"BrtCellSmartTagProperty",f:parsenoop},590:{n:"BrtBeginCellSmartTag",f:parsenoop},591:{n:"BrtEndCellSmartTag",f:parsenoop},592:{n:"BrtBeginCellSmartTags",f:parsenoop},593:{n:"BrtEndCellSmartTags",f:parsenoop},594:{n:"BrtBeginSmartTags",f:parsenoop},595:{n:"BrtEndSmartTags",f:parsenoop},596:{n:"BrtSmartTagType",f:parsenoop},597:{n:"BrtBeginSmartTagTypes",f:parsenoop},598:{n:"BrtEndSmartTagTypes",f:parsenoop},599:{n:"BrtBeginSXFilters",f:parsenoop},600:{n:"BrtEndSXFilters",f:parsenoop},601:{n:"BrtBeginSXFILTER",f:parsenoop},602:{n:"BrtEndSXFilter",f:parsenoop},603:{n:"BrtBeginFills",f:parsenoop},604:{n:"BrtEndFills",f:parsenoop},605:{n:"BrtBeginCellWatches",f:parsenoop},606:{n:"BrtEndCellWatches",f:parsenoop},607:{n:"BrtCellWatch",f:parsenoop},608:{n:"BrtBeginCRErrs",f:parsenoop},609:{n:"BrtEndCRErrs",f:parsenoop},610:{n:"BrtCrashRecErr",f:parsenoop},611:{n:"BrtBeginFonts",f:parsenoop},612:{n:"BrtEndFonts",f:parsenoop},613:{n:"BrtBeginBorders",f:parsenoop},614:{n:"BrtEndBorders",f:parsenoop},615:{n:"BrtBeginFmts",f:parsenoop},616:{n:"BrtEndFmts",f:parsenoop},617:{n:"BrtBeginCellXFs",f:parsenoop},618:{n:"BrtEndCellXFs",f:parsenoop},619:{n:"BrtBeginStyles",f:parsenoop},620:{n:"BrtEndStyles",f:parsenoop},625:{n:"BrtBigName",f:parsenoop},626:{n:"BrtBeginCellStyleXFs",f:parsenoop},627:{n:"BrtEndCellStyleXFs",f:parsenoop},628:{n:"BrtBeginComments",f:parsenoop},629:{n:"BrtEndComments",f:parsenoop},630:{n:"BrtBeginCommentAuthors",f:parsenoop},631:{n:"BrtEndCommentAuthors",f:parsenoop},632:{n:"BrtCommentAuthor",f:parse_BrtCommentAuthor},633:{n:"BrtBeginCommentList",f:parsenoop},634:{n:"BrtEndCommentList",f:parsenoop},635:{n:"BrtBeginComment",f:parse_BrtBeginComment},636:{n:"BrtEndComment",f:parsenoop},637:{n:"BrtCommentText",f:parse_BrtCommentText},638:{n:"BrtBeginOleObjects",f:parsenoop},639:{n:"BrtOleObject",f:parsenoop},640:{n:"BrtEndOleObjects",f:parsenoop},641:{n:"BrtBeginSxrules",f:parsenoop},642:{n:"BrtEndSxRules",f:parsenoop},643:{n:"BrtBeginActiveXControls",f:parsenoop},644:{n:"BrtActiveX",f:parsenoop},645:{n:"BrtEndActiveXControls",f:parsenoop},646:{n:"BrtBeginPCDSDTCEMembersSortBy",f:parsenoop},648:{n:"BrtBeginCellIgnoreECs",f:parsenoop},649:{n:"BrtCellIgnoreEC",f:parsenoop},650:{n:"BrtEndCellIgnoreECs",f:parsenoop},651:{n:"BrtCsProp",f:parsenoop},652:{n:"BrtCsPageSetup",f:parsenoop},653:{n:"BrtBeginUserCsViews",f:parsenoop},654:{n:"BrtEndUserCsViews",f:parsenoop},655:{n:"BrtBeginUserCsView",f:parsenoop},656:{n:"BrtEndUserCsView",f:parsenoop},657:{n:"BrtBeginPcdSFCIEntries",f:parsenoop},658:{n:"BrtEndPCDSFCIEntries",f:parsenoop},659:{n:"BrtPCDSFCIEntry",f:parsenoop},660:{n:"BrtBeginListParts",f:parsenoop},661:{n:"BrtListPart",f:parsenoop},662:{n:"BrtEndListParts",f:parsenoop},663:{n:"BrtSheetCalcProp",f:parsenoop},664:{n:"BrtBeginFnGroup",f:parsenoop},665:{n:"BrtFnGroup",f:parsenoop},666:{n:"BrtEndFnGroup",f:parsenoop},667:{n:"BrtSupAddin",f:parsenoop},668:{n:"BrtSXTDMPOrder",f:parsenoop},669:{n:"BrtCsProtection",f:parsenoop},671:{n:"BrtBeginWsSortMap",f:parsenoop},672:{n:"BrtEndWsSortMap",f:parsenoop},673:{n:"BrtBeginRRSort",f:parsenoop},674:{n:"BrtEndRRSort",f:parsenoop},675:{n:"BrtRRSortItem",f:parsenoop},676:{n:"BrtFileSharingIso",f:parsenoop},677:{n:"BrtBookProtectionIso",f:parsenoop},678:{n:"BrtSheetProtectionIso",f:parsenoop},679:{n:"BrtCsProtectionIso",f:parsenoop},680:{n:"BrtRangeProtectionIso",f:parsenoop},1024:{n:"BrtRwDescent",f:parsenoop},1025:{n:"BrtKnownFonts",f:parsenoop},1026:{n:"BrtBeginSXTupleSet",f:parsenoop},1027:{n:"BrtEndSXTupleSet",f:parsenoop},1028:{n:"BrtBeginSXTupleSetHeader",f:parsenoop},1029:{n:"BrtEndSXTupleSetHeader",f:parsenoop},1030:{n:"BrtSXTupleSetHeaderItem",f:parsenoop},1031:{n:"BrtBeginSXTupleSetData",f:parsenoop},1032:{n:"BrtEndSXTupleSetData",f:parsenoop},1033:{n:"BrtBeginSXTupleSetRow",f:parsenoop},1034:{n:"BrtEndSXTupleSetRow",f:parsenoop},1035:{n:"BrtSXTupleSetRowItem",f:parsenoop},1036:{n:"BrtNameExt",f:parsenoop},1037:{n:"BrtPCDH14",f:parsenoop},1038:{n:"BrtBeginPCDCalcMem14",f:parsenoop},1039:{n:"BrtEndPCDCalcMem14",f:parsenoop},1040:{n:"BrtSXTH14",f:parsenoop},1041:{n:"BrtBeginSparklineGroup",f:parsenoop},1042:{n:"BrtEndSparklineGroup",f:parsenoop},1043:{n:"BrtSparkline",f:parsenoop},1044:{n:"BrtSXDI14",f:parsenoop},1045:{n:"BrtWsFmtInfoEx14",f:parsenoop},1046:{n:"BrtBeginConditionalFormatting14",f:parsenoop},1047:{n:"BrtEndConditionalFormatting14",f:parsenoop},1048:{n:"BrtBeginCFRule14",f:parsenoop},1049:{n:"BrtEndCFRule14",f:parsenoop},1050:{n:"BrtCFVO14",f:parsenoop},1051:{n:"BrtBeginDatabar14",f:parsenoop},1052:{n:"BrtBeginIconSet14",f:parsenoop},1053:{n:"BrtDVal14",f:parsenoop},1054:{n:"BrtBeginDVals14",f:parsenoop},1055:{n:"BrtColor14",f:parsenoop},1056:{n:"BrtBeginSparklines",f:parsenoop},1057:{n:"BrtEndSparklines",f:parsenoop},1058:{n:"BrtBeginSparklineGroups",f:parsenoop},1059:{n:"BrtEndSparklineGroups",f:parsenoop},1061:{n:"BrtSXVD14",f:parsenoop},1062:{n:"BrtBeginSxview14",f:parsenoop},1063:{n:"BrtEndSxview14",f:parsenoop},1066:{n:"BrtBeginPCD14",f:parsenoop},1067:{n:"BrtEndPCD14",f:parsenoop},1068:{n:"BrtBeginExtConn14",f:parsenoop},1069:{n:"BrtEndExtConn14",f:parsenoop},1070:{n:"BrtBeginSlicerCacheIDs",f:parsenoop},1071:{n:"BrtEndSlicerCacheIDs",f:parsenoop},1072:{n:"BrtBeginSlicerCacheID",f:parsenoop},1073:{n:"BrtEndSlicerCacheID",f:parsenoop},1075:{n:"BrtBeginSlicerCache",f:parsenoop},1076:{n:"BrtEndSlicerCache",f:parsenoop},1077:{n:"BrtBeginSlicerCacheDef",f:parsenoop},1078:{n:"BrtEndSlicerCacheDef",f:parsenoop},1079:{n:"BrtBeginSlicersEx",f:parsenoop},1080:{n:"BrtEndSlicersEx",f:parsenoop},1081:{n:"BrtBeginSlicerEx",f:parsenoop},1082:{n:"BrtEndSlicerEx",f:parsenoop},1083:{n:"BrtBeginSlicer",f:parsenoop},1084:{n:"BrtEndSlicer",f:parsenoop},1085:{n:"BrtSlicerCachePivotTables",f:parsenoop},1086:{n:"BrtBeginSlicerCacheOlapImpl",f:parsenoop},1087:{n:"BrtEndSlicerCacheOlapImpl",f:parsenoop},1088:{n:"BrtBeginSlicerCacheLevelsData",f:parsenoop},1089:{n:"BrtEndSlicerCacheLevelsData",f:parsenoop},1090:{n:"BrtBeginSlicerCacheLevelData",f:parsenoop},1091:{n:"BrtEndSlicerCacheLevelData",f:parsenoop},1092:{n:"BrtBeginSlicerCacheSiRanges",f:parsenoop},1093:{n:"BrtEndSlicerCacheSiRanges",f:parsenoop},1094:{n:"BrtBeginSlicerCacheSiRange",f:parsenoop},1095:{n:"BrtEndSlicerCacheSiRange",f:parsenoop},1096:{n:"BrtSlicerCacheOlapItem",f:parsenoop},1097:{n:"BrtBeginSlicerCacheSelections",f:parsenoop},1098:{n:"BrtSlicerCacheSelection",f:parsenoop},1099:{n:"BrtEndSlicerCacheSelections",f:parsenoop},1100:{n:"BrtBeginSlicerCacheNative",f:parsenoop},1101:{n:"BrtEndSlicerCacheNative",f:parsenoop},1102:{n:"BrtSlicerCacheNativeItem",f:parsenoop},1103:{n:"BrtRangeProtection14",f:parsenoop},1104:{n:"BrtRangeProtectionIso14",f:parsenoop},1105:{n:"BrtCellIgnoreEC14",f:parsenoop},1111:{n:"BrtList14",f:parsenoop},1112:{n:"BrtCFIcon",f:parsenoop},1113:{n:"BrtBeginSlicerCachesPivotCacheIDs",f:parsenoop},1114:{n:"BrtEndSlicerCachesPivotCacheIDs",f:parsenoop},1115:{n:"BrtBeginSlicers",f:parsenoop},1116:{n:"BrtEndSlicers",f:parsenoop},1117:{n:"BrtWbProp14",f:parsenoop},1118:{n:"BrtBeginSXEdit",f:parsenoop},1119:{n:"BrtEndSXEdit",f:parsenoop},1120:{n:"BrtBeginSXEdits",f:parsenoop},1121:{n:"BrtEndSXEdits",f:parsenoop},1122:{n:"BrtBeginSXChange",f:parsenoop},1123:{n:"BrtEndSXChange",f:parsenoop},1124:{n:"BrtBeginSXChanges",f:parsenoop},1125:{n:"BrtEndSXChanges",f:parsenoop},1126:{n:"BrtSXTupleItems",f:parsenoop},1128:{n:"BrtBeginSlicerStyle",f:parsenoop},1129:{n:"BrtEndSlicerStyle",f:parsenoop},1130:{n:"BrtSlicerStyleElement",f:parsenoop},1131:{n:"BrtBeginStyleSheetExt14",f:parsenoop},1132:{n:"BrtEndStyleSheetExt14",f:parsenoop},1133:{n:"BrtBeginSlicerCachesPivotCacheID",f:parsenoop},1134:{n:"BrtEndSlicerCachesPivotCacheID",f:parsenoop},1135:{n:"BrtBeginConditionalFormattings",f:parsenoop},1136:{n:"BrtEndConditionalFormattings",f:parsenoop},1137:{n:"BrtBeginPCDCalcMemExt",f:parsenoop},1138:{n:"BrtEndPCDCalcMemExt",f:parsenoop},1139:{n:"BrtBeginPCDCalcMemsExt",f:parsenoop},1140:{n:"BrtEndPCDCalcMemsExt",f:parsenoop},1141:{n:"BrtPCDField14",f:parsenoop},1142:{n:"BrtBeginSlicerStyles",f:parsenoop},1143:{n:"BrtEndSlicerStyles",f:parsenoop},1144:{n:"BrtBeginSlicerStyleElements",f:parsenoop},1145:{n:"BrtEndSlicerStyleElements",f:parsenoop},1146:{n:"BrtCFRuleExt",f:parsenoop},1147:{n:"BrtBeginSXCondFmt14",f:parsenoop},1148:{n:"BrtEndSXCondFmt14",f:parsenoop},1149:{n:"BrtBeginSXCondFmts14",f:parsenoop},1150:{n:"BrtEndSXCondFmts14",f:parsenoop},1152:{n:"BrtBeginSortCond14",f:parsenoop},1153:{n:"BrtEndSortCond14",f:parsenoop},1154:{n:"BrtEndDVals14",f:parsenoop},1155:{n:"BrtEndIconSet14",f:parsenoop},1156:{n:"BrtEndDatabar14",f:parsenoop},1157:{n:"BrtBeginColorScale14",f:parsenoop},1158:{n:"BrtEndColorScale14",f:parsenoop},1159:{n:"BrtBeginSxrules14",f:parsenoop},1160:{n:"BrtEndSxrules14",f:parsenoop},1161:{n:"BrtBeginPRule14",f:parsenoop},1162:{n:"BrtEndPRule14",f:parsenoop},1163:{n:"BrtBeginPRFilters14",f:parsenoop},1164:{n:"BrtEndPRFilters14",f:parsenoop},1165:{n:"BrtBeginPRFilter14",f:parsenoop},1166:{n:"BrtEndPRFilter14",f:parsenoop},1167:{n:"BrtBeginPRFItem14",f:parsenoop},1168:{n:"BrtEndPRFItem14",f:parsenoop},1169:{n:"BrtBeginCellIgnoreECs14",f:parsenoop},1170:{n:"BrtEndCellIgnoreECs14",f:parsenoop},1171:{n:"BrtDxf14",f:parsenoop},1172:{n:"BrtBeginDxF14s",f:parsenoop},1173:{n:"BrtEndDxf14s",f:parsenoop},1177:{n:"BrtFilter14",f:parsenoop},1178:{n:"BrtBeginCustomFilters14",f:parsenoop},1180:{n:"BrtCustomFilter14",f:parsenoop},1181:{n:"BrtIconFilter14",f:parsenoop},1182:{n:"BrtPivotCacheConnectionName",f:parsenoop},2048:{n:"BrtBeginDecoupledPivotCacheIDs",f:parsenoop},2049:{n:"BrtEndDecoupledPivotCacheIDs",f:parsenoop},2050:{n:"BrtDecoupledPivotCacheID",f:parsenoop},2051:{n:"BrtBeginPivotTableRefs",f:parsenoop},2052:{n:"BrtEndPivotTableRefs",f:parsenoop},2053:{n:"BrtPivotTableRef",f:parsenoop},2054:{n:"BrtSlicerCacheBookPivotTables",f:parsenoop},2055:{n:"BrtBeginSxvcells",f:parsenoop},2056:{n:"BrtEndSxvcells",f:parsenoop},2057:{n:"BrtBeginSxRow",f:parsenoop},2058:{n:"BrtEndSxRow",f:parsenoop},2060:{n:"BrtPcdCalcMem15",f:parsenoop},2067:{n:"BrtQsi15",f:parsenoop},2068:{n:"BrtBeginWebExtensions",f:parsenoop},2069:{n:"BrtEndWebExtensions",f:parsenoop},2070:{n:"BrtWebExtension",f:parsenoop},2071:{n:"BrtAbsPath15",f:parsenoop},2072:{n:"BrtBeginPivotTableUISettings",f:parsenoop},2073:{n:"BrtEndPivotTableUISettings",f:parsenoop},2075:{n:"BrtTableSlicerCacheIDs",f:parsenoop},2076:{n:"BrtTableSlicerCacheID",f:parsenoop},2077:{n:"BrtBeginTableSlicerCache",f:parsenoop},2078:{n:"BrtEndTableSlicerCache",f:parsenoop},2079:{n:"BrtSxFilter15",f:parsenoop},2080:{n:"BrtBeginTimelineCachePivotCacheIDs",f:parsenoop},2081:{n:"BrtEndTimelineCachePivotCacheIDs",f:parsenoop},2082:{n:"BrtTimelineCachePivotCacheID",f:parsenoop},2083:{n:"BrtBeginTimelineCacheIDs",f:parsenoop},2084:{n:"BrtEndTimelineCacheIDs",f:parsenoop},2085:{n:"BrtBeginTimelineCacheID",f:parsenoop},2086:{n:"BrtEndTimelineCacheID",f:parsenoop},2087:{n:"BrtBeginTimelinesEx",f:parsenoop},2088:{n:"BrtEndTimelinesEx",f:parsenoop},2089:{n:"BrtBeginTimelineEx",f:parsenoop},2090:{n:"BrtEndTimelineEx",f:parsenoop},2091:{n:"BrtWorkBookPr15",f:parsenoop},2092:{n:"BrtPCDH15",f:parsenoop},2093:{n:"BrtBeginTimelineStyle",f:parsenoop},2094:{n:"BrtEndTimelineStyle",f:parsenoop},2095:{n:"BrtTimelineStyleElement",f:parsenoop},2096:{n:"BrtBeginTimelineStylesheetExt15",f:parsenoop},2097:{n:"BrtEndTimelineStylesheetExt15",f:parsenoop},2098:{n:"BrtBeginTimelineStyles",f:parsenoop},2099:{n:"BrtEndTimelineStyles",f:parsenoop},2100:{n:"BrtBeginTimelineStyleElements",f:parsenoop},2101:{n:"BrtEndTimelineStyleElements",f:parsenoop},2102:{n:"BrtDxf15",f:parsenoop},2103:{n:"BrtBeginDxfs15",f:parsenoop},2104:{n:"brtEndDxfs15",f:parsenoop},2105:{n:"BrtSlicerCacheHideItemsWithNoData",f:parsenoop},2106:{n:"BrtBeginItemUniqueNames",f:parsenoop},2107:{n:"BrtEndItemUniqueNames",f:parsenoop},2108:{n:"BrtItemUniqueName",f:parsenoop},2109:{n:"BrtBeginExtConn15",f:parsenoop},2110:{n:"BrtEndExtConn15",f:parsenoop},2111:{n:"BrtBeginOledbPr15",f:parsenoop},2112:{n:"BrtEndOledbPr15",f:parsenoop},2113:{n:"BrtBeginDataFeedPr15",f:parsenoop},2114:{n:"BrtEndDataFeedPr15",f:parsenoop},2115:{n:"BrtTextPr15",f:parsenoop},2116:{n:"BrtRangePr15",f:parsenoop},2117:{n:"BrtDbCommand15",f:parsenoop},2118:{n:"BrtBeginDbTables15",f:parsenoop},2119:{n:"BrtEndDbTables15",f:parsenoop},2120:{n:"BrtDbTable15",f:parsenoop},2121:{n:"BrtBeginDataModel",f:parsenoop},2122:{n:"BrtEndDataModel",f:parsenoop},2123:{n:"BrtBeginModelTables",f:parsenoop},2124:{n:"BrtEndModelTables",f:parsenoop},2125:{n:"BrtModelTable",f:parsenoop},2126:{n:"BrtBeginModelRelationships",f:parsenoop},2127:{n:"BrtEndModelRelationships",f:parsenoop},2128:{n:"BrtModelRelationship",f:parsenoop},2129:{n:"BrtBeginECTxtWiz15",f:parsenoop},2130:{n:"BrtEndECTxtWiz15",f:parsenoop},2131:{n:"BrtBeginECTWFldInfoLst15",f:parsenoop},2132:{n:"BrtEndECTWFldInfoLst15",f:parsenoop},2133:{n:"BrtBeginECTWFldInfo15",f:parsenoop},2134:{n:"BrtFieldListActiveItem",f:parsenoop},2135:{n:"BrtPivotCacheIdVersion",f:parsenoop},2136:{n:"BrtSXDI15",f:parsenoop},65535:{n:"",f:parsenoop}}; +var evert_RE=evert_key(XLSBRecordEnum,"n");var XLSRecordEnum={3:{n:"BIFF2NUM",f:parse_BIFF2NUM},4:{n:"BIFF2STR",f:parse_BIFF2STR},6:{n:"Formula",f:parse_Formula},9:{n:"BOF",f:parse_BOF},10:{n:"EOF",f:parse_EOF},12:{n:"CalcCount",f:parse_CalcCount},13:{n:"CalcMode",f:parse_CalcMode},14:{n:"CalcPrecision",f:parse_CalcPrecision},15:{n:"CalcRefMode",f:parse_CalcRefMode},16:{n:"CalcDelta",f:parse_CalcDelta},17:{n:"CalcIter",f:parse_CalcIter},18:{n:"Protect",f:parse_Protect},19:{n:"Password",f:parse_Password},20:{n:"Header",f:parse_Header},21:{n:"Footer",f:parse_Footer},23:{n:"ExternSheet",f:parse_ExternSheet},24:{n:"Lbl",f:parse_Lbl},25:{n:"WinProtect",f:parse_WinProtect},26:{n:"VerticalPageBreaks",f:parse_VerticalPageBreaks},27:{n:"HorizontalPageBreaks",f:parse_HorizontalPageBreaks},28:{n:"Note",f:parse_Note},29:{n:"Selection",f:parse_Selection},34:{n:"Date1904",f:parse_Date1904},35:{n:"ExternName",f:parse_ExternName},38:{n:"LeftMargin",f:parse_LeftMargin},39:{n:"RightMargin",f:parse_RightMargin},40:{n:"TopMargin",f:parse_TopMargin},41:{n:"BottomMargin",f:parse_BottomMargin},42:{n:"PrintRowCol",f:parse_PrintRowCol},43:{n:"PrintGrid",f:parse_PrintGrid},47:{n:"FilePass",f:parse_FilePass},49:{n:"Font",f:parse_Font},51:{n:"PrintSize",f:parse_PrintSize},60:{n:"Continue",f:parse_Continue},61:{n:"Window1",f:parse_Window1},64:{n:"Backup",f:parse_Backup},65:{n:"Pane",f:parse_Pane},66:{n:"CodePage",f:parse_CodePage},77:{n:"Pls",f:parse_Pls},80:{n:"DCon",f:parse_DCon},81:{n:"DConRef",f:parse_DConRef},82:{n:"DConName",f:parse_DConName},85:{n:"DefColWidth",f:parse_DefColWidth},89:{n:"XCT",f:parse_XCT},90:{n:"CRN",f:parse_CRN},91:{n:"FileSharing",f:parse_FileSharing},92:{n:"WriteAccess",f:parse_WriteAccess},93:{n:"Obj",f:parse_Obj},94:{n:"Uncalced",f:parse_Uncalced},95:{n:"CalcSaveRecalc",f:parse_CalcSaveRecalc},96:{n:"Template",f:parse_Template},97:{n:"Intl",f:parse_Intl},99:{n:"ObjProtect",f:parse_ObjProtect},125:{n:"ColInfo",f:parse_ColInfo},128:{n:"Guts",f:parse_Guts},129:{n:"WsBool",f:parse_WsBool},130:{n:"GridSet",f:parse_GridSet},131:{n:"HCenter",f:parse_HCenter},132:{n:"VCenter",f:parse_VCenter},133:{n:"BoundSheet8",f:parse_BoundSheet8},134:{n:"WriteProtect",f:parse_WriteProtect},140:{n:"Country",f:parse_Country},141:{n:"HideObj",f:parse_HideObj},144:{n:"Sort",f:parse_Sort},146:{n:"Palette",f:parse_Palette},151:{n:"Sync",f:parse_Sync},152:{n:"LPr",f:parse_LPr},153:{n:"DxGCol",f:parse_DxGCol},154:{n:"FnGroupName",f:parse_FnGroupName},155:{n:"FilterMode",f:parse_FilterMode},156:{n:"BuiltInFnGroupCount",f:parse_BuiltInFnGroupCount},157:{n:"AutoFilterInfo",f:parse_AutoFilterInfo},158:{n:"AutoFilter",f:parse_AutoFilter},160:{n:"Scl",f:parse_Scl},161:{n:"Setup",f:parse_Setup},174:{n:"ScenMan",f:parse_ScenMan},175:{n:"SCENARIO",f:parse_SCENARIO},176:{n:"SxView",f:parse_SxView},177:{n:"Sxvd",f:parse_Sxvd},178:{n:"SXVI",f:parse_SXVI},180:{n:"SxIvd",f:parse_SxIvd},181:{n:"SXLI",f:parse_SXLI},182:{n:"SXPI",f:parse_SXPI},184:{n:"DocRoute",f:parse_DocRoute},185:{n:"RecipName",f:parse_RecipName},189:{n:"MulRk",f:parse_MulRk},190:{n:"MulBlank",f:parse_MulBlank},193:{n:"Mms",f:parse_Mms},197:{n:"SXDI",f:parse_SXDI},198:{n:"SXDB",f:parse_SXDB},199:{n:"SXFDB",f:parse_SXFDB},200:{n:"SXDBB",f:parse_SXDBB},201:{n:"SXNum",f:parse_SXNum},202:{n:"SxBool",f:parse_SxBool},203:{n:"SxErr",f:parse_SxErr},204:{n:"SXInt",f:parse_SXInt},205:{n:"SXString",f:parse_SXString},206:{n:"SXDtr",f:parse_SXDtr},207:{n:"SxNil",f:parse_SxNil},208:{n:"SXTbl",f:parse_SXTbl},209:{n:"SXTBRGIITM",f:parse_SXTBRGIITM},210:{n:"SxTbpg",f:parse_SxTbpg},211:{n:"ObProj",f:parse_ObProj},213:{n:"SXStreamID",f:parse_SXStreamID},215:{n:"DBCell",f:parse_DBCell},216:{n:"SXRng",f:parse_SXRng},217:{n:"SxIsxoper",f:parse_SxIsxoper},218:{n:"BookBool",f:parse_BookBool},220:{n:"DbOrParamQry",f:parse_DbOrParamQry},221:{n:"ScenarioProtect",f:parse_ScenarioProtect},222:{n:"OleObjectSize",f:parse_OleObjectSize},224:{n:"XF",f:parse_XF},225:{n:"InterfaceHdr",f:parse_InterfaceHdr},226:{n:"InterfaceEnd",f:parse_InterfaceEnd},227:{n:"SXVS",f:parse_SXVS},229:{n:"MergeCells",f:parse_MergeCells},233:{n:"BkHim",f:parse_BkHim},235:{n:"MsoDrawingGroup",f:parse_MsoDrawingGroup},236:{n:"MsoDrawing",f:parse_MsoDrawing},237:{n:"MsoDrawingSelection",f:parse_MsoDrawingSelection},239:{n:"PhoneticInfo",f:parse_PhoneticInfo},240:{n:"SxRule",f:parse_SxRule},241:{n:"SXEx",f:parse_SXEx},242:{n:"SxFilt",f:parse_SxFilt},244:{n:"SxDXF",f:parse_SxDXF},245:{n:"SxItm",f:parse_SxItm},246:{n:"SxName",f:parse_SxName},247:{n:"SxSelect",f:parse_SxSelect},248:{n:"SXPair",f:parse_SXPair},249:{n:"SxFmla",f:parse_SxFmla},251:{n:"SxFormat",f:parse_SxFormat},252:{n:"SST",f:parse_SST},253:{n:"LabelSst",f:parse_LabelSst},255:{n:"ExtSST",f:parse_ExtSST},256:{n:"SXVDEx",f:parse_SXVDEx},259:{n:"SXFormula",f:parse_SXFormula},290:{n:"SXDBEx",f:parse_SXDBEx},311:{n:"RRDInsDel",f:parse_RRDInsDel},312:{n:"RRDHead",f:parse_RRDHead},315:{n:"RRDChgCell",f:parse_RRDChgCell},317:{n:"RRTabId",f:parse_RRTabId},318:{n:"RRDRenSheet",f:parse_RRDRenSheet},319:{n:"RRSort",f:parse_RRSort},320:{n:"RRDMove",f:parse_RRDMove},330:{n:"RRFormat",f:parse_RRFormat},331:{n:"RRAutoFmt",f:parse_RRAutoFmt},333:{n:"RRInsertSh",f:parse_RRInsertSh},334:{n:"RRDMoveBegin",f:parse_RRDMoveBegin},335:{n:"RRDMoveEnd",f:parse_RRDMoveEnd},336:{n:"RRDInsDelBegin",f:parse_RRDInsDelBegin},337:{n:"RRDInsDelEnd",f:parse_RRDInsDelEnd},338:{n:"RRDConflict",f:parse_RRDConflict},339:{n:"RRDDefName",f:parse_RRDDefName},340:{n:"RRDRstEtxp",f:parse_RRDRstEtxp},351:{n:"LRng",f:parse_LRng},352:{n:"UsesELFs",f:parse_UsesELFs},353:{n:"DSF",f:parse_DSF},401:{n:"CUsr",f:parse_CUsr},402:{n:"CbUsr",f:parse_CbUsr},403:{n:"UsrInfo",f:parse_UsrInfo},404:{n:"UsrExcl",f:parse_UsrExcl},405:{n:"FileLock",f:parse_FileLock},406:{n:"RRDInfo",f:parse_RRDInfo},407:{n:"BCUsrs",f:parse_BCUsrs},408:{n:"UsrChk",f:parse_UsrChk},425:{n:"UserBView",f:parse_UserBView},426:{n:"UserSViewBegin",f:parse_UserSViewBegin},427:{n:"UserSViewEnd",f:parse_UserSViewEnd},428:{n:"RRDUserView",f:parse_RRDUserView},429:{n:"Qsi",f:parse_Qsi},430:{n:"SupBook",f:parse_SupBook},431:{n:"Prot4Rev",f:parse_Prot4Rev},432:{n:"CondFmt",f:parse_CondFmt},433:{n:"CF",f:parse_CF},434:{n:"DVal",f:parse_DVal},437:{n:"DConBin",f:parse_DConBin},438:{n:"TxO",f:parse_TxO},439:{n:"RefreshAll",f:parse_RefreshAll},440:{n:"HLink",f:parse_HLink},441:{n:"Lel",f:parse_Lel},442:{n:"CodeName",f:parse_XLSCodeName},443:{n:"SXFDBType",f:parse_SXFDBType},444:{n:"Prot4RevPass",f:parse_Prot4RevPass},445:{n:"ObNoMacros",f:parse_ObNoMacros},446:{n:"Dv",f:parse_Dv},448:{n:"Excel9File",f:parse_Excel9File},449:{n:"RecalcId",f:parse_RecalcId,r:2},450:{n:"EntExU2",f:parse_EntExU2},512:{n:"Dimensions",f:parse_Dimensions},513:{n:"Blank",f:parse_Blank},515:{n:"Number",f:parse_Number},516:{n:"Label",f:parse_Label},517:{n:"BoolErr",f:parse_BoolErr},519:{n:"String",f:parse_String},520:{n:"Row",f:parse_Row},523:{n:"Index",f:parse_Index},545:{n:"Array",f:parse_Array},549:{n:"DefaultRowHeight",f:parse_DefaultRowHeight},566:{n:"Table",f:parse_Table},574:{n:"Window2",f:parse_Window2},638:{n:"RK",f:parse_RK},659:{n:"Style",f:parse_Style},1048:{n:"BigName",f:parse_BigName},1054:{n:"Format",f:parse_Format},1084:{n:"ContinueBigName",f:parse_ContinueBigName},1212:{n:"ShrFmla",f:parse_ShrFmla},2048:{n:"HLinkTooltip",f:parse_HLinkTooltip},2049:{n:"WebPub",f:parse_WebPub},2050:{n:"QsiSXTag",f:parse_QsiSXTag},2051:{n:"DBQueryExt",f:parse_DBQueryExt},2052:{n:"ExtString",f:parse_ExtString},2053:{n:"TxtQry",f:parse_TxtQry},2054:{n:"Qsir",f:parse_Qsir},2055:{n:"Qsif",f:parse_Qsif},2056:{n:"RRDTQSIF",f:parse_RRDTQSIF},2057:{n:"BOF",f:parse_BOF},2058:{n:"OleDbConn",f:parse_OleDbConn},2059:{n:"WOpt",f:parse_WOpt},2060:{n:"SXViewEx",f:parse_SXViewEx},2061:{n:"SXTH",f:parse_SXTH},2062:{n:"SXPIEx",f:parse_SXPIEx},2063:{n:"SXVDTEx",f:parse_SXVDTEx},2064:{n:"SXViewEx9",f:parse_SXViewEx9},2066:{n:"ContinueFrt",f:parse_ContinueFrt},2067:{n:"RealTimeData",f:parse_RealTimeData},2128:{n:"ChartFrtInfo",f:parse_ChartFrtInfo},2129:{n:"FrtWrapper",f:parse_FrtWrapper},2130:{n:"StartBlock",f:parse_StartBlock},2131:{n:"EndBlock",f:parse_EndBlock},2132:{n:"StartObject",f:parse_StartObject},2133:{n:"EndObject",f:parse_EndObject},2134:{n:"CatLab",f:parse_CatLab},2135:{n:"YMult",f:parse_YMult},2136:{n:"SXViewLink",f:parse_SXViewLink},2137:{n:"PivotChartBits",f:parse_PivotChartBits},2138:{n:"FrtFontList",f:parse_FrtFontList},2146:{n:"SheetExt",f:parse_SheetExt},2147:{n:"BookExt",f:parse_BookExt,r:12},2148:{n:"SXAddl",f:parse_SXAddl},2149:{n:"CrErr",f:parse_CrErr},2150:{n:"HFPicture",f:parse_HFPicture},2151:{n:"FeatHdr",f:parse_FeatHdr},2152:{n:"Feat",f:parse_Feat},2154:{n:"DataLabExt",f:parse_DataLabExt},2155:{n:"DataLabExtContents",f:parse_DataLabExtContents},2156:{n:"CellWatch",f:parse_CellWatch},2161:{n:"FeatHdr11",f:parse_FeatHdr11},2162:{n:"Feature11",f:parse_Feature11},2164:{n:"DropDownObjIds",f:parse_DropDownObjIds},2165:{n:"ContinueFrt11",f:parse_ContinueFrt11},2166:{n:"DConn",f:parse_DConn},2167:{n:"List12",f:parse_List12},2168:{n:"Feature12",f:parse_Feature12},2169:{n:"CondFmt12",f:parse_CondFmt12},2170:{n:"CF12",f:parse_CF12},2171:{n:"CFEx",f:parse_CFEx},2172:{n:"XFCRC",f:parse_XFCRC,r:12},2173:{n:"XFExt",f:parse_XFExt,r:12},2174:{n:"AutoFilter12",f:parse_AutoFilter12},2175:{n:"ContinueFrt12",f:parse_ContinueFrt12},2180:{n:"MDTInfo",f:parse_MDTInfo},2181:{n:"MDXStr",f:parse_MDXStr},2182:{n:"MDXTuple",f:parse_MDXTuple},2183:{n:"MDXSet",f:parse_MDXSet},2184:{n:"MDXProp",f:parse_MDXProp},2185:{n:"MDXKPI",f:parse_MDXKPI},2186:{n:"MDB",f:parse_MDB},2187:{n:"PLV",f:parse_PLV},2188:{n:"Compat12",f:parse_Compat12,r:12},2189:{n:"DXF",f:parse_DXF},2190:{n:"TableStyles",f:parse_TableStyles,r:12},2191:{n:"TableStyle",f:parse_TableStyle},2192:{n:"TableStyleElement",f:parse_TableStyleElement},2194:{n:"StyleExt",f:parse_StyleExt},2195:{n:"NamePublish",f:parse_NamePublish},2196:{n:"NameCmt",f:parse_NameCmt},2197:{n:"SortData",f:parse_SortData},2198:{n:"Theme",f:parse_Theme,r:12},2199:{n:"GUIDTypeLib",f:parse_GUIDTypeLib},2200:{n:"FnGrp12",f:parse_FnGrp12},2201:{n:"NameFnGrp12",f:parse_NameFnGrp12},2202:{n:"MTRSettings",f:parse_MTRSettings,r:12},2203:{n:"CompressPictures",f:parse_CompressPictures},2204:{n:"HeaderFooter",f:parse_HeaderFooter},2205:{n:"CrtLayout12",f:parse_CrtLayout12},2206:{n:"CrtMlFrt",f:parse_CrtMlFrt},2207:{n:"CrtMlFrtContinue",f:parse_CrtMlFrtContinue},2211:{n:"ForceFullCalculation",f:parse_ForceFullCalculation},2212:{n:"ShapePropsStream",f:parse_ShapePropsStream},2213:{n:"TextPropsStream",f:parse_TextPropsStream},2214:{n:"RichTextStream",f:parse_RichTextStream},2215:{n:"CrtLayout12A",f:parse_CrtLayout12A},4097:{n:"Units",f:parse_Units},4098:{n:"Chart",f:parse_Chart},4099:{n:"Series",f:parse_Series},4102:{n:"DataFormat",f:parse_DataFormat},4103:{n:"LineFormat",f:parse_LineFormat},4105:{n:"MarkerFormat",f:parse_MarkerFormat},4106:{n:"AreaFormat",f:parse_AreaFormat},4107:{n:"PieFormat",f:parse_PieFormat},4108:{n:"AttachedLabel",f:parse_AttachedLabel},4109:{n:"SeriesText",f:parse_SeriesText},4116:{n:"ChartFormat",f:parse_ChartFormat},4117:{n:"Legend",f:parse_Legend},4118:{n:"SeriesList",f:parse_SeriesList},4119:{n:"Bar",f:parse_Bar},4120:{n:"Line",f:parse_Line},4121:{n:"Pie",f:parse_Pie},4122:{n:"Area",f:parse_Area},4123:{n:"Scatter",f:parse_Scatter},4124:{n:"CrtLine",f:parse_CrtLine},4125:{n:"Axis",f:parse_Axis},4126:{n:"Tick",f:parse_Tick},4127:{n:"ValueRange",f:parse_ValueRange},4128:{n:"CatSerRange",f:parse_CatSerRange},4129:{n:"AxisLine",f:parse_AxisLine},4130:{n:"CrtLink",f:parse_CrtLink},4132:{n:"DefaultText",f:parse_DefaultText},4133:{n:"Text",f:parse_Text},4134:{n:"FontX",f:parse_FontX},4135:{n:"ObjectLink",f:parse_ObjectLink},4146:{n:"Frame",f:parse_Frame},4147:{n:"Begin",f:parse_Begin},4148:{n:"End",f:parse_End},4149:{n:"PlotArea",f:parse_PlotArea},4154:{n:"Chart3d",f:parse_Chart3d},4156:{n:"PicF",f:parse_PicF},4157:{n:"DropBar",f:parse_DropBar},4158:{n:"Radar",f:parse_Radar},4159:{n:"Surf",f:parse_Surf},4160:{n:"RadarArea",f:parse_RadarArea},4161:{n:"AxisParent",f:parse_AxisParent},4163:{n:"LegendException",f:parse_LegendException},4164:{n:"ShtProps",f:parse_ShtProps},4165:{n:"SerToCrt",f:parse_SerToCrt},4166:{n:"AxesUsed",f:parse_AxesUsed},4168:{n:"SBaseRef",f:parse_SBaseRef},4170:{n:"SerParent",f:parse_SerParent},4171:{n:"SerAuxTrend",f:parse_SerAuxTrend},4174:{n:"IFmtRecord",f:parse_IFmtRecord},4175:{n:"Pos",f:parse_Pos},4176:{n:"AlRuns",f:parse_AlRuns},4177:{n:"BRAI",f:parse_BRAI},4187:{n:"SerAuxErrBar",f:parse_SerAuxErrBar},4188:{n:"ClrtClient",f:parse_ClrtClient},4189:{n:"SerFmt",f:parse_SerFmt},4191:{n:"Chart3DBarShape",f:parse_Chart3DBarShape},4192:{n:"Fbi",f:parse_Fbi},4193:{n:"BopPop",f:parse_BopPop},4194:{n:"AxcExt",f:parse_AxcExt},4195:{n:"Dat",f:parse_Dat},4196:{n:"PlotGrowth",f:parse_PlotGrowth},4197:{n:"SIIndex",f:parse_SIIndex},4198:{n:"GelFrame",f:parse_GelFrame},4199:{n:"BopPopCustom",f:parse_BopPopCustom},4200:{n:"Fbi2",f:parse_Fbi2},22:{n:"ExternCount",f:parsenoop},126:{n:"RK",f:parsenoop},127:{n:"ImData",f:parsenoop},135:{n:"Addin",f:parsenoop},136:{n:"Edg",f:parsenoop},137:{n:"Pub",f:parsenoop},145:{n:"Sub",f:parsenoop},148:{n:"LHRecord",f:parsenoop},149:{n:"LHNGraph",f:parsenoop},150:{n:"Sound",f:parsenoop},169:{n:"CoordList",f:parsenoop},171:{n:"GCW",f:parsenoop},188:{n:"ShrFmla",f:parsenoop},194:{n:"AddMenu",f:parsenoop},195:{n:"DelMenu",f:parsenoop},214:{n:"RString",f:parsenoop},223:{n:"UDDesc",f:parsenoop},234:{n:"TabIdConf",f:parsenoop},354:{n:"XL5Modify",f:parsenoop},421:{n:"FileSharing2",f:parsenoop},536:{n:"Name",f:parsenoop},547:{n:"ExternName",f:parse_ExternName},561:{n:"Font",f:parsenoop},1030:{n:"Formula",f:parse_Formula},2157:{n:"FeatInfo",f:parsenoop},2163:{n:"FeatInfo11",f:parsenoop},2177:{n:"SXAddl12",f:parsenoop},2240:{n:"AutoWebPub",f:parsenoop},2241:{n:"ListObj",f:parsenoop},2242:{n:"ListField",f:parsenoop},2243:{n:"ListDV",f:parsenoop},2244:{n:"ListCondFmt",f:parsenoop},2245:{n:"ListCF",f:parsenoop},2246:{n:"FMQry",f:parsenoop},2247:{n:"FMSQry",f:parsenoop},2248:{n:"PLV",f:parsenoop},2249:{n:"LnExt",f:parsenoop},2250:{n:"MkrExt",f:parsenoop},2251:{n:"CrtCoopt",f:parsenoop},0:{}};function parse_ods(zip,opts){if(typeof module!=="undefined"&&typeof require!=="undefined"&&typeof ODS==="undefined")ODS=require("./od"+"s");if(typeof ODS==="undefined"||!ODS.parse_ods)throw new Error("Unsupported ODS");return ODS.parse_ods(zip,opts)}function fix_opts_func(defaults){return function fix_opts(opts){for(var i=0;i!=defaults.length;++i){var d=defaults[i];if(opts[d[0]]===undefined)opts[d[0]]=d[1];if(d[2]==="n")opts[d[0]]=Number(opts[d[0]])}}}var fix_read_opts=fix_opts_func([["cellNF",false],["cellHTML",true],["cellFormula",true],["cellStyles",false],["cellDates",false],["sheetStubs",false],["sheetRows",0,"n"],["bookDeps",false],["bookSheets",false],["bookProps",false],["bookFiles",false],["bookVBA",false],["password",""],["WTF",false]]);var fix_write_opts=fix_opts_func([["cellDates",false],["bookSST",false],["bookType","xlsx"],["WTF",false]]);function safe_parse_wbrels(wbrels,sheets){if(!wbrels)return 0;try{wbrels=sheets.map(function pwbr(w){return[w.name,wbrels["!id"][w.id].Target]})}catch(e){return null}return!wbrels||wbrels.length===0?null:wbrels}function safe_parse_ws(zip,path,relsPath,sheet,sheetRels,sheets,opts){try{sheetRels[sheet]=parse_rels(getzipdata(zip,relsPath,true),path);sheets[sheet]=parse_ws(getzipdata(zip,path),path,opts,sheetRels[sheet])}catch(e){if(opts.WTF)throw e}}var nodirs=function nodirs(x){return x.substr(-1)!="/"};function parse_zip(zip,opts){make_ssf(SSF);opts=opts||{};fix_read_opts(opts);reset_cp();if(safegetzipfile(zip,"META-INF/manifest.xml"))return parse_ods(zip,opts);var entries=keys(zip.files).filter(nodirs).sort();var dir=parse_ct(getzipdata(zip,"[Content_Types].xml"),opts);var xlsb=false;var sheets,binname;if(dir.workbooks.length===0){binname="xl/workbook.xml";if(getzipdata(zip,binname,true))dir.workbooks.push(binname)}if(dir.workbooks.length===0){binname="xl/workbook.bin";if(!getzipfile(zip,binname,true))throw new Error("Could not find workbook");dir.workbooks.push(binname);xlsb=true}if(dir.workbooks[0].substr(-3)=="bin")xlsb=true;if(xlsb)set_cp(1200);if(!opts.bookSheets&&!opts.bookProps){strs=[];if(dir.sst)strs=parse_sst(getzipdata(zip,dir.sst.replace(/^\//,"")),dir.sst,opts);styles={};if(dir.style)styles=parse_sty(getzipdata(zip,dir.style.replace(/^\//,"")),dir.style,opts);themes={};if(opts.cellStyles&&dir.themes.length)themes=parse_theme(getzipdata(zip,dir.themes[0].replace(/^\//,""),true),dir.themes[0],opts)}var wb=parse_wb(getzipdata(zip,dir.workbooks[0].replace(/^\//,"")),dir.workbooks[0],opts);var props={},propdata="";if(dir.coreprops.length!==0){propdata=getzipdata(zip,dir.coreprops[0].replace(/^\//,""),true);if(propdata)props=parse_core_props(propdata);if(dir.extprops.length!==0){propdata=getzipdata(zip,dir.extprops[0].replace(/^\//,""),true);if(propdata)parse_ext_props(propdata,props)}}var custprops={};if(!opts.bookSheets||opts.bookProps){if(dir.custprops.length!==0){propdata=getzipdata(zip,dir.custprops[0].replace(/^\//,""),true);if(propdata)custprops=parse_cust_props(propdata,opts)}}var out={};if(opts.bookSheets||opts.bookProps){if(props.Worksheets&&props.SheetNames.length>0)sheets=props.SheetNames;else if(wb.Sheets)sheets=wb.Sheets.map(function pluck(x){return x.name});if(opts.bookProps){out.Props=props;out.Custprops=custprops}if(typeof sheets!=="undefined")out.SheetNames=sheets;if(opts.bookSheets?out.SheetNames:opts.bookProps)return out}sheets={};var deps={};if(opts.bookDeps&&dir.calcchain)deps=parse_cc(getzipdata(zip,dir.calcchain.replace(/^\//,"")),dir.calcchain,opts);var i=0;var sheetRels={};var path,relsPath;if(!props.Worksheets){var wbsheets=wb.Sheets;props.Worksheets=wbsheets.length;props.SheetNames=[];for(var j=0;j!=wbsheets.length;++j){props.SheetNames[j]=wbsheets[j].name}}var wbext=xlsb?"bin":"xml";var wbrelsfile="xl/_rels/workbook."+wbext+".rels";var wbrels=parse_rels(getzipdata(zip,wbrelsfile,true),wbrelsfile);if(wbrels)wbrels=safe_parse_wbrels(wbrels,wb.Sheets);var nmode=getzipdata(zip,"xl/worksheets/sheet.xml",true)?1:0;for(i=0;i!=props.Worksheets;++i){if(wbrels)path="xl/"+wbrels[i][1].replace(/[\/]?xl\//,"");else{path="xl/worksheets/sheet"+(i+1-nmode)+"."+wbext;path=path.replace(/sheet0\./,"sheet.")}relsPath=path.replace(/^(.*)(\/)([^\/]*)$/,"$1/_rels/$3.rels");safe_parse_ws(zip,path,relsPath,props.SheetNames[i],sheetRels,sheets,opts)}if(dir.comments)parse_comments(zip,dir.comments,sheets,sheetRels,opts);out={Directory:dir,Workbook:wb,Props:props,Custprops:custprops,Deps:deps,Sheets:sheets,SheetNames:props.SheetNames,Strings:strs,Styles:styles,Themes:themes,SSF:SSF.get_table()};if(opts.bookFiles){out.keys=entries;out.files=zip.files}if(opts.bookVBA){if(dir.vba.length>0)out.vbaraw=getzipdata(zip,dir.vba[0],true);else if(dir.defaults.bin==="application/vnd.ms-office.vbaProject")out.vbaraw=getzipdata(zip,"xl/vbaProject.bin",true)}return out}function add_rels(rels,rId,f,type,relobj){if(!relobj)relobj={};if(!rels["!id"])rels["!id"]={};relobj.Id="rId"+rId;relobj.Type=type;relobj.Target=f;if(rels["!id"][relobj.Id])throw new Error("Cannot rewrite rId "+rId);rels["!id"][relobj.Id]=relobj;rels[("/"+relobj.Target).replace("//","/")]=relobj}function write_zip(wb,opts){if(wb&&!wb.SSF){wb.SSF=SSF.get_table()}if(wb&&wb.SSF){make_ssf(SSF);SSF.load_table(wb.SSF);opts.revssf=evert_num(wb.SSF);opts.revssf[wb.SSF[65535]]=0}opts.rels={};opts.wbrels={};opts.Strings=[];opts.Strings.Count=0;opts.Strings.Unique=0;var wbext=opts.bookType=="xlsb"?"bin":"xml";var ct={workbooks:[],sheets:[],calcchains:[],themes:[],styles:[],coreprops:[],extprops:[],custprops:[],strs:[],comments:[],vba:[],TODO:[],rels:[],xmlns:""};fix_write_opts(opts=opts||{});var zip=new jszip;var f="",rId=0;opts.cellXfs=[];get_cell_style(opts.cellXfs,{},{revssf:{General:0}});f="docProps/core.xml";zip.file(f,write_core_props(wb.Props,opts));ct.coreprops.push(f);add_rels(opts.rels,2,f,RELS.CORE_PROPS);f="docProps/app.xml";if(!wb.Props)wb.Props={};wb.Props.SheetNames=wb.SheetNames;wb.Props.Worksheets=wb.SheetNames.length;zip.file(f,write_ext_props(wb.Props,opts));ct.extprops.push(f);add_rels(opts.rels,3,f,RELS.EXT_PROPS);if(wb.Custprops!==wb.Props&&keys(wb.Custprops||{}).length>0){f="docProps/custom.xml";zip.file(f,write_cust_props(wb.Custprops,opts));ct.custprops.push(f);add_rels(opts.rels,4,f,RELS.CUST_PROPS)}f="xl/workbook."+wbext;zip.file(f,write_wb(wb,f,opts));ct.workbooks.push(f);add_rels(opts.rels,1,f,RELS.WB);for(rId=1;rId<=wb.SheetNames.length;++rId){f="xl/worksheets/sheet"+rId+"."+wbext;zip.file(f,write_ws(rId-1,f,opts,wb));ct.sheets.push(f);add_rels(opts.wbrels,rId,"worksheets/sheet"+rId+"."+wbext,RELS.WS)}if(opts.Strings!=null&&opts.Strings.length>0){f="xl/sharedStrings."+wbext;zip.file(f,write_sst(opts.Strings,f,opts));ct.strs.push(f);add_rels(opts.wbrels,++rId,"sharedStrings."+wbext,RELS.SST)}f="xl/theme/theme1.xml";zip.file(f,write_theme());ct.themes.push(f);add_rels(opts.wbrels,++rId,"theme/theme1.xml",RELS.THEME);f="xl/styles."+wbext;zip.file(f,write_sty(wb,f,opts));ct.styles.push(f);add_rels(opts.wbrels,++rId,"styles."+wbext,RELS.STY);zip.file("[Content_Types].xml",write_ct(ct,opts));zip.file("_rels/.rels",write_rels(opts.rels));zip.file("xl/_rels/workbook."+wbext+".rels",write_rels(opts.wbrels));return zip}function firstbyte(f,o){switch((o||{}).type||"base64"){case"buffer":return f[0];case"base64":return Base64.decode(f.substr(0,12)).charCodeAt(0);case"binary":return f.charCodeAt(0);case"array":return f[0];default:throw new Error("Unrecognized type "+o.type)}}function read_zip(data,opts){var zip,d=data;var o=opts||{};if(!o.type)o.type=has_buf&&Buffer.isBuffer(data)?"buffer":"base64";switch(o.type){case"base64":zip=new jszip(d,{base64:true});break;case"binary":case"array":zip=new jszip(d,{base64:false});break;case"buffer":zip=new jszip(d);break;case"file":zip=new jszip(d=_fs.readFileSync(data));break;default:throw new Error("Unrecognized type "+o.type)}return parse_zip(zip,o)}function readSync(data,opts){var zip,d=data,isfile=false,n;var o=opts||{};if(!o.type)o.type=has_buf&&Buffer.isBuffer(data)?"buffer":"base64";if(o.type=="file"){isfile=true;o.type="buffer";d=_fs.readFileSync(data)}switch(n=firstbyte(d,o)){case 208:if(isfile)o.type="file";return parse_xlscfb(CFB.read(data,o),o);case 9:return parse_xlscfb(s2a(o.type==="base64"?Base64.decode(data):data),o);case 60:return parse_xlml(d,o);case 80:if(isfile)o.type="file";return read_zip(data,opts);default:throw new Error("Unsupported file "+n)}}function readFileSync(data,opts){var o=opts||{};o.type="file";return readSync(data,o)}function write_zip_type(wb,opts){var o=opts||{};var z=write_zip(wb,o);switch(o.type){case"base64":return z.generate({type:"base64"});case"binary":return z.generate({type:"string"});case"buffer":return z.generate({type:"nodebuffer"});case"file":return _fs.writeFileSync(o.file,z.generate({type:"nodebuffer"}));default:throw new Error("Unrecognized type "+o.type)}}function writeSync(wb,opts){var o=opts||{};switch(o.bookType){case"xml":return write_xlml(wb,o);default:return write_zip_type(wb,o)}}function writeFileSync(wb,filename,opts){var o=opts||{};o.type="file";o.file=filename;switch(o.file.substr(-5).toLowerCase()){case".xlsx":o.bookType="xlsx";break;case".xlsm":o.bookType="xlsm";break;case".xlsb":o.bookType="xlsb";break;default:switch(o.file.substr(-4).toLowerCase()){case".xls":o.bookType="xls";break;case".xml":o.bookType="xml";break}}return writeSync(wb,o)}function decode_row(rowstr){return parseInt(unfix_row(rowstr),10)-1}function encode_row(row){return""+(row+1)}function fix_row(cstr){return cstr.replace(/([A-Z]|^)(\d+)$/,"$1$$$2")}function unfix_row(cstr){return cstr.replace(/\$(\d+)$/,"$1")}function decode_col(colstr){var c=unfix_col(colstr),d=0,i=0;for(;i!==c.length;++i)d=26*d+c.charCodeAt(i)-64;return d-1}function encode_col(col){var s="";for(++col;col;col=Math.floor((col-1)/26))s=String.fromCharCode((col-1)%26+65)+s;return s}function fix_col(cstr){return cstr.replace(/^([A-Z])/,"$$$1")}function unfix_col(cstr){return cstr.replace(/^\$([A-Z])/,"$1")}function split_cell(cstr){return cstr.replace(/(\$?[A-Z]*)(\$?\d*)/,"$1,$2").split(",")}function decode_cell(cstr){var splt=split_cell(cstr);return{c:decode_col(splt[0]),r:decode_row(splt[1])}}function encode_cell(cell){return encode_col(cell.c)+encode_row(cell.r)}function fix_cell(cstr){return fix_col(fix_row(cstr))}function unfix_cell(cstr){return unfix_col(unfix_row(cstr))}function decode_range(range){var x=range.split(":").map(decode_cell);return{s:x[0],e:x[x.length-1]}}function encode_range(cs,ce){if(ce===undefined||typeof ce==="number")return encode_range(cs.s,cs.e);if(typeof cs!=="string")cs=encode_cell(cs);if(typeof ce!=="string")ce=encode_cell(ce);return cs==ce?cs:cs+":"+ce}function safe_decode_range(range){var o={s:{c:0,r:0},e:{c:0,r:0}};var idx=0,i=0,cc=0;var len=range.length;for(idx=0;i<len;++i){if((cc=range.charCodeAt(i)-64)<1||cc>26)break;idx=26*idx+cc}o.s.c=--idx;for(idx=0;i<len;++i){if((cc=range.charCodeAt(i)-48)<0||cc>9)break;idx=10*idx+cc}o.s.r=--idx;if(i===len||range.charCodeAt(++i)===58){o.e.c=o.s.c;o.e.r=o.s.r;return o}for(idx=0;i!=len;++i){if((cc=range.charCodeAt(i)-64)<1||cc>26)break;idx=26*idx+cc}o.e.c=--idx;for(idx=0;i!=len;++i){if((cc=range.charCodeAt(i)-48)<0||cc>9)break;idx=10*idx+cc}o.e.r=--idx;return o}function safe_format_cell(cell,v){if(cell.z!==undefined)try{return cell.w=SSF.format(cell.z,v)}catch(e){}if(!cell.XF)return v;try{return cell.w=SSF.format(cell.XF.ifmt||0,v)}catch(e){return""+v}}function format_cell(cell,v){if(cell==null||cell.t==null)return"";if(cell.w!==undefined)return cell.w;if(v===undefined)return safe_format_cell(cell,cell.v);return safe_format_cell(cell,v)}function sheet_to_json(sheet,opts){var val,row,range,header=0,offset=1,r,hdr=[],isempty,R,C,v;var o=opts!=null?opts:{};var raw=o.raw;if(sheet==null||sheet["!ref"]==null)return[];range=o.range!==undefined?o.range:sheet["!ref"];if(o.header===1)header=1;else if(o.header==="A")header=2;else if(Array.isArray(o.header))header=3;switch(typeof range){case"string":r=safe_decode_range(range);break;case"number":r=safe_decode_range(sheet["!ref"]);r.s.r=range;break;default:r=range}if(header>0)offset=0;var rr=encode_row(r.s.r);var cols=new Array(r.e.c-r.s.c+1);var out=new Array(r.e.r-r.s.r-offset+1);var outi=0;for(C=r.s.c;C<=r.e.c;++C){cols[C]=encode_col(C);val=sheet[cols[C]+rr];switch(header){case 1:hdr[C]=C;break;case 2:hdr[C]=cols[C];break;case 3:hdr[C]=o.header[C-r.s.c];break;default:if(val===undefined)continue;hdr[C]=format_cell(val)}}for(R=r.s.r+offset;R<=r.e.r;++R){rr=encode_row(R);isempty=true;if(header===1)row=[];else{row={};if(Object.defineProperty)Object.defineProperty(row,"__rowNum__",{value:R,enumerable:false});else row.__rowNum__=R}for(C=r.s.c;C<=r.e.c;++C){val=sheet[cols[C]+rr];if(val===undefined||val.t===undefined)continue;v=val.v;switch(val.t){case"e":continue;case"s":break;case"b":case"n":break;default:throw"unrecognized type "+val.t}if(v!==undefined){row[hdr[C]]=raw?v:format_cell(val,v);isempty=false}}if(isempty===false||header===1)out[outi++]=row}out.length=outi;return out}function sheet_to_row_object_array(sheet,opts){return sheet_to_json(sheet,opts!=null?opts:{})}function sheet_to_csv(sheet,opts){var out="",txt="",qreg=/"/g;var o=opts==null?{}:opts;if(sheet==null||sheet["!ref"]==null)return"";var r=safe_decode_range(sheet["!ref"]);var FS=o.FS!==undefined?o.FS:",",fs=FS.charCodeAt(0);var RS=o.RS!==undefined?o.RS:"\n",rs=RS.charCodeAt(0);var row="",rr="",cols=[];var i=0,cc=0,val;var R=0,C=0;for(C=r.s.c;C<=r.e.c;++C)cols[C]=encode_col(C);for(R=r.s.r;R<=r.e.r;++R){row="";rr=encode_row(R);for(C=r.s.c;C<=r.e.c;++C){val=sheet[cols[C]+rr];txt=val!==undefined?""+format_cell(val):"";for(i=0,cc=0;i!==txt.length;++i)if((cc=txt.charCodeAt(i))===fs||cc===rs||cc===34){txt='"'+txt.replace(qreg,'""')+'"';break}row+=(C===r.s.c?"":FS)+txt}out+=row+RS}return out}var make_csv=sheet_to_csv;function sheet_to_formulae(sheet){var cmds,y="",x,val="";if(sheet==null||sheet["!ref"]==null)return"";var r=safe_decode_range(sheet["!ref"]),rr="",cols=[],C;cmds=new Array((r.e.r-r.s.r+1)*(r.e.c-r.s.c+1));var i=0;for(C=r.s.c;C<=r.e.c;++C)cols[C]=encode_col(C);for(var R=r.s.r;R<=r.e.r;++R){rr=encode_row(R);for(C=r.s.c;C<=r.e.c;++C){y=cols[C]+rr;x=sheet[y];val="";if(x===undefined)continue;if(x.f!=null)val=x.f;else if(x.w!==undefined)val="'"+x.w;else if(x.v===undefined)continue;else val=""+x.v;cmds[i++]=y+"="+val}}cmds.length=i;return cmds}var utils={encode_col:encode_col,encode_row:encode_row,encode_cell:encode_cell,encode_range:encode_range,decode_col:decode_col,decode_row:decode_row,split_cell:split_cell,decode_cell:decode_cell,decode_range:decode_range,format_cell:format_cell,get_formulae:sheet_to_formulae,make_csv:sheet_to_csv,make_json:sheet_to_json,make_formulae:sheet_to_formulae,sheet_to_csv:sheet_to_csv,sheet_to_json:sheet_to_json,sheet_to_formulae:sheet_to_formulae,sheet_to_row_object_array:sheet_to_row_object_array};XLSX.parse_xlscfb=parse_xlscfb;XLSX.parse_zip=parse_zip;XLSX.read=readSync;XLSX.readFile=readFileSync;XLSX.readFileSync=readFileSync;XLSX.write=writeSync;XLSX.writeFile=writeFileSync;XLSX.writeFileSync=writeFileSync;XLSX.utils=utils;XLSX.CFB=CFB;XLSX.SSF=SSF})(typeof exports!=="undefined"?exports:XLSX);var XLS=XLSX; diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_xlsx_core_min_js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_xlsx_core_min_js.xml new file mode 100644 index 0000000000000000000000000000000000000000..6dd96076f27d3c5d94aaeef404866e227d98928f --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_expense_xlsx_core_min_js.xml @@ -0,0 +1,330 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Script" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/javascript</string> </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_officejs_expense_xlsx.core.min.js</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_hr_expense_xlsx_core_min_js</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Script</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Gadget Office Expense Xlsx JS</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1478709997.4</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>955.10926.40911.58402</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1478710034.4</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>empty</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1478709965.35</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_standalone_jio.html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_gadget_html.html similarity index 60% rename from bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_standalone_jio.html.html rename to bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_gadget_html.html index 518e8df8420a4d6d280e02906dfaad9db1567466..5da655fa6ccae442d9153ba1e1f6c581fc252b88 100644 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_standalone_jio.html.html +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_gadget_html.html @@ -4,16 +4,15 @@ <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, user-scalable=no" /> <title>Jio Gadget</title> - + <link rel="stylesheet" type="text/css" href="alertify.css" /> <!-- renderjs --> <script src="rsvp.js" type="text/javascript"></script> - <script src="travel_expense_renderjs.js" type="text/javascript"></script> + <script src="renderjs.js" type="text/javascript"></script> <script src="jiodev.js" type="text/javascript"></script> - <script src="travel_expense_jiodev_renderjs_storage.js" type="text/javascript"></script> - + <script src="alertify.js" type="text/javascript"></script> <!-- custom script --> - <script src="gadget_travel_expense_standalone_jio.js" type="text/javascript"></script> + <script src="gadget_hr_jio.js" type="text/javascript"></script> </head> <body> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio.html.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_gadget_html.xml similarity index 94% rename from bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio.html.xml rename to bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_gadget_html.xml index f190763845e84fba113e73472882d6307762ed18..68d170dc1aee35b796a32a06509563a0ca23a4ae 100644 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio.html.xml +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_gadget_html.xml @@ -66,7 +66,9 @@ <item> <key> <string>categories</string> </key> <value> - <tuple/> + <tuple> + <string>contributor/person_module/2</string> + </tuple> </value> </item> <item> @@ -81,7 +83,7 @@ </item> <item> <key> <string>default_reference</string> </key> - <value> <string>gadget_travel_expense_jio.html</string> </value> + <value> <string>gadget_hr_jio.html</string> </value> </item> <item> <key> <string>description</string> </key> @@ -89,7 +91,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>gadget_travel_expense_jio.html</string> </value> + <value> <string>gadget_hr_gadget_html</string> </value> </item> <item> <key> <string>language</string> </key> @@ -107,7 +109,7 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Travel Expense Jio Gadget</string> </value> + <value> <string>Jio Gadget for HR</string> </value> </item> <item> <key> <string>version</string> </key> @@ -193,7 +195,7 @@ </tuple> <state> <tuple> - <float>1472526672.67</float> + <float>1479221737.93</float> <string>UTC</string> </tuple> </state> @@ -224,7 +226,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -238,7 +240,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>953.37503.13972.43741</string> </value> + <value> <string>955.64152.22474.31095</string> </value> </item> <item> <key> <string>state</string> </key> @@ -256,7 +258,7 @@ </tuple> <state> <tuple> - <float>1472540544.33</float> + <float>1481817158.93</float> <string>UTC</string> </tuple> </state> @@ -313,7 +315,7 @@ </tuple> <state> <tuple> - <float>1472523951.28</float> + <float>1479221700.82</float> <string>UTC</string> </tuple> </state> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_jio_js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_jio_js.js new file mode 100644 index 0000000000000000000000000000000000000000..f307512106faa6f57941da7bce7dfc81af121d19 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_jio_js.js @@ -0,0 +1,360 @@ +/*global window, rJS, RSVP, jIO, alertify, UriTemplate, indexedDB*/ +/*jslint indent: 2, nomen: true */ +(function (window, rJS, RSVP, jIO, UriTemplate, alertify, indexedDB) { + "use strict"; + // xxxxxxxxxxxxxxxxx overwrite + function openIndexedDB(jio_storage) { + var db_name = jio_storage._database_name; + function resolver(resolve, reject) { + // Open DB // + var request = indexedDB.open(db_name); + request.onerror = function (error) { + if (request.result) { + request.result.close(); + } + reject(error); + }; + + request.onabort = function () { + request.result.close(); + reject("Aborting connection to: " + db_name); + }; + + request.ontimeout = function () { + request.result.close(); + reject("Connection to: " + db_name + " timeout"); + }; + + request.onblocked = function () { + request.result.close(); + reject("Connection to: " + db_name + " was blocked"); + }; + + // Create DB if necessary // + request.onupgradeneeded = function () { + return; + }; + + request.onversionchange = function () { + request.result.close(); + reject(db_name + " was upgraded"); + }; + + request.onsuccess = function () { + resolve(request.result); + }; + } + // XXX Canceller??? + return new RSVP.Queue() + .push(function () { + return new RSVP.Promise(resolver); + }); + } + function openTransaction(db, stores, flag, autoclosedb) { + var tx = db.transaction(stores, flag); + if (autoclosedb !== false) { + tx.oncomplete = function () { + db.close(); + }; + } + tx.onabort = function () { + db.close(); + }; + return tx; + } + function handleRequest(request) { + function resolver(resolve, reject) { + request.onerror = reject; + request.onsuccess = function () { + resolve(request.result); + }; + } + return new RSVP.Promise(resolver); + } + + jIO.__storage_types.indexeddb.prototype.remove = function (id) { + return openIndexedDB(this) + .push(function (db) { + var transaction = openTransaction(db, ["metadata"], "readwrite"); + return handleRequest(transaction + .objectStore("metadata")["delete"](id)); + }); + }; + + function endsWith(str, suffix) { + return str.indexOf(suffix, str.length - suffix.length) !== -1; + } + function hashParams() { + var hash = window.location.toString().split('#')[1], + split, + query = "", + subhashes, + subhash, + keyvalue, + index, + key, + tmp, + args = {}; + if (hash !== undefined) { + split = hash.split('?'); + query = split[1] || ""; + } + subhashes = query.split('&'); + for (index in subhashes) { + if (subhashes.hasOwnProperty(index)) { + subhash = subhashes[index]; + if (subhash !== '') { + keyvalue = subhash.split('='); + if (keyvalue.length === 2) { + key = decodeURIComponent(keyvalue[0]); + tmp = decodeURIComponent(keyvalue[1]); + if (tmp && (endsWith(key, ":json"))) { + tmp = JSON.parse(tmp); + } + args[key] = tmp; + } + } + } + } + return args; + } + + + function handleHTTPError(gadget, error, method_name) { + var regexp = /^X-Delegate uri="(http[s]*:\/\/[\/\-\[\]{}()*+:?.,\\\^$|#\s\w%]+)"$/, + login_page; + + if ((error.target !== undefined) && (error.target.status === 401)) { + login_page = error.target.getResponseHeader('WWW-Authenticate'); + // Only connect to https to login + var regexp = /^X-Delegate uri="(http[s]*:\/\/[\/\-\[\]{}()*+:?.,\\\^$|#\s\w%]+)"$/ + var auth_page = error.target.getResponseHeader('WWW-Authenticate'), + site; + if (! auth_page) { + auth_page = window.location.href + 'hateoas/connection/login_form'; + } + /* if (regexp.test(auth_page)) { + site = UriTemplate.parse( + regexp.exec(auth_page)[1] + ).expand({ + came_from: window.location.href, + cors_origin: window.location.origin, + }); + }*/ + + if (auth_page) { + return gadget.redirect({ toExternal: true, url: auth_page}); + } + } + + if ((error.target !== undefined) && (error.target.status === 0)) { + alertify.error("you are offline"); + window.setTimeout(function () { + if (method_name === 'repair') { + alertify.error("synchronisation failed"); + } + if (method_name === 'getAttachment') { + alertify.error("please try again when online"); + } + }, 2000); + return; + } + throw error; + } + + function wrapJioCall(gadget, method_name, argument_list, default_storage) { + var storage = default_storage || gadget.state_parameter_dict.jio_storage; + + /*if (!gadget.state_parameter_dict.authenticated) { + // Access ERP5 to get information about the login page + return gadget.state_parameter_dict.jio_storage.__storage._remote_sub_storage.getAttachment( + 'acl_users', + 'links', + {format: 'json'} + ) + .push(function () { + gadget.state_parameter_dict.authenticated = true; + return wrapJioCall(gadget, method_name, argument_list); + }, function (error) { + return handleHTTPError(gadget, error); + }); + }*/ + + return storage[method_name].apply(storage, argument_list) + .push(undefined, function (error) { + return handleHTTPError(gadget, error, method_name); + }); + } + + + function setUserTitle(gadget, no_auto_resync) { + // Get user information + return; + return gadget.getSetting('user_title') + .push(function (user_title) { + if (!user_title) { + // Force synchro when user login + return wrapJioCall(gadget, 'repair'); + } + }) + .push(function () { + return wrapJioCall(gadget, 'get', [gadget.state_parameter_dict.me]); + }) + .push(function (person) { + if (person) { + return gadget.setSetting('user_title', person.first_name + " " + person.last_name); + } else { + return gadget.setSetting('user_title', ''); + } + }, function (error) { + if ((error instanceof jIO.util.jIOError) && (error.status_code === 404)) { + if (no_auto_resync !== true) { + // Prevent repair infinite loop if person document is not synchronized + // This is the first automatic synchro to init DB + return wrapJioCall(gadget, 'repair') + .push(function () { + return setUserTitle(gadget, true); + }); + } + return gadget.setSetting('user_title', ''); + } + return gadget.setSetting('user_title', '') + .push(function () { + throw error; + }); + }); + } + + rJS(window) + + .ready(function (gadget) { + alertify.set({ delay: 1500 }); + gadget.state_parameter_dict = { + authenticated: false + }; + }) + + .declareAcquiredMethod('setSetting', 'setSetting') + .declareAcquiredMethod('getSetting', 'getSetting') + .declareAcquiredMethod('getUrlFor', 'getUrlFor') + .declareAcquiredMethod('redirect', 'redirect') + .declareAcquiredMethod("getUrlParameter", "getUrlParameter") + + .declareMethod('createJio', function () { + var gadget = this, + logout_url_template, + tmp; + //localStorage.clear(); + return new RSVP.Queue() + .push(function () { + return RSVP.all([ + gadget.getSetting('hateoas_url'), + gadget.getSetting('default_view_reference'), + gadget.getSetting('me') + ]); + }) + .push(function (setting_list) { + var me = setting_list[2], + current_date = new Date(), + new_date = new Date( + current_date.getFullYear(), + current_date.getMonth(), + current_date.getDate() - 60 + ); + //office router can't handler me parameter + me = 'tmp'; + gadget.state_parameter_dict.me = me; + //gadget.state_parameter_dict.authenticated = true; + gadget.state_parameter_dict.jio_storage = jIO.createJIO({ + type: "replicate", + // XXX This drop the signature lists... + query: { + query: '(portal_type: "Expense Record" AND simulation_state:("draft","sent","stopped"))' + + 'OR (portal_type: "Travel Request Record" AND simulation_state:("draft","sent","stopped")) ' + + 'OR (portal_type: "Leave Request Record" AND validation_state:"draft") ' + + 'OR (portal_type: "Currency" AND validation_state:"validated") ' + + 'OR (portal_type: "Person" AND id: "' + me.split("/")[1] + '")', + limit: [0, 1234567890] + }, + use_remote_post: true, + conflict_handling: 3, + check_local_modification: false, + check_local_creation: true, + check_local_deletion: false, + check_remote_modification: false, + check_remote_creation: true, + check_remote_deletion: true, + local_sub_storage: { + type: "query", + sub_storage: { + type: "uuid", + sub_storage: { + type: "indexeddb", + database: "mmr-erp5-" + me + } + } + }, + remote_sub_storage: { + type: "erp5", + url: setting_list[0], + default_view_reference: setting_list[1] + } + }); + gadget.state_parameter_dict.jio_storage.__storage._signature_sub_storage = jIO.createJIO({ + type: "indexeddb", + database: gadget.state_parameter_dict.jio_storage.__storage._signature_hash + }); + gadget.state_parameter_dict.jio_storage.__storage._signature_sub_storage.__storage._sub_storage = gadget.state_parameter_dict.jio_storage.__storage._local_sub_storage; + return gadget.setSetting('user_title', '') + .push(function () { + return wrapJioCall(gadget, 'repair'); + }); + }); + + }) + .declareMethod('get', function () { + return wrapJioCall(this, 'get', arguments); + }) + .declareMethod('getAttachment', function () { + if (this.state_parameter_dict.online) { + return wrapJioCall(this, 'getAttachment', [arguments[0], arguments[1], {format: "json"}]); + } + return wrapJioCall(this, 'getAttachment', [arguments[0], arguments[1], {format: "json"}], this.state_parameter_dict.jio_storage.__storage._remote_sub_storage); + }) + .declareMethod('post', function () { + return wrapJioCall(this, 'post', arguments); + }) + .declareMethod('put', function () { + return wrapJioCall(this, 'put', arguments); + }) + .declareMethod('remove', function () { + return wrapJioCall(this, 'remove', arguments); + }) + .declareMethod('repair', function () { + var gadget = this; + return wrapJioCall(this, 'repair', arguments) + .push(function () { + return setUserTitle(gadget); + }); + }) + .declareMethod('allDocs', function () { + if (arguments[0].query) { + if (arguments[0].query.indexOf('relative_url') !== -1) { + return this.getSetting('user_title') + .push(function (result) { + return { + 'data': { + 'rows': [{ + 'value': { + 'title': result + } + }] + } + }; + }); + } + } + return wrapJioCall(this, 'allDocs', arguments); + }); + +}(window, rJS, RSVP, jIO, UriTemplate, alertify, indexedDB)); \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_jio_js.xml similarity index 94% rename from bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation.js.xml rename to bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_jio_js.xml index 2ccd0ed8ae2c5b4d1377a628ba9b6ad58340d0da..a0e6f10a3b835df4f054446e527bb181f9cc6a0c 100644 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation.js.xml +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_jio_js.xml @@ -67,7 +67,7 @@ <key> <string>categories</string> </key> <value> <tuple> - <string>classification/collaborative/team</string> + <string>contributor/person_module/2</string> </tuple> </value> </item> @@ -79,7 +79,7 @@ </item> <item> <key> <string>default_reference</string> </key> - <value> <string>gadget_travel_expense_translation.js</string> </value> + <value> <string>gadget_hr_jio.js</string> </value> </item> <item> <key> <string>description</string> </key> @@ -89,7 +89,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>gadget_travel_expense_translation.js</string> </value> + <value> <string>gadget_hr_jio_js</string> </value> </item> <item> <key> <string>language</string> </key> @@ -107,7 +107,7 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Travel Expense Gadget Translation JS</string> </value> + <value> <string>HR Gadget JS</string> </value> </item> <item> <key> <string>version</string> </key> @@ -193,7 +193,7 @@ </tuple> <state> <tuple> - <float>1472526622.63</float> + <float>1479221739.78</float> <string>UTC</string> </tuple> </state> @@ -224,7 +224,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -238,7 +238,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>0.0.0.0</string> </value> + <value> <string>955.53739.12093.30054</string> </value> </item> <item> <key> <string>state</string> </key> @@ -256,7 +256,7 @@ </tuple> <state> <tuple> - <float>1472523952.01</float> + <float>1481817167.84</float> <string>UTC</string> </tuple> </state> @@ -313,7 +313,7 @@ </tuple> <state> <tuple> - <float>1472523951.99</float> + <float>1479221698.05</float> <string>UTC</string> </tuple> </state> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leaflet_css.css b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leaflet_css.css new file mode 100644 index 0000000000000000000000000000000000000000..f24a39e454098ef08233bb5c4abd52cbdb30662b --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leaflet_css.css @@ -0,0 +1,623 @@ +/* required styles */ + +.leaflet-pane, +.leaflet-tile, +.leaflet-marker-icon, +.leaflet-marker-shadow, +.leaflet-tile-container, +.leaflet-map-pane svg, +.leaflet-map-pane canvas, +.leaflet-zoom-box, +.leaflet-image-layer, +.leaflet-layer { + position: absolute; + left: 0; + top: 0; + } +.leaflet-container { + overflow: hidden; + } +.leaflet-tile, +.leaflet-marker-icon, +.leaflet-marker-shadow { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + -webkit-user-drag: none; + } +/* Safari renders non-retina tile on retina better with this, but Chrome is worse */ +.leaflet-safari .leaflet-tile { + image-rendering: -webkit-optimize-contrast; + } +/* hack that prevents hw layers "stretching" when loading new tiles */ +.leaflet-safari .leaflet-tile-container { + width: 1600px; + height: 1600px; + -webkit-transform-origin: 0 0; + } +.leaflet-marker-icon, +.leaflet-marker-shadow { + display: block; + } +/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */ +/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */ +.leaflet-container .leaflet-overlay-pane svg, +.leaflet-container .leaflet-marker-pane img, +.leaflet-container .leaflet-tile-pane img, +.leaflet-container img.leaflet-image-layer { + max-width: none !important; + } + +.leaflet-container.leaflet-touch-zoom { + -ms-touch-action: pan-x pan-y; + touch-action: pan-x pan-y; + } +.leaflet-container.leaflet-touch-drag { + -ms-touch-action: pinch-zoom; + } +.leaflet-container.leaflet-touch-drag.leaflet-touch-drag { + -ms-touch-action: none; + touch-action: none; +} +.leaflet-tile { + filter: inherit; + visibility: hidden; + } +.leaflet-tile-loaded { + visibility: inherit; + } +.leaflet-zoom-box { + width: 0; + height: 0; + -moz-box-sizing: border-box; + box-sizing: border-box; + z-index: 800; + } +/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */ +.leaflet-overlay-pane svg { + -moz-user-select: none; + } + +.leaflet-pane { z-index: 400; } + +.leaflet-tile-pane { z-index: 200; } +.leaflet-overlay-pane { z-index: 400; } +.leaflet-shadow-pane { z-index: 500; } +.leaflet-marker-pane { z-index: 600; } +.leaflet-tooltip-pane { z-index: 650; } +.leaflet-popup-pane { z-index: 700; } + +.leaflet-map-pane canvas { z-index: 100; } +.leaflet-map-pane svg { z-index: 200; } + +.leaflet-vml-shape { + width: 1px; + height: 1px; + } +.lvml { + behavior: url(#default#VML); + display: inline-block; + position: absolute; + } + + +/* control positioning */ + +.leaflet-control { + position: relative; + z-index: 800; + pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ + pointer-events: auto; + } +.leaflet-top, +.leaflet-bottom { + position: absolute; + z-index: 1000; + pointer-events: none; + } +.leaflet-top { + top: 0; + } +.leaflet-right { + right: 0; + } +.leaflet-bottom { + bottom: 0; + } +.leaflet-left { + left: 0; + } +.leaflet-control { + float: left; + clear: both; + } +.leaflet-right .leaflet-control { + float: right; + } +.leaflet-top .leaflet-control { + margin-top: 10px; + } +.leaflet-bottom .leaflet-control { + margin-bottom: 10px; + } +.leaflet-left .leaflet-control { + margin-left: 10px; + } +.leaflet-right .leaflet-control { + margin-right: 10px; + } + + +/* zoom and fade animations */ + +.leaflet-fade-anim .leaflet-tile { + will-change: opacity; + } +.leaflet-fade-anim .leaflet-popup { + opacity: 0; + -webkit-transition: opacity 0.2s linear; + -moz-transition: opacity 0.2s linear; + -o-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; + } +.leaflet-fade-anim .leaflet-map-pane .leaflet-popup { + opacity: 1; + } +.leaflet-zoom-animated { + -webkit-transform-origin: 0 0; + -ms-transform-origin: 0 0; + transform-origin: 0 0; + } +.leaflet-zoom-anim .leaflet-zoom-animated { + will-change: transform; + } +.leaflet-zoom-anim .leaflet-zoom-animated { + -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1); + -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1); + -o-transition: -o-transform 0.25s cubic-bezier(0,0,0.25,1); + transition: transform 0.25s cubic-bezier(0,0,0.25,1); + } +.leaflet-zoom-anim .leaflet-tile, +.leaflet-pan-anim .leaflet-tile { + -webkit-transition: none; + -moz-transition: none; + -o-transition: none; + transition: none; + } + +.leaflet-zoom-anim .leaflet-zoom-hide { + visibility: hidden; + } + + +/* cursors */ + +.leaflet-interactive { + cursor: pointer; + } +.leaflet-grab { + cursor: -webkit-grab; + cursor: -moz-grab; + } +.leaflet-crosshair, +.leaflet-crosshair .leaflet-interactive { + cursor: crosshair; + } +.leaflet-popup-pane, +.leaflet-control { + cursor: auto; + } +.leaflet-dragging .leaflet-grab, +.leaflet-dragging .leaflet-grab .leaflet-interactive, +.leaflet-dragging .leaflet-marker-draggable { + cursor: move; + cursor: -webkit-grabbing; + cursor: -moz-grabbing; + } + +/* marker & overlays interactivity */ +.leaflet-marker-icon, +.leaflet-marker-shadow, +.leaflet-image-layer, +.leaflet-pane > svg path, +.leaflet-tile-container { + pointer-events: none; + } + +.leaflet-marker-icon.leaflet-interactive, +.leaflet-image-layer.leaflet-interactive, +.leaflet-pane > svg path.leaflet-interactive { + pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ + pointer-events: auto; + } + +/* visual tweaks */ + +.leaflet-container { + background: #ddd; + outline: 0; + } +.leaflet-container a { + color: #0078A8; + } +.leaflet-container a.leaflet-active { + outline: 2px solid orange; + } +.leaflet-zoom-box { + border: 2px dotted #38f; + background: rgba(255,255,255,0.5); + } + + +/* general typography */ +.leaflet-container { + font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; + } + + +/* general toolbar styles */ + +.leaflet-bar { + box-shadow: 0 1px 5px rgba(0,0,0,0.65); + border-radius: 4px; + } +.leaflet-bar a, +.leaflet-bar a:hover { + background-color: #fff; + border-bottom: 1px solid #ccc; + width: 26px; + height: 26px; + line-height: 26px; + display: block; + text-align: center; + text-decoration: none; + color: black; + } +.leaflet-bar a, +.leaflet-control-layers-toggle { + background-position: 50% 50%; + background-repeat: no-repeat; + display: block; + } +.leaflet-bar a:hover { + background-color: #f4f4f4; + } +.leaflet-bar a:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; + } +.leaflet-bar a:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + border-bottom: none; + } +.leaflet-bar a.leaflet-disabled { + cursor: default; + background-color: #f4f4f4; + color: #bbb; + } + +.leaflet-touch .leaflet-bar a { + width: 30px; + height: 30px; + line-height: 30px; + } + + +/* zoom control */ + +.leaflet-control-zoom-in, +.leaflet-control-zoom-out { + font: bold 18px 'Lucida Console', Monaco, monospace; + text-indent: 1px; + } +.leaflet-control-zoom-out { + font-size: 20px; + } + +.leaflet-touch .leaflet-control-zoom-in { + font-size: 22px; + } +.leaflet-touch .leaflet-control-zoom-out { + font-size: 24px; + } + + +/* layers control */ + +.leaflet-control-layers { + box-shadow: 0 1px 5px rgba(0,0,0,0.4); + background: #fff; + border-radius: 5px; + } +.leaflet-control-layers-toggle { + background-image: url(images/layers.png); + width: 36px; + height: 36px; + } +.leaflet-retina .leaflet-control-layers-toggle { + background-image: url(images/layers-2x.png); + background-size: 26px 26px; + } +.leaflet-touch .leaflet-control-layers-toggle { + width: 44px; + height: 44px; + } +.leaflet-control-layers .leaflet-control-layers-list, +.leaflet-control-layers-expanded .leaflet-control-layers-toggle { + display: none; + } +.leaflet-control-layers-expanded .leaflet-control-layers-list { + display: block; + position: relative; + } +.leaflet-control-layers-expanded { + padding: 6px 10px 6px 6px; + color: #333; + background: #fff; + } +.leaflet-control-layers-scrollbar { + overflow-y: scroll; + padding-right: 5px; + } +.leaflet-control-layers-selector { + margin-top: 2px; + position: relative; + top: 1px; + } +.leaflet-control-layers label { + display: block; + } +.leaflet-control-layers-separator { + height: 0; + border-top: 1px solid #ddd; + margin: 5px -10px 5px -6px; + } + +/* Default icon URLs */ +.leaflet-default-icon-path { + background-image: url(images/marker-icon.png); + } + + +/* attribution and scale controls */ + +.leaflet-container .leaflet-control-attribution { + background: #fff; + background: rgba(255, 255, 255, 0.7); + margin: 0; + } +.leaflet-control-attribution, +.leaflet-control-scale-line { + padding: 0 5px; + color: #333; + } +.leaflet-control-attribution a { + text-decoration: none; + } +.leaflet-control-attribution a:hover { + text-decoration: underline; + } +.leaflet-container .leaflet-control-attribution, +.leaflet-container .leaflet-control-scale { + font-size: 11px; + } +.leaflet-left .leaflet-control-scale { + margin-left: 5px; + } +.leaflet-bottom .leaflet-control-scale { + margin-bottom: 5px; + } +.leaflet-control-scale-line { + border: 2px solid #777; + border-top: none; + line-height: 1.1; + padding: 2px 5px 1px; + font-size: 11px; + white-space: nowrap; + overflow: hidden; + -moz-box-sizing: border-box; + box-sizing: border-box; + + background: #fff; + background: rgba(255, 255, 255, 0.5); + } +.leaflet-control-scale-line:not(:first-child) { + border-top: 2px solid #777; + border-bottom: none; + margin-top: -2px; + } +.leaflet-control-scale-line:not(:first-child):not(:last-child) { + border-bottom: 2px solid #777; + } + +.leaflet-touch .leaflet-control-attribution, +.leaflet-touch .leaflet-control-layers, +.leaflet-touch .leaflet-bar { + box-shadow: none; + } +.leaflet-touch .leaflet-control-layers, +.leaflet-touch .leaflet-bar { + border: 2px solid rgba(0,0,0,0.2); + background-clip: padding-box; + } + + +/* popup */ + +.leaflet-popup { + position: absolute; + text-align: center; + margin-bottom: 20px; + } +.leaflet-popup-content-wrapper { + padding: 1px; + text-align: left; + border-radius: 12px; + } +.leaflet-popup-content { + margin: 13px 19px; + line-height: 1.4; + } +.leaflet-popup-content p { + margin: 18px 0; + } +.leaflet-popup-tip-container { + width: 40px; + height: 20px; + position: absolute; + left: 50%; + margin-left: -20px; + overflow: hidden; + pointer-events: none; + } +.leaflet-popup-tip { + width: 17px; + height: 17px; + padding: 1px; + + margin: -10px auto 0; + + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); + } +.leaflet-popup-content-wrapper, +.leaflet-popup-tip { + background: white; + color: #333; + box-shadow: 0 3px 14px rgba(0,0,0,0.4); + } +.leaflet-container a.leaflet-popup-close-button { + position: absolute; + top: 0; + right: 0; + padding: 4px 4px 0 0; + border: none; + text-align: center; + width: 18px; + height: 14px; + font: 16px/14px Tahoma, Verdana, sans-serif; + color: #c3c3c3; + text-decoration: none; + font-weight: bold; + background: transparent; + } +.leaflet-container a.leaflet-popup-close-button:hover { + color: #999; + } +.leaflet-popup-scrolled { + overflow: auto; + border-bottom: 1px solid #ddd; + border-top: 1px solid #ddd; + } + +.leaflet-oldie .leaflet-popup-content-wrapper { + zoom: 1; + } +.leaflet-oldie .leaflet-popup-tip { + width: 24px; + margin: 0 auto; + + -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; + filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); + } +.leaflet-oldie .leaflet-popup-tip-container { + margin-top: -1px; + } + +.leaflet-oldie .leaflet-control-zoom, +.leaflet-oldie .leaflet-control-layers, +.leaflet-oldie .leaflet-popup-content-wrapper, +.leaflet-oldie .leaflet-popup-tip { + border: 1px solid #999; + } + + +/* div icon */ + +.leaflet-div-icon { + background: #fff; + border: 1px solid #666; + } + + +/* Tooltip */ +/* Base styles for the element that has a tooltip */ +.leaflet-tooltip { + position: absolute; + padding: 6px; + background-color: #fff; + border: 1px solid #fff; + border-radius: 3px; + color: #222; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + pointer-events: none; + box-shadow: 0 1px 3px rgba(0,0,0,0.4); + } +.leaflet-tooltip.leaflet-clickable { + cursor: pointer; + pointer-events: auto; + } +.leaflet-tooltip-top:before, +.leaflet-tooltip-bottom:before, +.leaflet-tooltip-left:before, +.leaflet-tooltip-right:before { + position: absolute; + pointer-events: none; + border: 6px solid transparent; + background: transparent; + content: ""; + } + +/* Directions */ + +.leaflet-tooltip-bottom { + margin-top: 6px; +} +.leaflet-tooltip-top { + margin-top: -6px; +} +.leaflet-tooltip-bottom:before, +.leaflet-tooltip-top:before { + left: 50%; + margin-left: -6px; + } +.leaflet-tooltip-top:before { + bottom: 0; + margin-bottom: -12px; + border-top-color: #fff; + } +.leaflet-tooltip-bottom:before { + top: 0; + margin-top: -12px; + margin-left: -6px; + border-bottom-color: #fff; + } +.leaflet-tooltip-left { + margin-left: -6px; +} +.leaflet-tooltip-right { + margin-left: 6px; +} +.leaflet-tooltip-left:before, +.leaflet-tooltip-right:before { + top: 50%; + margin-top: -6px; + } +.leaflet-tooltip-left:before { + right: 0; + margin-right: -12px; + border-left-color: #fff; + } +.leaflet-tooltip-right:before { + left: 0; + margin-left: -12px; + border-right-color: #fff; + } \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leaflet_css.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leaflet_css.xml new file mode 100644 index 0000000000000000000000000000000000000000..dcc3d1e6616dd58166b17e3c71e58aa4c749041c --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leaflet_css.xml @@ -0,0 +1,330 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Style" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/css</string> </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>leaflet.css</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_hr_leaflet_css</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Style</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Leaflet</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1478771920.68</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>955.11958.44458.56217</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1478771928.47</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>empty</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1478771903.49</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leaflet_js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leaflet_js.js new file mode 100644 index 0000000000000000000000000000000000000000..f0c6aa1c3addb678cca5d53008c2fab63e11074d --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leaflet_js.js @@ -0,0 +1,9 @@ +/* + Leaflet 1.0.1, a JS library for interactive maps. http://leafletjs.com + (c) 2010-2016 Vladimir Agafonkin, (c) 2010-2011 CloudMade +*/ +!function(t,e,i){function n(){var e=t.L;o.noConflict=function(){return t.L=e,this},t.L=o}var o={version:"1.0.1"};"object"==typeof module&&"object"==typeof module.exports?module.exports=o:"function"==typeof define&&define.amd&&define(o),"undefined"!=typeof t&&n(),o.Util={extend:function(t){var e,i,n,o;for(i=1,n=arguments.length;i<n;i++){o=arguments[i];for(e in o)t[e]=o[e]}return t},create:Object.create||function(){function t(){}return function(e){return t.prototype=e,new t}}(),bind:function(t,e){var i=Array.prototype.slice;if(t.bind)return t.bind.apply(t,i.call(arguments,1));var n=i.call(arguments,2);return function(){return t.apply(e,n.length?n.concat(i.call(arguments)):arguments)}},stamp:function(t){return t._leaflet_id=t._leaflet_id||++o.Util.lastId,t._leaflet_id},lastId:0,throttle:function(t,e,i){var n,o,s,r;return r=function(){n=!1,o&&(s.apply(i,o),o=!1)},s=function(){n?o=arguments:(t.apply(i,arguments),setTimeout(r,e),n=!0)}},wrapNum:function(t,e,i){var n=e[1],o=e[0],s=n-o;return t===n&&i?t:((t-o)%s+s)%s+o},falseFn:function(){return!1},formatNum:function(t,e){var i=Math.pow(10,e||5);return Math.round(t*i)/i},trim:function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")},splitWords:function(t){return o.Util.trim(t).split(/\s+/)},setOptions:function(t,e){t.hasOwnProperty("options")||(t.options=t.options?o.Util.create(t.options):{});for(var i in e)t.options[i]=e[i];return t.options},getParamString:function(t,e,i){var n=[];for(var o in t)n.push(encodeURIComponent(i?o.toUpperCase():o)+"="+encodeURIComponent(t[o]));return(e&&e.indexOf("?")!==-1?"&":"?")+n.join("&")},template:function(t,e){return t.replace(o.Util.templateRe,function(t,n){var o=e[n];if(o===i)throw new Error("No value provided for variable "+t);return"function"==typeof o&&(o=o(e)),o})},templateRe:/\{ *([\w_\-]+) *\}/g,isArray:Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)},indexOf:function(t,e){for(var i=0;i<t.length;i++)if(t[i]===e)return i;return-1},emptyImageUrl:"data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs="},function(){function e(e){return t["webkit"+e]||t["moz"+e]||t["ms"+e]}function i(e){var i=+new Date,o=Math.max(0,16-(i-n));return n=i+o,t.setTimeout(e,o)}var n=0,s=t.requestAnimationFrame||e("RequestAnimationFrame")||i,r=t.cancelAnimationFrame||e("CancelAnimationFrame")||e("CancelRequestAnimationFrame")||function(e){t.clearTimeout(e)};o.Util.requestAnimFrame=function(e,n,r){return r&&s===i?void e.call(n):s.call(t,o.bind(e,n))},o.Util.cancelAnimFrame=function(e){e&&r.call(t,e)}}(),o.extend=o.Util.extend,o.bind=o.Util.bind,o.stamp=o.Util.stamp,o.setOptions=o.Util.setOptions,o.Class=function(){},o.Class.extend=function(t){var e=function(){this.initialize&&this.initialize.apply(this,arguments),this.callInitHooks()},i=e.__super__=this.prototype,n=o.Util.create(i);n.constructor=e,e.prototype=n;for(var s in this)this.hasOwnProperty(s)&&"prototype"!==s&&(e[s]=this[s]);return t.statics&&(o.extend(e,t.statics),delete t.statics),t.includes&&(o.Util.extend.apply(null,[n].concat(t.includes)),delete t.includes),n.options&&(t.options=o.Util.extend(o.Util.create(n.options),t.options)),o.extend(n,t),n._initHooks=[],n.callInitHooks=function(){if(!this._initHooksCalled){i.callInitHooks&&i.callInitHooks.call(this),this._initHooksCalled=!0;for(var t=0,e=n._initHooks.length;t<e;t++)n._initHooks[t].call(this)}},e},o.Class.include=function(t){return o.extend(this.prototype,t),this},o.Class.mergeOptions=function(t){return o.extend(this.prototype.options,t),this},o.Class.addInitHook=function(t){var e=Array.prototype.slice.call(arguments,1),i="function"==typeof t?t:function(){this[t].apply(this,e)};return this.prototype._initHooks=this.prototype._initHooks||[],this.prototype._initHooks.push(i),this},o.Evented=o.Class.extend({on:function(t,e,i){if("object"==typeof t)for(var n in t)this._on(n,t[n],e);else{t=o.Util.splitWords(t);for(var s=0,r=t.length;s<r;s++)this._on(t[s],e,i)}return this},off:function(t,e,i){if(t)if("object"==typeof t)for(var n in t)this._off(n,t[n],e);else{t=o.Util.splitWords(t);for(var s=0,r=t.length;s<r;s++)this._off(t[s],e,i)}else delete this._events;return this},_on:function(t,e,n){this._events=this._events||{};var o=this._events[t];o||(o=[],this._events[t]=o),n===this&&(n=i);for(var s={fn:e,ctx:n},r=o,a=0,h=r.length;a<h;a++)if(r[a].fn===e&&r[a].ctx===n)return;r.push(s),o.count++},_off:function(t,e,n){var s,r,a;if(this._events&&(s=this._events[t])){if(!e){for(r=0,a=s.length;r<a;r++)s[r].fn=o.Util.falseFn;return void delete this._events[t]}if(n===this&&(n=i),s)for(r=0,a=s.length;r<a;r++){var h=s[r];if(h.ctx===n&&h.fn===e)return h.fn=o.Util.falseFn,this._firingCount&&(this._events[t]=s=s.slice()),void s.splice(r,1)}}},fire:function(t,e,i){if(!this.listens(t,i))return this;var n=o.Util.extend({},e,{type:t,target:this});if(this._events){var s=this._events[t];if(s){this._firingCount=this._firingCount+1||1;for(var r=0,a=s.length;r<a;r++){var h=s[r];h.fn.call(h.ctx||this,n)}this._firingCount--}}return i&&this._propagateEvent(n),this},listens:function(t,e){var i=this._events&&this._events[t];if(i&&i.length)return!0;if(e)for(var n in this._eventParents)if(this._eventParents[n].listens(t,e))return!0;return!1},once:function(t,e,i){if("object"==typeof t){for(var n in t)this.once(n,t[n],e);return this}var s=o.bind(function(){this.off(t,e,i).off(t,s,i)},this);return this.on(t,e,i).on(t,s,i)},addEventParent:function(t){return this._eventParents=this._eventParents||{},this._eventParents[o.stamp(t)]=t,this},removeEventParent:function(t){return this._eventParents&&delete this._eventParents[o.stamp(t)],this},_propagateEvent:function(t){for(var e in this._eventParents)this._eventParents[e].fire(t.type,o.extend({layer:t.target},t),!0)}});var s=o.Evented.prototype;s.addEventListener=s.on,s.removeEventListener=s.clearAllEventListeners=s.off,s.addOneTimeEventListener=s.once,s.fireEvent=s.fire,s.hasEventListeners=s.listens,o.Mixin={Events:s},function(){var i=navigator.userAgent.toLowerCase(),n=e.documentElement,s="ActiveXObject"in t,r=i.indexOf("webkit")!==-1,a=i.indexOf("phantom")!==-1,h=i.search("android [23]")!==-1,l=i.indexOf("chrome")!==-1,u=i.indexOf("gecko")!==-1&&!r&&!t.opera&&!s,c=0===navigator.platform.indexOf("Win"),d="undefined"!=typeof orientation||i.indexOf("mobile")!==-1,_=!t.PointerEvent&&t.MSPointerEvent,m=t.PointerEvent||_,p=s&&"transition"in n.style,f="WebKitCSSMatrix"in t&&"m11"in new t.WebKitCSSMatrix&&!h,g="MozPerspective"in n.style,v="OTransition"in n.style,y=!t.L_NO_TOUCH&&(m||"ontouchstart"in t||t.DocumentTouch&&e instanceof t.DocumentTouch);o.Browser={ie:s,ielt9:s&&!e.addEventListener,edge:"msLaunchUri"in navigator&&!("documentMode"in e),webkit:r,gecko:u,android:i.indexOf("android")!==-1,android23:h,chrome:l,safari:!l&&i.indexOf("safari")!==-1,win:c,ie3d:p,webkit3d:f,gecko3d:g,opera12:v,any3d:!t.L_DISABLE_3D&&(p||f||g)&&!v&&!a,mobile:d,mobileWebkit:d&&r,mobileWebkit3d:d&&f,mobileOpera:d&&t.opera,mobileGecko:d&&u,touch:!!y,msPointer:!!_,pointer:!!m,retina:(t.devicePixelRatio||t.screen.deviceXDPI/t.screen.logicalXDPI)>1}}(),o.Point=function(t,e,i){this.x=i?Math.round(t):t,this.y=i?Math.round(e):e},o.Point.prototype={clone:function(){return new o.Point(this.x,this.y)},add:function(t){return this.clone()._add(o.point(t))},_add:function(t){return this.x+=t.x,this.y+=t.y,this},subtract:function(t){return this.clone()._subtract(o.point(t))},_subtract:function(t){return this.x-=t.x,this.y-=t.y,this},divideBy:function(t){return this.clone()._divideBy(t)},_divideBy:function(t){return this.x/=t,this.y/=t,this},multiplyBy:function(t){return this.clone()._multiplyBy(t)},_multiplyBy:function(t){return this.x*=t,this.y*=t,this},scaleBy:function(t){return new o.Point(this.x*t.x,this.y*t.y)},unscaleBy:function(t){return new o.Point(this.x/t.x,this.y/t.y)},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.clone()._ceil()},_ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},distanceTo:function(t){t=o.point(t);var e=t.x-this.x,i=t.y-this.y;return Math.sqrt(e*e+i*i)},equals:function(t){return t=o.point(t),t.x===this.x&&t.y===this.y},contains:function(t){return t=o.point(t),Math.abs(t.x)<=Math.abs(this.x)&&Math.abs(t.y)<=Math.abs(this.y)},toString:function(){return"Point("+o.Util.formatNum(this.x)+", "+o.Util.formatNum(this.y)+")"}},o.point=function(t,e,n){return t instanceof o.Point?t:o.Util.isArray(t)?new o.Point(t[0],t[1]):t===i||null===t?t:"object"==typeof t&&"x"in t&&"y"in t?new o.Point(t.x,t.y):new o.Point(t,e,n)},o.Bounds=function(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;n<o;n++)this.extend(i[n])},o.Bounds.prototype={extend:function(t){return t=o.point(t),this.min||this.max?(this.min.x=Math.min(t.x,this.min.x),this.max.x=Math.max(t.x,this.max.x),this.min.y=Math.min(t.y,this.min.y),this.max.y=Math.max(t.y,this.max.y)):(this.min=t.clone(),this.max=t.clone()),this},getCenter:function(t){return new o.Point((this.min.x+this.max.x)/2,(this.min.y+this.max.y)/2,t)},getBottomLeft:function(){return new o.Point(this.min.x,this.max.y)},getTopRight:function(){return new o.Point(this.max.x,this.min.y)},getSize:function(){return this.max.subtract(this.min)},contains:function(t){var e,i;return t="number"==typeof t[0]||t instanceof o.Point?o.point(t):o.bounds(t),t instanceof o.Bounds?(e=t.min,i=t.max):e=i=t,e.x>=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=o.bounds(t);var e=this.min,i=this.max,n=t.min,s=t.max,r=s.x>=e.x&&n.x<=i.x,a=s.y>=e.y&&n.y<=i.y;return r&&a},overlaps:function(t){t=o.bounds(t);var e=this.min,i=this.max,n=t.min,s=t.max,r=s.x>e.x&&n.x<i.x,a=s.y>e.y&&n.y<i.y;return r&&a},isValid:function(){return!(!this.min||!this.max)}},o.bounds=function(t,e){return!t||t instanceof o.Bounds?t:new o.Bounds(t,e)},o.Transformation=function(t,e,i,n){this._a=t,this._b=e,this._c=i,this._d=n},o.Transformation.prototype={transform:function(t,e){return this._transform(t.clone(),e)},_transform:function(t,e){return e=e||1,t.x=e*(this._a*t.x+this._b),t.y=e*(this._c*t.y+this._d),t},untransform:function(t,e){return e=e||1,new o.Point((t.x/e-this._b)/this._a,(t.y/e-this._d)/this._c)}},o.DomUtil={get:function(t){return"string"==typeof t?e.getElementById(t):t},getStyle:function(t,i){var n=t.style[i]||t.currentStyle&&t.currentStyle[i];if((!n||"auto"===n)&&e.defaultView){var o=e.defaultView.getComputedStyle(t,null);n=o?o[i]:null}return"auto"===n?null:n},create:function(t,i,n){var o=e.createElement(t);return o.className=i||"",n&&n.appendChild(o),o},remove:function(t){var e=t.parentNode;e&&e.removeChild(t)},empty:function(t){for(;t.firstChild;)t.removeChild(t.firstChild)},toFront:function(t){t.parentNode.appendChild(t)},toBack:function(t){var e=t.parentNode;e.insertBefore(t,e.firstChild)},hasClass:function(t,e){if(t.classList!==i)return t.classList.contains(e);var n=o.DomUtil.getClass(t);return n.length>0&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(n)},addClass:function(t,e){if(t.classList!==i)for(var n=o.Util.splitWords(e),s=0,r=n.length;s<r;s++)t.classList.add(n[s]);else if(!o.DomUtil.hasClass(t,e)){var a=o.DomUtil.getClass(t);o.DomUtil.setClass(t,(a?a+" ":"")+e)}},removeClass:function(t,e){t.classList!==i?t.classList.remove(e):o.DomUtil.setClass(t,o.Util.trim((" "+o.DomUtil.getClass(t)+" ").replace(" "+e+" "," ")))},setClass:function(t,e){t.className.baseVal===i?t.className=e:t.className.baseVal=e},getClass:function(t){return t.className.baseVal===i?t.className:t.className.baseVal},setOpacity:function(t,e){"opacity"in t.style?t.style.opacity=e:"filter"in t.style&&o.DomUtil._setOpacityIE(t,e)},_setOpacityIE:function(t,e){var i=!1,n="DXImageTransform.Microsoft.Alpha";try{i=t.filters.item(n)}catch(t){if(1===e)return}e=Math.round(100*e),i?(i.Enabled=100!==e,i.Opacity=e):t.style.filter+=" progid:"+n+"(opacity="+e+")"},testProp:function(t){for(var i=e.documentElement.style,n=0;n<t.length;n++)if(t[n]in i)return t[n];return!1},setTransform:function(t,e,i){var n=e||new o.Point(0,0);t.style[o.DomUtil.TRANSFORM]=(o.Browser.ie3d?"translate("+n.x+"px,"+n.y+"px)":"translate3d("+n.x+"px,"+n.y+"px,0)")+(i?" scale("+i+")":"")},setPosition:function(t,e){t._leaflet_pos=e,o.Browser.any3d?o.DomUtil.setTransform(t,e):(t.style.left=e.x+"px",t.style.top=e.y+"px")},getPosition:function(t){return t._leaflet_pos||new o.Point(0,0)}},function(){o.DomUtil.TRANSFORM=o.DomUtil.testProp(["transform","WebkitTransform","OTransform","MozTransform","msTransform"]);var i=o.DomUtil.TRANSITION=o.DomUtil.testProp(["webkitTransition","transition","OTransition","MozTransition","msTransition"]);if(o.DomUtil.TRANSITION_END="webkitTransition"===i||"OTransition"===i?i+"End":"transitionend","onselectstart"in e)o.DomUtil.disableTextSelection=function(){o.DomEvent.on(t,"selectstart",o.DomEvent.preventDefault)},o.DomUtil.enableTextSelection=function(){o.DomEvent.off(t,"selectstart",o.DomEvent.preventDefault)};else{var n=o.DomUtil.testProp(["userSelect","WebkitUserSelect","OUserSelect","MozUserSelect","msUserSelect"]);o.DomUtil.disableTextSelection=function(){if(n){var t=e.documentElement.style;this._userSelect=t[n],t[n]="none"}},o.DomUtil.enableTextSelection=function(){n&&(e.documentElement.style[n]=this._userSelect,delete this._userSelect)}}o.DomUtil.disableImageDrag=function(){o.DomEvent.on(t,"dragstart",o.DomEvent.preventDefault)},o.DomUtil.enableImageDrag=function(){o.DomEvent.off(t,"dragstart",o.DomEvent.preventDefault)},o.DomUtil.preventOutline=function(e){for(;e.tabIndex===-1;)e=e.parentNode;e&&e.style&&(o.DomUtil.restoreOutline(),this._outlineElement=e,this._outlineStyle=e.style.outline,e.style.outline="none",o.DomEvent.on(t,"keydown",o.DomUtil.restoreOutline,this))},o.DomUtil.restoreOutline=function(){this._outlineElement&&(this._outlineElement.style.outline=this._outlineStyle,delete this._outlineElement,delete this._outlineStyle,o.DomEvent.off(t,"keydown",o.DomUtil.restoreOutline,this))}}(),o.LatLng=function(t,e,n){if(isNaN(t)||isNaN(e))throw new Error("Invalid LatLng object: ("+t+", "+e+")");this.lat=+t,this.lng=+e,n!==i&&(this.alt=+n)},o.LatLng.prototype={equals:function(t,e){if(!t)return!1;t=o.latLng(t);var n=Math.max(Math.abs(this.lat-t.lat),Math.abs(this.lng-t.lng));return n<=(e===i?1e-9:e)},toString:function(t){return"LatLng("+o.Util.formatNum(this.lat,t)+", "+o.Util.formatNum(this.lng,t)+")"},distanceTo:function(t){return o.CRS.Earth.distance(this,o.latLng(t))},wrap:function(){return o.CRS.Earth.wrapLatLng(this)},toBounds:function(t){var e=180*t/40075017,i=e/Math.cos(Math.PI/180*this.lat);return o.latLngBounds([this.lat-e,this.lng-i],[this.lat+e,this.lng+i])},clone:function(){return new o.LatLng(this.lat,this.lng,this.alt)}},o.latLng=function(t,e,n){return t instanceof o.LatLng?t:o.Util.isArray(t)&&"object"!=typeof t[0]?3===t.length?new o.LatLng(t[0],t[1],t[2]):2===t.length?new o.LatLng(t[0],t[1]):null:t===i||null===t?t:"object"==typeof t&&"lat"in t?new o.LatLng(t.lat,"lng"in t?t.lng:t.lon,t.alt):e===i?null:new o.LatLng(t,e,n)},o.LatLngBounds=function(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;n<o;n++)this.extend(i[n])},o.LatLngBounds.prototype={extend:function(t){var e,i,n=this._southWest,s=this._northEast;if(t instanceof o.LatLng)e=t,i=t;else{if(!(t instanceof o.LatLngBounds))return t?this.extend(o.latLng(t)||o.latLngBounds(t)):this;if(e=t._southWest,i=t._northEast,!e||!i)return this}return n||s?(n.lat=Math.min(e.lat,n.lat),n.lng=Math.min(e.lng,n.lng),s.lat=Math.max(i.lat,s.lat),s.lng=Math.max(i.lng,s.lng)):(this._southWest=new o.LatLng(e.lat,e.lng),this._northEast=new o.LatLng(i.lat,i.lng)),this},pad:function(t){var e=this._southWest,i=this._northEast,n=Math.abs(e.lat-i.lat)*t,s=Math.abs(e.lng-i.lng)*t;return new o.LatLngBounds(new o.LatLng(e.lat-n,e.lng-s),new o.LatLng(i.lat+n,i.lng+s))},getCenter:function(){return new o.LatLng((this._southWest.lat+this._northEast.lat)/2,(this._southWest.lng+this._northEast.lng)/2)},getSouthWest:function(){return this._southWest},getNorthEast:function(){return this._northEast},getNorthWest:function(){return new o.LatLng(this.getNorth(),this.getWest())},getSouthEast:function(){return new o.LatLng(this.getSouth(),this.getEast())},getWest:function(){return this._southWest.lng},getSouth:function(){return this._southWest.lat},getEast:function(){return this._northEast.lng},getNorth:function(){return this._northEast.lat},contains:function(t){t="number"==typeof t[0]||t instanceof o.LatLng?o.latLng(t):o.latLngBounds(t);var e,i,n=this._southWest,s=this._northEast;return t instanceof o.LatLngBounds?(e=t.getSouthWest(),i=t.getNorthEast()):e=i=t,e.lat>=n.lat&&i.lat<=s.lat&&e.lng>=n.lng&&i.lng<=s.lng},intersects:function(t){t=o.latLngBounds(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),s=t.getNorthEast(),r=s.lat>=e.lat&&n.lat<=i.lat,a=s.lng>=e.lng&&n.lng<=i.lng;return r&&a},overlaps:function(t){t=o.latLngBounds(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),s=t.getNorthEast(),r=s.lat>e.lat&&n.lat<i.lat,a=s.lng>e.lng&&n.lng<i.lng;return r&&a},toBBoxString:function(){return[this.getWest(),this.getSouth(),this.getEast(),this.getNorth()].join(",")},equals:function(t){return!!t&&(t=o.latLngBounds(t),this._southWest.equals(t.getSouthWest())&&this._northEast.equals(t.getNorthEast()))},isValid:function(){return!(!this._southWest||!this._northEast)}},o.latLngBounds=function(t,e){return t instanceof o.LatLngBounds?t:new o.LatLngBounds(t,e)},o.Projection={},o.Projection.LonLat={project:function(t){return new o.Point(t.lng,t.lat)},unproject:function(t){return new o.LatLng(t.y,t.x)},bounds:o.bounds([-180,-90],[180,90])},o.Projection.SphericalMercator={R:6378137,MAX_LATITUDE:85.0511287798,project:function(t){var e=Math.PI/180,i=this.MAX_LATITUDE,n=Math.max(Math.min(i,t.lat),-i),s=Math.sin(n*e);return new o.Point(this.R*t.lng*e,this.R*Math.log((1+s)/(1-s))/2)},unproject:function(t){var e=180/Math.PI;return new o.LatLng((2*Math.atan(Math.exp(t.y/this.R))-Math.PI/2)*e,t.x*e/this.R)},bounds:function(){var t=6378137*Math.PI;return o.bounds([-t,-t],[t,t])}()},o.CRS={latLngToPoint:function(t,e){var i=this.projection.project(t),n=this.scale(e);return this.transformation._transform(i,n)},pointToLatLng:function(t,e){var i=this.scale(e),n=this.transformation.untransform(t,i);return this.projection.unproject(n)},project:function(t){return this.projection.project(t)},unproject:function(t){return this.projection.unproject(t)},scale:function(t){return 256*Math.pow(2,t)},zoom:function(t){return Math.log(t/256)/Math.LN2},getProjectedBounds:function(t){if(this.infinite)return null;var e=this.projection.bounds,i=this.scale(t),n=this.transformation.transform(e.min,i),s=this.transformation.transform(e.max,i);return o.bounds(n,s)},infinite:!1,wrapLatLng:function(t){var e=this.wrapLng?o.Util.wrapNum(t.lng,this.wrapLng,!0):t.lng,i=this.wrapLat?o.Util.wrapNum(t.lat,this.wrapLat,!0):t.lat,n=t.alt;return o.latLng(i,e,n)}},o.CRS.Simple=o.extend({},o.CRS,{projection:o.Projection.LonLat,transformation:new o.Transformation(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,e){var i=e.lng-t.lng,n=e.lat-t.lat;return Math.sqrt(i*i+n*n)},infinite:!0}),o.CRS.Earth=o.extend({},o.CRS,{wrapLng:[-180,180],R:6371e3,distance:function(t,e){var i=Math.PI/180,n=t.lat*i,o=e.lat*i,s=Math.sin(n)*Math.sin(o)+Math.cos(n)*Math.cos(o)*Math.cos((e.lng-t.lng)*i);return this.R*Math.acos(Math.min(s,1))}}),o.CRS.EPSG3857=o.extend({},o.CRS.Earth,{code:"EPSG:3857",projection:o.Projection.SphericalMercator,transformation:function(){var t=.5/(Math.PI*o.Projection.SphericalMercator.R);return new o.Transformation(t,.5,-t,.5)}()}),o.CRS.EPSG900913=o.extend({},o.CRS.EPSG3857,{code:"EPSG:900913"}),o.CRS.EPSG4326=o.extend({},o.CRS.Earth,{code:"EPSG:4326",projection:o.Projection.LonLat,transformation:new o.Transformation(1/180,1,-1/180,.5)}),o.Map=o.Evented.extend({options:{crs:o.CRS.EPSG3857,center:i,zoom:i,minZoom:i,maxZoom:i,layers:[],maxBounds:i,renderer:i,fadeAnimation:!0,markerZoomAnimation:!0,transform3DLimit:8388608,zoomSnap:1,zoomDelta:1,trackResize:!0},initialize:function(t,e){e=o.setOptions(this,e),this._initContainer(t),this._initLayout(),this._onResize=o.bind(this._onResize,this),this._initEvents(),e.maxBounds&&this.setMaxBounds(e.maxBounds),e.zoom!==i&&(this._zoom=this._limitZoom(e.zoom)),e.center&&e.zoom!==i&&this.setView(o.latLng(e.center),e.zoom,{reset:!0}),this._handlers=[],this._layers={},this._zoomBoundLayers={},this._sizeChanged=!0,this.callInitHooks(),this._addLayers(this.options.layers)},setView:function(t,e){return e=e===i?this.getZoom():e,this._resetView(o.latLng(t),e),this},setZoom:function(t,e){return this._loaded?this.setView(this.getCenter(),t,{zoom:e}):(this._zoom=t,this)},zoomIn:function(t,e){return t=t||(o.Browser.any3d?this.options.zoomDelta:1),this.setZoom(this._zoom+t,e)},zoomOut:function(t,e){return t=t||(o.Browser.any3d?this.options.zoomDelta:1),this.setZoom(this._zoom-t,e)},setZoomAround:function(t,e,i){var n=this.getZoomScale(e),s=this.getSize().divideBy(2),r=t instanceof o.Point?t:this.latLngToContainerPoint(t),a=r.subtract(s).multiplyBy(1-1/n),h=this.containerPointToLatLng(s.add(a));return this.setView(h,e,{zoom:i})},_getBoundsCenterZoom:function(t,e){e=e||{},t=t.getBounds?t.getBounds():o.latLngBounds(t);var i=o.point(e.paddingTopLeft||e.padding||[0,0]),n=o.point(e.paddingBottomRight||e.padding||[0,0]),s=this.getBoundsZoom(t,!1,i.add(n));s="number"==typeof e.maxZoom?Math.min(e.maxZoom,s):s;var r=n.subtract(i).divideBy(2),a=this.project(t.getSouthWest(),s),h=this.project(t.getNorthEast(),s),l=this.unproject(a.add(h).divideBy(2).add(r),s);return{center:l,zoom:s}},fitBounds:function(t,e){if(t=o.latLngBounds(t),!t.isValid())throw new Error("Bounds are not valid.");var i=this._getBoundsCenterZoom(t,e);return this.setView(i.center,i.zoom,e)},fitWorld:function(t){return this.fitBounds([[-90,-180],[90,180]],t)},panTo:function(t,e){return this.setView(t,this._zoom,{pan:e})},panBy:function(t){return this.fire("movestart"),this._rawPanBy(o.point(t)),this.fire("move"),this.fire("moveend")},setMaxBounds:function(t){return t=o.latLngBounds(t),t.isValid()?(this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this.options.maxBounds=t,this._loaded&&this._panInsideMaxBounds(),this.on("moveend",this._panInsideMaxBounds)):(this.options.maxBounds=null,this.off("moveend",this._panInsideMaxBounds))},setMinZoom:function(t){return this.options.minZoom=t,this._loaded&&this.getZoom()<this.options.minZoom?this.setZoom(t):this},setMaxZoom:function(t){return this.options.maxZoom=t,this._loaded&&this.getZoom()>this.options.maxZoom?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),n=this._limitCenter(i,this._zoom,o.latLngBounds(t));return i.equals(n)||this.panTo(n,e),this._enforcingBounds=!1,this},invalidateSize:function(t){if(!this._loaded)return this;t=o.extend({animate:!1,pan:!0},t===!0?{animate:!0}:t);var e=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var i=this.getSize(),n=e.divideBy(2).round(),s=i.divideBy(2).round(),r=n.subtract(s);return r.x||r.y?(t.animate&&t.pan?this.panBy(r):(t.pan&&this._rawPanBy(r),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(o.bind(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:e,newSize:i})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},addHandler:function(t,e){if(!e)return this;var i=this[t]=new e(this);return this._handlers.push(i),this.options[t]&&i.enable(),this},remove:function(){if(this._initEvents(!0),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=i,this._containerId=i}o.DomUtil.remove(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._clearHandlers(),this._loaded&&this.fire("unload");for(var t in this._layers)this._layers[t].remove();return this},createPane:function(t,e){var i="leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),n=o.DomUtil.create("div",i,e||this._mapPane);return t&&(this._panes[t]=n),n},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds(),e=this.unproject(t.getBottomLeft()),i=this.unproject(t.getTopRight());return new o.LatLngBounds(e,i)},getMinZoom:function(){return this.options.minZoom===i?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return this.options.maxZoom===i?this._layersMaxZoom===i?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=o.latLngBounds(t),i=o.point(i||[0,0]);var n=this.getZoom()||0,s=this.getMinZoom(),r=this.getMaxZoom(),a=t.getNorthWest(),h=t.getSouthEast(),l=this.getSize().subtract(i),u=this.project(h,n).subtract(this.project(a,n)),c=o.Browser.any3d?this.options.zoomSnap:1,d=Math.min(l.x/u.x,l.y/u.y);return n=this.getScaleZoom(d,n),c&&(n=Math.round(n/(c/100))*(c/100),n=e?Math.ceil(n/c)*c:Math.floor(n/c)*c),Math.max(s,Math.min(r,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new o.Point(this._container.clientWidth,this._container.clientHeight),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){var i=this._getTopLeftPoint(t,e);return new o.Bounds(i,i.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(t===i?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var n=this.options.crs;return e=e===i?this._zoom:e,n.scale(t)/n.scale(e)},getScaleZoom:function(t,e){var n=this.options.crs;e=e===i?this._zoom:e;var o=n.zoom(t*n.scale(e));return isNaN(o)?1/0:o},project:function(t,e){return e=e===i?this._zoom:e,this.options.crs.latLngToPoint(o.latLng(t),e)},unproject:function(t,e){return e=e===i?this._zoom:e,this.options.crs.pointToLatLng(o.point(t),e)},layerPointToLatLng:function(t){var e=o.point(t).add(this.getPixelOrigin());return this.unproject(e)},latLngToLayerPoint:function(t){var e=this.project(o.latLng(t))._round();return e._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(o.latLng(t))},distance:function(t,e){return this.options.crs.distance(o.latLng(t),o.latLng(e))},containerPointToLayerPoint:function(t){return o.point(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return o.point(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var e=this.containerPointToLayerPoint(o.point(t));return this.layerPointToLatLng(e)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(o.latLng(t)))},mouseEventToContainerPoint:function(t){return o.DomEvent.getMousePosition(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var e=this._container=o.DomUtil.get(t);if(!e)throw new Error("Map container not found.");if(e._leaflet_id)throw new Error("Map container is already initialized.");o.DomEvent.addListener(e,"scroll",this._onScroll,this),this._containerId=o.Util.stamp(e)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&o.Browser.any3d,o.DomUtil.addClass(t,"leaflet-container"+(o.Browser.touch?" leaflet-touch":"")+(o.Browser.retina?" leaflet-retina":"")+(o.Browser.ielt9?" leaflet-oldie":"")+(o.Browser.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var e=o.DomUtil.getStyle(t,"position");"absolute"!==e&&"relative"!==e&&"fixed"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),o.DomUtil.setPosition(this._mapPane,new o.Point(0,0)),this.createPane("tilePane"),this.createPane("shadowPane"),this.createPane("overlayPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(o.DomUtil.addClass(t.markerPane,"leaflet-zoom-hide"),o.DomUtil.addClass(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e){o.DomUtil.setPosition(this._mapPane,new o.Point(0,0));var i=!this._loaded;this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset");var n=this._zoom!==e;this._moveStart(n)._move(t,e)._moveEnd(n),this.fire("viewreset"),i&&this.fire("load")},_moveStart:function(t){return t&&this.fire("zoomstart"),this.fire("movestart")},_move:function(t,e,n){e===i&&(e=this._zoom);var o=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),(o||n&&n.pinch)&&this.fire("zoom",n),this.fire("move",n)},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return o.Util.cancelAnimFrame(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){o.DomUtil.setPosition(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(e){if(o.DomEvent){this._targets={},this._targets[o.stamp(this._container)]=this;var i=e?"off":"on";o.DomEvent[i](this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress",this._handleDOMEvent,this),this.options.trackResize&&o.DomEvent[i](t,"resize",this._onResize,this),o.Browser.any3d&&this.options.transform3DLimit&&this[i]("moveend",this._onMoveEnd)}},_onResize:function(){o.Util.cancelAnimFrame(this._resizeRequest),this._resizeRequest=o.Util.requestAnimFrame(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i,n=[],s="mouseout"===e||"mouseover"===e,r=t.target||t.srcElement,a=!1;r;){if(i=this._targets[o.stamp(r)],i&&("click"===e||"preclick"===e)&&!t._simulated&&this._draggableMoved(i)){a=!0;break}if(i&&i.listens(e,!0)){if(s&&!o.DomEvent._isExternalTarget(r,t))break;if(n.push(i),s)break}if(r===this._container)break;r=r.parentNode}return n.length||a||s||!o.DomEvent._isExternalTarget(r,t)||(n=[this]),n},_handleDOMEvent:function(t){if(this._loaded&&!o.DomEvent._skipped(t)){var e="keypress"===t.type&&13===t.keyCode?"click":t.type;"mousedown"===e&&o.DomUtil.preventOutline(t.target||t.srcElement),this._fireDOMEvent(t,e)}},_fireDOMEvent:function(t,e,i){if("click"===t.type){var n=o.Util.extend({},t);n.type="preclick",this._fireDOMEvent(n,n.type,i)}if(!t._stopped&&(i=(i||[]).concat(this._findEventTargets(t,e)),i.length)){var s=i[0];"contextmenu"===e&&s.listens(e,!0)&&o.DomEvent.preventDefault(t);var r={originalEvent:t};if("keypress"!==t.type){var a=s instanceof o.Marker;r.containerPoint=a?this.latLngToContainerPoint(s.getLatLng()):this.mouseEventToContainerPoint(t),r.layerPoint=this.containerPointToLayerPoint(r.containerPoint),r.latlng=a?s.getLatLng():this.layerPointToLatLng(r.layerPoint); +}for(var h=0;h<i.length;h++)if(i[h].fire(e,r,!0),r.originalEvent._stopped||i[h].options.nonBubblingEvents&&o.Util.indexOf(i[h].options.nonBubblingEvents,e)!==-1)return}},_draggableMoved:function(t){return t=t.dragging&&t.dragging.enabled()?t:this,t.dragging&&t.dragging.moved()||this.boxZoom&&this.boxZoom.moved()},_clearHandlers:function(){for(var t=0,e=this._handlers.length;t<e;t++)this._handlers[t].disable()},whenReady:function(t,e){return this._loaded?t.call(e||this,{target:this}):this.on("load",t,e),this},_getMapPanePos:function(){return o.DomUtil.getPosition(this._mapPane)||new o.Point(0,0)},_moved:function(){var t=this._getMapPanePos();return t&&!t.equals([0,0])},_getTopLeftPoint:function(t,e){var n=t&&e!==i?this._getNewPixelOrigin(t,e):this.getPixelOrigin();return n.subtract(this._getMapPanePos())},_getNewPixelOrigin:function(t,e){var i=this.getSize()._divideBy(2);return this.project(t,e)._subtract(i)._add(this._getMapPanePos())._round()},_latLngToNewLayerPoint:function(t,e,i){var n=this._getNewPixelOrigin(i,e);return this.project(t,e)._subtract(n)},_getCenterLayerPoint:function(){return this.containerPointToLayerPoint(this.getSize()._divideBy(2))},_getCenterOffset:function(t){return this.latLngToLayerPoint(t).subtract(this._getCenterLayerPoint())},_limitCenter:function(t,e,i){if(!i)return t;var n=this.project(t,e),s=this.getSize().divideBy(2),r=new o.Bounds(n.subtract(s),n.add(s)),a=this._getBoundsOffset(r,i,e);return a.round().equals([0,0])?t:this.unproject(n.add(a),e)},_limitOffset:function(t,e){if(!e)return t;var i=this.getPixelBounds(),n=new o.Bounds(i.min.add(t),i.max.add(t));return t.add(this._getBoundsOffset(n,e))},_getBoundsOffset:function(t,e,i){var n=o.bounds(this.project(e.getNorthEast(),i),this.project(e.getSouthWest(),i)),s=n.min.subtract(t.min),r=n.max.subtract(t.max),a=this._rebound(s.x,-r.x),h=this._rebound(s.y,-r.y);return new o.Point(a,h)},_rebound:function(t,e){return t+e>0?Math.round(t-e)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(e))},_limitZoom:function(t){var e=this.getMinZoom(),i=this.getMaxZoom(),n=o.Browser.any3d?this.options.zoomSnap:1;return n&&(t=Math.round(t/n)*n),Math.max(e,Math.min(i,t))}}),o.map=function(t,e){return new o.Map(t,e)},o.Layer=o.Evented.extend({options:{pane:"overlayPane",nonBubblingEvents:[]},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[o.stamp(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[o.stamp(t)],this},_layerAdd:function(t){var e=t.target;if(e.hasLayer(this)){if(this._map=e,this._zoomAnimated=e._zoomAnimated,this.getEvents){var i=this.getEvents();e.on(i,this),this.once("remove",function(){e.off(i,this)},this)}this.onAdd(e),this.getAttribution&&this._map.attributionControl&&this._map.attributionControl.addAttribution(this.getAttribution()),this.fire("add"),e.fire("layeradd",{layer:this})}}}),o.Map.include({addLayer:function(t){var e=o.stamp(t);return this._layers[e]?this:(this._layers[e]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t),this)},removeLayer:function(t){var e=o.stamp(t);return this._layers[e]?(this._loaded&&t.onRemove(this),t.getAttribution&&this.attributionControl&&this.attributionControl.removeAttribution(t.getAttribution()),delete this._layers[e],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return!!t&&o.stamp(t)in this._layers},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},_addLayers:function(t){t=t?o.Util.isArray(t)?t:[t]:[];for(var e=0,i=t.length;e<i;e++)this.addLayer(t[e])},_addZoomLimit:function(t){!isNaN(t.options.maxZoom)&&isNaN(t.options.minZoom)||(this._zoomBoundLayers[o.stamp(t)]=t,this._updateZoomLevels())},_removeZoomLimit:function(t){var e=o.stamp(t);this._zoomBoundLayers[e]&&(delete this._zoomBoundLayers[e],this._updateZoomLevels())},_updateZoomLevels:function(){var t=1/0,e=-(1/0),n=this._getZoomSpan();for(var o in this._zoomBoundLayers){var s=this._zoomBoundLayers[o].options;t=s.minZoom===i?t:Math.min(t,s.minZoom),e=s.maxZoom===i?e:Math.max(e,s.maxZoom)}this._layersMaxZoom=e===-(1/0)?i:e,this._layersMinZoom=t===1/0?i:t,n!==this._getZoomSpan()&&this.fire("zoomlevelschange")}}),o.Projection.Mercator={R:6378137,R_MINOR:6356752.314245179,bounds:o.bounds([-20037508.34279,-15496570.73972],[20037508.34279,18764656.23138]),project:function(t){var e=Math.PI/180,i=this.R,n=t.lat*e,s=this.R_MINOR/i,r=Math.sqrt(1-s*s),a=r*Math.sin(n),h=Math.tan(Math.PI/4-n/2)/Math.pow((1-a)/(1+a),r/2);return n=-i*Math.log(Math.max(h,1e-10)),new o.Point(t.lng*e*i,n)},unproject:function(t){for(var e,i=180/Math.PI,n=this.R,s=this.R_MINOR/n,r=Math.sqrt(1-s*s),a=Math.exp(-t.y/n),h=Math.PI/2-2*Math.atan(a),l=0,u=.1;l<15&&Math.abs(u)>1e-7;l++)e=r*Math.sin(h),e=Math.pow((1-e)/(1+e),r/2),u=Math.PI/2-2*Math.atan(a*e)-h,h+=u;return new o.LatLng(h*i,t.x*i/n)}},o.CRS.EPSG3395=o.extend({},o.CRS.Earth,{code:"EPSG:3395",projection:o.Projection.Mercator,transformation:function(){var t=.5/(Math.PI*o.Projection.Mercator.R);return new o.Transformation(t,.5,-t,.5)}()}),o.GridLayer=o.Layer.extend({options:{tileSize:256,opacity:1,updateWhenIdle:o.Browser.mobile,updateWhenZooming:!0,updateInterval:200,attribution:null,zIndex:1,bounds:null,minZoom:0,maxZoom:i,noWrap:!1,pane:"tilePane",className:"",keepBuffer:2},initialize:function(t){o.setOptions(this,t)},onAdd:function(){this._initContainer(),this._levels={},this._tiles={},this._resetView(),this._update()},beforeAdd:function(t){t._addZoomLimit(this)},onRemove:function(t){this._removeAllTiles(),o.DomUtil.remove(this._container),t._removeZoomLimit(this),this._container=null,this._tileZoom=null},bringToFront:function(){return this._map&&(o.DomUtil.toFront(this._container),this._setAutoZIndex(Math.max)),this},bringToBack:function(){return this._map&&(o.DomUtil.toBack(this._container),this._setAutoZIndex(Math.min)),this},getAttribution:function(){return this.options.attribution},getContainer:function(){return this._container},setOpacity:function(t){return this.options.opacity=t,this._updateOpacity(),this},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},isLoading:function(){return this._loading},redraw:function(){return this._map&&(this._removeAllTiles(),this._update()),this},getEvents:function(){var t={viewprereset:this._invalidateAll,viewreset:this._resetView,zoom:this._resetView,moveend:this._onMoveEnd};return this.options.updateWhenIdle||(this._onMove||(this._onMove=o.Util.throttle(this._onMoveEnd,this.options.updateInterval,this)),t.move=this._onMove),this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},createTile:function(){return e.createElement("div")},getTileSize:function(){var t=this.options.tileSize;return t instanceof o.Point?t:new o.Point(t,t)},_updateZIndex:function(){this._container&&this.options.zIndex!==i&&null!==this.options.zIndex&&(this._container.style.zIndex=this.options.zIndex)},_setAutoZIndex:function(t){for(var e,i=this.getPane().children,n=-t(-(1/0),1/0),o=0,s=i.length;o<s;o++)e=i[o].style.zIndex,i[o]!==this._container&&e&&(n=t(n,+e));isFinite(n)&&(this.options.zIndex=n+t(-1,1),this._updateZIndex())},_updateOpacity:function(){if(this._map&&!o.Browser.ielt9){o.DomUtil.setOpacity(this._container,this.options.opacity);var t=+new Date,e=!1,i=!1;for(var n in this._tiles){var s=this._tiles[n];if(s.current&&s.loaded){var r=Math.min(1,(t-s.loaded)/200);o.DomUtil.setOpacity(s.el,r),r<1?e=!0:(s.active&&(i=!0),s.active=!0)}}i&&!this._noPrune&&this._pruneTiles(),e&&(o.Util.cancelAnimFrame(this._fadeFrame),this._fadeFrame=o.Util.requestAnimFrame(this._updateOpacity,this))}},_initContainer:function(){this._container||(this._container=o.DomUtil.create("div","leaflet-layer "+(this.options.className||"")),this._updateZIndex(),this.options.opacity<1&&this._updateOpacity(),this.getPane().appendChild(this._container))},_updateLevels:function(){var t=this._tileZoom,e=this.options.maxZoom;if(t===i)return i;for(var n in this._levels)this._levels[n].el.children.length||n===t?this._levels[n].el.style.zIndex=e-Math.abs(t-n):(o.DomUtil.remove(this._levels[n].el),this._removeTilesAtZoom(n),delete this._levels[n]);var s=this._levels[t],r=this._map;return s||(s=this._levels[t]={},s.el=o.DomUtil.create("div","leaflet-tile-container leaflet-zoom-animated",this._container),s.el.style.zIndex=e,s.origin=r.project(r.unproject(r.getPixelOrigin()),t).round(),s.zoom=t,this._setZoomTransform(s,r.getCenter(),r.getZoom()),o.Util.falseFn(s.el.offsetWidth)),this._level=s,s},_pruneTiles:function(){if(this._map){var t,e,i=this._map.getZoom();if(i>this.options.maxZoom||i<this.options.minZoom)return void this._removeAllTiles();for(t in this._tiles)e=this._tiles[t],e.retain=e.current;for(t in this._tiles)if(e=this._tiles[t],e.current&&!e.active){var n=e.coords;this._retainParent(n.x,n.y,n.z,n.z-5)||this._retainChildren(n.x,n.y,n.z,n.z+2)}for(t in this._tiles)this._tiles[t].retain||this._removeTile(t)}},_removeTilesAtZoom:function(t){for(var e in this._tiles)this._tiles[e].coords.z===t&&this._removeTile(e)},_removeAllTiles:function(){for(var t in this._tiles)this._removeTile(t)},_invalidateAll:function(){for(var t in this._levels)o.DomUtil.remove(this._levels[t].el),delete this._levels[t];this._removeAllTiles(),this._tileZoom=null},_retainParent:function(t,e,i,n){var s=Math.floor(t/2),r=Math.floor(e/2),a=i-1,h=new o.Point(+s,+r);h.z=+a;var l=this._tileCoordsToKey(h),u=this._tiles[l];return u&&u.active?(u.retain=!0,!0):(u&&u.loaded&&(u.retain=!0),a>n&&this._retainParent(s,r,a,n))},_retainChildren:function(t,e,i,n){for(var s=2*t;s<2*t+2;s++)for(var r=2*e;r<2*e+2;r++){var a=new o.Point(s,r);a.z=i+1;var h=this._tileCoordsToKey(a),l=this._tiles[h];l&&l.active?l.retain=!0:(l&&l.loaded&&(l.retain=!0),i+1<n&&this._retainChildren(s,r,i+1,n))}},_resetView:function(t){var e=t&&(t.pinch||t.flyTo);this._setView(this._map.getCenter(),this._map.getZoom(),e,e)},_animateZoom:function(t){this._setView(t.center,t.zoom,!0,t.noUpdate)},_setView:function(t,e,n,o){var s=Math.round(e);(this.options.maxZoom!==i&&s>this.options.maxZoom||this.options.minZoom!==i&&s<this.options.minZoom)&&(s=i);var r=this.options.updateWhenZooming&&s!==this._tileZoom;o&&!r||(this._tileZoom=s,this._abortLoading&&this._abortLoading(),this._updateLevels(),this._resetGrid(),s!==i&&this._update(t),n||this._pruneTiles(),this._noPrune=!!n),this._setZoomTransforms(t,e)},_setZoomTransforms:function(t,e){for(var i in this._levels)this._setZoomTransform(this._levels[i],t,e)},_setZoomTransform:function(t,e,i){var n=this._map.getZoomScale(i,t.zoom),s=t.origin.multiplyBy(n).subtract(this._map._getNewPixelOrigin(e,i)).round();o.Browser.any3d?o.DomUtil.setTransform(t.el,s,n):o.DomUtil.setPosition(t.el,s)},_resetGrid:function(){var t=this._map,e=t.options.crs,i=this._tileSize=this.getTileSize(),n=this._tileZoom,o=this._map.getPixelWorldBounds(this._tileZoom);o&&(this._globalTileRange=this._pxBoundsToTileRange(o)),this._wrapX=e.wrapLng&&!this.options.noWrap&&[Math.floor(t.project([0,e.wrapLng[0]],n).x/i.x),Math.ceil(t.project([0,e.wrapLng[1]],n).x/i.y)],this._wrapY=e.wrapLat&&!this.options.noWrap&&[Math.floor(t.project([e.wrapLat[0],0],n).y/i.x),Math.ceil(t.project([e.wrapLat[1],0],n).y/i.y)]},_onMoveEnd:function(){this._map&&!this._map._animatingZoom&&this._update()},_getTiledPixelBounds:function(t){var e=this._map,i=e._animatingZoom?Math.max(e._animateToZoom,e.getZoom()):e.getZoom(),n=e.getZoomScale(i,this._tileZoom),s=e.project(t,this._tileZoom).floor(),r=e.getSize().divideBy(2*n);return new o.Bounds(s.subtract(r),s.add(r))},_update:function(t){var n=this._map;if(n){var s=n.getZoom();if(t===i&&(t=n.getCenter()),this._tileZoom!==i){var r=this._getTiledPixelBounds(t),a=this._pxBoundsToTileRange(r),h=a.getCenter(),l=[],u=this.options.keepBuffer,c=new o.Bounds(a.getBottomLeft().subtract([u,-u]),a.getTopRight().add([u,-u]));for(var d in this._tiles){var _=this._tiles[d].coords;_.z===this._tileZoom&&c.contains(o.point(_.x,_.y))||(this._tiles[d].current=!1)}if(Math.abs(s-this._tileZoom)>1)return void this._setView(t,s);for(var m=a.min.y;m<=a.max.y;m++)for(var p=a.min.x;p<=a.max.x;p++){var f=new o.Point(p,m);if(f.z=this._tileZoom,this._isValidTile(f)){var g=this._tiles[this._tileCoordsToKey(f)];g?g.current=!0:l.push(f)}}if(l.sort(function(t,e){return t.distanceTo(h)-e.distanceTo(h)}),0!==l.length){this._loading||(this._loading=!0,this.fire("loading"));var v=e.createDocumentFragment();for(p=0;p<l.length;p++)this._addTile(l[p],v);this._level.el.appendChild(v)}}}},_isValidTile:function(t){var e=this._map.options.crs;if(!e.infinite){var i=this._globalTileRange;if(!e.wrapLng&&(t.x<i.min.x||t.x>i.max.x)||!e.wrapLat&&(t.y<i.min.y||t.y>i.max.y))return!1}if(!this.options.bounds)return!0;var n=this._tileCoordsToBounds(t);return o.latLngBounds(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToBounds:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),s=n.add(i),r=e.unproject(n,t.z),a=e.unproject(s,t.z);return this.options.noWrap||(r=e.wrapLatLng(r),a=e.wrapLatLng(a)),new o.LatLngBounds(r,a)},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var e=t.split(":"),i=new o.Point(+e[0],+e[1]);return i.z=+e[2],i},_removeTile:function(t){var e=this._tiles[t];e&&(o.DomUtil.remove(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){o.DomUtil.addClass(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=o.Util.falseFn,t.onmousemove=o.Util.falseFn,o.Browser.ielt9&&this.options.opacity<1&&o.DomUtil.setOpacity(t,this.options.opacity),o.Browser.android&&!o.Browser.android23&&(t.style.WebkitBackfaceVisibility="hidden")},_addTile:function(t,e){var i=this._getTilePos(t),n=this._tileCoordsToKey(t),s=this.createTile(this._wrapCoords(t),o.bind(this._tileReady,this,t));this._initTile(s),this.createTile.length<2&&o.Util.requestAnimFrame(o.bind(this._tileReady,this,t,null,s)),o.DomUtil.setPosition(s,i),this._tiles[n]={el:s,coords:t,current:!0},e.appendChild(s),this.fire("tileloadstart",{tile:s,coords:t})},_tileReady:function(t,e,i){if(this._map){e&&this.fire("tileerror",{error:e,tile:i,coords:t});var n=this._tileCoordsToKey(t);i=this._tiles[n],i&&(i.loaded=+new Date,this._map._fadeAnimated?(o.DomUtil.setOpacity(i.el,0),o.Util.cancelAnimFrame(this._fadeFrame),this._fadeFrame=o.Util.requestAnimFrame(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(o.DomUtil.addClass(i.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),o.Browser.ielt9||!this._map._fadeAnimated?o.Util.requestAnimFrame(this._pruneTiles,this):setTimeout(o.bind(this._pruneTiles,this),250)))}},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new o.Point(this._wrapX?o.Util.wrapNum(t.x,this._wrapX):t.x,this._wrapY?o.Util.wrapNum(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new o.Bounds(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}}),o.gridLayer=function(t){return new o.GridLayer(t)},o.TileLayer=o.GridLayer.extend({options:{minZoom:0,maxZoom:18,maxNativeZoom:null,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1},initialize:function(t,e){this._url=t,e=o.setOptions(this,e),e.detectRetina&&o.Browser.retina&&e.maxZoom>0&&(e.tileSize=Math.floor(e.tileSize/2),e.zoomReverse?(e.zoomOffset--,e.minZoom++):(e.zoomOffset++,e.maxZoom--),e.minZoom=Math.max(0,e.minZoom)),"string"==typeof e.subdomains&&(e.subdomains=e.subdomains.split("")),o.Browser.android||this.on("tileunload",this._onTileRemove)},setUrl:function(t,e){return this._url=t,e||this.redraw(),this},createTile:function(t,i){var n=e.createElement("img");return o.DomEvent.on(n,"load",o.bind(this._tileOnLoad,this,i,n)),o.DomEvent.on(n,"error",o.bind(this._tileOnError,this,i,n)),this.options.crossOrigin&&(n.crossOrigin=""),n.alt="",n.src=this.getTileUrl(t),n},getTileUrl:function(t){var e={r:o.Browser.retina?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var i=this._globalTileRange.max.y-t.y;this.options.tms&&(e.y=i),e["-y"]=i}return o.Util.template(this._url,o.extend(e,this.options))},_tileOnLoad:function(t,e){o.Browser.ielt9?setTimeout(o.bind(t,this,null,e),0):t(null,e)},_tileOnError:function(t,e,i){var n=this.options.errorTileUrl;n&&(e.src=n),t(i,e)},getTileSize:function(){var t=this._map,e=o.GridLayer.prototype.getTileSize.call(this),i=this._tileZoom+this.options.zoomOffset,n=this.options.maxNativeZoom;return null!==n&&i>n?e.divideBy(t.getZoomScale(n,i)).round():e},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this.options,e=this._tileZoom;return t.zoomReverse&&(e=t.maxZoom-e),e+=t.zoomOffset,null!==t.maxNativeZoom?Math.min(e,t.maxNativeZoom):e},_getSubdomain:function(t){var e=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[e]},_abortLoading:function(){var t,e;for(t in this._tiles)this._tiles[t].coords.z!==this._tileZoom&&(e=this._tiles[t].el,e.onload=o.Util.falseFn,e.onerror=o.Util.falseFn,e.complete||(e.src=o.Util.emptyImageUrl,o.DomUtil.remove(e)))}}),o.tileLayer=function(t,e){return new o.TileLayer(t,e)},o.TileLayer.WMS=o.TileLayer.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,e){this._url=t;var i=o.extend({},this.defaultWmsParams);for(var n in e)n in this.options||(i[n]=e[n]);e=o.setOptions(this,e),i.width=i.height=e.tileSize*(e.detectRetina&&o.Browser.retina?2:1),this.wmsParams=i},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var e=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[e]=this._crs.code,o.TileLayer.prototype.onAdd.call(this,t)},getTileUrl:function(t){var e=this._tileCoordsToBounds(t),i=this._crs.project(e.getNorthWest()),n=this._crs.project(e.getSouthEast()),s=(this._wmsVersion>=1.3&&this._crs===o.CRS.EPSG4326?[n.y,i.x,i.y,n.x]:[i.x,n.y,n.x,i.y]).join(","),r=o.TileLayer.prototype.getTileUrl.call(this,t);return r+o.Util.getParamString(this.wmsParams,r,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+s},setParams:function(t,e){return o.extend(this.wmsParams,t),e||this.redraw(),this}}),o.tileLayer.wms=function(t,e){return new o.TileLayer.WMS(t,e)},o.ImageOverlay=o.Layer.extend({options:{opacity:1,alt:"",interactive:!1,attribution:null,crossOrigin:!1},initialize:function(t,e,i){this._url=t,this._bounds=o.latLngBounds(e),o.setOptions(this,i)},onAdd:function(){this._image||(this._initImage(),this.options.opacity<1&&this._updateOpacity()),this.options.interactive&&(o.DomUtil.addClass(this._image,"leaflet-interactive"),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){o.DomUtil.remove(this._image),this.options.interactive&&this.removeInteractiveTarget(this._image)},setOpacity:function(t){return this.options.opacity=t,this._image&&this._updateOpacity(),this},setStyle:function(t){return t.opacity&&this.setOpacity(t.opacity),this},bringToFront:function(){return this._map&&o.DomUtil.toFront(this._image),this},bringToBack:function(){return this._map&&o.DomUtil.toBack(this._image),this},setUrl:function(t){return this._url=t,this._image&&(this._image.src=t),this},setBounds:function(t){return this._bounds=t,this._map&&this._reset(),this},getAttribution:function(){return this.options.attribution},getEvents:function(){var t={zoom:this._reset,viewreset:this._reset};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},getBounds:function(){return this._bounds},getElement:function(){return this._image},_initImage:function(){var t=this._image=o.DomUtil.create("img","leaflet-image-layer "+(this._zoomAnimated?"leaflet-zoom-animated":""));t.onselectstart=o.Util.falseFn,t.onmousemove=o.Util.falseFn,t.onload=o.bind(this.fire,this,"load"),this.options.crossOrigin&&(t.crossOrigin=""),t.src=this._url,t.alt=this.options.alt},_animateZoom:function(t){var e=this._map.getZoomScale(t.zoom),i=this._map._latLngToNewLayerPoint(this._bounds.getNorthWest(),t.zoom,t.center);o.DomUtil.setTransform(this._image,i,e)},_reset:function(){var t=this._image,e=new o.Bounds(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),i=e.getSize();o.DomUtil.setPosition(t,e.min),t.style.width=i.x+"px",t.style.height=i.y+"px"},_updateOpacity:function(){o.DomUtil.setOpacity(this._image,this.options.opacity)}}),o.imageOverlay=function(t,e,i){return new o.ImageOverlay(t,e,i)},o.Icon=o.Class.extend({initialize:function(t){o.setOptions(this,t)},createIcon:function(t){return this._createIcon("icon",t)},createShadow:function(t){return this._createIcon("shadow",t)},_createIcon:function(t,e){var i=this._getIconUrl(t);if(!i){if("icon"===t)throw new Error("iconUrl not set in Icon options (see the docs).");return null}var n=this._createImg(i,e&&"IMG"===e.tagName?e:null);return this._setIconStyles(n,t),n},_setIconStyles:function(t,e){var i=this.options,n=i[e+"Size"];"number"==typeof n&&(n=[n,n]);var s=o.point(n),r=o.point("shadow"===e&&i.shadowAnchor||i.iconAnchor||s&&s.divideBy(2,!0));t.className="leaflet-marker-"+e+" "+(i.className||""),r&&(t.style.marginLeft=-r.x+"px",t.style.marginTop=-r.y+"px"),s&&(t.style.width=s.x+"px",t.style.height=s.y+"px")},_createImg:function(t,i){return i=i||e.createElement("img"),i.src=t,i},_getIconUrl:function(t){return o.Browser.retina&&this.options[t+"RetinaUrl"]||this.options[t+"Url"]}}),o.icon=function(t){return new o.Icon(t)},o.Icon.Default=o.Icon.extend({options:{iconUrl:"marker-icon.png",iconRetinaUrl:"marker-icon-2x.png",shadowUrl:"marker-shadow.png",iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],tooltipAnchor:[16,-28],shadowSize:[41,41]},_getIconUrl:function(t){return o.Icon.Default.imagePath||(o.Icon.Default.imagePath=this._detectIconPath()),(this.options.imagePath||o.Icon.Default.imagePath)+o.Icon.prototype._getIconUrl.call(this,t)},_detectIconPath:function(){var t=o.DomUtil.create("div","leaflet-default-icon-path",e.body),i=o.DomUtil.getStyle(t,"background-image")||o.DomUtil.getStyle(t,"backgroundImage");return e.body.removeChild(t),0===i.indexOf("url")?i.replace(/^url\([\"\']?/,"").replace(/marker-icon\.png[\"\']?\)$/,""):""}}),o.Marker=o.Layer.extend({options:{icon:new o.Icon.Default,interactive:!0,draggable:!1,keyboard:!0,title:"",alt:"",zIndexOffset:0,opacity:1,riseOnHover:!1,riseOffset:250,pane:"markerPane",nonBubblingEvents:["click","dblclick","mouseover","mouseout","contextmenu"]},initialize:function(t,e){o.setOptions(this,e),this._latlng=o.latLng(t)},onAdd:function(t){this._zoomAnimated=this._zoomAnimated&&t.options.markerZoomAnimation,this._zoomAnimated&&t.on("zoomanim",this._animateZoom,this),this._initIcon(),this.update()},onRemove:function(t){this.dragging&&this.dragging.enabled()&&(this.options.draggable=!0,this.dragging.removeHooks()),this._zoomAnimated&&t.off("zoomanim",this._animateZoom,this),this._removeIcon(),this._removeShadow()},getEvents:function(){return{zoom:this.update,viewreset:this.update}},getLatLng:function(){return this._latlng},setLatLng:function(t){var e=this._latlng;return this._latlng=o.latLng(t),this.update(),this.fire("move",{oldLatLng:e,latlng:this._latlng})},setZIndexOffset:function(t){return this.options.zIndexOffset=t,this.update()},setIcon:function(t){return this.options.icon=t,this._map&&(this._initIcon(),this.update()),this._popup&&this.bindPopup(this._popup,this._popup.options),this},getElement:function(){return this._icon},update:function(){if(this._icon){var t=this._map.latLngToLayerPoint(this._latlng).round();this._setPos(t)}return this},_initIcon:function(){var t=this.options,e="leaflet-zoom-"+(this._zoomAnimated?"animated":"hide"),i=t.icon.createIcon(this._icon),n=!1;i!==this._icon&&(this._icon&&this._removeIcon(),n=!0,t.title&&(i.title=t.title),t.alt&&(i.alt=t.alt)),o.DomUtil.addClass(i,e),t.keyboard&&(i.tabIndex="0"),this._icon=i,t.riseOnHover&&this.on({mouseover:this._bringToFront,mouseout:this._resetZIndex});var s=t.icon.createShadow(this._shadow),r=!1;s!==this._shadow&&(this._removeShadow(),r=!0),s&&o.DomUtil.addClass(s,e),this._shadow=s,t.opacity<1&&this._updateOpacity(),n&&this.getPane().appendChild(this._icon),this._initInteraction(),s&&r&&this.getPane("shadowPane").appendChild(this._shadow)},_removeIcon:function(){this.options.riseOnHover&&this.off({mouseover:this._bringToFront,mouseout:this._resetZIndex}),o.DomUtil.remove(this._icon),this.removeInteractiveTarget(this._icon),this._icon=null},_removeShadow:function(){this._shadow&&o.DomUtil.remove(this._shadow),this._shadow=null},_setPos:function(t){o.DomUtil.setPosition(this._icon,t),this._shadow&&o.DomUtil.setPosition(this._shadow,t),this._zIndex=t.y+this.options.zIndexOffset,this._resetZIndex()},_updateZIndex:function(t){this._icon.style.zIndex=this._zIndex+t},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center).round();this._setPos(e)},_initInteraction:function(){if(this.options.interactive&&(o.DomUtil.addClass(this._icon,"leaflet-interactive"),this.addInteractiveTarget(this._icon),o.Handler.MarkerDrag)){var t=this.options.draggable;this.dragging&&(t=this.dragging.enabled(),this.dragging.disable()),this.dragging=new o.Handler.MarkerDrag(this),t&&this.dragging.enable()}},setOpacity:function(t){return this.options.opacity=t,this._map&&this._updateOpacity(),this},_updateOpacity:function(){var t=this.options.opacity;o.DomUtil.setOpacity(this._icon,t),this._shadow&&o.DomUtil.setOpacity(this._shadow,t)},_bringToFront:function(){this._updateZIndex(this.options.riseOffset)},_resetZIndex:function(){this._updateZIndex(0)}}),o.marker=function(t,e){return new o.Marker(t,e)},o.DivIcon=o.Icon.extend({options:{iconSize:[12,12],html:!1,bgPos:null,className:"leaflet-div-icon"},createIcon:function(t){var i=t&&"DIV"===t.tagName?t:e.createElement("div"),n=this.options;if(i.innerHTML=n.html!==!1?n.html:"",n.bgPos){var s=o.point(n.bgPos);i.style.backgroundPosition=-s.x+"px "+-s.y+"px"}return this._setIconStyles(i,"icon"),i},createShadow:function(){return null}}),o.divIcon=function(t){return new o.DivIcon(t)},o.DivOverlay=o.Layer.extend({options:{offset:[0,7],className:"",pane:"popupPane"},initialize:function(t,e){o.setOptions(this,t),this._source=e},onAdd:function(t){this._zoomAnimated=t._zoomAnimated,this._container||this._initLayout(),t._fadeAnimated&&o.DomUtil.setOpacity(this._container,0),clearTimeout(this._removeTimeout),this.getPane().appendChild(this._container),this.update(),t._fadeAnimated&&o.DomUtil.setOpacity(this._container,1),this.bringToFront()},onRemove:function(t){t._fadeAnimated?(o.DomUtil.setOpacity(this._container,0),this._removeTimeout=setTimeout(o.bind(o.DomUtil.remove,o.DomUtil,this._container),200)):o.DomUtil.remove(this._container)},getLatLng:function(){return this._latlng},setLatLng:function(t){return this._latlng=o.latLng(t),this._map&&(this._updatePosition(),this._adjustPan()),this},getContent:function(){return this._content},setContent:function(t){return this._content=t,this.update(),this},getElement:function(){return this._container},update:function(){this._map&&(this._container.style.visibility="hidden",this._updateContent(),this._updateLayout(),this._updatePosition(),this._container.style.visibility="",this._adjustPan())},getEvents:function(){var t={zoom:this._updatePosition,viewreset:this._updatePosition};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},isOpen:function(){return!!this._map&&this._map.hasLayer(this)},bringToFront:function(){return this._map&&o.DomUtil.toFront(this._container),this},bringToBack:function(){return this._map&&o.DomUtil.toBack(this._container),this},_updateContent:function(){if(this._content){var t=this._contentNode,e="function"==typeof this._content?this._content(this._source||this):this._content;if("string"==typeof e)t.innerHTML=e;else{for(;t.hasChildNodes();)t.removeChild(t.firstChild);t.appendChild(e)}this.fire("contentupdate")}},_updatePosition:function(){if(this._map){var t=this._map.latLngToLayerPoint(this._latlng),e=o.point(this.options.offset),i=this._getAnchor();this._zoomAnimated?o.DomUtil.setPosition(this._container,t.add(i)):e=e.add(t).add(i);var n=this._containerBottom=-e.y,s=this._containerLeft=-Math.round(this._containerWidth/2)+e.x;this._container.style.bottom=n+"px",this._container.style.left=s+"px"}},_getAnchor:function(){return[0,0]}}),o.Popup=o.DivOverlay.extend({options:{maxWidth:300,minWidth:50,maxHeight:null,autoPan:!0,autoPanPaddingTopLeft:null,autoPanPaddingBottomRight:null,autoPanPadding:[5,5],keepInView:!1,closeButton:!0,autoClose:!0,className:""},openOn:function(t){return t.openPopup(this),this},onAdd:function(t){o.DivOverlay.prototype.onAdd.call(this,t),t.fire("popupopen",{popup:this}),this._source&&(this._source.fire("popupopen",{popup:this},!0),this._source instanceof o.Path||this._source.on("preclick",o.DomEvent.stopPropagation))},onRemove:function(t){o.DivOverlay.prototype.onRemove.call(this,t),t.fire("popupclose",{popup:this}),this._source&&(this._source.fire("popupclose",{popup:this},!0),this._source instanceof o.Path||this._source.off("preclick",o.DomEvent.stopPropagation))},getEvents:function(){var t=o.DivOverlay.prototype.getEvents.call(this);return("closeOnClick"in this.options?this.options.closeOnClick:this._map.options.closePopupOnClick)&&(t.preclick=this._close),this.options.keepInView&&(t.moveend=this._adjustPan),t},_close:function(){this._map&&this._map.closePopup(this)},_initLayout:function(){var t="leaflet-popup",e=this._container=o.DomUtil.create("div",t+" "+(this.options.className||"")+" leaflet-zoom-animated");if(this.options.closeButton){var i=this._closeButton=o.DomUtil.create("a",t+"-close-button",e);i.href="#close",i.innerHTML="×",o.DomEvent.on(i,"click",this._onCloseButtonClick,this)}var n=this._wrapper=o.DomUtil.create("div",t+"-content-wrapper",e);this._contentNode=o.DomUtil.create("div",t+"-content",n),o.DomEvent.disableClickPropagation(n).disableScrollPropagation(this._contentNode).on(n,"contextmenu",o.DomEvent.stopPropagation),this._tipContainer=o.DomUtil.create("div",t+"-tip-container",e),this._tip=o.DomUtil.create("div",t+"-tip",this._tipContainer)},_updateLayout:function(){var t=this._contentNode,e=t.style;e.width="",e.whiteSpace="nowrap";var i=t.offsetWidth;i=Math.min(i,this.options.maxWidth),i=Math.max(i,this.options.minWidth),e.width=i+1+"px",e.whiteSpace="",e.height="";var n=t.offsetHeight,s=this.options.maxHeight,r="leaflet-popup-scrolled";s&&n>s?(e.height=s+"px",o.DomUtil.addClass(t,r)):o.DomUtil.removeClass(t,r),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),i=this._getAnchor();o.DomUtil.setPosition(this._container,e.add(i))},_adjustPan:function(){if(!(!this.options.autoPan||this._map._panAnim&&this._map._panAnim._inProgress)){var t=this._map,e=parseInt(o.DomUtil.getStyle(this._container,"marginBottom"),10)||0,i=this._container.offsetHeight+e,n=this._containerWidth,s=new o.Point(this._containerLeft,-i-this._containerBottom);s._add(o.DomUtil.getPosition(this._container));var r=t.layerPointToContainerPoint(s),a=o.point(this.options.autoPanPadding),h=o.point(this.options.autoPanPaddingTopLeft||a),l=o.point(this.options.autoPanPaddingBottomRight||a),u=t.getSize(),c=0,d=0; +r.x+n+l.x>u.x&&(c=r.x+n-u.x+l.x),r.x-c-h.x<0&&(c=r.x-h.x),r.y+i+l.y>u.y&&(d=r.y+i-u.y+l.y),r.y-d-h.y<0&&(d=r.y-h.y),(c||d)&&t.fire("autopanstart").panBy([c,d])}},_onCloseButtonClick:function(t){this._close(),o.DomEvent.stop(t)},_getAnchor:function(){return o.point(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}}),o.popup=function(t,e){return new o.Popup(t,e)},o.Map.mergeOptions({closePopupOnClick:!0}),o.Map.include({openPopup:function(t,e,i){return t instanceof o.Popup||(t=new o.Popup(i).setContent(t)),e&&t.setLatLng(e),this.hasLayer(t)?this:(this._popup&&this._popup.options.autoClose&&this.closePopup(),this._popup=t,this.addLayer(t))},closePopup:function(t){return t&&t!==this._popup||(t=this._popup,this._popup=null),t&&this.removeLayer(t),this}}),o.Layer.include({bindPopup:function(t,e){return t instanceof o.Popup?(o.setOptions(t,e),this._popup=t,t._source=this):(this._popup&&!e||(this._popup=new o.Popup(e,this)),this._popup.setContent(t)),this._popupHandlersAdded||(this.on({click:this._openPopup,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t,e){if(t instanceof o.Layer||(e=t,t=this),t instanceof o.FeatureGroup)for(var i in this._layers){t=this._layers[i];break}return e||(e=t.getCenter?t.getCenter():t.getLatLng()),this._popup&&this._map&&(this._popup._source=t,this._popup.update(),this._map.openPopup(this._popup,e)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(t){return this._popup&&(this._popup._map?this.closePopup():this.openPopup(t)),this},isPopupOpen:function(){return this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var e=t.layer||t.target;if(this._popup&&this._map)return o.DomEvent.stop(t),e instanceof o.Path?void this.openPopup(t.layer||t.target,t.latlng):void(this._map.hasLayer(this._popup)&&this._popup._source===e?this.closePopup():this.openPopup(e,t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)}}),o.Marker.include({_getPopupAnchor:function(){return this.options.icon.options.popupAnchor||[0,0]}}),o.Tooltip=o.DivOverlay.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,interactive:!1,opacity:.9},onAdd:function(t){o.DivOverlay.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&this._source.fire("tooltipopen",{tooltip:this},!0)},onRemove:function(t){o.DivOverlay.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&this._source.fire("tooltipclose",{tooltip:this},!0)},getEvents:function(){var t=o.DivOverlay.prototype.getEvents.call(this);return o.Browser.touch&&!this.options.permanent&&(t.preclick=this._close),t},_close:function(){this._map&&this._map.closeTooltip(this)},_initLayout:function(){var t="leaflet-tooltip",e=t+" "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=o.DomUtil.create("div",e)},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e=this._map,i=this._container,n=e.latLngToContainerPoint(e.getCenter()),s=e.layerPointToContainerPoint(t),r=this.options.direction,a=i.offsetWidth,h=i.offsetHeight,l=o.point(this.options.offset),u=this._getAnchor();"top"===r?t=t.add(o.point(-a/2+l.x,-h+l.y+u.y)):"bottom"===r?t=t.subtract(o.point(a/2-l.x,-l.y)):"center"===r?t=t.subtract(o.point(a/2+l.x,h/2-u.y+l.y)):"right"===r||"auto"===r&&s.x<n.x?(r="right",t=t.add([l.x+u.x,u.y-h/2+l.y])):(r="left",t=t.subtract(o.point(a+u.x-l.x,h/2-u.y-l.y))),o.DomUtil.removeClass(i,"leaflet-tooltip-right"),o.DomUtil.removeClass(i,"leaflet-tooltip-left"),o.DomUtil.removeClass(i,"leaflet-tooltip-top"),o.DomUtil.removeClass(i,"leaflet-tooltip-bottom"),o.DomUtil.addClass(i,"leaflet-tooltip-"+r),o.DomUtil.setPosition(i,t)},_updatePosition:function(){var t=this._map.latLngToLayerPoint(this._latlng);this._setPosition(t)},setOpacity:function(t){this.options.opacity=t,this._container&&o.DomUtil.setOpacity(this._container,t)},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center);this._setPosition(e)},_getAnchor:function(){return o.point(this._source&&this._source._getTooltipAnchor&&!this.options.sticky?this._source._getTooltipAnchor():[0,0])}}),o.tooltip=function(t,e){return new o.Tooltip(t,e)},o.Map.include({openTooltip:function(t,e,i){return t instanceof o.Tooltip||(t=new o.Tooltip(i).setContent(t)),e&&t.setLatLng(e),this.hasLayer(t)?this:this.addLayer(t)},closeTooltip:function(t){return t&&this.removeLayer(t),this}}),o.Layer.include({bindTooltip:function(t,e){return t instanceof o.Tooltip?(o.setOptions(t,e),this._tooltip=t,t._source=this):(this._tooltip&&!e||(this._tooltip=o.tooltip(e,this)),this._tooltip.setContent(t)),this._initTooltipInteractions(),this._tooltip.options.permanent&&this._map&&this._map.hasLayer(this)&&this.openTooltip(),this},unbindTooltip:function(){return this._tooltip&&(this._initTooltipInteractions(!0),this.closeTooltip(),this._tooltip=null),this},_initTooltipInteractions:function(t){if(t||!this._tooltipHandlersAdded){var e=t?"off":"on",i={remove:this.closeTooltip,move:this._moveTooltip};this._tooltip.options.permanent?i.add=this._openTooltip:(i.mouseover=this._openTooltip,i.mouseout=this.closeTooltip,this._tooltip.options.sticky&&(i.mousemove=this._moveTooltip),o.Browser.touch&&(i.click=this._openTooltip)),this[e](i),this._tooltipHandlersAdded=!t}},openTooltip:function(t,e){if(t instanceof o.Layer||(e=t,t=this),t instanceof o.FeatureGroup)for(var i in this._layers){t=this._layers[i];break}return e||(e=t.getCenter?t.getCenter():t.getLatLng()),this._tooltip&&this._map&&(this._tooltip._source=t,this._tooltip.update(),this._map.openTooltip(this._tooltip,e),this._tooltip.options.interactive&&this._tooltip._container&&(o.DomUtil.addClass(this._tooltip._container,"leaflet-clickable"),this.addInteractiveTarget(this._tooltip._container))),this},closeTooltip:function(){return this._tooltip&&(this._tooltip._close(),this._tooltip.options.interactive&&this._tooltip._container&&(o.DomUtil.removeClass(this._tooltip._container,"leaflet-clickable"),this.removeInteractiveTarget(this._tooltip._container))),this},toggleTooltip:function(t){return this._tooltip&&(this._tooltip._map?this.closeTooltip():this.openTooltip(t)),this},isTooltipOpen:function(){return this._tooltip.isOpen()},setTooltipContent:function(t){return this._tooltip&&this._tooltip.setContent(t),this},getTooltip:function(){return this._tooltip},_openTooltip:function(t){var e=t.layer||t.target;this._tooltip&&this._map&&this.openTooltip(e,this._tooltip.options.sticky?t.latlng:i)},_moveTooltip:function(t){var e,i,n=t.latlng;this._tooltip.options.sticky&&t.originalEvent&&(e=this._map.mouseEventToContainerPoint(t.originalEvent),i=this._map.containerPointToLayerPoint(e),n=this._map.layerPointToLatLng(i)),this._tooltip.setLatLng(n)}}),o.Marker.include({_getTooltipAnchor:function(){return this.options.icon.options.tooltipAnchor||[0,0]}}),o.LayerGroup=o.Layer.extend({initialize:function(t){this._layers={};var e,i;if(t)for(e=0,i=t.length;e<i;e++)this.addLayer(t[e])},addLayer:function(t){var e=this.getLayerId(t);return this._layers[e]=t,this._map&&this._map.addLayer(t),this},removeLayer:function(t){var e=t in this._layers?t:this.getLayerId(t);return this._map&&this._layers[e]&&this._map.removeLayer(this._layers[e]),delete this._layers[e],this},hasLayer:function(t){return!!t&&(t in this._layers||this.getLayerId(t)in this._layers)},clearLayers:function(){for(var t in this._layers)this.removeLayer(this._layers[t]);return this},invoke:function(t){var e,i,n=Array.prototype.slice.call(arguments,1);for(e in this._layers)i=this._layers[e],i[t]&&i[t].apply(i,n);return this},onAdd:function(t){for(var e in this._layers)t.addLayer(this._layers[e])},onRemove:function(t){for(var e in this._layers)t.removeLayer(this._layers[e])},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},getLayer:function(t){return this._layers[t]},getLayers:function(){var t=[];for(var e in this._layers)t.push(this._layers[e]);return t},setZIndex:function(t){return this.invoke("setZIndex",t)},getLayerId:function(t){return o.stamp(t)}}),o.layerGroup=function(t){return new o.LayerGroup(t)},o.FeatureGroup=o.LayerGroup.extend({addLayer:function(t){return this.hasLayer(t)?this:(t.addEventParent(this),o.LayerGroup.prototype.addLayer.call(this,t),this.fire("layeradd",{layer:t}))},removeLayer:function(t){return this.hasLayer(t)?(t in this._layers&&(t=this._layers[t]),t.removeEventParent(this),o.LayerGroup.prototype.removeLayer.call(this,t),this.fire("layerremove",{layer:t})):this},setStyle:function(t){return this.invoke("setStyle",t)},bringToFront:function(){return this.invoke("bringToFront")},bringToBack:function(){return this.invoke("bringToBack")},getBounds:function(){var t=new o.LatLngBounds;for(var e in this._layers){var i=this._layers[e];t.extend(i.getBounds?i.getBounds():i.getLatLng())}return t}}),o.featureGroup=function(t){return new o.FeatureGroup(t)},o.Renderer=o.Layer.extend({options:{padding:.1},initialize:function(t){o.setOptions(this,t),o.stamp(this)},onAdd:function(){this._container||(this._initContainer(),this._zoomAnimated&&o.DomUtil.addClass(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update()},onRemove:function(){o.DomUtil.remove(this._container)},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,e){var i=this._map.getZoomScale(e,this._zoom),n=o.DomUtil.getPosition(this._container),s=this._map.getSize().multiplyBy(.5+this.options.padding),r=this._map.project(this._center,e),a=this._map.project(t,e),h=a.subtract(r),l=s.multiplyBy(-i).add(n).add(s).subtract(h);o.Browser.any3d?o.DomUtil.setTransform(this._container,l,i):o.DomUtil.setPosition(this._container,l)},_reset:function(){this._update(),this._updateTransform(this._center,this._zoom)},_update:function(){var t=this.options.padding,e=this._map.getSize(),i=this._map.containerPointToLayerPoint(e.multiplyBy(-t)).round();this._bounds=new o.Bounds(i,i.add(e.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),o.Map.include({getRenderer:function(t){var e=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return e||(e=this._renderer=this.options.preferCanvas&&o.canvas()||o.svg()),this.hasLayer(e)||this.addLayer(e),e},_getPaneRenderer:function(t){if("overlayPane"===t||t===i)return!1;var e=this._paneRenderers[t];return e===i&&(e=o.SVG&&o.svg({pane:t})||o.Canvas&&o.canvas({pane:t}),this._paneRenderers[t]=e),e}}),o.Path=o.Layer.extend({options:{stroke:!0,color:"#3388ff",weight:3,opacity:1,lineCap:"round",lineJoin:"round",dashArray:null,dashOffset:null,fill:!1,fillColor:null,fillOpacity:.2,fillRule:"evenodd",interactive:!0},beforeAdd:function(t){this._renderer=t.getRenderer(this)},onAdd:function(){this._renderer._initPath(this),this._reset(),this._renderer._addPath(this),this._renderer.on("update",this._update,this)},onRemove:function(){this._renderer._removePath(this),this._renderer.off("update",this._update,this)},getEvents:function(){return{zoomend:this._project,viewreset:this._reset}},redraw:function(){return this._map&&this._renderer._updatePath(this),this},setStyle:function(t){return o.setOptions(this,t),this._renderer&&this._renderer._updateStyle(this),this},bringToFront:function(){return this._renderer&&this._renderer._bringToFront(this),this},bringToBack:function(){return this._renderer&&this._renderer._bringToBack(this),this},getElement:function(){return this._path},_reset:function(){this._project(),this._update()},_clickTolerance:function(){return(this.options.stroke?this.options.weight/2:0)+(o.Browser.touch?10:0)}}),o.LineUtil={simplify:function(t,e){if(!e||!t.length)return t.slice();var i=e*e;return t=this._reducePoints(t,i),t=this._simplifyDP(t,i)},pointToSegmentDistance:function(t,e,i){return Math.sqrt(this._sqClosestPointOnSegment(t,e,i,!0))},closestPointOnSegment:function(t,e,i){return this._sqClosestPointOnSegment(t,e,i)},_simplifyDP:function(t,e){var n=t.length,o=typeof Uint8Array!=i+""?Uint8Array:Array,s=new o(n);s[0]=s[n-1]=1,this._simplifyDPStep(t,s,e,0,n-1);var r,a=[];for(r=0;r<n;r++)s[r]&&a.push(t[r]);return a},_simplifyDPStep:function(t,e,i,n,o){var s,r,a,h=0;for(r=n+1;r<=o-1;r++)a=this._sqClosestPointOnSegment(t[r],t[n],t[o],!0),a>h&&(s=r,h=a);h>i&&(e[s]=1,this._simplifyDPStep(t,e,i,n,s),this._simplifyDPStep(t,e,i,s,o))},_reducePoints:function(t,e){for(var i=[t[0]],n=1,o=0,s=t.length;n<s;n++)this._sqDist(t[n],t[o])>e&&(i.push(t[n]),o=n);return o<s-1&&i.push(t[s-1]),i},clipSegment:function(t,e,i,n,o){var s,r,a,h=n?this._lastCode:this._getBitCode(t,i),l=this._getBitCode(e,i);for(this._lastCode=l;;){if(!(h|l))return[t,e];if(h&l)return!1;s=h||l,r=this._getEdgeIntersection(t,e,s,i,o),a=this._getBitCode(r,i),s===h?(t=r,h=a):(e=r,l=a)}},_getEdgeIntersection:function(t,e,i,n,s){var r,a,h=e.x-t.x,l=e.y-t.y,u=n.min,c=n.max;return 8&i?(r=t.x+h*(c.y-t.y)/l,a=c.y):4&i?(r=t.x+h*(u.y-t.y)/l,a=u.y):2&i?(r=c.x,a=t.y+l*(c.x-t.x)/h):1&i&&(r=u.x,a=t.y+l*(u.x-t.x)/h),new o.Point(r,a,s)},_getBitCode:function(t,e){var i=0;return t.x<e.min.x?i|=1:t.x>e.max.x&&(i|=2),t.y<e.min.y?i|=4:t.y>e.max.y&&(i|=8),i},_sqDist:function(t,e){var i=e.x-t.x,n=e.y-t.y;return i*i+n*n},_sqClosestPointOnSegment:function(t,e,i,n){var s,r=e.x,a=e.y,h=i.x-r,l=i.y-a,u=h*h+l*l;return u>0&&(s=((t.x-r)*h+(t.y-a)*l)/u,s>1?(r=i.x,a=i.y):s>0&&(r+=h*s,a+=l*s)),h=t.x-r,l=t.y-a,n?h*h+l*l:new o.Point(r,a)}},o.Polyline=o.Path.extend({options:{smoothFactor:1,noClip:!1},initialize:function(t,e){o.setOptions(this,e),this._setLatLngs(t)},getLatLngs:function(){return this._latlngs},setLatLngs:function(t){return this._setLatLngs(t),this.redraw()},isEmpty:function(){return!this._latlngs.length},closestLayerPoint:function(t){for(var e,i,n=1/0,s=null,r=o.LineUtil._sqClosestPointOnSegment,a=0,h=this._parts.length;a<h;a++)for(var l=this._parts[a],u=1,c=l.length;u<c;u++){e=l[u-1],i=l[u];var d=r(t,e,i,!0);d<n&&(n=d,s=r(t,e,i))}return s&&(s.distance=Math.sqrt(n)),s},getCenter:function(){if(!this._map)throw new Error("Must add layer to map before using getCenter()");var t,e,i,n,o,s,r,a=this._rings[0],h=a.length;if(!h)return null;for(t=0,e=0;t<h-1;t++)e+=a[t].distanceTo(a[t+1])/2;if(0===e)return this._map.layerPointToLatLng(a[0]);for(t=0,n=0;t<h-1;t++)if(o=a[t],s=a[t+1],i=o.distanceTo(s),n+=i,n>e)return r=(n-e)/i,this._map.layerPointToLatLng([s.x-r*(s.x-o.x),s.y-r*(s.y-o.y)])},getBounds:function(){return this._bounds},addLatLng:function(t,e){return e=e||this._defaultShape(),t=o.latLng(t),e.push(t),this._bounds.extend(t),this.redraw()},_setLatLngs:function(t){this._bounds=new o.LatLngBounds,this._latlngs=this._convertLatLngs(t)},_defaultShape:function(){return o.Polyline._flat(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(t){for(var e=[],i=o.Polyline._flat(t),n=0,s=t.length;n<s;n++)i?(e[n]=o.latLng(t[n]),this._bounds.extend(e[n])):e[n]=this._convertLatLngs(t[n]);return e},_project:function(){var t=new o.Bounds;this._rings=[],this._projectLatlngs(this._latlngs,this._rings,t);var e=this._clickTolerance(),i=new o.Point(e,e);this._bounds.isValid()&&t.isValid()&&(t.min._subtract(i),t.max._add(i),this._pxBounds=t)},_projectLatlngs:function(t,e,i){var n,s,r=t[0]instanceof o.LatLng,a=t.length;if(r){for(s=[],n=0;n<a;n++)s[n]=this._map.latLngToLayerPoint(t[n]),i.extend(s[n]);e.push(s)}else for(n=0;n<a;n++)this._projectLatlngs(t[n],e,i)},_clipPoints:function(){var t=this._renderer._bounds;if(this._parts=[],this._pxBounds&&this._pxBounds.intersects(t)){if(this.options.noClip)return void(this._parts=this._rings);var e,i,n,s,r,a,h,l=this._parts;for(e=0,n=0,s=this._rings.length;e<s;e++)for(h=this._rings[e],i=0,r=h.length;i<r-1;i++)a=o.LineUtil.clipSegment(h[i],h[i+1],t,i,!0),a&&(l[n]=l[n]||[],l[n].push(a[0]),a[1]===h[i+1]&&i!==r-2||(l[n].push(a[1]),n++))}},_simplifyPoints:function(){for(var t=this._parts,e=this.options.smoothFactor,i=0,n=t.length;i<n;i++)t[i]=o.LineUtil.simplify(t[i],e)},_update:function(){this._map&&(this._clipPoints(),this._simplifyPoints(),this._updatePath())},_updatePath:function(){this._renderer._updatePoly(this)}}),o.polyline=function(t,e){return new o.Polyline(t,e)},o.Polyline._flat=function(t){return!o.Util.isArray(t[0])||"object"!=typeof t[0][0]&&"undefined"!=typeof t[0][0]},o.PolyUtil={},o.PolyUtil.clipPolygon=function(t,e,i){var n,s,r,a,h,l,u,c,d,_=[1,4,2,8],m=o.LineUtil;for(s=0,u=t.length;s<u;s++)t[s]._code=m._getBitCode(t[s],e);for(a=0;a<4;a++){for(c=_[a],n=[],s=0,u=t.length,r=u-1;s<u;r=s++)h=t[s],l=t[r],h._code&c?l._code&c||(d=m._getEdgeIntersection(l,h,c,e,i),d._code=m._getBitCode(d,e),n.push(d)):(l._code&c&&(d=m._getEdgeIntersection(l,h,c,e,i),d._code=m._getBitCode(d,e),n.push(d)),n.push(h));t=n}return t},o.Polygon=o.Polyline.extend({options:{fill:!0},isEmpty:function(){return!this._latlngs.length||!this._latlngs[0].length},getCenter:function(){if(!this._map)throw new Error("Must add layer to map before using getCenter()");var t,e,i,n,o,s,r,a,h,l=this._rings[0],u=l.length;if(!u)return null;for(s=r=a=0,t=0,e=u-1;t<u;e=t++)i=l[t],n=l[e],o=i.y*n.x-n.y*i.x,r+=(i.x+n.x)*o,a+=(i.y+n.y)*o,s+=3*o;return h=0===s?l[0]:[r/s,a/s],this._map.layerPointToLatLng(h)},_convertLatLngs:function(t){var e=o.Polyline.prototype._convertLatLngs.call(this,t),i=e.length;return i>=2&&e[0]instanceof o.LatLng&&e[0].equals(e[i-1])&&e.pop(),e},_setLatLngs:function(t){o.Polyline.prototype._setLatLngs.call(this,t),o.Polyline._flat(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return o.Polyline._flat(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,e=this.options.weight,i=new o.Point(e,e);if(t=new o.Bounds(t.min.subtract(i),t.max.add(i)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(t)){if(this.options.noClip)return void(this._parts=this._rings);for(var n,s=0,r=this._rings.length;s<r;s++)n=o.PolyUtil.clipPolygon(this._rings[s],t,!0),n.length&&this._parts.push(n)}},_updatePath:function(){this._renderer._updatePoly(this,!0)}}),o.polygon=function(t,e){return new o.Polygon(t,e)},o.Rectangle=o.Polygon.extend({initialize:function(t,e){o.Polygon.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return t=o.latLngBounds(t),[t.getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}}),o.rectangle=function(t,e){return new o.Rectangle(t,e)},o.CircleMarker=o.Path.extend({options:{fill:!0,radius:10},initialize:function(t,e){o.setOptions(this,e),this._latlng=o.latLng(t),this._radius=this.options.radius},setLatLng:function(t){return this._latlng=o.latLng(t),this.redraw(),this.fire("move",{latlng:this._latlng})},getLatLng:function(){return this._latlng},setRadius:function(t){return this.options.radius=this._radius=t,this.redraw()},getRadius:function(){return this._radius},setStyle:function(t){var e=t&&t.radius||this._radius;return o.Path.prototype.setStyle.call(this,t),this.setRadius(e),this},_project:function(){this._point=this._map.latLngToLayerPoint(this._latlng),this._updateBounds()},_updateBounds:function(){var t=this._radius,e=this._radiusY||t,i=this._clickTolerance(),n=[t+i,e+i];this._pxBounds=new o.Bounds(this._point.subtract(n),this._point.add(n))},_update:function(){this._map&&this._updatePath()},_updatePath:function(){this._renderer._updateCircle(this)},_empty:function(){return this._radius&&!this._renderer._bounds.intersects(this._pxBounds)}}),o.circleMarker=function(t,e){return new o.CircleMarker(t,e)},o.Circle=o.CircleMarker.extend({initialize:function(t,e,i){if("number"==typeof e&&(e=o.extend({},i,{radius:e})),o.setOptions(this,e),this._latlng=o.latLng(t),isNaN(this.options.radius))throw new Error("Circle radius cannot be NaN");this._mRadius=this.options.radius},setRadius:function(t){return this._mRadius=t,this.redraw()},getRadius:function(){return this._mRadius},getBounds:function(){var t=[this._radius,this._radiusY||this._radius];return new o.LatLngBounds(this._map.layerPointToLatLng(this._point.subtract(t)),this._map.layerPointToLatLng(this._point.add(t)))},setStyle:o.Path.prototype.setStyle,_project:function(){var t=this._latlng.lng,e=this._latlng.lat,i=this._map,n=i.options.crs;if(n.distance===o.CRS.Earth.distance){var s=Math.PI/180,r=this._mRadius/o.CRS.Earth.R/s,a=i.project([e+r,t]),h=i.project([e-r,t]),l=a.add(h).divideBy(2),u=i.unproject(l).lat,c=Math.acos((Math.cos(r*s)-Math.sin(e*s)*Math.sin(u*s))/(Math.cos(e*s)*Math.cos(u*s)))/s;(isNaN(c)||0===c)&&(c=r/Math.cos(Math.PI/180*e)),this._point=l.subtract(i.getPixelOrigin()),this._radius=isNaN(c)?0:Math.max(Math.round(l.x-i.project([u,t-c]).x),1),this._radiusY=Math.max(Math.round(l.y-a.y),1)}else{var d=n.unproject(n.project(this._latlng).subtract([this._mRadius,0]));this._point=i.latLngToLayerPoint(this._latlng),this._radius=this._point.x-i.latLngToLayerPoint(d).x}this._updateBounds()}}),o.circle=function(t,e,i){return new o.Circle(t,e,i)},o.SVG=o.Renderer.extend({getEvents:function(){var t=o.Renderer.prototype.getEvents.call(this);return t.zoomstart=this._onZoomStart,t},_initContainer:function(){this._container=o.SVG.create("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=o.SVG.create("g"),this._container.appendChild(this._rootGroup)},_onZoomStart:function(){this._update()},_update:function(){if(!this._map._animatingZoom||!this._bounds){o.Renderer.prototype._update.call(this);var t=this._bounds,e=t.getSize(),i=this._container;this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,i.setAttribute("width",e.x),i.setAttribute("height",e.y)),o.DomUtil.setPosition(i,t.min),i.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update")}},_initPath:function(t){var e=t._path=o.SVG.create("path");t.options.className&&o.DomUtil.addClass(e,t.options.className),t.options.interactive&&o.DomUtil.addClass(e,"leaflet-interactive"),this._updateStyle(t)},_addPath:function(t){this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){o.DomUtil.remove(t._path),t.removeInteractiveTarget(t._path)},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,i=t.options;e&&(i.stroke?(e.setAttribute("stroke",i.color),e.setAttribute("stroke-opacity",i.opacity),e.setAttribute("stroke-width",i.weight),e.setAttribute("stroke-linecap",i.lineCap),e.setAttribute("stroke-linejoin",i.lineJoin),i.dashArray?e.setAttribute("stroke-dasharray",i.dashArray):e.removeAttribute("stroke-dasharray"),i.dashOffset?e.setAttribute("stroke-dashoffset",i.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),i.fill?(e.setAttribute("fill",i.fillColor||i.color),e.setAttribute("fill-opacity",i.fillOpacity),e.setAttribute("fill-rule",i.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,o.SVG.pointsToPath(t._parts,e))},_updateCircle:function(t){var e=t._point,i=t._radius,n=t._radiusY||i,o="a"+i+","+n+" 0 1,0 ",s=t._empty()?"M0 0":"M"+(e.x-i)+","+e.y+o+2*i+",0 "+o+2*-i+",0 ";this._setPath(t,s)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){o.DomUtil.toFront(t._path)},_bringToBack:function(t){o.DomUtil.toBack(t._path)}}),o.extend(o.SVG,{create:function(t){return e.createElementNS("http://www.w3.org/2000/svg",t)},pointsToPath:function(t,e){var i,n,s,r,a,h,l="";for(i=0,s=t.length;i<s;i++){for(a=t[i],n=0,r=a.length;n<r;n++)h=a[n],l+=(n?"L":"M")+h.x+" "+h.y;l+=e?o.Browser.svg?"z":"x":""}return l||"M0 0"}}),o.Browser.svg=!(!e.createElementNS||!o.SVG.create("svg").createSVGRect),o.svg=function(t){return o.Browser.svg||o.Browser.vml?new o.SVG(t):null},o.Browser.vml=!o.Browser.svg&&function(){try{var t=e.createElement("div");t.innerHTML='<v:shape adj="1"/>';var i=t.firstChild;return i.style.behavior="url(#default#VML)",i&&"object"==typeof i.adj}catch(t){return!1}}(),o.SVG.include(o.Browser.vml?{_initContainer:function(){this._container=o.DomUtil.create("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(o.Renderer.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=o.SVG.create("shape");o.DomUtil.addClass(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=o.SVG.create("path"),e.appendChild(t._path),this._updateStyle(t)},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;o.DomUtil.remove(e),t.removeInteractiveTarget(e)},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,s=t._container;s.stroked=!!n.stroke,s.filled=!!n.fill,n.stroke?(e||(e=t._stroke=o.SVG.create("stroke")),s.appendChild(e),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=o.Util.isArray(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=n.lineCap.replace("butt","flat"),e.joinstyle=n.lineJoin):e&&(s.removeChild(e),t._stroke=null),n.fill?(i||(i=t._fill=o.SVG.create("fill")),s.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(s.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),n=Math.round(t._radiusY||i);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+i+","+n+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){o.DomUtil.toFront(t._container)},_bringToBack:function(t){o.DomUtil.toBack(t._container)}}:{}),o.Browser.vml&&(o.SVG.create=function(){try{return e.namespaces.add("lvml","urn:schemas-microsoft-com:vml"),function(t){return e.createElement("<lvml:"+t+' class="lvml">')}}catch(t){return function(t){return e.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}()),o.Canvas=o.Renderer.extend({onAdd:function(){o.Renderer.prototype.onAdd.call(this),this._layers=this._layers||{},this._draw()},_initContainer:function(){var t=this._container=e.createElement("canvas");o.DomEvent.on(t,"mousemove",o.Util.throttle(this._onMouseMove,32,this),this).on(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this).on(t,"mouseout",this._handleMouseOut,this),this._ctx=t.getContext("2d")},_update:function(){if(!this._map._animatingZoom||!this._bounds){this._drawnLayers={},o.Renderer.prototype._update.call(this);var t=this._bounds,e=this._container,i=t.getSize(),n=o.Browser.retina?2:1;o.DomUtil.setPosition(e,t.min),e.width=n*i.x,e.height=n*i.y,e.style.width=i.x+"px",e.style.height=i.y+"px",o.Browser.retina&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_initPath:function(t){this._updateDashArray(t),this._layers[o.stamp(t)]=t},_addPath:o.Util.falseFn,_removePath:function(t){t._removed=!0,this._requestRedraw(t)},_updatePath:function(t){this._redrawBounds=t._pxBounds,this._draw(!0),t._project(),t._update(),this._draw(),this._redrawBounds=null},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if(t.options.dashArray){var e,i=t.options.dashArray.split(","),n=[];for(e=0;e<i.length;e++)n.push(Number(i[e]));t.options._dashArray=n}},_requestRedraw:function(t){if(this._map){var e=(t.options.weight||0)+1;this._redrawBounds=this._redrawBounds||new o.Bounds,this._redrawBounds.extend(t._pxBounds.min.subtract([e,e])),this._redrawBounds.extend(t._pxBounds.max.add([e,e])),this._redrawRequest=this._redrawRequest||o.Util.requestAnimFrame(this._redraw,this)}},_redraw:function(){this._redrawRequest=null,this._draw(!0),this._draw(),this._redrawBounds=null},_draw:function(t){this._clear=t;var e,i=this._redrawBounds;this._ctx.save(),i&&(this._ctx.beginPath(),this._ctx.rect(i.min.x,i.min.y,i.max.x-i.min.x,i.max.y-i.min.y),this._ctx.clip());for(var n in this._layers)e=this._layers[n],(!i||e._pxBounds&&e._pxBounds.intersects(i))&&e._updatePath(),t&&e._removed&&(delete e._removed,delete this._layers[n]);this._ctx.restore()},_updatePoly:function(t,e){var i,n,o,s,r=t._parts,a=r.length,h=this._ctx;if(a){for(this._drawnLayers[t._leaflet_id]=t,h.beginPath(),h.setLineDash&&h.setLineDash(t.options&&t.options._dashArray||[]),i=0;i<a;i++){for(n=0,o=r[i].length;n<o;n++)s=r[i][n],h[n?"lineTo":"moveTo"](s.x,s.y);e&&h.closePath()}this._fillStroke(h,t)}},_updateCircle:function(t){if(!t._empty()){var e=t._point,i=this._ctx,n=t._radius,o=(t._radiusY||n)/n;this._drawnLayers[t._leaflet_id]=t,1!==o&&(i.save(),i.scale(1,o)),i.beginPath(),i.arc(e.x,e.y/o,n,0,2*Math.PI,!1),1!==o&&i.restore(),this._fillStroke(i,t)}},_fillStroke:function(t,e){var i=this._clear,n=e.options;t.globalCompositeOperation=i?"destination-out":"source-over",n.fill&&(t.globalAlpha=i?1:n.fillOpacity,t.fillStyle=n.fillColor||n.color,t.fill(n.fillRule||"evenodd")),n.stroke&&0!==n.weight&&(t.globalAlpha=i?1:n.opacity,e._prevWeight=t.lineWidth=i?e._prevWeight+1:n.weight,t.strokeStyle=n.color,t.lineCap=n.lineCap,t.lineJoin=n.lineJoin,t.stroke())},_onClick:function(t){var e,i=this._map.mouseEventToLayerPoint(t),n=[];for(var s in this._layers)e=this._layers[s],e.options.interactive&&e._containsPoint(i)&&!this._map._draggableMoved(e)&&(o.DomEvent._fakeStop(t),n.push(e));n.length&&this._fireEvent(n,t)},_onMouseMove:function(t){if(this._map&&!this._map.dragging.moving()&&!this._map._animatingZoom){var e=this._map.mouseEventToLayerPoint(t);this._handleMouseOut(t,e),this._handleMouseHover(t,e)}},_handleMouseOut:function(t,e){var i=this._hoveredLayer;!i||"mouseout"!==t.type&&i._containsPoint(e)||(o.DomUtil.removeClass(this._container,"leaflet-interactive"),this._fireEvent([i],t,"mouseout"),this._hoveredLayer=null)},_handleMouseHover:function(t,e){var i,n;for(i in this._drawnLayers)n=this._drawnLayers[i],n.options.interactive&&n._containsPoint(e)&&(o.DomUtil.addClass(this._container,"leaflet-interactive"),this._fireEvent([n],t,"mouseover"),this._hoveredLayer=n);this._hoveredLayer&&this._fireEvent([this._hoveredLayer],t)},_fireEvent:function(t,e,i){this._map._fireDOMEvent(e,i||e.type,t)},_bringToFront:o.Util.falseFn,_bringToBack:o.Util.falseFn}),o.Browser.canvas=function(){return!!e.createElement("canvas").getContext}(),o.canvas=function(t){return o.Browser.canvas?new o.Canvas(t):null},o.Polyline.prototype._containsPoint=function(t,e){var i,n,s,r,a,h,l=this._clickTolerance();if(!this._pxBounds.contains(t))return!1;for(i=0,r=this._parts.length;i<r;i++)for(h=this._parts[i],n=0,a=h.length,s=a-1;n<a;s=n++)if((e||0!==n)&&o.LineUtil.pointToSegmentDistance(t,h[s],h[n])<=l)return!0;return!1},o.Polygon.prototype._containsPoint=function(t){var e,i,n,s,r,a,h,l,u=!1;if(!this._pxBounds.contains(t))return!1;for(s=0,h=this._parts.length;s<h;s++)for(e=this._parts[s],r=0,l=e.length,a=l-1;r<l;a=r++)i=e[r],n=e[a],i.y>t.y!=n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(u=!u);return u||o.Polyline.prototype._containsPoint.call(this,t,!0)},o.CircleMarker.prototype._containsPoint=function(t){return t.distanceTo(this._point)<=this._radius+this._clickTolerance()},o.GeoJSON=o.FeatureGroup.extend({initialize:function(t,e){o.setOptions(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,s=o.Util.isArray(t)?t:t.features;if(s){for(e=0,i=s.length;e<i;e++)n=s[e],(n.geometries||n.geometry||n.features||n.coordinates)&&this.addData(n);return this; +}var r=this.options;if(r.filter&&!r.filter(t))return this;var a=o.GeoJSON.geometryToLayer(t,r);return a?(a.feature=o.GeoJSON.asFeature(t),a.defaultOptions=a.options,this.resetStyle(a),r.onEachFeature&&r.onEachFeature(t,a),this.addLayer(a)):this},resetStyle:function(t){return t.options=o.Util.extend({},t.defaultOptions),this._setLayerStyle(t,this.options.style),this},setStyle:function(t){return this.eachLayer(function(e){this._setLayerStyle(e,t)},this)},_setLayerStyle:function(t,e){"function"==typeof e&&(e=e(t.feature)),t.setStyle&&t.setStyle(e)}}),o.extend(o.GeoJSON,{geometryToLayer:function(t,e){var i,n,s,r,a="Feature"===t.type?t.geometry:t,h=a?a.coordinates:null,l=[],u=e&&e.pointToLayer,c=e&&e.coordsToLatLng||this.coordsToLatLng;if(!h&&!a)return null;switch(a.type){case"Point":return i=c(h),u?u(t,i):new o.Marker(i);case"MultiPoint":for(s=0,r=h.length;s<r;s++)i=c(h[s]),l.push(u?u(t,i):new o.Marker(i));return new o.FeatureGroup(l);case"LineString":case"MultiLineString":return n=this.coordsToLatLngs(h,"LineString"===a.type?0:1,c),new o.Polyline(n,e);case"Polygon":case"MultiPolygon":return n=this.coordsToLatLngs(h,"Polygon"===a.type?1:2,c),new o.Polygon(n,e);case"GeometryCollection":for(s=0,r=a.geometries.length;s<r;s++){var d=this.geometryToLayer({geometry:a.geometries[s],type:"Feature",properties:t.properties},e);d&&l.push(d)}return new o.FeatureGroup(l);default:throw new Error("Invalid GeoJSON object.")}},coordsToLatLng:function(t){return new o.LatLng(t[1],t[0],t[2])},coordsToLatLngs:function(t,e,i){for(var n,o=[],s=0,r=t.length;s<r;s++)n=e?this.coordsToLatLngs(t[s],e-1,i):(i||this.coordsToLatLng)(t[s]),o.push(n);return o},latLngToCoords:function(t){return t.alt!==i?[t.lng,t.lat,t.alt]:[t.lng,t.lat]},latLngsToCoords:function(t,e,i){for(var n=[],s=0,r=t.length;s<r;s++)n.push(e?o.GeoJSON.latLngsToCoords(t[s],e-1,i):o.GeoJSON.latLngToCoords(t[s]));return!e&&i&&n.push(n[0]),n},getFeature:function(t,e){return t.feature?o.extend({},t.feature,{geometry:e}):o.GeoJSON.asFeature(e)},asFeature:function(t){return"Feature"===t.type?t:{type:"Feature",properties:{},geometry:t}}});var r={toGeoJSON:function(){return o.GeoJSON.getFeature(this,{type:"Point",coordinates:o.GeoJSON.latLngToCoords(this.getLatLng())})}};o.Marker.include(r),o.Circle.include(r),o.CircleMarker.include(r),o.Polyline.prototype.toGeoJSON=function(){var t=!o.Polyline._flat(this._latlngs),e=o.GeoJSON.latLngsToCoords(this._latlngs,t?1:0);return o.GeoJSON.getFeature(this,{type:(t?"Multi":"")+"LineString",coordinates:e})},o.Polygon.prototype.toGeoJSON=function(){var t=!o.Polyline._flat(this._latlngs),e=t&&!o.Polyline._flat(this._latlngs[0]),i=o.GeoJSON.latLngsToCoords(this._latlngs,e?2:t?1:0,!0);return t||(i=[i]),o.GeoJSON.getFeature(this,{type:(e?"Multi":"")+"Polygon",coordinates:i})},o.LayerGroup.include({toMultiPoint:function(){var t=[];return this.eachLayer(function(e){t.push(e.toGeoJSON().geometry.coordinates)}),o.GeoJSON.getFeature(this,{type:"MultiPoint",coordinates:t})},toGeoJSON:function(){var t=this.feature&&this.feature.geometry&&this.feature.geometry.type;if("MultiPoint"===t)return this.toMultiPoint();var e="GeometryCollection"===t,i=[];return this.eachLayer(function(t){if(t.toGeoJSON){var n=t.toGeoJSON();i.push(e?n.geometry:o.GeoJSON.asFeature(n))}}),e?o.GeoJSON.getFeature(this,{geometries:i,type:"GeometryCollection"}):{type:"FeatureCollection",features:i}}}),o.geoJSON=function(t,e){return new o.GeoJSON(t,e)},o.geoJson=o.geoJSON;var a="_leaflet_events";o.DomEvent={on:function(t,e,i,n){if("object"==typeof e)for(var s in e)this._on(t,s,e[s],i);else{e=o.Util.splitWords(e);for(var r=0,a=e.length;r<a;r++)this._on(t,e[r],i,n)}return this},off:function(t,e,i,n){if("object"==typeof e)for(var s in e)this._off(t,s,e[s],i);else{e=o.Util.splitWords(e);for(var r=0,a=e.length;r<a;r++)this._off(t,e[r],i,n)}return this},_on:function(e,i,n,s){var r=i+o.stamp(n)+(s?"_"+o.stamp(s):"");if(e[a]&&e[a][r])return this;var h=function(i){return n.call(s||e,i||t.event)},l=h;return o.Browser.pointer&&0===i.indexOf("touch")?this.addPointerListener(e,i,h,r):o.Browser.touch&&"dblclick"===i&&this.addDoubleTapListener?this.addDoubleTapListener(e,h,r):"addEventListener"in e?"mousewheel"===i?e.addEventListener("onwheel"in e?"wheel":"mousewheel",h,!1):"mouseenter"===i||"mouseleave"===i?(h=function(i){i=i||t.event,o.DomEvent._isExternalTarget(e,i)&&l(i)},e.addEventListener("mouseenter"===i?"mouseover":"mouseout",h,!1)):("click"===i&&o.Browser.android&&(h=function(t){return o.DomEvent._filterClick(t,l)}),e.addEventListener(i,h,!1)):"attachEvent"in e&&e.attachEvent("on"+i,h),e[a]=e[a]||{},e[a][r]=h,this},_off:function(t,e,i,n){var s=e+o.stamp(i)+(n?"_"+o.stamp(n):""),r=t[a]&&t[a][s];return r?(o.Browser.pointer&&0===e.indexOf("touch")?this.removePointerListener(t,e,s):o.Browser.touch&&"dblclick"===e&&this.removeDoubleTapListener?this.removeDoubleTapListener(t,s):"removeEventListener"in t?"mousewheel"===e?t.removeEventListener("onwheel"in t?"wheel":"mousewheel",r,!1):t.removeEventListener("mouseenter"===e?"mouseover":"mouseleave"===e?"mouseout":e,r,!1):"detachEvent"in t&&t.detachEvent("on"+e,r),t[a][s]=null,this):this},stopPropagation:function(t){return t.stopPropagation?t.stopPropagation():t.originalEvent?t.originalEvent._stopped=!0:t.cancelBubble=!0,o.DomEvent._skipped(t),this},disableScrollPropagation:function(t){return o.DomEvent.on(t,"mousewheel",o.DomEvent.stopPropagation)},disableClickPropagation:function(t){var e=o.DomEvent.stopPropagation;return o.DomEvent.on(t,o.Draggable.START.join(" "),e),o.DomEvent.on(t,{click:o.DomEvent._fakeStop,dblclick:e})},preventDefault:function(t){return t.preventDefault?t.preventDefault():t.returnValue=!1,this},stop:function(t){return o.DomEvent.preventDefault(t).stopPropagation(t)},getMousePosition:function(t,e){if(!e)return new o.Point(t.clientX,t.clientY);var i=e.getBoundingClientRect();return new o.Point(t.clientX-i.left-e.clientLeft,t.clientY-i.top-e.clientTop)},_wheelPxFactor:o.Browser.win&&o.Browser.chrome?2:o.Browser.gecko?t.devicePixelRatio:1,getWheelDelta:function(t){return o.Browser.edge?t.wheelDeltaY/2:t.deltaY&&0===t.deltaMode?-t.deltaY/o.DomEvent._wheelPxFactor:t.deltaY&&1===t.deltaMode?20*-t.deltaY:t.deltaY&&2===t.deltaMode?60*-t.deltaY:t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)/2:t.detail&&Math.abs(t.detail)<32765?20*-t.detail:t.detail?t.detail/-32765*60:0},_skipEvents:{},_fakeStop:function(t){o.DomEvent._skipEvents[t.type]=!0},_skipped:function(t){var e=this._skipEvents[t.type];return this._skipEvents[t.type]=!1,e},_isExternalTarget:function(t,e){var i=e.relatedTarget;if(!i)return!0;try{for(;i&&i!==t;)i=i.parentNode}catch(t){return!1}return i!==t},_filterClick:function(t,e){var i=t.timeStamp||t.originalEvent&&t.originalEvent.timeStamp,n=o.DomEvent._lastClick&&i-o.DomEvent._lastClick;return n&&n>100&&n<500||t.target._simulatedClick&&!t._simulated?void o.DomEvent.stop(t):(o.DomEvent._lastClick=i,void e(t))}},o.DomEvent.addListener=o.DomEvent.on,o.DomEvent.removeListener=o.DomEvent.off,o.Draggable=o.Evented.extend({options:{clickTolerance:3},statics:{START:o.Browser.touch?["touchstart","mousedown"]:["mousedown"],END:{mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},MOVE:{mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"}},initialize:function(t,e,i){this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(o.DomEvent.on(this._dragStartTarget,o.Draggable.START.join(" "),this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(o.DomEvent.off(this._dragStartTarget,o.Draggable.START.join(" "),this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(!t._simulated&&this._enabled&&(this._moved=!1,!o.DomUtil.hasClass(this._element,"leaflet-zoom-anim")&&!(o.Draggable._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches)&&this._enabled&&(o.Draggable._dragging=!0,this._preventOutline&&o.DomUtil.preventOutline(this._element),o.DomUtil.disableImageDrag(),o.DomUtil.disableTextSelection(),!this._moving))){this.fire("down");var i=t.touches?t.touches[0]:t;this._startPoint=new o.Point(i.clientX,i.clientY),o.DomEvent.on(e,o.Draggable.MOVE[t.type],this._onMove,this).on(e,o.Draggable.END[t.type],this._onUp,this)}},_onMove:function(i){if(!i._simulated&&this._enabled){if(i.touches&&i.touches.length>1)return void(this._moved=!0);var n=i.touches&&1===i.touches.length?i.touches[0]:i,s=new o.Point(n.clientX,n.clientY),r=s.subtract(this._startPoint);(r.x||r.y)&&(Math.abs(r.x)+Math.abs(r.y)<this.options.clickTolerance||(o.DomEvent.preventDefault(i),this._moved||(this.fire("dragstart"),this._moved=!0,this._startPos=o.DomUtil.getPosition(this._element).subtract(r),o.DomUtil.addClass(e.body,"leaflet-dragging"),this._lastTarget=i.target||i.srcElement,t.SVGElementInstance&&this._lastTarget instanceof SVGElementInstance&&(this._lastTarget=this._lastTarget.correspondingUseElement),o.DomUtil.addClass(this._lastTarget,"leaflet-drag-target")),this._newPos=this._startPos.add(r),this._moving=!0,o.Util.cancelAnimFrame(this._animRequest),this._lastEvent=i,this._animRequest=o.Util.requestAnimFrame(this._updatePosition,this,!0)))}},_updatePosition:function(){var t={originalEvent:this._lastEvent};this.fire("predrag",t),o.DomUtil.setPosition(this._element,this._newPos),this.fire("drag",t)},_onUp:function(t){if(!t._simulated&&this._enabled){o.DomUtil.removeClass(e.body,"leaflet-dragging"),this._lastTarget&&(o.DomUtil.removeClass(this._lastTarget,"leaflet-drag-target"),this._lastTarget=null);for(var i in o.Draggable.MOVE)o.DomEvent.off(e,o.Draggable.MOVE[i],this._onMove,this).off(e,o.Draggable.END[i],this._onUp,this);o.DomUtil.enableImageDrag(),o.DomUtil.enableTextSelection(),this._moved&&this._moving&&(o.Util.cancelAnimFrame(this._animRequest),this.fire("dragend",{distance:this._newPos.distanceTo(this._startPos)})),this._moving=!1,o.Draggable._dragging=!1}}}),o.Handler=o.Class.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled?this:(this._enabled=!0,this.addHooks(),this)},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}}),o.Map.mergeOptions({dragging:!0,inertia:!o.Browser.android23,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0}),o.Map.Drag=o.Handler.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new o.Draggable(t._mapPane,t._container),this._draggable.on({down:this._onDown,dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))}o.DomUtil.addClass(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){o.DomUtil.removeClass(this._map._container,"leaflet-grab"),o.DomUtil.removeClass(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDown:function(){this._map._stop()},_onDragStart:function(){var t=this._map;if(this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var e=o.latLngBounds(this._map.options.maxBounds);this._offsetLimit=o.bounds(this._map.latLngToContainerPoint(e.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(e.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var e=this._lastTime=+new Date,i=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(i),this._times.push(e),e-this._times[0]>50&&(this._positions.shift(),this._times.shift())}this._map.fire("move",t).fire("drag",t)},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),e=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=e.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,e){return t-(t-e)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var t=this._draggable._newPos.subtract(this._draggable._startPos),e=this._offsetLimit;t.x<e.min.x&&(t.x=this._viscousLimit(t.x,e.min.x)),t.y<e.min.y&&(t.y=this._viscousLimit(t.y,e.min.y)),t.x>e.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,s=(n+e+i)%t-e-i,r=Math.abs(o+i)<Math.abs(s+i)?o:s;this._draggable._absPos=this._draggable._newPos.clone(),this._draggable._newPos.x=r},_onDragEnd:function(t){var e=this._map,i=e.options,n=!i.inertia||this._times.length<2;if(e.fire("dragend",t),n)e.fire("moveend");else{var s=this._lastPos.subtract(this._positions[0]),r=(this._lastTime-this._times[0])/1e3,a=i.easeLinearity,h=s.multiplyBy(a/r),l=h.distanceTo([0,0]),u=Math.min(i.inertiaMaxSpeed,l),c=h.multiplyBy(u/l),d=u/(i.inertiaDeceleration*a),_=c.multiplyBy(-d/2).round();_.x||_.y?(_=e._limitOffset(_,e.options.maxBounds),o.Util.requestAnimFrame(function(){e.panBy(_,{duration:d,easeLinearity:a,noMoveStart:!0,animate:!0})})):e.fire("moveend")}}}),o.Map.addInitHook("addHandler","dragging",o.Map.Drag),o.Map.mergeOptions({doubleClickZoom:!0}),o.Map.DoubleClickZoom=o.Handler.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom(),n=e.options.zoomDelta,o=t.originalEvent.shiftKey?i-n:i+n;"center"===e.options.doubleClickZoom?e.setZoom(o):e.setZoomAround(t.containerPoint,o)}}),o.Map.addInitHook("addHandler","doubleClickZoom",o.Map.DoubleClickZoom),o.Map.mergeOptions({scrollWheelZoom:!0,wheelDebounceTime:40,wheelPxPerZoomLevel:60}),o.Map.ScrollWheelZoom=o.Handler.extend({addHooks:function(){o.DomEvent.on(this._map._container,"mousewheel",this._onWheelScroll,this),this._delta=0},removeHooks:function(){o.DomEvent.off(this._map._container,"mousewheel",this._onWheelScroll,this)},_onWheelScroll:function(t){var e=o.DomEvent.getWheelDelta(t),i=this._map.options.wheelDebounceTime;this._delta+=e,this._lastMousePos=this._map.mouseEventToContainerPoint(t),this._startTime||(this._startTime=+new Date);var n=Math.max(i-(+new Date-this._startTime),0);clearTimeout(this._timer),this._timer=setTimeout(o.bind(this._performZoom,this),n),o.DomEvent.stop(t)},_performZoom:function(){var t=this._map,e=t.getZoom(),i=this._map.options.zoomSnap||0;t._stop();var n=this._delta/(4*this._map.options.wheelPxPerZoomLevel),o=4*Math.log(2/(1+Math.exp(-Math.abs(n))))/Math.LN2,s=i?Math.ceil(o/i)*i:o,r=t._limitZoom(e+(this._delta>0?s:-s))-e;this._delta=0,this._startTime=null,r&&("center"===t.options.scrollWheelZoom?t.setZoom(e+r):t.setZoomAround(this._lastMousePos,e+r))}}),o.Map.addInitHook("addHandler","scrollWheelZoom",o.Map.ScrollWheelZoom),o.extend(o.DomEvent,{_touchstart:o.Browser.msPointer?"MSPointerDown":o.Browser.pointer?"pointerdown":"touchstart",_touchend:o.Browser.msPointer?"MSPointerUp":o.Browser.pointer?"pointerup":"touchend",addDoubleTapListener:function(t,e,i){function n(t){var e;if(e=o.Browser.pointer?o.DomEvent._pointersCount:t.touches.length,!(e>1)){var i=Date.now(),n=i-(r||i);a=t.touches?t.touches[0]:t,h=n>0&&n<=l,r=i}}function s(){if(h&&!a.cancelBubble){if(o.Browser.pointer){var t,i,n={};for(i in a)t=a[i],n[i]=t&&t.bind?t.bind(a):t;a=n}a.type="dblclick",e(a),r=null}}var r,a,h=!1,l=250,u="_leaflet_",c=this._touchstart,d=this._touchend;return t[u+c+i]=n,t[u+d+i]=s,t[u+"dblclick"+i]=e,t.addEventListener(c,n,!1),t.addEventListener(d,s,!1),o.Browser.edge||t.addEventListener("dblclick",e,!1),this},removeDoubleTapListener:function(t,e){var i="_leaflet_",n=t[i+this._touchstart+e],s=t[i+this._touchend+e],r=t[i+"dblclick"+e];return t.removeEventListener(this._touchstart,n,!1),t.removeEventListener(this._touchend,s,!1),o.Browser.edge||t.removeEventListener("dblclick",r,!1),this}}),o.extend(o.DomEvent,{POINTER_DOWN:o.Browser.msPointer?"MSPointerDown":"pointerdown",POINTER_MOVE:o.Browser.msPointer?"MSPointerMove":"pointermove",POINTER_UP:o.Browser.msPointer?"MSPointerUp":"pointerup",POINTER_CANCEL:o.Browser.msPointer?"MSPointerCancel":"pointercancel",TAG_WHITE_LIST:["INPUT","SELECT","OPTION"],_pointers:{},_pointersCount:0,addPointerListener:function(t,e,i,n){return"touchstart"===e?this._addPointerStart(t,i,n):"touchmove"===e?this._addPointerMove(t,i,n):"touchend"===e&&this._addPointerEnd(t,i,n),this},removePointerListener:function(t,e,i){var n=t["_leaflet_"+e+i];return"touchstart"===e?t.removeEventListener(this.POINTER_DOWN,n,!1):"touchmove"===e?t.removeEventListener(this.POINTER_MOVE,n,!1):"touchend"===e&&(t.removeEventListener(this.POINTER_UP,n,!1),t.removeEventListener(this.POINTER_CANCEL,n,!1)),this},_addPointerStart:function(t,i,n){var s=o.bind(function(t){if("mouse"!==t.pointerType&&t.pointerType!==t.MSPOINTER_TYPE_MOUSE){if(!(this.TAG_WHITE_LIST.indexOf(t.target.tagName)<0))return;o.DomEvent.preventDefault(t)}this._handlePointer(t,i)},this);if(t["_leaflet_touchstart"+n]=s,t.addEventListener(this.POINTER_DOWN,s,!1),!this._pointerDocListener){var r=o.bind(this._globalPointerUp,this);e.documentElement.addEventListener(this.POINTER_DOWN,o.bind(this._globalPointerDown,this),!0),e.documentElement.addEventListener(this.POINTER_MOVE,o.bind(this._globalPointerMove,this),!0),e.documentElement.addEventListener(this.POINTER_UP,r,!0),e.documentElement.addEventListener(this.POINTER_CANCEL,r,!0),this._pointerDocListener=!0}},_globalPointerDown:function(t){this._pointers[t.pointerId]=t,this._pointersCount++},_globalPointerMove:function(t){this._pointers[t.pointerId]&&(this._pointers[t.pointerId]=t)},_globalPointerUp:function(t){delete this._pointers[t.pointerId],this._pointersCount--},_handlePointer:function(t,e){t.touches=[];for(var i in this._pointers)t.touches.push(this._pointers[i]);t.changedTouches=[t],e(t)},_addPointerMove:function(t,e,i){var n=o.bind(function(t){(t.pointerType!==t.MSPOINTER_TYPE_MOUSE&&"mouse"!==t.pointerType||0!==t.buttons)&&this._handlePointer(t,e)},this);t["_leaflet_touchmove"+i]=n,t.addEventListener(this.POINTER_MOVE,n,!1)},_addPointerEnd:function(t,e,i){var n=o.bind(function(t){this._handlePointer(t,e)},this);t["_leaflet_touchend"+i]=n,t.addEventListener(this.POINTER_UP,n,!1),t.addEventListener(this.POINTER_CANCEL,n,!1)}}),o.Map.mergeOptions({touchZoom:o.Browser.touch&&!o.Browser.android23,bounceAtZoomLimits:!0}),o.Map.TouchZoom=o.Handler.extend({addHooks:function(){o.DomUtil.addClass(this._map._container,"leaflet-touch-zoom"),o.DomEvent.on(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){o.DomUtil.removeClass(this._map._container,"leaflet-touch-zoom"),o.DomEvent.off(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var i=this._map;if(t.touches&&2===t.touches.length&&!i._animatingZoom&&!this._zooming){var n=i.mouseEventToContainerPoint(t.touches[0]),s=i.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=i.getSize()._divideBy(2),this._startLatLng=i.containerPointToLatLng(this._centerPoint),"center"!==i.options.touchZoom&&(this._pinchStartLatLng=i.containerPointToLatLng(n.add(s)._divideBy(2))),this._startDist=n.distanceTo(s),this._startZoom=i.getZoom(),this._moved=!1,this._zooming=!0,i._stop(),o.DomEvent.on(e,"touchmove",this._onTouchMove,this).on(e,"touchend",this._onTouchEnd,this),o.DomEvent.preventDefault(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var e=this._map,i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]),s=i.distanceTo(n)/this._startDist;if(this._zoom=e.getScaleZoom(s,this._startZoom),!e.options.bounceAtZoomLimits&&(this._zoom<e.getMinZoom()&&s<1||this._zoom>e.getMaxZoom()&&s>1)&&(this._zoom=e._limitZoom(this._zoom)),"center"===e.options.touchZoom){if(this._center=this._startLatLng,1===s)return}else{var r=i._add(n)._divideBy(2)._subtract(this._centerPoint);if(1===s&&0===r.x&&0===r.y)return;this._center=e.unproject(e.project(this._pinchStartLatLng,this._zoom).subtract(r),this._zoom)}this._moved||(e._moveStart(!0),this._moved=!0),o.Util.cancelAnimFrame(this._animRequest);var a=o.bind(e._move,e,this._center,this._zoom,{pinch:!0,round:!1});this._animRequest=o.Util.requestAnimFrame(a,this,!0),o.DomEvent.preventDefault(t)}},_onTouchEnd:function(){return this._moved&&this._zooming?(this._zooming=!1,o.Util.cancelAnimFrame(this._animRequest),o.DomEvent.off(e,"touchmove",this._onTouchMove).off(e,"touchend",this._onTouchEnd),void(this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom)))):void(this._zooming=!1)}}),o.Map.addInitHook("addHandler","touchZoom",o.Map.TouchZoom),o.Map.mergeOptions({tap:!0,tapTolerance:15}),o.Map.Tap=o.Handler.extend({addHooks:function(){o.DomEvent.on(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){o.DomEvent.off(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(t.touches){if(o.DomEvent.preventDefault(t),this._fireClick=!0,t.touches.length>1)return this._fireClick=!1,void clearTimeout(this._holdTimeout);var i=t.touches[0],n=i.target;this._startPos=this._newPos=new o.Point(i.clientX,i.clientY),n.tagName&&"a"===n.tagName.toLowerCase()&&o.DomUtil.addClass(n,"leaflet-active"),this._holdTimeout=setTimeout(o.bind(function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent("contextmenu",i))},this),1e3),this._simulateEvent("mousedown",i),o.DomEvent.on(e,{touchmove:this._onMove,touchend:this._onUp},this)}},_onUp:function(t){if(clearTimeout(this._holdTimeout),o.DomEvent.off(e,{touchmove:this._onMove,touchend:this._onUp},this),this._fireClick&&t&&t.changedTouches){var i=t.changedTouches[0],n=i.target;n&&n.tagName&&"a"===n.tagName.toLowerCase()&&o.DomUtil.removeClass(n,"leaflet-active"),this._simulateEvent("mouseup",i),this._isTapValid()&&this._simulateEvent("click",i)}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(t){var e=t.touches[0];this._newPos=new o.Point(e.clientX,e.clientY),this._simulateEvent("mousemove",e)},_simulateEvent:function(i,n){var o=e.createEvent("MouseEvents");o._simulated=!0,n.target._simulatedClick=!0,o.initMouseEvent(i,!0,!0,t,1,n.screenX,n.screenY,n.clientX,n.clientY,!1,!1,!1,!1,0,null),n.target.dispatchEvent(o)}}),o.Browser.touch&&!o.Browser.pointer&&o.Map.addInitHook("addHandler","tap",o.Map.Tap),o.Map.mergeOptions({boxZoom:!0}),o.Map.BoxZoom=o.Handler.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane},addHooks:function(){o.DomEvent.on(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){o.DomEvent.off(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_resetState:function(){this._moved=!1},_onMouseDown:function(t){return!(!t.shiftKey||1!==t.which&&1!==t.button)&&(this._resetState(),o.DomUtil.disableTextSelection(),o.DomUtil.disableImageDrag(),this._startPoint=this._map.mouseEventToContainerPoint(t),void o.DomEvent.on(e,{contextmenu:o.DomEvent.stop,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this))},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=o.DomUtil.create("div","leaflet-zoom-box",this._container),o.DomUtil.addClass(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var e=new o.Bounds(this._point,this._startPoint),i=e.getSize();o.DomUtil.setPosition(this._box,e.min),this._box.style.width=i.x+"px",this._box.style.height=i.y+"px"},_finish:function(){this._moved&&(o.DomUtil.remove(this._box),o.DomUtil.removeClass(this._container,"leaflet-crosshair")),o.DomUtil.enableTextSelection(),o.DomUtil.enableImageDrag(),o.DomEvent.off(e,{contextmenu:o.DomEvent.stop,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){setTimeout(o.bind(this._resetState,this),0);var e=new o.LatLngBounds(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(e).fire("boxzoomend",{boxZoomBounds:e})}},_onKeyDown:function(t){27===t.keyCode&&this._finish()}}),o.Map.addInitHook("addHandler","boxZoom",o.Map.BoxZoom),o.Map.mergeOptions({keyboard:!0,keyboardPanDelta:80}),o.Map.Keyboard=o.Handler.extend({keyCodes:{left:[37],right:[39],down:[40],up:[38],zoomIn:[187,107,61,171],zoomOut:[189,109,54,173]},initialize:function(t){this._map=t,this._setPanDelta(t.options.keyboardPanDelta),this._setZoomDelta(t.options.zoomDelta)},addHooks:function(){var t=this._map._container;t.tabIndex<=0&&(t.tabIndex="0"),o.DomEvent.on(t,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.on({focus:this._addHooks,blur:this._removeHooks},this)},removeHooks:function(){this._removeHooks(),o.DomEvent.off(this._map._container,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.off({focus:this._addHooks,blur:this._removeHooks},this)},_onMouseDown:function(){if(!this._focused){var i=e.body,n=e.documentElement,o=i.scrollTop||n.scrollTop,s=i.scrollLeft||n.scrollLeft;this._map._container.focus(),t.scrollTo(s,o)}},_onFocus:function(){this._focused=!0,this._map.fire("focus")},_onBlur:function(){this._focused=!1,this._map.fire("blur")},_setPanDelta:function(t){var e,i,n=this._panKeys={},o=this.keyCodes;for(e=0,i=o.left.length;e<i;e++)n[o.left[e]]=[-1*t,0];for(e=0,i=o.right.length;e<i;e++)n[o.right[e]]=[t,0];for(e=0,i=o.down.length;e<i;e++)n[o.down[e]]=[0,t];for(e=0,i=o.up.length;e<i;e++)n[o.up[e]]=[0,-1*t]},_setZoomDelta:function(t){var e,i,n=this._zoomKeys={},o=this.keyCodes;for(e=0,i=o.zoomIn.length;e<i;e++)n[o.zoomIn[e]]=t;for(e=0,i=o.zoomOut.length;e<i;e++)n[o.zoomOut[e]]=-t},_addHooks:function(){o.DomEvent.on(e,"keydown",this._onKeyDown,this)},_removeHooks:function(){o.DomEvent.off(e,"keydown",this._onKeyDown,this)},_onKeyDown:function(t){if(!(t.altKey||t.ctrlKey||t.metaKey)){var e,i=t.keyCode,n=this._map;if(i in this._panKeys){if(n._panAnim&&n._panAnim._inProgress)return;e=this._panKeys[i],t.shiftKey&&(e=o.point(e).multiplyBy(3)),n.panBy(e),n.options.maxBounds&&n.panInsideBounds(n.options.maxBounds)}else if(i in this._zoomKeys)n.setZoom(n.getZoom()+(t.shiftKey?3:1)*this._zoomKeys[i]);else{if(27!==i)return;n.closePopup()}o.DomEvent.stop(t)}}}),o.Map.addInitHook("addHandler","keyboard",o.Map.Keyboard),o.Handler.MarkerDrag=o.Handler.extend({initialize:function(t){this._marker=t},addHooks:function(){var t=this._marker._icon;this._draggable||(this._draggable=new o.Draggable(t,t,!0)),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this).enable(),o.DomUtil.addClass(t,"leaflet-marker-draggable")},removeHooks:function(){this._draggable.off({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this).disable(),this._marker._icon&&o.DomUtil.removeClass(this._marker._icon,"leaflet-marker-draggable")},moved:function(){return this._draggable&&this._draggable._moved},_onDragStart:function(){this._oldLatLng=this._marker.getLatLng(),this._marker.closePopup().fire("movestart").fire("dragstart")},_onDrag:function(t){var e=this._marker,i=e._shadow,n=o.DomUtil.getPosition(e._icon),s=e._map.layerPointToLatLng(n);i&&o.DomUtil.setPosition(i,n),e._latlng=s,t.latlng=s,t.oldLatLng=this._oldLatLng,e.fire("move",t).fire("drag",t)},_onDragEnd:function(t){delete this._oldLatLng,this._marker.fire("moveend").fire("dragend",t)}}),o.Control=o.Class.extend({options:{position:"topright"},initialize:function(t){o.setOptions(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),n=t._controlCorners[i];return o.DomUtil.addClass(e,"leaflet-control"),i.indexOf("bottom")!==-1?n.insertBefore(e,n.firstChild):n.appendChild(e),this},remove:function(){return this._map?(o.DomUtil.remove(this._container),this.onRemove&&this.onRemove(this._map),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),o.control=function(t){return new o.Control(t)},o.Map.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){function t(t,s){var r=i+t+" "+i+s;e[t+s]=o.DomUtil.create("div",r,n)}var e=this._controlCorners={},i="leaflet-",n=this._controlContainer=o.DomUtil.create("div",i+"control-container",this._container);t("top","left"),t("top","right"),t("bottom","left"),t("bottom","right")},_clearControlPos:function(){o.DomUtil.remove(this._controlContainer)}}),o.Control.Zoom=o.Control.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"-",zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=o.DomUtil.create("div",e+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,e+"-in",i,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,e+"-out",i,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoom<this._map.getMaxZoom()&&this._map.zoomIn(this._map.options.zoomDelta*(t.shiftKey?3:1))},_zoomOut:function(t){!this._disabled&&this._map._zoom>this._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,s){var r=o.DomUtil.create("a",i,n);return r.innerHTML=t,r.href="#",r.title=e,o.DomEvent.on(r,"mousedown dblclick",o.DomEvent.stopPropagation).on(r,"click",o.DomEvent.stop).on(r,"click",s,this).on(r,"click",this._refocusOnMap,this),r},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";o.DomUtil.removeClass(this._zoomInButton,e),o.DomUtil.removeClass(this._zoomOutButton,e),(this._disabled||t._zoom===t.getMinZoom())&&o.DomUtil.addClass(this._zoomOutButton,e),(this._disabled||t._zoom===t.getMaxZoom())&&o.DomUtil.addClass(this._zoomInButton,e)}}),o.Map.mergeOptions({zoomControl:!0}),o.Map.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new o.Control.Zoom,this.addControl(this.zoomControl))}),o.control.zoom=function(t){return new o.Control.Zoom(t)},o.Control.Attribution=o.Control.extend({options:{position:"bottomright",prefix:'<a href="http://leafletjs.com" title="A JS library for interactive maps">Leaflet</a>'},initialize:function(t){o.setOptions(this,t),this._attributions={}},onAdd:function(t){t.attributionControl=this,this._container=o.DomUtil.create("div","leaflet-control-attribution"),o.DomEvent&&o.DomEvent.disableClickPropagation(this._container);for(var e in t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution()); +return this._update(),this._container},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[];for(var e in this._attributions)this._attributions[e]&&t.push(e);var i=[];this.options.prefix&&i.push(this.options.prefix),t.length&&i.push(t.join(", ")),this._container.innerHTML=i.join(" | ")}}}),o.Map.mergeOptions({attributionControl:!0}),o.Map.addInitHook(function(){this.options.attributionControl&&(new o.Control.Attribution).addTo(this)}),o.control.attribution=function(t){return new o.Control.Attribution(t)},o.Control.Scale=o.Control.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e="leaflet-control-scale",i=o.DomUtil.create("div",e),n=this.options;return this._addScales(n,e+"-line",i),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=o.DomUtil.create("div",e,i)),t.imperial&&(this._iScale=o.DomUtil.create("div",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,i=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(i)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t),i=e<1e3?e+" m":e/1e3+" km";this._updateScale(this._mScale,i,e/t)},_updateImperial:function(t){var e,i,n,o=3.2808399*t;o>5280?(e=o/5280,i=this._getRoundNum(e),this._updateScale(this._iScale,i+" mi",i/e)):(n=this._getRoundNum(o),this._updateScale(this._iScale,n+" ft",n/o))},_updateScale:function(t,e,i){t.style.width=Math.round(this.options.maxWidth*i)+"px",t.innerHTML=e},_getRoundNum:function(t){var e=Math.pow(10,(Math.floor(t)+"").length-1),i=t/e;return i=i>=10?10:i>=5?5:i>=3?3:i>=2?2:1,e*i}}),o.control.scale=function(t){return new o.Control.Scale(t)},o.Control.Layers=o.Control.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1},initialize:function(t,e,i){o.setOptions(this,i),this._layers=[],this._lastZIndex=0,this._handlingClick=!1;for(var n in t)this._addLayer(t[n],n);for(n in e)this._addLayer(e[n],n,!0)},onAdd:function(t){return this._initLayout(),this._update(),this._map=t,t.on("zoomend",this._checkDisabledLayers,this),this._container},onRemove:function(){this._map.off("zoomend",this._checkDisabledLayers,this);for(var t=0;t<this._layers.length;t++)this._layers[t].layer.off("add remove",this._onLayerChange,this)},addBaseLayer:function(t,e){return this._addLayer(t,e),this._map?this._update():this},addOverlay:function(t,e){return this._addLayer(t,e,!0),this._map?this._update():this},removeLayer:function(t){t.off("add remove",this._onLayerChange,this);var e=this._getLayer(o.stamp(t));return e&&this._layers.splice(this._layers.indexOf(e),1),this._map?this._update():this},expand:function(){o.DomUtil.addClass(this._container,"leaflet-control-layers-expanded"),this._form.style.height=null;var t=this._map.getSize().y-(this._container.offsetTop+50);return t<this._form.clientHeight?(o.DomUtil.addClass(this._form,"leaflet-control-layers-scrollbar"),this._form.style.height=t+"px"):o.DomUtil.removeClass(this._form,"leaflet-control-layers-scrollbar"),this._checkDisabledLayers(),this},collapse:function(){return o.DomUtil.removeClass(this._container,"leaflet-control-layers-expanded"),this},_initLayout:function(){var t="leaflet-control-layers",e=this._container=o.DomUtil.create("div",t);e.setAttribute("aria-haspopup",!0),o.DomEvent.disableClickPropagation(e),o.Browser.touch||o.DomEvent.disableScrollPropagation(e);var i=this._form=o.DomUtil.create("form",t+"-list");if(this.options.collapsed){o.Browser.android||o.DomEvent.on(e,{mouseenter:this.expand,mouseleave:this.collapse},this);var n=this._layersLink=o.DomUtil.create("a",t+"-toggle",e);n.href="#",n.title="Layers",o.Browser.touch?o.DomEvent.on(n,"click",o.DomEvent.stop).on(n,"click",this.expand,this):o.DomEvent.on(n,"focus",this.expand,this),o.DomEvent.on(i,"click",function(){setTimeout(o.bind(this._onInputClick,this),0)},this),this._map.on("click",this.collapse,this)}else this.expand();this._baseLayersList=o.DomUtil.create("div",t+"-base",i),this._separator=o.DomUtil.create("div",t+"-separator",i),this._overlaysList=o.DomUtil.create("div",t+"-overlays",i),e.appendChild(i)},_getLayer:function(t){for(var e=0;e<this._layers.length;e++)if(this._layers[e]&&o.stamp(this._layers[e].layer)===t)return this._layers[e]},_addLayer:function(t,e,i){t.on("add remove",this._onLayerChange,this),this._layers.push({layer:t,name:e,overlay:i}),this.options.autoZIndex&&t.setZIndex&&(this._lastZIndex++,t.setZIndex(this._lastZIndex))},_update:function(){if(!this._container)return this;o.DomUtil.empty(this._baseLayersList),o.DomUtil.empty(this._overlaysList);var t,e,i,n,s=0;for(i=0;i<this._layers.length;i++)n=this._layers[i],this._addItem(n),e=e||n.overlay,t=t||!n.overlay,s+=n.overlay?0:1;return this.options.hideSingleBase&&(t=t&&s>1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=e&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var e=this._getLayer(o.stamp(t.target)),i=e.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;i&&this._map.fire(i,e)},_createRadioElement:function(t,i){var n='<input type="radio" class="leaflet-control-layers-selector" name="'+t+'"'+(i?' checked="checked"':"")+"/>",o=e.createElement("div");return o.innerHTML=n,o.firstChild},_addItem:function(t){var i,n=e.createElement("label"),s=this._map.hasLayer(t.layer);t.overlay?(i=e.createElement("input"),i.type="checkbox",i.className="leaflet-control-layers-selector",i.defaultChecked=s):i=this._createRadioElement("leaflet-base-layers",s),i.layerId=o.stamp(t.layer),o.DomEvent.on(i,"click",this._onInputClick,this);var r=e.createElement("span");r.innerHTML=" "+t.name;var a=e.createElement("div");n.appendChild(a),a.appendChild(i),a.appendChild(r);var h=t.overlay?this._overlaysList:this._baseLayersList;return h.appendChild(n),this._checkDisabledLayers(),n},_onInputClick:function(){var t,e,i,n=this._form.getElementsByTagName("input"),o=[],s=[];this._handlingClick=!0;for(var r=n.length-1;r>=0;r--)t=n[r],e=this._getLayer(t.layerId).layer,i=this._map.hasLayer(e),t.checked&&!i?o.push(e):!t.checked&&i&&s.push(e);for(r=0;r<s.length;r++)this._map.removeLayer(s[r]);for(r=0;r<o.length;r++)this._map.addLayer(o[r]);this._handlingClick=!1,this._refocusOnMap()},_checkDisabledLayers:function(){for(var t,e,n=this._form.getElementsByTagName("input"),o=this._map.getZoom(),s=n.length-1;s>=0;s--)t=n[s],e=this._getLayer(t.layerId).layer,t.disabled=e.options.minZoom!==i&&o<e.options.minZoom||e.options.maxZoom!==i&&o>e.options.maxZoom},_expand:function(){return this.expand()},_collapse:function(){return this.collapse()}}),o.control.layers=function(t,e,i){return new o.Control.Layers(t,e,i)},o.PosAnimation=o.Evented.extend({run:function(t,e,i,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=i||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=o.DomUtil.getPosition(t),this._offset=e.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=o.Util.requestAnimFrame(this._animate,this),this._step()},_step:function(t){var e=+new Date-this._startTime,i=1e3*this._duration;e<i?this._runFrame(this._easeOut(e/i),t):(this._runFrame(1),this._complete())},_runFrame:function(t,e){var i=this._startPos.add(this._offset.multiplyBy(t));e&&i._round(),o.DomUtil.setPosition(this._el,i),this.fire("step")},_complete:function(){o.Util.cancelAnimFrame(this._animId),this._inProgress=!1,this.fire("end")},_easeOut:function(t){return 1-Math.pow(1-t,this._easeOutPower)}}),o.Map.include({setView:function(t,e,n){if(e=e===i?this._zoom:this._limitZoom(e),t=this._limitCenter(o.latLng(t),e,this.options.maxBounds),n=n||{},this._stop(),this._loaded&&!n.reset&&n!==!0){n.animate!==i&&(n.zoom=o.extend({animate:n.animate},n.zoom),n.pan=o.extend({animate:n.animate,duration:n.duration},n.pan));var s=this._zoom!==e?this._tryAnimatedZoom&&this._tryAnimatedZoom(t,e,n.zoom):this._tryAnimatedPan(t,n.pan);if(s)return clearTimeout(this._sizeTimer),this}return this._resetView(t,e),this},panBy:function(t,e){if(t=o.point(t).round(),e=e||{},!t.x&&!t.y)return this.fire("moveend");if(e.animate!==!0&&!this.getSize().contains(t))return this._resetView(this.unproject(this.project(this.getCenter()).add(t)),this.getZoom()),this;if(this._panAnim||(this._panAnim=new o.PosAnimation,this._panAnim.on({step:this._onPanTransitionStep,end:this._onPanTransitionEnd},this)),e.noMoveStart||this.fire("movestart"),e.animate!==!1){o.DomUtil.addClass(this._mapPane,"leaflet-pan-anim");var i=this._getMapPanePos().subtract(t).round();this._panAnim.run(this._mapPane,i,e.duration||.25,e.easeLinearity)}else this._rawPanBy(t),this.fire("move").fire("moveend");return this},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){o.DomUtil.removeClass(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,e){var i=this._getCenterOffset(t)._floor();return!((e&&e.animate)!==!0&&!this.getSize().contains(i))&&(this.panBy(i,e),!0)}}),o.Map.mergeOptions({zoomAnimation:!0,zoomAnimationThreshold:4});var h=o.DomUtil.TRANSITION&&o.Browser.any3d&&!o.Browser.mobileOpera;h&&o.Map.addInitHook(function(){this._zoomAnimated=this.options.zoomAnimation,this._zoomAnimated&&(this._createAnimProxy(),o.DomEvent.on(this._proxy,o.DomUtil.TRANSITION_END,this._catchTransitionEnd,this))}),o.Map.include(h?{_createAnimProxy:function(){var t=this._proxy=o.DomUtil.create("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",function(e){var i=o.DomUtil.TRANSFORM,n=t.style[i];o.DomUtil.setTransform(t,this.project(e.center,e.zoom),this.getZoomScale(e.zoom,1)),n===t.style[i]&&this._animatingZoom&&this._onZoomTransitionEnd()},this),this.on("load moveend",function(){var e=this.getCenter(),i=this.getZoom();o.DomUtil.setTransform(t,this.project(e,i),this.getZoomScale(i,1))},this)},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,e,i){if(this._animatingZoom)return!0;if(i=i||{},!this._zoomAnimated||i.animate===!1||this._nothingToAnimate()||Math.abs(e-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),s=this._getCenterOffset(t)._divideBy(1-1/n);return!(i.animate!==!0&&!this.getSize().contains(s))&&(o.Util.requestAnimFrame(function(){this._moveStart(!0)._animateZoom(t,e,!0)},this),!0)},_animateZoom:function(t,e,i,n){i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,o.DomUtil.addClass(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:n}),setTimeout(o.bind(this._onZoomTransitionEnd,this),250)},_onZoomTransitionEnd:function(){this._animatingZoom&&(o.DomUtil.removeClass(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom),o.Util.requestAnimFrame(function(){this._moveEnd(!0)},this))}}:{}),o.Map.include({flyTo:function(t,e,n){function s(t){var e=t?-1:1,i=t?v:g,n=v*v-g*g+e*L*L*y*y,o=2*i*L*y,s=n/o,r=Math.sqrt(s*s+1)-s,a=r<1e-9?-18:Math.log(r);return a}function r(t){return(Math.exp(t)-Math.exp(-t))/2}function a(t){return(Math.exp(t)+Math.exp(-t))/2}function h(t){return r(t)/a(t)}function l(t){return g*(a(x)/a(x+P*t))}function u(t){return g*(a(x)*h(x+P*t)-r(x))/L}function c(t){return 1-Math.pow(1-t,1.5)}function d(){var i=(Date.now()-b)/T,n=c(i)*w;i<=1?(this._flyToFrame=o.Util.requestAnimFrame(d,this),this._move(this.unproject(_.add(m.subtract(_).multiplyBy(u(n)/y)),f),this.getScaleZoom(g/l(n),f),{flyTo:!0})):this._move(t,e)._moveEnd(!0)}if(n=n||{},n.animate===!1||!o.Browser.any3d)return this.setView(t,e,n);this._stop();var _=this.project(this.getCenter()),m=this.project(t),p=this.getSize(),f=this._zoom;t=o.latLng(t),e=e===i?f:e;var g=Math.max(p.x,p.y),v=g*this.getZoomScale(f,e),y=m.distanceTo(_)||1,P=1.42,L=P*P,x=s(0),b=Date.now(),w=(s(1)-x)/P,T=n.duration?1e3*n.duration:1e3*w*.8;return this._moveStart(!0),d.call(this),this},flyToBounds:function(t,e){var i=this._getBoundsCenterZoom(t,e);return this.flyTo(i.center,i.zoom,e)}}),o.Map.include({_defaultLocateOptions:{timeout:1e4,watch:!1},locate:function(t){if(t=this._locateOptions=o.extend({},this._defaultLocateOptions,t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var e=o.bind(this._handleGeolocationResponse,this),i=o.bind(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(e,i,t):navigator.geolocation.getCurrentPosition(e,i,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var e=t.code,i=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+i+"."})},_handleGeolocationResponse:function(t){var e=t.coords.latitude,i=t.coords.longitude,n=new o.LatLng(e,i),s=n.toBounds(t.coords.accuracy),r=this._locateOptions;if(r.setView){var a=this.getBoundsZoom(s);this.setView(n,r.maxZoom?Math.min(a,r.maxZoom):a)}var h={latlng:n,bounds:s,timestamp:t.timestamp};for(var l in t.coords)"number"==typeof t.coords[l]&&(h[l]=t.coords[l]);this.fire("locationfound",h)}})}(window,document); \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leaflet_js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leaflet_js.xml new file mode 100644 index 0000000000000000000000000000000000000000..1d74c42c2330da553c38748cc6d39aedcd9699a3 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leaflet_js.xml @@ -0,0 +1,330 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Script" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/javascript</string> </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>leaflet.js</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_hr_leaflet_js</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Script</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Leaflet</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1478771878.88</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>955.11957.64341.62498</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1478771890.56</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>empty</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1478771844.78</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leave_request_list_html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leave_request_list_html.html new file mode 100644 index 0000000000000000000000000000000000000000..5ec8fb43469d4ebfb4e95df1268bd09d7cc3c058 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leave_request_list_html.html @@ -0,0 +1,19 @@ +<!doctype html> +<html> + <head> + + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <title>OfficeJS Text Editor List</title> + + <script src="rsvp.js"></script> + <script src="renderjs.js"></script> + <script src="gadget_officejs_page_leave_request_record_list.js"></script> + + </head> + + <body> + <div data-gadget-url="gadget_officejs_widget_listbox.html" data-gadget-scope="listbox"></div> + </body> +</html> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_report.html.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leave_request_list_html.xml similarity index 85% rename from bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_report.html.xml rename to bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leave_request_list_html.xml index 34eca85ada2f29b4cb4f10442dc20bbadf6b4c35..583ed5e6058c4106feadb89d7274d77b7d733389 100644 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_report.html.xml +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leave_request_list_html.xml @@ -66,7 +66,10 @@ <item> <key> <string>categories</string> </key> <value> - <tuple/> + <tuple> + <string>contributor/person_module/1</string> + <string>contributor/person_module/2</string> + </tuple> </value> </item> <item> @@ -80,14 +83,16 @@ <value> <string>text/html</string> </value> </item> <item> - <key> <string>contributors</string> </key> + <key> <string>creators</string> </key> <value> - <tuple/> + <tuple> + <string>cedric.le.ninivin</string> + </tuple> </value> </item> <item> <key> <string>default_reference</string> </key> - <value> <string>gadget_travel_expense_page_report.html</string> </value> + <value> <string>gadget_officejs_page_leave_request_record_list.html</string> </value> </item> <item> <key> <string>description</string> </key> @@ -97,11 +102,32 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>gadget_travel_expense_page_report.html</string> </value> + <value> <string>gadget_hr_leave_request_list_html</string> </value> </item> <item> <key> <string>language</string> </key> - <value> <string>en</string> </value> + <value> + <none/> + </value> + </item> + <item> + <key> <string>modification_date</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1455284352.14</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> </item> <item> <key> <string>portal_type</string> </key> @@ -115,11 +141,13 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Travel Expense Record Report Page</string> </value> + <value> <string>OfficeJS Leave Request Record List</string> </value> </item> <item> <key> <string>version</string> </key> - <value> <string>001</string> </value> + <value> + <none/> + </value> </item> <item> <key> <string>workflow_history</string> </key> @@ -179,7 +207,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -201,7 +229,7 @@ </tuple> <state> <tuple> - <float>1472793721.09</float> + <float>1479226476.2</float> <string>UTC</string> </tuple> </state> @@ -232,7 +260,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -246,7 +274,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>953.46555.12202.29593</string> </value> + <value> <string>955.40831.35926.40840</string> </value> </item> <item> <key> <string>state</string> </key> @@ -264,7 +292,7 @@ </tuple> <state> <tuple> - <float>1473070206.39</float> + <float>1480528773.62</float> <string>UTC</string> </tuple> </state> @@ -291,7 +319,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -321,7 +349,7 @@ </tuple> <state> <tuple> - <float>1472791825.39</float> + <float>1479226398.08</float> <string>UTC</string> </tuple> </state> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leave_request_list_js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leave_request_list_js.js new file mode 100644 index 0000000000000000000000000000000000000000..d1b286425433698bd6ce95810dc76e31a1976a5f --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leave_request_list_js.js @@ -0,0 +1,104 @@ +/*globals window, RSVP, rJS*/ +/*jslint indent: 2, nomen: true, maxlen: 80*/ +(function (window, RSVP, rJS) { + "use strict"; + + rJS(window) + .ready(function (g) { + g.props = {}; + return g.getElement() + .push(function (element) { + g.props.element = element; + }); + }) + .ready(function (g) { + return new RSVP.Queue() + .push(function () { + return RSVP.all([ + g.translate("validated"), + g.translate("invalidated"), + g.translate("Not synced!"), + g.translate("Waiting for approval") + ]); + }) + .push(function (result_list) { + g.props.translation_dict = { + "validated": result_list[0], + "invalidated": result_list[1], + "Not synced!": result_list[2], + "Waiting for approval": result_list[3] + }; + }); + }) + .declareAcquiredMethod("translate", "translate") + .declareAcquiredMethod("getUrlFor", "getUrlFor") + .declareAcquiredMethod("updateHeader", "updateHeader") + .declareAcquiredMethod('getSetting', 'getSetting') + .declareAcquiredMethod("jio_allDocs", "jio_allDocs") + .allowPublicAcquisition("jio_allDocs", function (param_list) { + var gadget = this; + return this.jio_allDocs.apply(this, param_list) + .push(function (result) { + var i, + len; + for (i = 0, len = result.data.total_rows; i < len; i += 1) { + // XXX jIO does not create UUID with module inside + if (result.data.rows[i].id.indexOf("module") === -1) { + result.data.rows[i].value.state = + gadget.props.translation_dict["Not synced!"]; + } else { + result.data.rows[i].value.state = + gadget.props.translation_dict[ + result.data.rows[i].value.local_state || + "Waiting for approval" + ]; + } + } + return result; + }); + }) + .declareMethod("render", function (options) { + var gadget = this; + return new RSVP.Queue() + .push(function () { + gadget.props.portal_type = "Leave Request Record"; + gadget.props.document_title_plural = "Leave Requests"; + return gadget.getUrlFor({page: "add_leave_request_record"}); + }) + .push(function (url) { + return gadget.updateHeader({ + title: gadget.props.document_title_plural, + add_url: url + }); + }) + .push(function () { + return gadget.getDeclaredGadget("listbox"); + }) + .push(function (listbox) { + return listbox.render({ + search_page: 'leave_request_record_list', + search: options.search, + column_list: [{ + select: 'resource_title', + title: 'Leave Type' + }, { + select: 'start_date', + title: 'Start Date' + }, { + select: 'stop_date', + title: 'End Date' + }, { + select: 'state', + title: 'State' + }], + query: { + query: 'portal_type:("' + gadget.props.portal_type + '")', + select_list: ['resource_title', + 'start_date', 'stop_date','state'], + sort_on: [["start_date", "descending"]] + } + }); + }); + }); + +}(window, RSVP, rJS)); \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_setting.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leave_request_list_js.xml similarity index 85% rename from bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_setting.js.xml rename to bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leave_request_list_js.xml index 39c1cfa349ea4899faec4a885b0962af4e6117e6..20b82f78f34cbd7fe421ca113c28d0f326c049c5 100644 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_setting.js.xml +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leave_request_list_js.xml @@ -66,7 +66,10 @@ <item> <key> <string>categories</string> </key> <value> - <tuple/> + <tuple> + <string>contributor/person_module/1</string> + <string>contributor/person_module/2</string> + </tuple> </value> </item> <item> @@ -76,14 +79,16 @@ </value> </item> <item> - <key> <string>contributors</string> </key> + <key> <string>creators</string> </key> <value> - <tuple/> + <tuple> + <string>cedric.le.ninivin</string> + </tuple> </value> </item> <item> <key> <string>default_reference</string> </key> - <value> <string>gadget_travel_expense_page_setting.js</string> </value> + <value> <string>gadget_officejs_page_leave_request_record_list.js</string> </value> </item> <item> <key> <string>description</string> </key> @@ -93,11 +98,32 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>gadget_travel_expense_page_setting.js</string> </value> + <value> <string>gadget_hr_leave_request_list_js</string> </value> </item> <item> <key> <string>language</string> </key> - <value> <string>en</string> </value> + <value> + <none/> + </value> + </item> + <item> + <key> <string>modification_date</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1455284352.18</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> </item> <item> <key> <string>portal_type</string> </key> @@ -111,11 +137,13 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Travel Expense Record Setting Page JS</string> </value> + <value> <string>OfficeJS Leave Request Record List JS</string> </value> </item> <item> <key> <string>version</string> </key> - <value> <string>001</string> </value> + <value> + <none/> + </value> </item> <item> <key> <string>workflow_history</string> </key> @@ -175,7 +203,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -197,7 +225,7 @@ </tuple> <state> <tuple> - <float>1472526622.69</float> + <float>1479226477.73</float> <string>UTC</string> </tuple> </state> @@ -228,7 +256,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -242,7 +270,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>953.39330.25323.1006</string> </value> + <value> <string>955.41044.23169.2781</string> </value> </item> <item> <key> <string>state</string> </key> @@ -260,7 +288,7 @@ </tuple> <state> <tuple> - <float>1472636485.75</float> + <float>1480588811.4</float> <string>UTC</string> </tuple> </state> @@ -287,7 +315,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -317,7 +345,7 @@ </tuple> <state> <tuple> - <float>1472523951.68</float> + <float>1479226395.45</float> <string>UTC</string> </tuple> </state> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leave_request_view_html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leave_request_view_html.html new file mode 100644 index 0000000000000000000000000000000000000000..632f3a864fee046c96d672f0fd872d552717dc33 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leave_request_view_html.html @@ -0,0 +1,74 @@ +<!doctype html> +<html> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <title>Leave Request Records</title> + + <link rel="stylesheet" type="text/css" href="alertify.css" /> + <script src="rsvp.js"></script> + <script src="renderjs.js"></script> + <script src="gadget_global.js" ></script> + <script src="handlebars.js"></script> + <script src="alertify.js"></script> + + + + <script class="view-expense-record-template" type="text/x-handlebars-template"> + <form class="view-expense-record-form"> + <button type="submit" data-i18n="Save" style="display:none;">Save</button> + <div class="ui-field-contain"> + <label data-i18n="State">State</label> + <div name="state">{{state}}</div> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Leave Type">Leave Type</label> + <select class="new-performed-task" name="resource" required> + {{#each select_options}} + {{#if is_selected}} + <option value={{value}} selected>{{title}}</option> + {{else}} + <option value={{value}}>{{title}}</option> + {{/if}} + {{/each}} + </select> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Start Date">Start Date</label> + <input type="date" name="start_date" value="{{start_date}}" required> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Stop Date">Stop Date</label> + <input type="date" name="stop_date" value="{{stop_date}}" required> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Comment">Comment</label> + <textarea name="comment">{{comment}}</textarea> + </div> + + {{#if not_readonly}} + <div class="ui-field-contain"> + <label data-i18n="Sync Method">Sync Method</label> + <div> + <input type="radio" id="sync_flag_yes" {{sync_checked}} name="sync_flag" value=1> + <label for="sync_flag_yes" data-i18n="Ready To Sync">Ready To Sync</label> + <input type="radio" id="sync_flag_no" {{not_sync_checked}} name="sync_flag" value=0 > + <label for="sync_flag_no" data-i18n="Do Not Sync">Do Not Sync</label> + </div> + </div> + {{/if}} + + </form> + </script> + <script src="gadget_officejs_jio_leave_request_record_view.js"></script> + + </head> + + <body> + </body> +</html> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_view.html.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leave_request_view_html.xml similarity index 92% rename from bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_view.html.xml rename to bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leave_request_view_html.xml index 19551a991e89c30a0f7aa61e4635bcf058e86b0c..8978d6d42c6137d26d88ba6ae82340a05c713857 100644 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_view.html.xml +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leave_request_view_html.xml @@ -66,7 +66,9 @@ <item> <key> <string>categories</string> </key> <value> - <tuple/> + <tuple> + <string>contributor/person_module/2</string> + </tuple> </value> </item> <item> @@ -79,15 +81,9 @@ <key> <string>content_type</string> </key> <value> <string>text/html</string> </value> </item> - <item> - <key> <string>contributors</string> </key> - <value> - <tuple/> - </value> - </item> <item> <key> <string>default_reference</string> </key> - <value> <string>gadget_travel_expense_jio_expense_record_view.html</string> </value> + <value> <string>gadget_officejs_jio_leave_request_record_view.html</string> </value> </item> <item> <key> <string>description</string> </key> @@ -97,11 +93,13 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>gadget_travel_expense_jio_expense_record_view.html</string> </value> + <value> <string>gadget_hr_leave_request_view_html</string> </value> </item> <item> <key> <string>language</string> </key> - <value> <string>en</string> </value> + <value> + <none/> + </value> </item> <item> <key> <string>portal_type</string> </key> @@ -115,11 +113,13 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Expense Record View</string> </value> + <value> <string>OfficeJS Jio Leave Request Record View</string> </value> </item> <item> <key> <string>version</string> </key> - <value> <string>001</string> </value> + <value> + <none/> + </value> </item> <item> <key> <string>workflow_history</string> </key> @@ -179,7 +179,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -201,7 +201,7 @@ </tuple> <state> <tuple> - <float>1472526672.63</float> + <float>1479809808.78</float> <string>UTC</string> </tuple> </state> @@ -232,7 +232,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -246,7 +246,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>953.40597.52922.27767</string> </value> + <value> <string>955.41038.59829.61593</string> </value> </item> <item> <key> <string>state</string> </key> @@ -264,7 +264,7 @@ </tuple> <state> <tuple> - <float>1472712482.93</float> + <float>1480517010.98</float> <string>UTC</string> </tuple> </state> @@ -291,7 +291,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -321,7 +321,7 @@ </tuple> <state> <tuple> - <float>1472523951.5</float> + <float>1479808686.58</float> <string>UTC</string> </tuple> </state> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leave_request_view_js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leave_request_view_js.js new file mode 100644 index 0000000000000000000000000000000000000000..5d60f9d1533b42d927beca019c6367ef8429c779 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leave_request_view_js.js @@ -0,0 +1,443 @@ +/*globals window, rJS, Handlebars, RSVP*/ +/*jslint indent: 2, nomen: true, maxlen: 80*/ +(function (window, document, RSVP, rJS, Handlebars, loopEventListener, promiseEventListener, alertify) { + "use strict"; + + var gadget_klass = rJS(window), + source = gadget_klass.__template_element + .querySelector(".view-expense-record-template") + .innerHTML, + template = Handlebars.compile(source), + resource_type = { + 1: {title: "Congés Payés Annuels", relative_url: "1"}, + 2: {title: "Congés d'ancienneté", relative_url: "2"}, + 3: {title: "Congé ancienneté demi journée", relative_url: "3"}, + 4: {title: "Congé RTT individuel", relative_url: "4"}, + 5: {title: "Congé révision examen apprenti", relative_url: "5"}, + 6: {title: "Congé naissance adoption", relative_url: "6"}, + 7: {title: "Congé déménagement personnel", relative_url: "7"}, + 8: {title: "Congé Mariage/PACS du salarié", relative_url: "8"}, + 9: {title: "Congé Mariage/PACS famille", relative_url: "9"}, + 10: {title: "Congé Maladie Enfant", relative_url: "10"}, + 11: {title: "Hospitalisation CONJ. Enfant", relative_url: "11"}, + 12: {title: "Amenag. Hor. PDT Grossesse", relative_url: "12"}, + 13: {title: "Congé décès Famille", relative_url: "13"}, + 14: {title: "Congé déménagement mutation", relative_url: "14"}, + + }; + + function getWorkflowState(id, sync_flag) { + var sync_state; + if(id.indexOf("_module/") > 0){ + sync_state = "Synced"; + }else if(sync_flag){ + sync_state = "Not Synced"; + }else{ + sync_state = "Not Ready To Sync"; + } + return sync_state; + } + + function geoLocationPromise() { + return new Promise(function (resolve, reject) { + var err; + if (navigator.geolocation) { + navigator.geolocation.getCurrentPosition(function (result) { + resolve(result); + }, function (error) { + switch(error.code) { + case error.PERMISSION_DENIED: + err = new Error("User denied the request for Geolocation"); + break; + case error.POSITION_UNAVAILABLE: + err = new Error("Location information is unavailable"); + break; + case error.TIMEOUT: + err = new Error("The request to get user location timed out"); + break; + default: + err = new Error("An unknown error occurred"); + break; + } + reject(err); + }, + {maximumAge:60000, timeout:20000}); + } else { + reject(new Error("Geolocation is not supported by this browser")); + } + }); + } + function getSequentialID(gadget, record_type_prefix){ + var last_sequential_id, + prefix, + date = new Date(), + date_text = date.getFullYear()+('0'+(date.getMonth()+1)).slice(-2)+('0'+date.getDate()).slice(-2); + return new RSVP.Queue() + .push(function () { + if (gadget.options.doc.doc_id) { + return gadget.options.doc.doc_id; + } else { + return new RSVP.Queue() + .push(function () { + return new RSVP.all([ + gadget.getSetting('last_sequential_id'), + gadget.getSetting('sequential_id_prefix') + ]); + }) + .push(function (result_list) { + if (result_list[0]) { + last_sequential_id = Number(result_list[0]); + } else { + last_sequential_id = 0; + } + last_sequential_id += 1; + if (result_list[1]) { + prefix = result_list[1]; + } else { + prefix = getRandomPrefixForID(); + } + return RSVP.all([ + gadget.setSetting('last_sequential_id', last_sequential_id), + gadget.setSetting('sequential_id_prefix', prefix) + ]); + }) + .push(function () { + return record_type_prefix + '-' + date_text + '-' + prefix + ('0000'+last_sequential_id).slice(-5); + }); + } + }); + } + + function getRandomPrefixForID(){ + function random(){ + return 65 + Math.floor( Math.random() * 26 ); + } + return String.fromCharCode(random())+String.fromCharCode(random())+String.fromCharCode(random()); + } + + gadget_klass + .ready(function (g) { + return g.getElement() + .push(function (element) { + alertify.set({ delay: 1500 }); + g.props = {}; + g.props.element = element; + g.props.deferred = RSVP.defer(); + g.props.deferred1 = RSVP.defer(); + }); + }) + + .declareAcquiredMethod("updateHeader", "updateHeader") + .declareAcquiredMethod("get", "jio_get") + .declareAcquiredMethod("put", "jio_put") + .declareAcquiredMethod("post", "jio_post") + .declareAcquiredMethod("translateHtml", "translateHtml") + .declareAcquiredMethod('allDocs', 'jio_allDocs') + .declareAcquiredMethod("redirect", "redirect") + .declareAcquiredMethod('jio_remove', 'jio_remove') + .declareAcquiredMethod('getSetting', 'getSetting') + .declareAcquiredMethod('setSetting', 'setSetting') + .declareAcquiredMethod("repair", "jio_repair") + + + .declareMethod('triggerSubmit', function () { + return this.props.element.querySelector('button').click(); + }) + + .declareMethod("render", function (options) { + var gadget = this, + sync_checked, + sync_state = getWorkflowState(options.jio_key, options.doc.sync_flag), + not_sync_checked; + gadget.options = options; + + return new RSVP.Queue() + .push (function () { + return { + data: { + total_rows: 14, + rows: [ + {title: "Congés Payés Annuels", relative_url: "1"}, + {title: "Congés d'ancienneté", relative_url: "2"}, + {title: "Congé ancienneté demi journée", relative_url: "3"}, + {title: "Congé RTT individuel", relative_url: "4"}, + {title: "Congé révision examen apprenti", relative_url: "5"}, + {title: "Congé naissance adoption", relative_url: "6"}, + {title: "Congé déménagement personnel", relative_url: "7"}, + {title: "Congé Mariage/PACS du salarié", relative_url: "8"}, + {title: "Congé Mariage/PACS famille", relative_url: "9"}, + {title: "Congé Maladie Enfant", relative_url: "10"}, + {title: "Hospitalisation CONJ. Enfant", relative_url: "11"}, + {title: "Amenag. Hor. PDT Grossesse", relative_url: "12"}, + {title: "Congé décès Famille", relative_url: "13"}, + {title: "Congé déménagement mutation", relative_url: "14"}, + ] + } + } + /*gadget.allDocs({ + query: 'portal_type:"Currency"', + select_list: ['relative_url', 'title'], + limit: [0, 100] + });*/ + }) + .push(function (result) { + var i = 0, + tmp, + ops, + select_options = []; + for (i = 0; i < result.data.total_rows; i += 1) { + tmp = { + title: result.data.rows[i].title, + value: result.data.rows[i].relative_url + }; + if (options.doc.resource === result.data.rows[i].relative_url) { + tmp.is_selected = true; + } + select_options.push(tmp); + } + if (options.doc.sync_flag === '1') { + sync_checked = 'checked'; + } else { + not_sync_checked = 'checked'; + } + ops = { + state: sync_state, + start_date: options.doc.start_date|| new Date().toISOString().slice(0,10), + stop_date: options.doc.stop_date|| new Date().toISOString().slice(0,10), + quantity: options.doc.quantity, + comment: options.doc.comment, + sync_checked: sync_checked, + not_sync_checked: not_sync_checked, + select_options: select_options, + }; + if (sync_state !== 'Synced') { + ops.not_readonly = true; + } + return template(ops); + }) + .push(function (html) { + gadget.props.element.innerHTML = html; + + return gadget.updateHeader({ + title: gadget.options.jio_key + " " + (gadget.options.doc.record_revision || 1), + save_action: sync_state === 'Synced'? false: true + }); + }) + .push(function () { + gadget.props.deferred.resolve(); + }); + }) + + ///////////////////////////////////////// + // New version of the the Expense Record + ///////////////////////////////////////// + /* + .declareService(function () { + var gadget = this, + cloned_doc, + current_doc, + new_id; + + if(gadget.props.element.querySelector('input[type=button][name=create_new_version]') == null){ + return; + } + + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function () { + + return promiseEventListener( + gadget.props.element.querySelector('input[type=button][name=create_new_version]'), + 'click', + false + ); + }) + .push(function () { + return gadget.get(gadget.options.jio_key); + }) + .push(function (result) { + current_doc = result; + cloned_doc = JSON.parse(JSON.stringify(result)); + + // Do not sync the cloned document + cloned_doc.copy_of = gadget.options.jio_key; + cloned_doc.visible_in_html5_app_flag = 1; + delete cloned_doc.sync_flag; + cloned_doc.portal_type = 'Expense Record Temp'; + cloned_doc.record_revision = (cloned_doc.record_revision || 1) + 1; + + current_doc.visible_in_html5_app_flag = 0; + + return gadget.post(cloned_doc); + }) + .push(function (id) { + new_id = id; + // Hide the document at the end in order to still view it in case of issue + // Better have 2 docs than none visible + return gadget.put(gadget.options.jio_key, current_doc); + }) + .push(function (response) { + return gadget.redirect({ + jio_key: new_id, + page: "view" + }); + }); + })*/ + + + ///////////////////////////////////////// + // Form submit + ///////////////////////////////////////// + /*.declareService(function () { + var gadget = this, + state = getWorkflowState(gadget.options.jio_key, gadget.options.doc.sync_flag); + if (state === 'Synced') { + gadget.props.deferred1.resolve(); + return; + } + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function () { + alertify.log('searching GPS'); + return geoLocationPromise(); + }) + .push(function(result) { + alertify.success('GPS found'); + return result; + }, function(err) { + alertify.error(err); + return {coords: {latitude: "", longitude: ""}}; + }) + .push(function (result) { + gadget.props.element.querySelector('input[name="longitude"]').value = result.coords.longitude; + gadget.props.element.querySelector('input[name="latitude"]').value = result.coords.latitude; + gadget.props.geoLocation = result; + gadget.props.deferred1.resolve(); + }); + + + })*/ + .declareService(function () { + var gadget = this, + sync, + form = gadget.props.element.querySelector('form.view-expense-record-form'); + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function () { + return loopEventListener( + form, + 'submit', + false, + function (submit_event) { + return getSequentialID(gadget, 'EXP') + .push(function (doc_id) { + var i, + doc = { + parent_relative_url: "record_module", + portal_type: "Leave Request Record", + doc_id: doc_id, + visible_in_html5_app_flag: 1, + record_revision: (gadget.options.doc.record_revision || 1), + modification_date: new Date().toISOString() + }; + for (i = 0; i < submit_event.target.length; i += 1) { + // XXX Should check input type instead + if (submit_event.target[i].name && submit_event.target[i].type != "submit") { + if ((submit_event.target[i].type == "radio" || submit_event.target[i].type == "checkbox") && !submit_event.target[i].checked){ + continue + } + if (submit_event.target[i].name === "resource"){ + doc[submit_event.target[i].name] = submit_event.target[i].value; + doc["resource_title"] = resource_type[submit_event.target[i].value].title; + } + if (submit_event.target[i].name === "photo") { + continue + } + doc[submit_event.target[i].name] = submit_event.target[i].value; + } + } + if (doc.sync_flag === "1"){ + sync = 1; + doc.validation_state = 'draft' + } + return gadget.put(gadget.options.jio_key, doc); + }) + .push(function () { + if (sync === 1) { + return gadget.repair() + .push(function () { + return gadget.redirect({page: 'leave_request_record_list'}); + }) + .push(function () { + alertify.success("Saved"); + }); + } else { + alertify.success("Saved"); + } + }); + } + ) + }) + }) + /* + .declareService(function () { + var gadget = this; + + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function () { + if (gadget.options.doc.sync_flag == "1"){ + var element = gadget.props.element.querySelector("input[name='sync_flag'][value='1']"); + element.setAttribute('checked', 'checked'); + $(element).checkboxradio('refresh'); + }else{ + var element = gadget.props.element.querySelector("input[name='sync_flag'][value='']"); + element.setAttribute('checked', 'checked'); + $(element).checkboxradio('refresh'); + } + }) + }) +*/ + ///////////////////////////////////////// + // Preview clicked. + ///////////////////////////////////////// + /*.declareService(function () { + var gadget = this, + img = gadget.props.element.querySelector('img[name="preview"]'), + modal = gadget.props.element.querySelector('.modal'), + modalImg = gadget.props.element.querySelector('img[name="img01"]'), + span = gadget.props.element.querySelector('.close'); + + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function () { + return loopEventListener( + img, + "click", + false, + function (evt) { + modal.style.display = "block"; + modalImg.src = evt.target.src; + return new RSVP.Queue() + .push(function () { + return promiseEventListener(span, 'click', false); + }) + .push(function () { + modal.style.display = "none"; + }); + } + ); + }); + })*/; + +}(window, document, RSVP, rJS, Handlebars, loopEventListener, promiseEventListener, alertify)); \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_view.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leave_request_view_js.xml similarity index 93% rename from bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_view.js.xml rename to bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leave_request_view_js.xml index 2d938c9865611810ef833a37f51ef9270636423e..7b310f11e397dc281e40abba15af6fe827358e88 100644 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_view.js.xml +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_leave_request_view_js.xml @@ -66,7 +66,9 @@ <item> <key> <string>categories</string> </key> <value> - <tuple/> + <tuple> + <string>contributor/person_module/2</string> + </tuple> </value> </item> <item> @@ -83,7 +85,7 @@ </item> <item> <key> <string>default_reference</string> </key> - <value> <string>gadget_travel_expense_jio_expense_record_view.js</string> </value> + <value> <string>gadget_officejs_jio_leave_request_record_view.js</string> </value> </item> <item> <key> <string>description</string> </key> @@ -93,7 +95,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>gadget_travel_expense_jio_expense_record_view.js</string> </value> + <value> <string>gadget_hr_leave_request_view_js</string> </value> </item> <item> <key> <string>language</string> </key> @@ -111,7 +113,7 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Expense Record View JS</string> </value> + <value> <string>Leave Request Record View JS</string> </value> </item> <item> <key> <string>version</string> </key> @@ -175,7 +177,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -197,7 +199,7 @@ </tuple> <state> <tuple> - <float>1472526622.72</float> + <float>1479297737.19</float> <string>UTC</string> </tuple> </state> @@ -228,7 +230,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -242,7 +244,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>953.40561.39850.11758</string> </value> + <value> <string>955.41031.64277.45516</string> </value> </item> <item> <key> <string>state</string> </key> @@ -260,7 +262,7 @@ </tuple> <state> <tuple> - <float>1472710379.32</float> + <float>1480516694.26</float> <string>UTC</string> </tuple> </state> @@ -287,7 +289,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -317,7 +319,7 @@ </tuple> <state> <tuple> - <float>1472523951.54</float> + <float>1479293579.29</float> <string>UTC</string> </tuple> </state> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_mission_request_record_list_html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_mission_request_record_list_html.html new file mode 100644 index 0000000000000000000000000000000000000000..063ef62d360ed3d71db38a90cd74b91b7a4acb21 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_mission_request_record_list_html.html @@ -0,0 +1,19 @@ +<!doctype html> +<html> + <head> + + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <title>OfficeJS Text Editor List</title> + + <script src="rsvp.js"></script> + <script src="renderjs.js"></script> + <script src="gadget_officejs_page_travel_request_record_list.js"></script> + + </head> + + <body> + <div data-gadget-url="gadget_officejs_widget_listbox.html" data-gadget-scope="listbox"></div> + </body> +</html> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_mission_request_record_list_html.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_mission_request_record_list_html.xml new file mode 100644 index 0000000000000000000000000000000000000000..3c7c2375c5d56bb7af65fcf053c8117d9d77c2cf --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_mission_request_record_list_html.xml @@ -0,0 +1,364 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Page" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>contributor/person_module/1</string> + <string>contributor/person_module/2</string> + </tuple> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/html</string> </value> + </item> + <item> + <key> <string>creators</string> </key> + <value> + <tuple> + <string>cedric.le.ninivin</string> + </tuple> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_officejs_page_travel_request_record_list.html</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_hr_mission_request_record_list_html</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>modification_date</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1455284352.14</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Page</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>OfficeJS Travel Request Record List</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>supercedriclen</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1479285260.29</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>supercedriclen</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>955.40826.5186.10103</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1480503977.15</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>supercedriclen</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1479285213.01</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_mission_request_record_list_js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_mission_request_record_list_js.js new file mode 100644 index 0000000000000000000000000000000000000000..61781b5855310daf1abc97e2ad273da1cc56c934 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_mission_request_record_list_js.js @@ -0,0 +1,109 @@ +/*globals window, RSVP, rJS*/ +/*jslint indent: 2, nomen: true, maxlen: 80*/ +(function (window, RSVP, rJS) { + "use strict"; + + rJS(window) + .ready(function (g) { + g.props = {}; + return g.getElement() + .push(function (element) { + g.props.element = element; + }); + }) + .ready(function (g) { + return new RSVP.Queue() + .push(function () { + return RSVP.all([ + g.translate("validated"), + g.translate("invalidated"), + g.translate("Not synced!"), + g.translate("Waiting for approval") + ]); + }) + .push(function (result_list) { + g.props.translation_dict = { + "validated": result_list[0], + "invalidated": result_list[1], + "Not synced!": result_list[2], + "Waiting for approval": result_list[3] + }; + }); + }) + .declareAcquiredMethod("translate", "translate") + .declareAcquiredMethod("getUrlFor", "getUrlFor") + .declareAcquiredMethod("updateHeader", "updateHeader") + .declareAcquiredMethod('getSetting', 'getSetting') + .declareAcquiredMethod("jio_allDocs", "jio_allDocs") + .allowPublicAcquisition("jio_allDocs", function (param_list) { + var gadget = this; + return this.jio_allDocs.apply(this, param_list) + .push(function (result) { + var i, + len; + for (i = 0, len = result.data.total_rows; i < len; i += 1) { + // XXX jIO does not create UUID with module inside + if (result.data.rows[i].id.indexOf("module") === -1) { + result.data.rows[i].value.state = + gadget.props.translation_dict["Not synced!"]; + } else { + result.data.rows[i].value.state = + result.data.rows[i].value.state || gadget.props.translation_dict[ + "Waiting for approval"]; + } + } + return result; + }); + }) + .declareMethod("render", function (options) { + var gadget = this; + return new RSVP.Queue() + .push(function () { + gadget.props.portal_type = "Travel Request Record"; + gadget.props.document_title_plural = "Mission Requests"; + return gadget.getUrlFor({page: "add_travel_request_record"}); + }) + .push(function (url) { + return gadget.updateHeader({ + title: gadget.props.document_title_plural, + add_url: url + }); + }) + .push(function () { + return gadget.getDeclaredGadget("listbox"); + }) + .push(function (listbox) { + return listbox.render({ + search_page: 'travel_request_record_list', + search: options.search, + column_list: [ + { + select: 'title', + title: 'Titre' + }, { + select: 'resource_title', + title: 'Mission Type' + }, { + select: 'destination_node_title', + title: 'Destination' + }, { + select: 'start_date', + title: 'Start Date' + }, { + select: 'stop_date', + title: 'End Date' + }, { + select: 'state', + title: 'State' + }], + query: { + query: 'portal_type:("' + gadget.props.portal_type + '")', + select_list: ['resource_title', 'title', 'destination_node_title', + 'start_date', 'stop_date', 'state'], + sort_on: [["start_date", "descending"]] + } + }); + }); + }); + +}(window, RSVP, rJS)); \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_mission_request_record_list_js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_mission_request_record_list_js.xml new file mode 100644 index 0000000000000000000000000000000000000000..a7febb171a88b0e24e9ca57eec7aaca880cf383f --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_mission_request_record_list_js.xml @@ -0,0 +1,360 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Script" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>contributor/person_module/1</string> + <string>contributor/person_module/2</string> + </tuple> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>creators</string> </key> + <value> + <tuple> + <string>cedric.le.ninivin</string> + </tuple> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_officejs_page_travel_request_record_list.js</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_hr_mission_request_record_list_js</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>modification_date</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1455284352.18</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Script</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>OfficeJS Travel Request Record List JS</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>supercedriclen</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1479285410.09</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>supercedriclen</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>955.52778.21897.47291</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1481299585.41</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>supercedriclen</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1479285200.99</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_mission_request_record_view_html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_mission_request_record_view_html.html new file mode 100644 index 0000000000000000000000000000000000000000..936502796b57b948b4bfcdad1ad6033ff8ddcc33 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_mission_request_record_view_html.html @@ -0,0 +1,89 @@ +<!doctype html> +<html> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <title>Expense Record Module View Expense Record</title> + + <link rel="stylesheet" type="text/css" href="alertify.css" /> + <script src="rsvp.js"></script> + <script src="renderjs.js"></script> + <script src="gadget_global.js" ></script> + <script src="handlebars.js"></script> + <script src="alertify.js"></script> + + + + <script class="view-expense-record-template" type="text/x-handlebars-template"> + <form class="view-expense-record-form"> + <button type="submit" data-i18n="Save" style="display:none;">Save</button> + + <div class="ui-field-contain"> + <label data-i18n="title">Title</label> + <input type="text" name="title" value="{{title}}"> + </div> + + <div class="ui-field-contain"> + <label data-i18n="State">State</label> + <div name="state">{{state}}</div> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Mission Type">Mission Type</label> + <select class="new-performed-task" name="resource" required> + {{#each select_options}} + {{#if is_selected}} + <option value={{value}} selected>{{title}}</option> + {{else}} + <option value={{value}}>{{title}}</option> + {{/if}} + {{/each}} + </select> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Destination">Destination</label> + <input type="text" name="destination_node_title" value="{{destination_node_title}}"> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Animation Center">Animation Center</label> + <input type="text" name="site" value="{{site}}"> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Start Date">Start Date</label> + <input type="date" name="start_date" value="{{start_date}}" required> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Stop Date">Stop Date</label> + <input type="date" name="stop_date" value="{{stop_date}}" required> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Comment">Comment</label> + <textarea name="comment">{{comment}}</textarea> + </div> + + {{#if not_readonly}} + <div class="ui-field-contain"> + <label data-i18n="Sync Method">Sync Method</label> + <div> + <input type="radio" id="sync_flag_yes" {{sync_checked}} name="sync_flag" value=1> + <label for="sync_flag_yes" data-i18n="Ready To Sync">Ready To Sync</label> + <input type="radio" id="sync_flag_no" {{not_sync_checked}} name="sync_flag" value=0 > + <label for="sync_flag_no" data-i18n="Do Not Sync">Do Not Sync</label> + </div> + </div> + {{/if}} + </form> + </script> + <script src="gadget_officejs_jio_travel_request_record_view.js"></script> + + </head> + + <body> + </body> +</html> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation.html.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_mission_request_record_view_html.xml similarity index 91% rename from bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation.html.xml rename to bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_mission_request_record_view_html.xml index fdf361e4b9264241077e80edd15d25260ceab19c..a4d52adc53a6a8979673c1099615b85554a2e867 100644 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation.html.xml +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_mission_request_record_view_html.xml @@ -67,7 +67,7 @@ <key> <string>categories</string> </key> <value> <tuple> - <string>classification/collaborative/team</string> + <string>contributor/person_module/2</string> </tuple> </value> </item> @@ -83,7 +83,7 @@ </item> <item> <key> <string>default_reference</string> </key> - <value> <string>gadget_travel_expense_translation.html</string> </value> + <value> <string>gadget_officejs_jio_travel_request_record_view.html</string> </value> </item> <item> <key> <string>description</string> </key> @@ -93,11 +93,13 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>gadget_travel_expense_translation.html</string> </value> + <value> <string>gadget_hr_mission_request_record_view_html</string> </value> </item> <item> <key> <string>language</string> </key> - <value> <string>en</string> </value> + <value> + <none/> + </value> </item> <item> <key> <string>portal_type</string> </key> @@ -111,11 +113,13 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Travel Expense Gadget Translation</string> </value> + <value> <string>OfficeJS Jio Travel Request Record View</string> </value> </item> <item> <key> <string>version</string> </key> - <value> <string>001</string> </value> + <value> + <none/> + </value> </item> <item> <key> <string>workflow_history</string> </key> @@ -175,7 +179,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -197,7 +201,7 @@ </tuple> <state> <tuple> - <float>1472526672.53</float> + <float>1479985423.17</float> <string>UTC</string> </tuple> </state> @@ -228,7 +232,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -242,7 +246,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>953.37503.13972.43741</string> </value> + <value> <string>955.52776.55364.53777</string> </value> </item> <item> <key> <string>state</string> </key> @@ -260,7 +264,7 @@ </tuple> <state> <tuple> - <float>1472540557.04</float> + <float>1481299568.88</float> <string>UTC</string> </tuple> </state> @@ -287,7 +291,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -317,7 +321,7 @@ </tuple> <state> <tuple> - <float>1472523951.95</float> + <float>1479982560.26</float> <string>UTC</string> </tuple> </state> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_mission_request_record_view_js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_mission_request_record_view_js.js new file mode 100644 index 0000000000000000000000000000000000000000..dc2ad4479afc2ddc5e50e099f2659e1b498ce6aa --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_mission_request_record_view_js.js @@ -0,0 +1,424 @@ +/*globals window, rJS, Handlebars, RSVP*/ +/*jslint indent: 2, nomen: true, maxlen: 80*/ +(function (window, document, RSVP, rJS, Handlebars, loopEventListener, promiseEventListener, alertify) { + "use strict"; + + var gadget_klass = rJS(window), + source = gadget_klass.__template_element + .querySelector(".view-expense-record-template") + .innerHTML, + template = Handlebars.compile(source), + resource_type = { + 1: {title: "Occasionnelle", relative_url: "1"}, + 2: {title: "Urgence", relative_url: "2"}, + 3: {title: "Marketing", relative_url: "3"}, + }; + + function getWorkflowState(id, sync_flag) { + var sync_state; + if(id.indexOf("_module/") > 0){ + sync_state = "Synced"; + }else if(sync_flag){ + sync_state = "Not Synced"; + }else{ + sync_state = "Not Ready To Sync"; + } + return sync_state; + } + + function geoLocationPromise() { + return new Promise(function (resolve, reject) { + var err; + if (navigator.geolocation) { + navigator.geolocation.getCurrentPosition(function (result) { + resolve(result); + }, function (error) { + switch(error.code) { + case error.PERMISSION_DENIED: + err = new Error("User denied the request for Geolocation"); + break; + case error.POSITION_UNAVAILABLE: + err = new Error("Location information is unavailable"); + break; + case error.TIMEOUT: + err = new Error("The request to get user location timed out"); + break; + default: + err = new Error("An unknown error occurred"); + break; + } + reject(err); + }, + {maximumAge:60000, timeout:20000}); + } else { + reject(new Error("Geolocation is not supported by this browser")); + } + }); + } + function getSequentialID(gadget, record_type_prefix){ + var last_sequential_id, + prefix, + date = new Date(), + date_text = date.getFullYear()+('0'+(date.getMonth()+1)).slice(-2)+('0'+date.getDate()).slice(-2); + return new RSVP.Queue() + .push(function () { + if (gadget.options.doc.doc_id) { + return gadget.options.doc.doc_id; + } else { + return new RSVP.Queue() + .push(function () { + return new RSVP.all([ + gadget.getSetting('last_sequential_id'), + gadget.getSetting('sequential_id_prefix') + ]); + }) + .push(function (result_list) { + if (result_list[0]) { + last_sequential_id = Number(result_list[0]); + } else { + last_sequential_id = 0; + } + last_sequential_id += 1; + if (result_list[1]) { + prefix = result_list[1]; + } else { + prefix = getRandomPrefixForID(); + } + return RSVP.all([ + gadget.setSetting('last_sequential_id', last_sequential_id), + gadget.setSetting('sequential_id_prefix', prefix) + ]); + }) + .push(function () { + return record_type_prefix + '-' + date_text + '-' + prefix + ('0000'+last_sequential_id).slice(-5); + }); + } + }); + } + + function getRandomPrefixForID(){ + function random(){ + return 65 + Math.floor( Math.random() * 26 ); + } + return String.fromCharCode(random())+String.fromCharCode(random())+String.fromCharCode(random()); + } + + gadget_klass + .ready(function (g) { + return g.getElement() + .push(function (element) { + alertify.set({ delay: 1500 }); + g.props = {}; + g.props.element = element; + g.props.deferred = RSVP.defer(); + g.props.deferred1 = RSVP.defer(); + }); + }) + + .declareAcquiredMethod("updateHeader", "updateHeader") + .declareAcquiredMethod("get", "jio_get") + .declareAcquiredMethod("put", "jio_put") + .declareAcquiredMethod("post", "jio_post") + .declareAcquiredMethod("translateHtml", "translateHtml") + .declareAcquiredMethod('allDocs', 'jio_allDocs') + .declareAcquiredMethod("redirect", "redirect") + .declareAcquiredMethod('jio_remove', 'jio_remove') + .declareAcquiredMethod('getSetting', 'getSetting') + .declareAcquiredMethod('setSetting', 'setSetting') + .declareAcquiredMethod("repair", "jio_repair") + + + .declareMethod('triggerSubmit', function () { + return this.props.element.querySelector('button').click(); + }) + + .declareMethod("render", function (options) { + var gadget = this, + sync_checked, + sync_state = getWorkflowState(options.jio_key, options.doc.sync_flag), + not_sync_checked; + gadget.options = options; + + return new RSVP.Queue() + .push (function () { + return { + data: { + total_rows: 3, + rows: [ + {title: "Occasionnelle", relative_url: "1"}, + {title: "Urgence", relative_url: "2"}, + {title: "Marketing", relative_url: "3"}, + ] + } + }; + /*gadget.allDocs({ + query: 'portal_type:"Currency"', + select_list: ['relative_url', 'title'], + limit: [0, 100] + });*/ + }) + .push(function (result) { + var i = 0, + tmp, + ops, + select_options = []; + for (i = 0; i < result.data.total_rows; i += 1) { + tmp = { + title: result.data.rows[i].title, + value: result.data.rows[i].relative_url + }; + if (options.doc.resource === result.data.rows[i].relative_url) { + tmp.is_selected = true; + } + select_options.push(tmp); + } + if (options.doc.sync_flag === '1') { + sync_checked = 'checked'; + } else { + not_sync_checked = 'checked'; + } + ops = { + select_options: select_options, + title: options.doc.title, + destination_node_title: options.doc.destination_node_title, + site: options.doc.site, + state: options.doc.state || sync_state, + is_synced: sync_state === "Synced", + start_date: options.doc.start_date|| new Date().toISOString().slice(0,10), + stop_date: options.doc.stop_date|| new Date().toISOString().slice(0,10), + quantity: options.doc.quantity, + comment: options.doc.comment, + sync_checked: sync_checked, + not_sync_checked: not_sync_checked, + }; + if (sync_state !== 'Synced') { + ops.not_readonly = true; + } + return template(ops); + }) + .push(function (html) { + gadget.props.element.innerHTML = html; + + return gadget.updateHeader({ + title: gadget.options.jio_key + " " + (gadget.options.doc.record_revision || 1), + save_action: sync_state === 'Synced'? false: true + }); + }) + .push(function () { + gadget.props.deferred.resolve(); + }); + }) + + ///////////////////////////////////////// + // New version of the the Expense Record + ///////////////////////////////////////// + /* + .declareService(function () { + var gadget = this, + cloned_doc, + current_doc, + new_id; + + if(gadget.props.element.querySelector('input[type=button][name=create_new_version]') == null){ + return; + } + + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function () { + + return promiseEventListener( + gadget.props.element.querySelector('input[type=button][name=create_new_version]'), + 'click', + false + ); + }) + .push(function () { + return gadget.get(gadget.options.jio_key); + }) + .push(function (result) { + current_doc = result; + cloned_doc = JSON.parse(JSON.stringify(result)); + + // Do not sync the cloned document + cloned_doc.copy_of = gadget.options.jio_key; + cloned_doc.visible_in_html5_app_flag = 1; + delete cloned_doc.sync_flag; + cloned_doc.portal_type = 'Expense Record Temp'; + cloned_doc.record_revision = (cloned_doc.record_revision || 1) + 1; + + current_doc.visible_in_html5_app_flag = 0; + + return gadget.post(cloned_doc); + }) + .push(function (id) { + new_id = id; + // Hide the document at the end in order to still view it in case of issue + // Better have 2 docs than none visible + return gadget.put(gadget.options.jio_key, current_doc); + }) + .push(function (response) { + return gadget.redirect({ + jio_key: new_id, + page: "view" + }); + }); + })*/ + + + ///////////////////////////////////////// + // Form submit + ///////////////////////////////////////// + /*.declareService(function () { + var gadget = this, + state = getWorkflowState(gadget.options.jio_key, gadget.options.doc.sync_flag); + if (state === 'Synced') { + gadget.props.deferred1.resolve(); + return; + } + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function () { + alertify.log('searching GPS'); + return geoLocationPromise(); + }) + .push(function(result) { + alertify.success('GPS found'); + return result; + }, function(err) { + alertify.error(err); + return {coords: {latitude: "", longitude: ""}}; + }) + .push(function (result) { + gadget.props.element.querySelector('input[name="longitude"]').value = result.coords.longitude; + gadget.props.element.querySelector('input[name="latitude"]').value = result.coords.latitude; + gadget.props.geoLocation = result; + gadget.props.deferred1.resolve(); + }); + + + })*/ + .declareService(function () { + var gadget = this, + sync, + form = gadget.props.element.querySelector('form.view-expense-record-form'); + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function () { + return loopEventListener( + form, + 'submit', + false, + function (submit_event) { + return getSequentialID(gadget, 'TRR') + .push(function (source_reference) { + var i, + doc = { + parent_relative_url: "record_module", + portal_type: "Travel Request Record", + source_reference: source_reference, + visible_in_html5_app_flag: 1, + record_revision: (gadget.options.doc.record_revision || 1), + modification_date: new Date().toISOString() + }; + for (i = 0; i < submit_event.target.length; i += 1) { + // XXX Should check input type instead + if (submit_event.target[i].name && submit_event.target[i].type != "submit") { + if ((submit_event.target[i].type == "radio" || submit_event.target[i].type == "checkbox") && !submit_event.target[i].checked){ + continue + } + if (submit_event.target[i].name === "resource"){ + doc[submit_event.target[i].name] = submit_event.target[i].value; + doc["resource_title"] = resource_type[submit_event.target[i].value].title; + } + if (submit_event.target[i].name === "photo") { + continue + } + doc[submit_event.target[i].name] = submit_event.target[i].value; + } + } + if (doc.sync_flag === "1"){ + sync = 1; + doc.simulation_state = 'draft'; + } + return gadget.put(gadget.options.jio_key, doc); + }) + .push(function () { + if (sync === 1) { + return gadget.repair() + .push(function () { + return gadget.redirect({page: 'travel_request_record_list'}); + }) + .push(function () { + alertify.success("Saved"); + }); + } else { + alertify.success("Saved"); + } + }); + } + ) + }) + }) + /* + .declareService(function () { + var gadget = this; + + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function () { + if (gadget.options.doc.sync_flag == "1"){ + var element = gadget.props.element.querySelector("input[name='sync_flag'][value='1']"); + element.setAttribute('checked', 'checked'); + $(element).checkboxradio('refresh'); + }else{ + var element = gadget.props.element.querySelector("input[name='sync_flag'][value='']"); + element.setAttribute('checked', 'checked'); + $(element).checkboxradio('refresh'); + } + }) + }) +*/ + ///////////////////////////////////////// + // Preview clicked. + ///////////////////////////////////////// + /*.declareService(function () { + var gadget = this, + img = gadget.props.element.querySelector('img[name="preview"]'), + modal = gadget.props.element.querySelector('.modal'), + modalImg = gadget.props.element.querySelector('img[name="img01"]'), + span = gadget.props.element.querySelector('.close'); + + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function () { + return loopEventListener( + img, + "click", + false, + function (evt) { + modal.style.display = "block"; + modalImg.src = evt.target.src; + return new RSVP.Queue() + .push(function () { + return promiseEventListener(span, 'click', false); + }) + .push(function () { + modal.style.display = "none"; + }); + } + ); + }); + })*/; + +}(window, document, RSVP, rJS, Handlebars, loopEventListener, promiseEventListener, alertify)); \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_view.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_mission_request_record_view_js.xml similarity index 92% rename from bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_view.js.xml rename to bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_mission_request_record_view_js.xml index 5d67c6f8db47398e14d5790fe3707b6163f21153..26099d7877e3406459e66f2fa5db4b29f0f228c4 100644 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_view.js.xml +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_mission_request_record_view_js.xml @@ -66,7 +66,9 @@ <item> <key> <string>categories</string> </key> <value> - <tuple/> + <tuple> + <string>contributor/person_module/2</string> + </tuple> </value> </item> <item> @@ -83,7 +85,7 @@ </item> <item> <key> <string>default_reference</string> </key> - <value> <string>gadget_travel_expense_jio_expense_record_module_view.js</string> </value> + <value> <string>gadget_officejs_jio_travel_request_record_view.js</string> </value> </item> <item> <key> <string>description</string> </key> @@ -93,7 +95,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>gadget_travel_expense_jio_expense_record_module_view.js</string> </value> + <value> <string>gadget_hr_mission_request_record_view_js</string> </value> </item> <item> <key> <string>language</string> </key> @@ -111,7 +113,7 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Expense Record Module View JS</string> </value> + <value> <string>Travel Request Record View JS</string> </value> </item> <item> <key> <string>version</string> </key> @@ -175,7 +177,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -197,7 +199,7 @@ </tuple> <state> <tuple> - <float>1472526622.73</float> + <float>1479985416.55</float> <string>UTC</string> </tuple> </state> @@ -228,7 +230,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -242,7 +244,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>953.39239.63448.21981</string> </value> + <value> <string>955.53725.56596.59084</string> </value> </item> <item> <key> <string>state</string> </key> @@ -260,7 +262,7 @@ </tuple> <state> <tuple> - <float>1472710255.6</float> + <float>1481299555.84</float> <string>UTC</string> </tuple> </state> @@ -287,7 +289,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -317,7 +319,7 @@ </tuple> <state> <tuple> - <float>1472523951.46</float> + <float>1479982558.86</float> <string>UTC</string> </tuple> </state> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_panel_html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_panel_html.html new file mode 100644 index 0000000000000000000000000000000000000000..5af8774f6c0f8dfef9a78acc49dcf8a5ddecf972 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_panel_html.html @@ -0,0 +1,55 @@ +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> + <meta name="viewport" content="width=device-width, user-scalable=no" /> + <title>OfficeJS Text Editor Panel Gadget</title> + + <!-- renderjs --> + <script src="rsvp.js" type="text/javascript"></script> + <script src="renderjs.js" type="text/javascript"></script> + <script src="handlebars.js" type="text/javascript"></script> + <script src="gadget_global.js" type="text/javascript"></script> + <script src="jquery.js" type="text/javascript"></script> + <script src="jquerymobile.js" type="text/javascript"></script> + + <script id="panel-template-header" type="text/x-handlebars-template"> + <div data-role="header" class="ui-bar-inherit"> + <div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-left"> + <div class="ui-controlgroup-controls"> + <form action="#" method="post"> + <input type="submit" data-i18n="[value]Close" data-icon="delete" data-iconpos="notext" value="Close" /> + </form> + </div> + </div> + <img class="ui-title" alt="ERP5" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJcAAAA/CAMAAADaDqrIAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowMEM5NUE4MzQ5NjQxMUUzOUZEQUU2NUY1RTI1RjdCQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowMEM5NUE4NDQ5NjQxMUUzOUZEQUU2NUY1RTI1RjdCQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjAwQzk1QTgxNDk2NDExRTM5RkRBRTY1RjVFMjVGN0JCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjAwQzk1QTgyNDk2NDExRTM5RkRBRTY1RjVFMjVGN0JCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+J9MJsAAAAwBQTFRF///////M//+Z//9m//8z//8A/8z//8zM/8yZ/8xm/8wz/8wA/5n//5nM/5mZ/5lm/5kz/5kA/2b//2bM/2aZ/2Zm/2Yz/2YA/zP//zPM/zOZ/zNm/zMz/zMA/wD//wDM/wCZ/wBm/wAz/wAAzP//zP/MzP+ZzP9mzP8zzP8AzMz/zMzMzMyZzMxmzMwzzMwAzJn/zJnMzJmZzJlmzJkzzJkAzGb/zGbMzGaZzGZmzGYzzGYAzDP/zDPMzDOZzDNmzDMzzDMAzAD/zADMzACZzABmzAAzzAAAmf//mf/Mmf+Zmf9mmf8zmf8Amcz/mczMmcyZmcxmmcwzmcwAmZn/mZnMmZmZmZlmmZkzmZkAmWb/mWbMmWaZmWZmmWYzmWYAmTP/mTPMmTOZmTNmmTMzmTMAmQD/mQDMmQCZmQBmmQAzmQAAZv//Zv/MZv+ZZv9mZv8zZv8AZsz/ZszMZsyZZsxmZswzZswAZpn/ZpnMZpmZZplmZpkzZpkAZmb/ZmbMZmaZZmZmZmYzZmYAZjP/ZjPMZjOZZjNmZjMzZjMAZgD/ZgDMZgCZZgBmZgAzZgAAM///M//MM/+ZM/9mM/8zM/8AM8z/M8zMM8yZM8xmM8wzM8wAM5n/M5nMM5mZM5lmM5kzM5kAM2b/M2bMM2aZM2ZmM2YzM2YAMzP/MzPMMzOZMzNmMzMzMzMAMwD/MwDMMwCZMwBmMwAzMwAAAP//AP/MAP+ZAP9mAP8zAP8AAMz/AMzMAMyZAMxmAMwzAMwAAJn/AJnMAJmZAJlmAJkzAJkAAGb/AGbMAGaZAGZmAGYzAGYAADP/ADPMADOZADNmADMzADMAAAD/AADMAACZAABmAAAzAAAAHHa7K3/AOojESZHJWZvNaKTSd63Whrbblb/fpMjks9Howtrt4e320uTx8Pb6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdfKHSQAAAOh0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////ALItoLoAAAJkSURBVHja7NlZsqsgEABQ979C5kGGddxo4os0Q8BAynoFn0nUU23TNGRB9xzLdE3XdE3XdP2fLnIzF2VSrsYvC72HizAh9eZ5DVuOl15S4/jWwC+kDC8HPzCSJVHcRY8QXV2PwQuujUYTsYrvYlBv1yKLrsXHsPghnvR3Lazoip/JKuwpF8sm6/bY01Ow9CBlTXi53PNoRcUktEZT1NV1PIPnXAjtMJIMlzerFIzU1dVWF7aPj3Tetae4gjdxktG2et/qQjJ4kZFrv6ED4bK4eR1qduHzvEi4+PbGwD0EGu9CQQLFrv1F4jBc6BcuW3YhkPiPX1hOfxQvnHfh0HVMRqc4HuqiQf5k3mO6dq1s8Hx0H/Le5kq9YaNcxAcrZLpOvAv+ClcgNcZFtnrucd5Fwx4mXj0drnbBYXMuJmFDAV3Uhm4qlbHh3ddOrmholHNxFTVC+xTl2mf6pI4uVe4LwSp0DPGOmh/hAnM94bKZjkHlWuiLeV+cTab4luMKk82wy/Px2fLJskvKUk03hRf9RZ0wiYiZ4uVwVwTb9E71y0XboTYXGuTaa33Y47W5zBjXM3P11y7TfR2ycFdxyaW7uwSc5m0un9ix91m3TWJfW+1ijfW+wcVAfjS5dOP62LyvZZdcLHnA1MkFAtbgwq+Vm47po8OA1buwyy/a1ec5urzveAes2sV8kfW963mFaHNhlT0b6+Yi5+StchH1CtaK0ThXELDPLiyOPZHldzm/J1z9O/B14g7/K+DtkP7U8ivSeD4xaPCTSQvy+YIfubZWzRgtRe1iMP+3mq7pmq7p6jv+BBgAPrgi/TzwWzkAAAAASUVORK5CYII="> + <div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-right"> + <div class="ui-controlgroup-controls"> + <a href="#" class="ui-btn ui-btn-icon-notext ui-icon-home" data-i18n="Home">Home</a> + </div> + </div> + </div> + </script> + + + <script id="panel-template-body" type="text/x-handlebars-template"> + <div class="ui-content"> + <ul data-role="listview" class="ui-listview"> + <li><a href="#page=expense_record_list" data-i18n="Expenses">Expenses</a></li> + <li><a href="#page=travel_request_record_list" data-i18n="Missions">Missions</a></li> + <li><a href="#page=leave_request_record_list" data-i18n="Leaves">Leaves</a></li> + <li><a href="#page=expense_report" data-i18n="Reports">Reports</a></li> + <!-- li><a href="#page=jio_configurator" data-i18n="Storage Configuration">Storage Configuration</a></li --> + <!-- li><a href="#page=sync" data-i18n="Synchronization">Synchronization</a></li --> + </ul> + </div> + </script> + + <!-- custom script --> + <script src="gadget_officejs_application_panel.js" type="text/javascript"></script> + + </head> + <body> + <div class="jqm-navmenu-panel"></div> + </body> +</html> \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.html.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_panel_html.xml similarity index 87% rename from bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.html.xml rename to bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_panel_html.xml index 191e296ca1782b9af4a050c1d2f5cfb2982899d1..ba04b71d4e20d890aa83129896ca3009a59b9ef8 100644 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.html.xml +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_panel_html.xml @@ -66,7 +66,9 @@ <item> <key> <string>categories</string> </key> <value> - <tuple/> + <tuple> + <string>contributor/person_module/2</string> + </tuple> </value> </item> <item> @@ -80,14 +82,16 @@ <value> <string>text/html</string> </value> </item> <item> - <key> <string>contributors</string> </key> + <key> <string>creators</string> </key> <value> - <tuple/> + <tuple> + <string>cedric.le.ninivin</string> + </tuple> </value> </item> <item> <key> <string>default_reference</string> </key> - <value> <string>gadget_travel_expense_jio_expense_record_module_add_expense_record.html</string> </value> + <value> <string>gadget_officejs_hr_panel.html</string> </value> </item> <item> <key> <string>description</string> </key> @@ -97,12 +101,31 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>gadget_travel_expense_jio_expense_record_module_add_expense_record.html</string> </value> + <value> <string>gadget_hr_panel_html</string> </value> </item> <item> <key> <string>language</string> </key> <value> <string>en</string> </value> </item> + <item> + <key> <string>modification_date</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1455284352.46</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> <item> <key> <string>portal_type</string> </key> <value> <string>Web Page</string> </value> @@ -115,7 +138,7 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Travel Expense Record Jio Expense Record Module Add Expense Record</string> </value> + <value> <string>OfficeJS HR Panel Gadget</string> </value> </item> <item> <key> <string>version</string> </key> @@ -179,7 +202,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -201,7 +224,7 @@ </tuple> <state> <tuple> - <float>1472526672.66</float> + <float>1481817829.37</float> <string>UTC</string> </tuple> </state> @@ -232,7 +255,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -246,7 +269,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>953.40592.27546.51592</string> </value> + <value> <string>955.64162.27468.50670</string> </value> </item> <item> <key> <string>state</string> </key> @@ -264,7 +287,7 @@ </tuple> <state> <tuple> - <float>1472712088.95</float> + <float>1481817822.09</float> <string>UTC</string> </tuple> </state> @@ -291,7 +314,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -321,7 +344,7 @@ </tuple> <state> <tuple> - <float>1472523951.35</float> + <float>1481817666.02</float> <string>UTC</string> </tuple> </state> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_router_html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_router_html.html new file mode 100644 index 0000000000000000000000000000000000000000..5533cf96879d9139b34dccebac2ff9a5ee3969bc --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_router_html.html @@ -0,0 +1,24 @@ +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> + <meta name="viewport" content="width=device-width, user-scalable=no" /> + <title>OfficeJS Router Gadget</title> + + <!-- renderjs --> + <script src="rsvp.js" type="text/javascript"></script> + <script src="renderjs.js" type="text/javascript"></script> + + <!-- custom script --> + <script src="gadget_officejs_hr_router.js" type="text/javascript"></script> + + </head> + <body> + <script data-renderjs-configuration="portal_type" type="text/x-renderjs-configuration">Expense Record Temp</script> + <script data-renderjs-configuration="parent_relative_url" type="text/x-renderjs-configuration">Expense Record Module</script> + <script data-renderjs-configuration="document_title" type="text/x-renderjs-configuration">Expense Record</script> + <script data-renderjs-configuration="document_title_plural" type="text/x-renderjs-configuration">Expense Records</script> + <script data-renderjs-configuration="query" type="text/x-renderjs-configuration">portal_type: "Expense Record" OR (portal_type:"Currency" AND validation_state:"validated")</script> + <script data-renderjs-configuration="global_setting_gadget_url" type="text/x-renderjs-configuration">https://setting-gadget.app.officejs.com/0.1.1/</script> + </body> +</html> \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_view.html.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_router_html.xml similarity index 87% rename from bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_view.html.xml rename to bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_router_html.xml index 4f08106fb69576f7a10dd05eb11a4274fcc3b419..5b7e3b09fff8e2f1cb876d27f4a9ff86ee3ac753 100644 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_view.html.xml +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_router_html.xml @@ -66,7 +66,10 @@ <item> <key> <string>categories</string> </key> <value> - <tuple/> + <tuple> + <string>contributor/person_module/1</string> + <string>contributor/person_module/2</string> + </tuple> </value> </item> <item> @@ -80,14 +83,16 @@ <value> <string>text/html</string> </value> </item> <item> - <key> <string>contributors</string> </key> + <key> <string>creators</string> </key> <value> - <tuple/> + <tuple> + <string>cedric.le.ninivin</string> + </tuple> </value> </item> <item> <key> <string>default_reference</string> </key> - <value> <string>gadget_travel_expense_jio_expense_record_module_view.html</string> </value> + <value> <string>gadget_officejs_hr_router.html</string> </value> </item> <item> <key> <string>description</string> </key> @@ -97,12 +102,31 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>gadget_travel_expense_jio_expense_record_module_view.html</string> </value> + <value> <string>gadget_hr_router_html</string> </value> </item> <item> <key> <string>language</string> </key> <value> <string>en</string> </value> </item> + <item> + <key> <string>modification_date</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1455284352.21</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> <item> <key> <string>portal_type</string> </key> <value> <string>Web Page</string> </value> @@ -115,7 +139,7 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Expense Record Module View</string> </value> + <value> <string>OfficeJS HR router Gadget html</string> </value> </item> <item> <key> <string>version</string> </key> @@ -201,7 +225,7 @@ </tuple> <state> <tuple> - <float>1472526672.64</float> + <float>1478618593.54</float> <string>UTC</string> </tuple> </state> @@ -232,7 +256,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -246,7 +270,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>953.37503.13972.43741</string> </value> + <value> <string>955.64150.43979.2508</string> </value> </item> <item> <key> <string>state</string> </key> @@ -264,7 +288,7 @@ </tuple> <state> <tuple> - <float>1472540531.23</float> + <float>1481817049.16</float> <string>UTC</string> </tuple> </state> @@ -321,7 +345,7 @@ </tuple> <state> <tuple> - <float>1472523951.43</float> + <float>1478618350.02</float> <string>UTC</string> </tuple> </state> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_router_js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_router_js.js new file mode 100644 index 0000000000000000000000000000000000000000..4f7b04bce7a049328c66f373d8103da9512cda40 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_router_js.js @@ -0,0 +1,167 @@ +/*global window, rJS */ +/*jslint nomen: true, indent: 2, maxerr: 3*/ +(function (window, rJS) { + "use strict"; + + var gadget_klass = rJS(window), + MAIN_PAGE_PREFIX = "gadget_officejs_", + DEFAULT_PAGE = "expense_record_list", + REDIRECT_TIMEOUT = 5000; + + function listenHashChange(gadget) { + function extractHashAndDispatch(evt) { + var hash = (evt.newURL || window.location.toString()).split('#')[1], + subhashes, + subhash, + keyvalue, + index, + args = {}; + if (hash !== undefined) { + subhashes = hash.split('&'); + for (index in subhashes) { + if (subhashes.hasOwnProperty(index)) { + subhash = subhashes[index]; + if (subhash !== '') { + keyvalue = subhash.split('='); + if (keyvalue.length === 2) { + args[decodeURIComponent(keyvalue[0])] = decodeURIComponent(keyvalue[1]); + } + } + } + } + } + + return gadget.renderApplication({ + args: args + }); + + } + + var result = loopEventListener(window, 'hashchange', false, + extractHashAndDispatch), + event = document.createEvent("Event"); + event.initEvent('hashchange', true, true); + event.newURL = window.location.toString(); + window.dispatchEvent(event); + return result; + } + + gadget_klass + + .ready(function (gadget) { + gadget.props = { + start_deferred: RSVP.defer() + }; + return gadget.getElement() + .push(function (element) { + gadget.props.element = element; + }); + }) + + .declareMethod("getCommandUrlFor", function(options) { + var prefix = '', + result, + key; + result = "#"; + for (key in options) { + if (options.hasOwnProperty(key) && options[key] !== undefined) { + // Don't keep empty values + result += prefix + encodeURIComponent(key) + "=" + encodeURIComponent(options[key]); + prefix = '&'; + } + } + return result; + }) + + .declareMethod('redirect', function (options) { + if (options !== undefined && options.toExternal) { + window.location.replace(options.url); + return RSVP.timeout(REDIRECT_TIMEOUT); // timeout if not redirected + } + else { + return this.getCommandUrlFor(options) + .push(function (hash) { + window.location.replace(hash); + // prevent returning unexpected response + // wait for the hash change to occur + // fail if nothing happens + return RSVP.timeout(REDIRECT_TIMEOUT); + }); + } + }) + + .declareMethod('route', function (options) { + var gadget = this, + args = options.args; + gadget.options = options; + if (args.jio_key === undefined || args.jio_key === '') { + if (args.page === undefined || args.page === '' || args.page === "document_list") { + args.page = DEFAULT_PAGE; + } + return { + url: MAIN_PAGE_PREFIX + "page_" + args.page + ".html", + options: args + }; + } + return gadget.jio_get(args.jio_key) + .push(function (doc) { + var sub_options = {}, + base_portal_type = doc.portal_type.toLowerCase().replace(/\s/g, "_"); + sub_options = { + doc: doc, + jio_key: args.jio_key, + search: args.search + }; + if (base_portal_type.search(/_temp$/) >= 0) { + //Remove "_temp" + base_portal_type = base_portal_type.substr( + 0, + base_portal_type.length - 5 + ); + } + return { + url: MAIN_PAGE_PREFIX + "jio_" + + base_portal_type + + "_" + args.page + ".html", + options: sub_options + }; + }); + }) + + .declareAcquiredMethod('jio_get', 'jio_get') + .declareAcquiredMethod('renderApplication', 'renderApplication') + .declareMethod('start', function () { + var gadget = this, + element_list = + gadget.props.element.querySelectorAll("[data-renderjs-configuration]"), + len = element_list.length, + key, + value, + i, + queue = new RSVP.Queue(); + + function push(a, b) { + queue.push(function () { + return gadget.setSetting(a, b); + }); + } + + for (i = 0; i < len; i += 1) { + key = element_list[i].getAttribute('data-renderjs-configuration'); + value = element_list[i].textContent; + push(key, value); + } + this.props.start_deferred.resolve(); + }) + .declareService(function () { + var gadget = this; + return new RSVP.Queue() + .push(function () { + return gadget.props.start_deferred.promise; + }) + .push(function () { + return listenHashChange(gadget); + }); + }); + +}(window, rJS)); \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_router_js.xml similarity index 94% rename from bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio.js.xml rename to bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_router_js.xml index ce14f3cabbee28cd871fd7f914f53bd8bedf8da1..98b952823407027405c55d274cc36d7e9c1e9358 100644 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio.js.xml +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_hr_router_js.xml @@ -66,7 +66,9 @@ <item> <key> <string>categories</string> </key> <value> - <tuple/> + <tuple> + <string>contributor/person_module/2</string> + </tuple> </value> </item> <item> @@ -77,7 +79,7 @@ </item> <item> <key> <string>default_reference</string> </key> - <value> <string>gadget_travel_expense_jio.js</string> </value> + <value> <string>gadget_officejs_hr_router.js</string> </value> </item> <item> <key> <string>description</string> </key> @@ -87,7 +89,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>gadget_travel_expense_jio.js</string> </value> + <value> <string>gadget_hr_router_js</string> </value> </item> <item> <key> <string>language</string> </key> @@ -105,7 +107,7 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Travel Expense Jio Gadget JS</string> </value> + <value> <string>OfficeJS HR router Gadget JS</string> </value> </item> <item> <key> <string>version</string> </key> @@ -191,7 +193,7 @@ </tuple> <state> <tuple> - <float>1472526622.76</float> + <float>1478705606.49</float> <string>UTC</string> </tuple> </state> @@ -222,7 +224,7 @@ </item> <item> <key> <string>actor</string> </key> - <value> <string>zope</string> </value> + <value> <string>supercedriclen</string> </value> </item> <item> <key> <string>comment</string> </key> @@ -236,7 +238,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>0.0.0.0</string> </value> + <value> <string>955.64151.8170.5836</string> </value> </item> <item> <key> <string>state</string> </key> @@ -254,7 +256,7 @@ </tuple> <state> <tuple> - <float>1472523951.34</float> + <float>1481817362.42</float> <string>UTC</string> </tuple> </state> @@ -311,7 +313,7 @@ </tuple> <state> <tuple> - <float>1472523951.32</float> + <float>1478705574.45</float> <string>UTC</string> </tuple> </state> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio.html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio.html.html deleted file mode 100644 index 5b70ef2beb1d13882fa27479eb72c0b13119da03..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio.html.html +++ /dev/null @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> - <meta name="viewport" content="width=device-width, user-scalable=no" /> - <title>Jio Gadget</title> - - <!-- renderjs --> - <script src="rsvp.js" type="text/javascript"></script> - <script src="travel_expense_renderjs.js" type="text/javascript"></script> - - <!-- custom script --> - <script src="gadget_travel_expense_jio.js" type="text/javascript"></script> - </head> - <body> - <div data-gadget-url="gadget_jio.html" - data-gadget-scope="jio_gadget" - data-gadget-sandbox="public"></div> - - </body> -</html> \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio.js.js deleted file mode 100644 index 2cc9e5e757ba893a47b01a94c5e3cf2dd2f99563..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio.js.js +++ /dev/null @@ -1,264 +0,0 @@ -/*global window, rJS, FormData, document, RSVP, console */ -/*jslint indent: 2, maxerr: 3 */ -(function (window, rJS) { - "use strict"; - - var timeout = 10000; - - function S4() { - return ('0000' + Math.floor( - Math.random() * 0x10000 /* 65536 */ - ).toString(16)).slice(-4); - } - - function UUID() { - return S4() + S4() + "-" + - S4() + "-" + - S4() + "-" + - S4() + "-" + - S4() + S4() + S4(); - } - - function wrapManagerJioAccess(gadget, method_name, argument_list) { - return gadget.getDeclaredGadget('jio_gadget') - .push(function (jio_gadget) { - return jio_gadget[method_name].apply(jio_gadget, argument_list); - }); - } - - function wrapJioAccess(gadget, method_name, argument_list) { - if (gadget.state_parameter_dict.user_type === "manager") { - return wrapManagerJioAccess(gadget, method_name, argument_list); - } - if (gadget.state_parameter_dict.user_type === "user") { - return gadget.getDeclaredGadget('gadget_webrtc_datachannel.html') - .push(function (rtc_gadget) { - gadget.state_parameter_dict.message_count += 1; - gadget.state_parameter_dict.message_dict[gadget.state_parameter_dict.message_count] = RSVP.defer(); - return RSVP.all([ - rtc_gadget.send(JSON.stringify({ - id: gadget.state_parameter_dict.message_count, - type: "jio_query", - method_name: method_name, - argument_list: Array.prototype.slice.call(argument_list) - })), - RSVP.any([ - RSVP.timeout(timeout), - gadget.state_parameter_dict.message_dict[gadget.state_parameter_dict.message_count].promise - ]) - ]); - }) - .push(function (result_list) { - return result_list[1]; - }); - } - - throw new Error("NotImplemented wrapJioAccess for: " + gadget.state_parameter_dict.user_type); - } - - function declareSubGadget(gadget, url) { - var container_element = gadget.state_parameter_dict.element.querySelector("." + url.split(".")[0]), - element = document.createElement("div"); - container_element.innerHTML = ""; - container_element.appendChild(element); - return gadget.declareGadget(url, { - element: element, - scope: url, - sandbox: "public" - }); - } - - rJS(window) - - .ready(function (gadget) { - // Initialize the gadget local parameters - gadget.state_parameter_dict = { - websocket_initialized: false, - user_type: null - }; - return gadget.getElement() - .push(function (element) { - gadget.state_parameter_dict.element = element; - }); - }) - - .allowPublicAcquisition('notifyDataChannelClosed', function () { - return; - }) - - .allowPublicAcquisition("notifyDataChannelMessage", function (argument_list, scope) { - var json = JSON.parse(argument_list[0]), - rtc_gadget, - context = this; - if (context.state_parameter_dict.user_type === "manager") { - return context.getDeclaredGadget(scope) - .push(function (g) { - rtc_gadget = g; - // XXX Propagate arguments - return wrapManagerJioAccess(context, json.method_name, json.argument_list); - }) - .push(function (result) { - return rtc_gadget.send(JSON.stringify({ - id: json.id, - result: result, - type: "jio_response" - })); - }, function (error) { - return rtc_gadget.send(JSON.stringify({ - id: json.id, - result: error, - type: "error" - })); - }); - } - if (context.state_parameter_dict.user_type === "user") { - if (json.type === "jio_response") { - context.state_parameter_dict.message_dict[json.id].resolve(json.result); - } else { - context.state_parameter_dict.message_dict[json.id].reject(json.result); - } - } else { - throw new Error("Unexpected WebRTC message"); - } - }) - - .allowPublicAcquisition("notifyWebSocketClosed", function () { - if (this.state_parameter_dict.user_type !== "user") { - throw new Error("Unexpected Web Socket connection close"); - } - }) - - .allowPublicAcquisition("notifyWebSocketMessage", function (argument_list) { - - var json = JSON.parse(argument_list[0]), - rtc_gadget, - socket_gadget, - gadget = this; - - if ((json.action === "offer") && (gadget.state_parameter_dict.user_type === "manager")) { - return gadget.getDeclaredGadget("gadget_websocket.html") - .push(function (gg) { - gadget.state_parameter_dict.counter += 1; - socket_gadget = gg; - var new_element = document.createElement("div"); - gadget.state_parameter_dict.element.querySelector(".gadget_webrtc_datachannel").appendChild(new_element); - return gadget.declareGadget("gadget_webrtc_datachannel.html", { - scope: "webrtc" + gadget.state_parameter_dict.counter, - element: new_element - }); - }) - .push(function (gg) { - rtc_gadget = gg; - return rtc_gadget.createAnswer(json.from, json.data); - }) - .push(function (local_connection) { - return socket_gadget.send(JSON.stringify({to: json.from, action: "answer", data: local_connection})); - }) - .push(function () { - return rtc_gadget.waitForConnection(); - }) - .push(undefined, function (error) { - console.error(error); - throw error; - }); - } - - if ((json.action === "answer") && (gadget.state_parameter_dict.user_type === "user")) { - if (json.to === gadget.state_parameter_dict.uuid) { - gadget.state_parameter_dict.answer_defer.resolve(json.data); - } - } - - }) - - .declareMethod('createJio', function (jio_options) { - var context = this, - socket_gadget, - rtc_gadget; - - return declareSubGadget(context, 'gadget_websocket.html') - .push(function (gadget) { - socket_gadget = gadget; - // Check if this is a manager access - return socket_gadget.createSocket("ws://127.0.0.1:9999/") - .push(function () { - // Nothing to do except waiting for new webrtc offer - context.state_parameter_dict.user_type = "manager"; - context.state_parameter_dict.counter = 0; - return context.getDeclaredGadget('jio_gadget') - .push(function (jio_gadget) { - return jio_gadget.createJio(jio_options); - }); - }, function () { - // XXX Catch right type of error - context.state_parameter_dict.user_type = "user"; - context.state_parameter_dict.uuid = UUID(); - context.state_parameter_dict.answer_defer = RSVP.defer(); - context.state_parameter_dict.message_count = 0; - context.state_parameter_dict.message_dict = {}; - return declareSubGadget(context, 'gadget_websocket.html') - .push(function (gadget) { - socket_gadget = gadget; - // XXX Drop hardcoded URL - return socket_gadget.createSocket("ws://192.168.242.76:9999/"); - }) - .push(function () { - return declareSubGadget(context, 'gadget_webrtc_datachannel.html'); - }) - .push(function (gadget) { - rtc_gadget = gadget; - return rtc_gadget.createOffer(context.state_parameter_dict.uuid); - }) - .push(function (description) { - // Send offer and expect answer in less than XXXms (arbitrary value...) - return RSVP.any([ - RSVP.timeout(timeout), - RSVP.all([ - socket_gadget.send(JSON.stringify({from: context.state_parameter_dict.uuid, action: "offer", data: description})), - context.state_parameter_dict.answer_defer.promise - ]) - ]); - }) - .push(function (response_list) { - return rtc_gadget.registerAnswer(response_list[1]); - }) - .push(function () { - return socket_gadget.close(); - }); - }); - }); - }) - .declareMethod('allDocs', function () { - return wrapJioAccess(this, 'allDocs', arguments); - }) - .declareMethod('get', function () { - return wrapJioAccess(this, 'get', arguments); - }) - .declareMethod('put', function () { - return wrapJioAccess(this, 'put', arguments); - }) - .declareMethod('post', function () { - return wrapJioAccess(this, 'post', arguments); - }) - .declareMethod('remove', function () { - return wrapJioAccess(this, 'remove', arguments); - }) - /* - .declareMethod('allAttachments', function () { - return wrapJioAccess(this, 'allAttachments', arguments); - }) - .declareMethod('getAttachment', function () { - return wrapJioAccess(this, 'getAttachment', arguments); - }) - .declareMethod('putAttachment', function () { - return wrapJioAccess(this, 'putAttachment', arguments); - }) - .declareMethod('removeAttachment', function () { - return wrapJioAccess(this, 'removeAttachment', arguments); - }) - */ - .declareMethod('repair', function () { - return wrapJioAccess(this, 'repair', arguments); - }); - -}(window, rJS)); \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.html.html deleted file mode 100644 index 56ff5601736e6c5697847c6bf596772195c2e9a2..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.html.html +++ /dev/null @@ -1,74 +0,0 @@ -<!doctype html> -<html> - <head> - <meta charset="utf-8"> - <meta name="viewport" content="width=device-width, initial-scale=1"> - - <title>Expense Record Module Add Expense Record</title> - - <script src="rsvp.js"></script> - <script src="travel_expense_renderjs.js"></script> - <script src="gadget_global.js" ></script> - <script src="handlebars.js"></script> - <script src="gadget_travel_expense_jio_expense_record_module_add_expense_record.js"></script> - - <script class="new-expense-record-template" type="text/x-handlebars-template"> - - <form class="new-expense-record-form"> - - <div class="ui-field-contain"> - <label data-i18n="Photo">Photo</label> - <input name="photo" type="file" accept="image/*" capture="camera"> - <canvas style="display:none" name="photo_data" /> - </div> - - <div class="ui-field-contain"> - <label data-i18n="Preview">Preview</label> - <img name="preview" style="width:300px" /> - </div> - - <div class="ui-field-contain"> - <label data-i18n="Currency">Currency</label> - <select class="new-performed-task" name="resource" required> - <option value=""></option> - </select> - </div> - - <div class="ui-field-contain"> - <label data-i18n="Total Price">Total Price</label> - <input type="number" name="quantity" value="" step="0.01" required> - </div> - - <div class="ui-field-contain"> - <label data-i18n="Input Date">Input Date</label> - <input type="date" name="date" value="{{date}}" required> - </div> - - <div class="ui-field-contain"> - <label data-i18n="Comment">Comment</label> - <input type="text" name="comment"> - </div> - - <div class="ui-field-contain"> - <label data-i18n="Sync Method">Sync Method</label> - <div> - <input type="radio" id="sync_flag_yes" name="sync_flag" value="1"> - <label for="sync_flag_yes" data-i18n="Ready To Sync">Ready To Sync</label> - <input type="radio" id="sync_flag_no" name="sync_flag" value="" checked> - <label for="sync_flag_no" data-i18n="Do Not Sync">Do Not Sync</label> - </div> - </div> - - <div data-role="popup" name="large_preview" data-position-to="window" data-theme="a" data-overlay-theme="a" data-corners="false"><img></div> - - <input data-inline="true" type="submit" value="Add" data-theme="b" data-i18n="[value]Add"> - - </form> - - </script> - - </head> - - <body> - </body> -</html> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.js.js deleted file mode 100644 index d983b25e63ddd2b87742df40ff8b49e56c8dd664..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.js.js +++ /dev/null @@ -1,190 +0,0 @@ -/*globals window, document, RSVP, rJS, Handlebars, promiseEventListener, loopEventListener, jQuery*/ -/*jslint indent: 2, nomen: true, maxlen: 200*/ -(function (window, document, RSVP, rJS, Handlebars, promiseEventListener, loopEventListener, $, MegaPixImage) { - "use strict"; - - var gadget_klass = rJS(window), - source = gadget_klass.__template_element - .querySelector(".new-expense-record-template") - .innerHTML, - template = Handlebars.compile(source); - - - gadget_klass - .ready(function (g) { - g.props = {}; - return g.getElement() - .push(function (element) { - g.props.element = element; - g.props.deferred = RSVP.defer(); - }); - }) - - .declareAcquiredMethod("post", "jio_post") - .declareAcquiredMethod('allDocs', 'jio_allDocs') - .declareAcquiredMethod('get', 'jio_get') - .declareAcquiredMethod("redirect", "redirect") - .declareAcquiredMethod("updateHeader", "updateHeader") - .declareAcquiredMethod("translateHtml", "translateHtml") - .declareAcquiredMethod('jio_remove', 'jio_remove') - - .declareMethod("render", function (options) { - var gadget = this; - gadget.props.options = options; - - return gadget.translateHtml(template({ - date: new Date().toISOString().split('T')[0] - })) - .push(function (html) { - gadget.props.element.innerHTML = html; - return gadget.updateHeader({ - title: "New Expense Record" - }); - }) - .push(function () { - gadget.props.deferred.resolve(); - }); - }) - - ///////////////////////////////////////// - // Form submit - ///////////////////////////////////////// - .declareService(function () { - var gadget = this; - - return new RSVP.Queue() - .push(function () { - return gadget.props.deferred.promise; - }) - .push(function () { - - return promiseEventListener( - gadget.props.element.querySelector('form.new-expense-record-form'), - 'submit', - false - ); - }) - .push(function (submit_event) { - var i, - doc = { - // XXX Hardcoded - parent_relative_url: "expense_record_module", - portal_type: "Expense Record", - doc_id: getSequentialID('EXP'), - visible_in_html5_app_flag: 1, - record_revision: 1, - }; - gadget.props.element.querySelector("input[type=submit]") - .disabled = true; - - for (i = 0; i < submit_event.target.length; i += 1) { - // XXX Should check input type instead - if (submit_event.target[i].name) { - if ((submit_event.target[i].type == "radio" || submit_event.target[i].type == "checkbox") && !submit_event.target[i].checked){ - continue - } - if (submit_event.target[i].name=="photo") { - if (submit_event.target[i].files.length > 0){ - var photo_data = gadget.props.element.querySelector('canvas[name="photo_data"]') - doc['photo_data'] = photo_data.toDataURL() - }else{ - doc['photo_data'] = '' - } - continue - } - doc[submit_event.target[i].name] = submit_event.target[i].value; - } - } - if (doc.sync_flag != "1"){ - doc.portal_type = 'Expense Record Temp' // For to avoid sync - } - - return gadget.post(doc); - }) - .push(function () { - return gadget.redirect({ - jio_key: gadget.props.options.jio_key, - page: "view" - }); - }); - - }) - - ///////////////////////////////////////// - // Fill currencies - ///////////////////////////////////////// - .declareService(function () { - var gadget = this; - - return new RSVP.Queue() - .push(function () { - return gadget.props.deferred.promise; - }) - .push(function(){createResourceSelection(gadget, my_resource)}) - }) - - - ///////////////////////////////////////// - // Photo changed. - ///////////////////////////////////////// - .declareService(function () { - var gadget = this; - - return new RSVP.Queue() - .push(function () { - return gadget.props.deferred.promise; - }) - .push(function () { - return loopEventListener( - gadget.props.element.querySelector('input[name="photo"]'), - "change", - false, - function (evt) { - return new RSVP.Queue() - .push(function () { - // Wait for user to finish typing - return RSVP.delay(100); - }) - .push(function () { - var file = gadget.props.element.querySelector('input[name="photo"]').files[0]; - var photo_data = gadget.props.element.querySelector('canvas[name="photo_data"]'); - new MegaPixImage(file).render(photo_data, { width: 600 }, function(){gadget.props.element.querySelector('img[name="preview"]').src = photo_data.toDataURL();}); - }); - } - ); - }); - }) - - - ///////////////////////////////////////// - // Preview clicked. - ///////////////////////////////////////// - .declareService(function () { - var gadget = this; - - return new RSVP.Queue() - .push(function () { - return gadget.props.deferred.promise; - }) - .push(function () { - return loopEventListener( - gadget.props.element.querySelector('img[name="preview"]'), - "click", - false, - function (evt) { - return new RSVP.Queue() - .push(function () { - // Wait for user to finish typing - return RSVP.delay(100); - }) - .push(function () { - $('div[name=large_preview]').popup('open', 0, 0, 'slidedown', 'window'); - $('div[name=large_preview] img').attr('src', gadget.props.element.querySelector('canvas[name=photo_data]').toDataURL()); - }); - } - ); - }); - }); - - -}(window, document, RSVP, rJS, Handlebars, promiseEventListener, loopEventListener, jQuery, MegaPixImage)); \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.js.xml deleted file mode 100644 index 7f7006293405d8068b2a8ffce5c4be5aaab26d04..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.js.xml +++ /dev/null @@ -1,332 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="Web Script" module="erp5.portal_type"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>_Access_contents_information_Permission</string> </key> - <value> - <tuple> - <string>Anonymous</string> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> - <string>Auditor</string> - <string>Manager</string> - <string>Owner</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Add_portal_content_Permission</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Change_local_roles_Permission</string> </key> - <value> - <tuple> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Modify_portal_content_Permission</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_View_Permission</string> </key> - <value> - <tuple> - <string>Anonymous</string> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> - <string>Auditor</string> - <string>Manager</string> - <string>Owner</string> - </tuple> - </value> - </item> - <item> - <key> <string>categories</string> </key> - <value> - <tuple/> - </value> - </item> - <item> - <key> <string>content_md5</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>contributors</string> </key> - <value> - <tuple/> - </value> - </item> - <item> - <key> <string>default_reference</string> </key> - <value> <string>gadget_travel_expense_jio_expense_record_module_add_expense_record.js</string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>gadget_travel_expense_jio_expense_record_module_add_expense_record.js</string> </value> - </item> - <item> - <key> <string>language</string> </key> - <value> <string>en</string> </value> - </item> - <item> - <key> <string>portal_type</string> </key> - <value> <string>Web Script</string> </value> - </item> - <item> - <key> <string>short_title</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string>Travel Expense Record Jio Expense Record Module Add Expense Record JS</string> </value> - </item> - <item> - <key> <string>version</string> </key> - <value> <string>001</string> </value> - </item> - <item> - <key> <string>workflow_history</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> - </value> - </item> - </dictionary> - </pickle> - </record> - <record id="2" aka="AAAAAAAAAAI="> - <pickle> - <global name="PersistentMapping" module="Persistence.mapping"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>data</string> </key> - <value> - <dictionary> - <item> - <key> <string>document_publication_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> - </value> - </item> - <item> - <key> <string>edit_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> - </value> - </item> - <item> - <key> <string>processing_status_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> - </value> - </item> - </dictionary> - </value> - </item> - </dictionary> - </pickle> - </record> - <record id="3" aka="AAAAAAAAAAM="> - <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> - </pickle> - <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> <string>publish_alive</string> </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1472526622.75</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - <item> - <key> <string>validation_state</string> </key> - <value> <string>published_alive</string> </value> - </item> - </dictionary> - </list> - </tuple> - </pickle> - </record> - <record id="4" aka="AAAAAAAAAAQ="> - <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> - </pickle> - <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> <string>edit</string> </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>serial</string> </key> - <value> <string>953.40533.10535.48486</string> </value> - </item> - <item> - <key> <string>state</string> </key> - <value> <string>current</string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1472708750.48</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - </dictionary> - </list> - </tuple> - </pickle> - </record> - <record id="5" aka="AAAAAAAAAAU="> - <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> - </pickle> - <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> <string>detect_converted_file</string> </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>external_processing_state</string> </key> - <value> <string>converted</string> </value> - </item> - <item> - <key> <string>serial</string> </key> - <value> <string>0.0.0.0</string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1472523951.39</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - </dictionary> - </list> - </tuple> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_view.html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_view.html.html deleted file mode 100644 index a02d14026d0a9c4943a766829af6cd0307c7ebdc..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_view.html.html +++ /dev/null @@ -1,19 +0,0 @@ -<!doctype html> -<html> - <head> - <meta charset="utf-8"> - <meta name="viewport" content="width=device-width, initial-scale=1"> - - <title>Expense Record Module View</title> - - <script src="rsvp.js"></script> - <script src="travel_expense_renderjs.js"></script> - <script src="gadget_global.js" ></script> - <script src="gadget_travel_expense_jio_expense_record_module_view.js"></script> - - </head> - - <body> - <div data-gadget-url="gadget_travel_expense_widget_listbox.html" data-gadget-scope="listbox"></div> - </body> -</html> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_view.html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_view.html.html deleted file mode 100644 index 4cd0cdcf6217f97e096109564624d7ebb16f87ff..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_view.html.html +++ /dev/null @@ -1,84 +0,0 @@ -<!doctype html> -<html> - <head> - <meta charset="utf-8"> - <meta name="viewport" content="width=device-width, initial-scale=1"> - - <title>Expense Record Module View Expense Record</title> - - <script src="rsvp.js"></script> - <script src="travel_expense_renderjs.js"></script> - <script src="gadget_global.js" ></script> - <script src="handlebars.js"></script> - - <script class="view-expense-record-template" type="text/x-handlebars-template"> - - <form class="view-expense-record-form"> - - <div class="ui-field-contain"> - <label data-i18n="State">State</label> - <div id="state">{{state}}</div> - </div> - - <div class="ui-field-contain"> - <label data-i18n="Photo">Photo</label> - <input name="photo" type="file" accept="image/*" capture="camera"> - <canvas style="display:none" name="photo_data" /> - </div> - - <div class="ui-field-contain"> - <label data-i18n="Preview">Preview</label> - <img name="preview" style="width:300px" /> - </div> - - <div class="ui-field-contain"> - <label data-i18n="Currency">Currency</label> - <select class="new-performed-task" name="resource" required> - <option value=""></option> - </select> - </div> - - <div class="ui-field-contain"> - <label data-i18n="Total Price">Total Price</label> - <input type="number" name="quantity" value="{{quantity}}" step="0.01" required> - </div> - - <div class="ui-field-contain"> - <label data-i18n="Input Date">Input Date</label> - <input type="date" name="date" value="{{date}}" required> - </div> - - <div class="ui-field-contain"> - <label data-i18n="Comment">Comment</label> - <input type="text" name="comment" value="{{comment}}"> - </div> - - <div class="ui-field-contain"> - <label data-i18n="Sync Method">Sync Method</label> - <div> - <input type="radio" id="sync_flag_yes" name="sync_flag" value="1"> - <label for="sync_flag_yes" data-i18n="Ready To Sync">Ready To Sync</label> - <input type="radio" id="sync_flag_no" name="sync_flag" value=""> - <label for="sync_flag_no" data-i18n="Do Not Sync">Do Not Sync</label> - </div> - </div> - - <input data-inline="true" type="submit" name="save" value="Save" data-theme="b" data-i18n="[value]Save"> - <div data-role="popup" id="saveMessage" class="ui-content" data-theme="a" data-i18n="Saved changes">Saved changes</div> - - <div data-role="popup" name="large_preview" data-position-to="window" data-theme="a" data-overlay-theme="a" data-corners="false"><img></div> - - <input data-inline="true" type="button" name="create_new_version" value="Update Data" data-theme="b" data-i18n="[value]Update Data"> - - <input type="hidden" name="copy_of" value="{{copy_of}}"> - </form> - - </script> - - <script src="gadget_travel_expense_jio_expense_record_view.js"></script> - - </head> - - <body> - </body> -</html> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_view.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_view.js.js deleted file mode 100644 index 4349ba7bb83143bf05667ac87ada26a47e13179a..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_view.js.js +++ /dev/null @@ -1,308 +0,0 @@ -/*globals window, rJS, Handlebars, RSVP*/ -/*jslint indent: 2, nomen: true, maxlen: 80*/ -(function (window, document, RSVP, rJS, Handlebars, promiseEventListener, loopEventListener, $) { - "use strict"; - - var gadget_klass = rJS(window), - source = gadget_klass.__template_element - .querySelector(".view-expense-record-template") - .innerHTML, - template = Handlebars.compile(source); - - - gadget_klass - .ready(function (g) { - g.props = {}; - g.options = null; - return g.getElement() - .push(function (element) { - g.props.element = element; - g.props.deferred = RSVP.defer(); - }); - }) - - .declareAcquiredMethod("updateHeader", "updateHeader") - .declareAcquiredMethod("get", "jio_get") - .declareAcquiredMethod("put", "jio_put") - .declareAcquiredMethod("post", "jio_post") - .declareAcquiredMethod("translateHtml", "translateHtml") - .declareAcquiredMethod('allDocs', 'jio_allDocs') - .declareAcquiredMethod("redirect", "redirect") - .declareAcquiredMethod('jio_remove', 'jio_remove') - - .declareMethod("render", function (options) { - var gadget = this; - gadget.options = options; - return new RSVP.Queue() - .push(function (result_list) { - return gadget.translateHtml(template(options.doc)); - }) - .push(function (html) { - gadget.props.element.innerHTML = html; - - if (gadget.options.doc.photo_data){ - var preview = gadget.props.element.querySelector('img[name=preview]') - preview.src = gadget.options.doc.photo_data - var photo_data = gadget.props.element.querySelector("canvas[name='photo_data']") - var context = photo_data.getContext('2d'); - var imageObj = new Image(); - imageObj.onload = function() { - context.canvas.height = this.height; - context.canvas.width = this.width; - context.drawImage(this, 0, 0); - }; - imageObj.src = gadget.options.doc.photo_data; - } - - - if (gadget.options.jio_key.indexOf('expense_record_module/') == 0){ - var submit_button = gadget.props.element.querySelector("input[type=submit][name=save]"); - submit_button.parentNode.removeChild(submit_button); - $(gadget.props.element.querySelectorAll('input,textarea')).attr('readonly', true); - $(gadget.props.element.querySelectorAll('select,input[type=checkbox],input[type=radio],input[type=file]') - ).attr('disabled', true); - } - - if (gadget.options.jio_key.indexOf('expense_record_module/') != 0){ - var submit_button = gadget.props.element.querySelector("input[type=button][name=create_new_version]"); - if(submit_button){ - submit_button.parentNode.removeChild(submit_button); - } - } - - gadget.props.element.querySelector('#state').innerHTML = translateString(getWorkflowState(gadget.options.doc.portal_type, gadget.options.jio_key, gadget.options.doc.sync_flag)) - - return gadget.updateHeader({ - title: gadget.options.doc.doc_id + " " + (gadget.options.doc.record_revision || 1) - }); - }) - .push(function () { - gadget.props.deferred.resolve(); - }); - }) - - ///////////////////////////////////////// - // New version of the the Expense Record - ///////////////////////////////////////// - .declareService(function () { - var gadget = this, - cloned_doc, - current_doc, - new_id; - - if(gadget.props.element.querySelector('input[type=button][name=create_new_version]') == null){ - return; - } - - return new RSVP.Queue() - .push(function () { - return gadget.props.deferred.promise; - }) - .push(function () { - - return promiseEventListener( - gadget.props.element.querySelector('input[type=button][name=create_new_version]'), - 'click', - false - ); - }) - .push(function () { - return gadget.get(gadget.options.jio_key); - }) - .push(function (result) { - current_doc = result; - cloned_doc = JSON.parse(JSON.stringify(result)); - - // Do not sync the cloned document - cloned_doc.copy_of = gadget.options.jio_key; - cloned_doc.visible_in_html5_app_flag = 1; - delete cloned_doc.sync_flag; - cloned_doc.portal_type = 'Expense Record Temp'; - cloned_doc.record_revision = (cloned_doc.record_revision || 1) + 1; - - current_doc.visible_in_html5_app_flag = 0; - - return gadget.post(cloned_doc); - }) - .push(function (id) { - new_id = id; - // Hide the document at the end in order to still view it in case of issue - // Better have 2 docs than none visible - return gadget.put(gadget.options.jio_key, current_doc); - }) - .push(function (response) { - return gadget.redirect({ - jio_key: new_id, - page: "view" - }); - }); - }) - - - ///////////////////////////////////////// - // Form submit - ///////////////////////////////////////// - .declareService(function () { - var gadget = this; - - return new RSVP.Queue() - .push(function () { - return gadget.props.deferred.promise; - }) - .push(function () { - return loopEventListener( - gadget.props.element.querySelector('form.view-expense-record-form'), - 'submit', - false, - function (submit_event) { - return new RSVP.Queue() - .push(function () { - if (gadget.options.jio_key.indexOf('expense_record_module/') == 0){ - return; - } - var i, - doc = { - // XXX Hardcoded - parent_relative_url: "expense_record_module", - portal_type: "Expense Record", - doc_id: gadget.options.doc.doc_id, - visible_in_html5_app_flag: 1, - record_revision: (gadget.options.doc.record_revision || 1), - photo_data: gadget.options.doc['photo_data'], - }; - gadget.props.element.querySelector("input[type=submit]") - .disabled = true; - for (i = 0; i < submit_event.target.length; i += 1) { - // XXX Should check input type instead - if (submit_event.target[i].name && submit_event.target[i].type != "submit") { - if ((submit_event.target[i].type == "radio" || submit_event.target[i].type == "checkbox") && !submit_event.target[i].checked){ - continue - } - if (submit_event.target[i].name=="photo") { - if (submit_event.target[i].files.length > 0){ - var photo_data = gadget.props.element.querySelector('canvas[name="photo_data"]') - doc['photo_data'] = photo_data.toDataURL() - } - continue - } - doc[submit_event.target[i].name] = submit_event.target[i].value; - } - } - - if (doc.sync_flag != "1"){ - doc.portal_type = 'Expense Record Temp' // For to avoid sync - } - - $("#saveMessage").popup('open'); - return gadget.put(gadget.options.jio_key, doc); - }) - .push(function () { - gadget.props.element.querySelector("input[type=submit]").disabled = false; - }) - } - ) - }) - }) - - - ///////////////////////////////////////// - // Fill currencies - ///////////////////////////////////////// - .declareService(function () { - var gadget = this; - - return new RSVP.Queue() - .push(function () { - return gadget.props.deferred.promise; - }) - .push(function(){createResourceSelection(gadget, gadget.options.doc.resource)}) - }) - - ///////////////////////////////////////// - // Fill sync flag - ///////////////////////////////////////// - .declareService(function () { - var gadget = this; - - return new RSVP.Queue() - .push(function () { - return gadget.props.deferred.promise; - }) - .push(function () { - if (gadget.options.doc.sync_flag == "1"){ - var element = gadget.props.element.querySelector("input[name='sync_flag'][value='1']"); - element.setAttribute('checked', 'checked'); - $(element).checkboxradio('refresh'); - }else{ - var element = gadget.props.element.querySelector("input[name='sync_flag'][value='']"); - element.setAttribute('checked', 'checked'); - $(element).checkboxradio('refresh'); - } - }) - }) - - - ///////////////////////////////////////// - // Photo changed. - ///////////////////////////////////////// - .declareService(function () { - var gadget = this; - - return new RSVP.Queue() - .push(function () { - return gadget.props.deferred.promise; - }) - .push(function () { - return loopEventListener( - gadget.props.element.querySelector('input[name="photo"]'), - "change", - false, - function (evt) { - return new RSVP.Queue() - .push(function () { - // Wait for user to finish typing - return RSVP.delay(100); - }) - .push(function () { - var file = gadget.props.element.querySelector('input[name="photo"]').files[0]; - var photo_data = gadget.props.element.querySelector('canvas[name="photo_data"]'); - new MegaPixImage(file).render(photo_data, { width: 600 }, function(){gadget.props.element.querySelector('img[name="preview"]').src = photo_data.toDataURL();}); - }); - } - ); - }); - }) - - - ///////////////////////////////////////// - // Preview clicked. - ///////////////////////////////////////// - .declareService(function () { - var gadget = this; - - return new RSVP.Queue() - .push(function () { - return gadget.props.deferred.promise; - }) - .push(function () { - return loopEventListener( - gadget.props.element.querySelector('img[name="preview"]'), - "click", - false, - function (evt) { - return new RSVP.Queue() - .push(function () { - // Wait for user to finish typing - return RSVP.delay(100); - }) - .push(function () { - $('div[name=large_preview]').popup('open', 0, 0, 'slidedown', 'window'); - $('div[name=large_preview] img').attr('src', gadget.props.element.querySelector('canvas[name=photo_data]').toDataURL()); - }); - } - ); - }); - }); - - -}(window, document, RSVP, rJS, Handlebars, promiseEventListener, loopEventListener, jQuery)); \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_login.html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_login.html.html deleted file mode 100644 index 6f4d12b29da62372e5c91b8799d913372c2730fd..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_login.html.html +++ /dev/null @@ -1,39 +0,0 @@ -<!doctype html> -<html> - <head> - <meta charset="utf-8"> - <meta name="viewport" content="width=device-width, initial-scale=1"> - - <title>Travel Expense App Login Page</title> - - <script src="rsvp.js"></script> - <script src="travel_expense_renderjs.js"></script> - <script src="handlebars.js"></script> - <script src="gadget_global.js" ></script> - - <script id="page-template" type="text/x-handlebars-template"> - <div class="ui-grid-b ui-responsive"> - <div class="ui-block-a"></div> - <div class="ui-block-b"> - <form class="login-form"> - <div class="ui-field-contain"> - <label data-i18n="Login">Login</label> - <input type="text" name="jid" value="" required> - </div> - <div class="ui-field-contain"> - <label data-i18n="Password">Password</label> - <input type="password" name="passwd" value="" required> - </div> - <input data-inline="true" type="submit" data-i18n="[value]Log In" value="Log In" data-theme="b"> - </form> - </div> - <div class="ui-block-c"></div> - </div> - </script> - - <script src="gadget_travel_expense_page_login.js"></script> - </head> - - <body> - </body> -</html> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_login.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_login.js.js deleted file mode 100644 index 5bad6fc4c77c1be57cd440731381740c2cdd0b6b..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_login.js.js +++ /dev/null @@ -1,70 +0,0 @@ -/*globals window, document, RSVP, rJS, promiseEventListener, Handlebars*/ -/*jslint indent: 2, maxlen: 80, nomen: true*/ -(function (window, document, RSVP, rJS, promiseEventListener, Handlebars) { - "use strict"; - - ///////////////////////////////////////////////////////////////// - // templates - ///////////////////////////////////////////////////////////////// - var gadget_klass = rJS(window), - templater = gadget_klass.__template_element, - - template = Handlebars.compile( - templater.getElementById("page-template").innerHTML - ); - - gadget_klass - .ready(function (g) { - g.props = {}; - return g.getElement() - .push(function (element) { - g.props.element = element; - }); - }) - - .declareAcquiredMethod("updateHeader", "updateHeader") - .declareAcquiredMethod("translateHtml", "translateHtml") - .declareMethod("render", function () { - var gadget = this; - return gadget.updateHeader({ - title: "Connect" - }) - .push(function () { - return gadget.translateHtml(template()); - }) - .push(function (html) { - gadget.props.element.innerHTML = html; - }); - }) - - .declareAcquiredMethod("redirect", "redirect") - .declareService(function () { - var gadget = this; - return new RSVP.Queue() - .push(function () { - gadget.props.element.querySelector("input[type=text]") - .focus(); - return promiseEventListener( - gadget.props.element.querySelector('form.login-form'), - 'submit', - false - ); - }) - .push(function (evt) { - gadget.props.element.querySelector("input[type=submit]") - .disabled = true; - var login = evt.target.elements[0].value, - passwd = evt.target.elements[1].value; - Cookies.remove('__ac'); - Cookies.remove('__ac', {path:''}); - Cookies.remove('__ac', {path:'/'}); - Cookies.remove('jid'); - Cookies.remove('jid', {path:''}); - Cookies.remove('jid', {path:'/'}); - Cookies.set('__ac', window.btoa(login + ":" + passwd), {expires:36500, path:'/', secure:true}) - Cookies.set('jid', login, {expires:36500, path:'/', secure:true}) - return gadget.redirect({}); - }); - }); - -}(window, document, RSVP, rJS, promiseEventListener, Handlebars)); \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_report.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_report.js.xml deleted file mode 100644 index c9ab00169adbfd43b2d1e2cfbcbce8fb94460861..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_report.js.xml +++ /dev/null @@ -1,332 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="Web Script" module="erp5.portal_type"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>_Access_contents_information_Permission</string> </key> - <value> - <tuple> - <string>Anonymous</string> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> - <string>Auditor</string> - <string>Manager</string> - <string>Owner</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Add_portal_content_Permission</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Change_local_roles_Permission</string> </key> - <value> - <tuple> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Modify_portal_content_Permission</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_View_Permission</string> </key> - <value> - <tuple> - <string>Anonymous</string> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> - <string>Auditor</string> - <string>Manager</string> - <string>Owner</string> - </tuple> - </value> - </item> - <item> - <key> <string>categories</string> </key> - <value> - <tuple/> - </value> - </item> - <item> - <key> <string>content_md5</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>contributors</string> </key> - <value> - <tuple/> - </value> - </item> - <item> - <key> <string>default_reference</string> </key> - <value> <string>gadget_travel_expense_page_report.js</string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>gadget_travel_expense_page_report.js</string> </value> - </item> - <item> - <key> <string>language</string> </key> - <value> <string>en</string> </value> - </item> - <item> - <key> <string>portal_type</string> </key> - <value> <string>Web Script</string> </value> - </item> - <item> - <key> <string>short_title</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string>Travel Expense Record Report Page JS</string> </value> - </item> - <item> - <key> <string>version</string> </key> - <value> <string>001</string> </value> - </item> - <item> - <key> <string>workflow_history</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> - </value> - </item> - </dictionary> - </pickle> - </record> - <record id="2" aka="AAAAAAAAAAI="> - <pickle> - <global name="PersistentMapping" module="Persistence.mapping"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>data</string> </key> - <value> - <dictionary> - <item> - <key> <string>document_publication_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> - </value> - </item> - <item> - <key> <string>edit_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> - </value> - </item> - <item> - <key> <string>processing_status_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> - </value> - </item> - </dictionary> - </value> - </item> - </dictionary> - </pickle> - </record> - <record id="3" aka="AAAAAAAAAAM="> - <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> - </pickle> - <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> <string>publish_alive</string> </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1472793726.14</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - <item> - <key> <string>validation_state</string> </key> - <value> <string>published_alive</string> </value> - </item> - </dictionary> - </list> - </tuple> - </pickle> - </record> - <record id="4" aka="AAAAAAAAAAQ="> - <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> - </pickle> - <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> <string>edit</string> </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>serial</string> </key> - <value> <string>953.46555.60478.6468</string> </value> - </item> - <item> - <key> <string>state</string> </key> - <value> <string>current</string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1473070102.21</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - </dictionary> - </list> - </tuple> - </pickle> - </record> - <record id="5" aka="AAAAAAAAAAU="> - <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> - </pickle> - <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> <string>detect_converted_file</string> </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>external_processing_state</string> </key> - <value> <string>converted</string> </value> - </item> - <item> - <key> <string>serial</string> </key> - <value> <string>0.0.0.0</string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1472791823.85</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - </dictionary> - </list> - </tuple> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_setting.html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_setting.html.html deleted file mode 100644 index 715d2a242630eb63abe0e9cdc00786f04bf204d0..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_setting.html.html +++ /dev/null @@ -1,59 +0,0 @@ -<!doctype html> -<html> - <head> - <meta charset="utf-8"> - <meta name="viewport" content="width=device-width, initial-scale=1"> - - <title>Travel Expense App Setting</title> - - <script src="rsvp.js"></script> - <script src="travel_expense_renderjs.js"></script> - <script src="gadget_global.js" ></script> - <script src="handlebars.js"></script> - - <script class="view-setting-template" type="text/x-handlebars-template"> - <div class="ui-grid-b ui-responsive"> - <div class="ui-block-a"></div> - <div class="ui-block-b"> - - <form class="view-setting-form"> - - <div class="ui-field-contain"> - <label data-i18n="Login">Login</label> - <input type="text" name="jid" value="{{jid}}"> - </div> - - <div class="ui-field-contain"> - <label data-i18n="Password">Password</label> - <input type="password" name="passwd" value=""> - </div> - - <div class="ui-field-contain"> - <label data-i18n="Language">Language</label> - <div> - <input type="radio" id="language_en" name="language" value="en"> - <label for="language_en" data-i18n="English">English</label> - </div> - </div> - - <input data-inline="true" type="submit" name="save" value="Save" data-theme="b" data-i18n="[value]Save"> - - </form> - - <form class="view-advanced-setting-form"> - <input data-inline="true" type="button" name="reset_database" value="Reset Database" data-theme="b" data-i18n="[value]Reset Database"> - <input data-inline="true" type="button" name="update_application" value="Update Application" data-theme="b" data-i18n="[value]Update Application"> - </form> - - </div> - <div class="ui-block-c"></div> - </div> - </script> - - <script src="gadget_travel_expense_page_setting.js"></script> - - </head> - - <body> - </body> -</html> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_setting.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_setting.js.js deleted file mode 100644 index 1b657deba1ca620c259ea1cb45dcc6b0b9c0e7ea..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_setting.js.js +++ /dev/null @@ -1,299 +0,0 @@ -/*globals window, rJS, Handlebars, RSVP*/ -/*jslint indent: 2, nomen: true, maxlen: 80*/ -(function (window, document, RSVP, rJS, Handlebars, promiseEventListener, loopEventListener, $) { - "use strict"; - - var gadget_klass = rJS(window), - source = gadget_klass.__template_element - .querySelector(".view-setting-template") - .innerHTML, - template = Handlebars.compile(source); - - var update_check_flag = false; - - gadget_klass - .ready(function (g) { - g.props = {}; - g.options = null; - return g.getElement() - .push(function (element) { - g.props.element = element; - g.props.deferred = RSVP.defer(); - }); - }) - - .declareAcquiredMethod("updateHeader", "updateHeader") - .declareAcquiredMethod("get", "jio_get") - .declareAcquiredMethod("translateHtml", "translateHtml") - .declareAcquiredMethod('allDocs', 'jio_allDocs') - - .declareMethod("render", function (options) { - var gadget = this; - gadget.options = options; - return new RSVP.Queue() - .push(function (result_list) { - return gadget.translateHtml(template({jid:Cookies.get('jid')})); - }) - .push(function (html) { - gadget.props.element.innerHTML = html; - var element = gadget.props.element.querySelector("input[type=radio][value="+Cookies.get('language')+"]"); - if(element){ - element.setAttribute('checked', 'checked'); - } - return gadget.updateHeader({ - title: "Setting" - }); - }) - .push(function () { - gadget.props.deferred.resolve(); - }); - }) - - - ///////////////////////////////////////// - // Form submit - ///////////////////////////////////////// - .declareService(function () { - var gadget = this; - - return new RSVP.Queue() - .push(function () { - return gadget.props.deferred.promise; - }) - .push(function () { - - return promiseEventListener( - gadget.props.element.querySelector('form.view-setting-form'), - 'submit', - false - ); - }) - .push(function (submit_event) { - gadget.props.element.querySelector("input[type=submit]").disabled = true; - var checked_element = gadget.props.element.querySelector("input[type=radio]:checked"); - if (checked_element != null){ - var language = checked_element.value; - if (language){ - Cookies.set('language', language, {expires:36500, secure:true}); - } - } - var login = gadget.props.element.querySelector("input[name=jid]").value; - var passwd = gadget.props.element.querySelector("input[name=passwd]").value; - if(login){ - Cookies.remove('jid'); - Cookies.remove('jid', {path:''}); - Cookies.remove('jid', {path:'/'}); - Cookies.set('jid', login, {expires:36500, path:'/', secure:true}) - } - if(login && passwd){ - Cookies.remove('__ac'); - Cookies.remove('__ac', {path:''}); - Cookies.remove('__ac', {path:'/'}); - Cookies.set('__ac', window.btoa(login + ":" + passwd), {expires:36500, path:'/', secure:true}) - } - location.reload(); - }) - .push(function () { - }); - }) - - - ////////////////////////////// - // Reset Database - ////////////////////////////// - .declareService(function () { - var gadget = this; - - return new RSVP.Queue() - .push(function () { - return gadget.props.deferred.promise; - }) - .push(function () { - - return loopEventListener( - gadget.props.element.querySelector('input[type=button][name=reset_database]'), - 'click', - false, - function (click_event) { - return new RSVP.Queue() - .push(function () { - indexedDB.deleteDatabase("jio:erp5js_travel_expense_"+Cookies.get('jid')) - alert('Deleted'); - }) - } - ); - }) - }) - - - ////////////////////////////// - // Update Application - ////////////////////////////// - .declareService(function () { - var gadget = this; - - return new RSVP.Queue() - .push(function () { - return gadget.props.deferred.promise; - }) - .push(function () { - - return loopEventListener( - gadget.props.element.querySelector('input[type=button][name=update_application]'), - 'click', - false, - function (click_event) { - return new RSVP.Queue() - .push(function () { - alert(translateString('HTML5 App Update Started')); - update_check_flag = true; - if(window.applicationCache.status == window.applicationCache.UNCACHED){ - location.reload(); - }else if(window.applicationCache.status == window.applicationCache.IDLE){ - try{ - window.applicationCache.update(); - }catch(error){ - location.reload(); - } - } - }) - } - ); - }) - }) - .declareService(function(){ - var gadget = this; - return new RSVP.Queue() - .push(function(){ - return gadget.props.deferred.promise; - }) - .push(function(){ - return loopEventListener( - window.applicationCache, - 'cached', - false, - function(event){ - return new RSVP.Queue() - .push(function(){ - alert(translateString('HTML5 App Update Finished')); - location.reload(); - }) - } - ); - }) - }) - .declareService(function(){ - var gadget = this; - return new RSVP.Queue() - .push(function(){ - return gadget.props.deferred.promise; - }) - .push(function(){ - return loopEventListener( - window.applicationCache, - 'updateready', - false, - function(event){ - return new RSVP.Queue() - .push(function(){ - alert(translateString('HTML5 App Update Finished')); - location.reload(); - }) - } - ); - }) - }) - .declareService(function(){ - var gadget = this; - return new RSVP.Queue() - .push(function(){ - return gadget.props.deferred.promise; - }) - .push(function(){ - return loopEventListener( - window.applicationCache, - 'error', - false, - function(event){ - return new RSVP.Queue() - .push(function(){ - window.applicationCache.update(); - }) - } - ); - }) - }) - .declareService(function(){ - var gadget = this; - return new RSVP.Queue() - .push(function(){ - return gadget.props.deferred.promise; - }) - .push(function(){ - return new RSVP.Queue() - .push(function(){ - if(window.applicationCache.status == window.applicationCache.DOWNLOADING){ - alert(translateString('Downloading New Version Of HTML5 App')); - } - }) - }) - .push(function(){ - return loopEventListener( - window.applicationCache, - 'downloading', - false, - function(event){ - return new RSVP.Queue() - .push(function(){ - alert(translateString('Downloading New Version Of HTML5 App')); - }) - } - ); - }) - }) - .declareService(function(){ - var gadget = this; - return new RSVP.Queue() - .push(function(){ - return gadget.props.deferred.promise; - }) - .push(function(){ - return loopEventListener( - window.applicationCache, - 'progress', - false, - function(event){ - return new RSVP.Queue() - .push(function(){ - event.loaded / event.total; - }) - } - ); - }) - }) - .declareService(function(){ - var gadget = this; - return new RSVP.Queue() - .push(function(){ - return gadget.props.deferred.promise; - }) - .push(function(){ - return loopEventListener( - window.applicationCache, - 'noupdate', - false, - function(event){ - return new RSVP.Queue() - .push(function(){ - if(update_check_flag == true){ - alert(translateString('No HTML5 App Update Found')); - update_check_flag = false; - } - }) - } - ); - }) - }) - - -}(window, document, RSVP, rJS, Handlebars, promiseEventListener, loopEventListener, jQuery)); diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_sync.html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_sync.html.html deleted file mode 100644 index 3dde6aaf1bf3d6e04ea12a29885eeca14114007f..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_sync.html.html +++ /dev/null @@ -1,32 +0,0 @@ -<!doctype html> -<html> - <head> - <meta charset="utf-8"> - <meta name="viewport" content="width=device-width, initial-scale=1"> - - <title>Travel Expense App Sync Page</title> - - <script src="rsvp.js"></script> - <script src="travel_expense_renderjs.js"></script> - <script src="handlebars.js"></script> - <script src="gadget_global.js" ></script> - - <script id="page-template" type="text/x-handlebars-template"> - <div class="ui-grid-b ui-responsive"> - <div class="ui-block-a"></div> - <div class="ui-block-b"> - <form class="synchro-form"> - <input data-inline="true" type="submit" value="Launch Synchronisation" data-i18n="[value]Launch Synchronisation" data-theme="b"> - </form> - </div> - <div class="ui-block-c"></div> - </div> - </script> - - <script src="gadget_travel_expense_page_sync.js"></script> - - </head> - - <body> - </body> -</html> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_sync.html.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_sync.html.xml deleted file mode 100644 index 46c7b98748ca1d27c79e595debc9b01033828d28..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_sync.html.xml +++ /dev/null @@ -1,336 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="Web Page" module="erp5.portal_type"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>_Access_contents_information_Permission</string> </key> - <value> - <tuple> - <string>Anonymous</string> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> - <string>Auditor</string> - <string>Manager</string> - <string>Owner</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Add_portal_content_Permission</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Change_local_roles_Permission</string> </key> - <value> - <tuple> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Modify_portal_content_Permission</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_View_Permission</string> </key> - <value> - <tuple> - <string>Anonymous</string> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> - <string>Auditor</string> - <string>Manager</string> - <string>Owner</string> - </tuple> - </value> - </item> - <item> - <key> <string>categories</string> </key> - <value> - <tuple/> - </value> - </item> - <item> - <key> <string>content_md5</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>content_type</string> </key> - <value> <string>text/html</string> </value> - </item> - <item> - <key> <string>contributors</string> </key> - <value> - <tuple/> - </value> - </item> - <item> - <key> <string>default_reference</string> </key> - <value> <string>gadget_travel_expense_page_sync.html</string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>gadget_travel_expense_page_sync.html</string> </value> - </item> - <item> - <key> <string>language</string> </key> - <value> <string>en</string> </value> - </item> - <item> - <key> <string>portal_type</string> </key> - <value> <string>Web Page</string> </value> - </item> - <item> - <key> <string>short_title</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string>Travel Expense Record Sync Page</string> </value> - </item> - <item> - <key> <string>version</string> </key> - <value> <string>001</string> </value> - </item> - <item> - <key> <string>workflow_history</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> - </value> - </item> - </dictionary> - </pickle> - </record> - <record id="2" aka="AAAAAAAAAAI="> - <pickle> - <global name="PersistentMapping" module="Persistence.mapping"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>data</string> </key> - <value> - <dictionary> - <item> - <key> <string>document_publication_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> - </value> - </item> - <item> - <key> <string>edit_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> - </value> - </item> - <item> - <key> <string>processing_status_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> - </value> - </item> - </dictionary> - </value> - </item> - </dictionary> - </pickle> - </record> - <record id="3" aka="AAAAAAAAAAM="> - <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> - </pickle> - <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> <string>publish_alive</string> </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1472526672.59</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - <item> - <key> <string>validation_state</string> </key> - <value> <string>published_alive</string> </value> - </item> - </dictionary> - </list> - </tuple> - </pickle> - </record> - <record id="4" aka="AAAAAAAAAAQ="> - <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> - </pickle> - <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> <string>edit</string> </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>serial</string> </key> - <value> <string>953.40584.15421.43793</string> </value> - </item> - <item> - <key> <string>state</string> </key> - <value> <string>current</string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1472711821.54</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - </dictionary> - </list> - </tuple> - </pickle> - </record> - <record id="5" aka="AAAAAAAAAAU="> - <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> - </pickle> - <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> <string>detect_converted_file</string> </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>external_processing_state</string> </key> - <value> <string>converted</string> </value> - </item> - <item> - <key> <string>serial</string> </key> - <value> <string>0.0.0.0</string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1472523951.72</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - </dictionary> - </list> - </tuple> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_sync.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_sync.js.js deleted file mode 100644 index 9ab250b7cd2c2ab9d00336a7235c47f83cfb26a7..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_sync.js.js +++ /dev/null @@ -1,65 +0,0 @@ -/*globals window, RSVP, rJS, promiseEventListener, Handlebars*/ -/*jslint indent: 2, maxlen: 80, nomen: true*/ -(function (window, RSVP, rJS, promiseEventListener, Handlebars) { - "use strict"; - var gadget_klass = rJS(window), - templater = gadget_klass.__template_element, - - template = Handlebars.compile( - templater.getElementById("page-template").innerHTML - ); - - gadget_klass - .ready(function (g) { - g.props = {}; - return g.getElement() - .push(function (element) { - g.props.element = element; - }); - }) - - .declareAcquiredMethod('allDocs', 'jio_allDocs') - .declareAcquiredMethod("updateHeader", "updateHeader") - .declareAcquiredMethod("translateHtml", "translateHtml") - .declareMethod("render", function () { - var gadget = this; - return gadget.updateHeader({ - title: "Synchronisation" - }) - .push(function () { - return gadget.translateHtml(template()); - }) - .push(function (html) { - gadget.props.element.innerHTML = html; - }); - }) - - .declareAcquiredMethod("redirect", "redirect") - .declareAcquiredMethod("repair", "jio_repair") - .declareAcquiredMethod("post", "jio_post") - - .declareService(function () { - var gadget = this; - - return new RSVP.Queue() - .push(function () { - return promiseEventListener( - gadget.props.element.querySelector('form.synchro-form'), - 'submit', - false - ); - }) - .push(function () { - gadget.props.element.querySelector("input[type=submit]") - .disabled = true; - }) - .push(function () { - return gadget.repair(); - }) - .push(function () { - alert(translateString('Synchronisation Finished')); - return gadget.redirect({jio_key:"expense_record_module", page:"view"}); - }); - }); - -}(window, RSVP, rJS, promiseEventListener, Handlebars)); \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_sync.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_sync.js.xml deleted file mode 100644 index c919de5c6e4b5aaeb037644038294e5472412dab..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_sync.js.xml +++ /dev/null @@ -1,332 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="Web Script" module="erp5.portal_type"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>_Access_contents_information_Permission</string> </key> - <value> - <tuple> - <string>Anonymous</string> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> - <string>Auditor</string> - <string>Manager</string> - <string>Owner</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Add_portal_content_Permission</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Change_local_roles_Permission</string> </key> - <value> - <tuple> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Modify_portal_content_Permission</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_View_Permission</string> </key> - <value> - <tuple> - <string>Anonymous</string> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> - <string>Auditor</string> - <string>Manager</string> - <string>Owner</string> - </tuple> - </value> - </item> - <item> - <key> <string>categories</string> </key> - <value> - <tuple/> - </value> - </item> - <item> - <key> <string>content_md5</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>contributors</string> </key> - <value> - <tuple/> - </value> - </item> - <item> - <key> <string>default_reference</string> </key> - <value> <string>gadget_travel_expense_page_sync.js</string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>gadget_travel_expense_page_sync.js</string> </value> - </item> - <item> - <key> <string>language</string> </key> - <value> <string>en</string> </value> - </item> - <item> - <key> <string>portal_type</string> </key> - <value> <string>Web Script</string> </value> - </item> - <item> - <key> <string>short_title</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string>Travel Expense Record Sync Page JS</string> </value> - </item> - <item> - <key> <string>version</string> </key> - <value> <string>001</string> </value> - </item> - <item> - <key> <string>workflow_history</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> - </value> - </item> - </dictionary> - </pickle> - </record> - <record id="2" aka="AAAAAAAAAAI="> - <pickle> - <global name="PersistentMapping" module="Persistence.mapping"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>data</string> </key> - <value> - <dictionary> - <item> - <key> <string>document_publication_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> - </value> - </item> - <item> - <key> <string>edit_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> - </value> - </item> - <item> - <key> <string>processing_status_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> - </value> - </item> - </dictionary> - </value> - </item> - </dictionary> - </pickle> - </record> - <record id="3" aka="AAAAAAAAAAM="> - <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> - </pickle> - <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> <string>publish_alive</string> </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1472526622.67</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - <item> - <key> <string>validation_state</string> </key> - <value> <string>published_alive</string> </value> - </item> - </dictionary> - </list> - </tuple> - </pickle> - </record> - <record id="4" aka="AAAAAAAAAAQ="> - <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> - </pickle> - <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> <string>edit</string> </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>serial</string> </key> - <value> <string>953.41910.60961.31761</string> </value> - </item> - <item> - <key> <string>state</string> </key> - <value> <string>current</string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1472791380.82</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - </dictionary> - </list> - </tuple> - </pickle> - </record> - <record id="5" aka="AAAAAAAAAAU="> - <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> - </pickle> - <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> <string>detect_converted_file</string> </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>external_processing_state</string> </key> - <value> <string>converted</string> </value> - </item> - <item> - <key> <string>serial</string> </key> - <value> <string>0.0.0.0</string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1472523951.76</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - </dictionary> - </list> - </tuple> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.html.html deleted file mode 100644 index 5696d2edff5ce624dfa98330222c5869d6f02e2f..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.html.html +++ /dev/null @@ -1,82 +0,0 @@ -<!doctype html> -<html manifest="gadget_travel_expense_record_application.appcache"> - <head> - <meta charset="utf-8"> - <meta name="viewport" content="width=device-width, initial-scale=1"> - - <title>Travel Expense App</title> - - <link href="//netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet" type="text/css" /> - <link rel="stylesheet" href="jquerymobile.css"> - <link rel="stylesheet" href="gadget_erp5.css"> - <link rel="stylesheet" href="travel_expense_app.css"> - - <script src="jquery.js"></script> - <script src="jquerymobile.js"></script> - <script src="rsvp.js"></script> - <script src="travel_expense_renderjs.js"></script> - <script src="handlebars.js"></script> - <script src="gadget_global.js" ></script> - <script src="gadget_travel_expense_record_application.js"></script> - <script src="travel_expense_utility.js"></script> - <script src="travel_expense_megapix_image.js"></script> - - <script class="edit-template" type="text/x-handlebars-template"> - <h1 class="ui-title">{{title}}</h1> - <div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-right"> - <div class="ui-controlgroup-controls"> - <form class="edit-form"> - <button type="submit" class="responsive ui-btn ui-first-child ui-last-child ">{{right_url}}</button> - </form> - </div> - </div> - </script> - - <script class="header-template" type="text/x-handlebars-template"> - <h1 class="ui-title">{{title}}</h1> - {{#if right_url}} - <a href="{{right_url}}" class="ui-btn-right ui-btn ui-btn-inline ui-mini ui-corner-all">{{right_title}}</a> - {{/if}} - </script> - - <script class="sync-loader-template" type="text/x-handlebars-template"> - <h1 class="ui-title">{{title}}</h1> - <a role="button" href="" class="responsive ui-btn ui-btn-right ui-icon-spinner ui-btn-icon-left ui-first-child ui-last-child ui-disabled ui-icon-spin">{{loading_title}}</a> - </script> - - <script class="panel-template" type="text/x-handlebars-template"> - <div class="ui-content"> - <ul data-role="listview" class="ui-listview"> - <li><a href="#jio_key=expense_record_module&page=view" data-i18n="Expense Record">Expense Record</a></li> - <li><a href="#page=report" data-i18n="Report">Report</a></li> - <li><a href="#page=sync" data-i18n="Synchronisation">Synchronisation</a></li> - <li class="ui-last-child"><a href="#page=setting" data-i18n="Setting">Setting</a></li> - </ul> - </div> - </script> - </head> - - <body> - <div data-role="page"> - - <div data-role="panel" id="mypanel" data-position="left" data-display="overlay" data-theme="d"> - </div> - - <div data-role="header" class="gadget-header" data-theme="a"> - <a href="#mypanel" class="ui-btn-left ui-btn ui-btn-inline ui-mini ui-corner-all"></a> - <div><h1 class="ui-title"></h1></div> - </div> - - <div data-gadget-url="gadget_travel_expense_standalone_jio.html" - data-gadget-scope="jio_gadget" - data-gadget-sandbox="public"></div> - - <div data-gadget-url="gadget_travel_expense_translation.html" - data-gadget-scope="translation_gadget" - data-gadget-sandbox="public"></div> - - <div role="main" class="ui-content gadget-content"></div> - </div> - - </body> -</html> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.html.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.html.xml deleted file mode 100644 index f9e44d349d54239c69d8d38d959ef08612fdb19f..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.html.xml +++ /dev/null @@ -1,338 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="Web Page" module="erp5.portal_type"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>_Access_contents_information_Permission</string> </key> - <value> - <tuple> - <string>Anonymous</string> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> - <string>Auditor</string> - <string>Manager</string> - <string>Owner</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Add_portal_content_Permission</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Change_local_roles_Permission</string> </key> - <value> - <tuple> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Modify_portal_content_Permission</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_View_Permission</string> </key> - <value> - <tuple> - <string>Anonymous</string> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> - <string>Auditor</string> - <string>Manager</string> - <string>Owner</string> - </tuple> - </value> - </item> - <item> - <key> <string>categories</string> </key> - <value> - <tuple/> - </value> - </item> - <item> - <key> <string>content_md5</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>content_type</string> </key> - <value> <string>text/html</string> </value> - </item> - <item> - <key> <string>contributors</string> </key> - <value> - <tuple/> - </value> - </item> - <item> - <key> <string>default_reference</string> </key> - <value> <string>gadget_travel_expense_record_application.html</string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> <string>Starting Point</string> </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>gadget_travel_expense_record_application.html</string> </value> - </item> - <item> - <key> <string>language</string> </key> - <value> <string>en</string> </value> - </item> - <item> - <key> <string>portal_type</string> </key> - <value> <string>Web Page</string> </value> - </item> - <item> - <key> <string>short_title</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>text_content_substitution_mapping_method_id</string> </key> - <value> <string>WebPage_getRenderJSSubstitutionMappingDict</string> </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string>Travel Expense Record Application</string> </value> - </item> - <item> - <key> <string>version</string> </key> - <value> <string>001</string> </value> - </item> - <item> - <key> <string>workflow_history</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> - </value> - </item> - </dictionary> - </pickle> - </record> - <record id="2" aka="AAAAAAAAAAI="> - <pickle> - <global name="PersistentMapping" module="Persistence.mapping"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>data</string> </key> - <value> - <dictionary> - <item> - <key> <string>document_publication_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> - </value> - </item> - <item> - <key> <string>edit_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> - </value> - </item> - <item> - <key> <string>processing_status_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> - </value> - </item> - </dictionary> - </value> - </item> - </dictionary> - </pickle> - </record> - <record id="3" aka="AAAAAAAAAAM="> - <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> - </pickle> - <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> <string>publish_alive</string> </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1472526672.57</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - <item> - <key> <string>validation_state</string> </key> - <value> <string>published_alive</string> </value> - </item> - </dictionary> - </list> - </tuple> - </pickle> - </record> - <record id="4" aka="AAAAAAAAAAQ="> - <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> - </pickle> - <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> <string>edit</string> </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>serial</string> </key> - <value> <string>953.41948.23139.48452</string> </value> - </item> - <item> - <key> <string>state</string> </key> - <value> <string>current</string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1473070335.74</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - </dictionary> - </list> - </tuple> - </pickle> - </record> - <record id="5" aka="AAAAAAAAAAU="> - <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> - </pickle> - <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> <string>detect_converted_file</string> </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>external_processing_state</string> </key> - <value> <string>converted</string> </value> - </item> - <item> - <key> <string>serial</string> </key> - <value> <string>0.0.0.0</string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1472523951.79</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - </dictionary> - </list> - </tuple> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.js.js deleted file mode 100644 index d7c14ee9801a2fe9a42e4916c72f874d20dba5f6..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.js.js +++ /dev/null @@ -1,587 +0,0 @@ -/*globals window, document, RSVP, rJS, Handlebars, - loopEventListener, jQuery, URI, location, XMLHttpRequest, console*/ -/*jslint indent: 2, maxlen: 80*/ -(function (window, document, RSVP, rJS, Handlebars, loopEventListener, - $, XMLHttpRequest, location, console) { - "use strict"; - - $.mobile.ajaxEnabled = false; - $.mobile.linkBindingEnabled = false; - $.mobile.hashListeningEnabled = false; - $.mobile.pushStateEnabled = false; - - var hateoas_url = "hateoas/", - MAIN_SCOPE = "m", - MAIN_PAGE_PREFIX = "gadget_travel_expense_"; - - function updateHeader(gadget) { - if (gadget.props.header_argument_list === undefined) { - gadget.props.header_argument_list = {}; - } - if (gadget.props.loading_counter === 0) { - gadget.props.header_element.innerHTML = - gadget.props.header_template( - gadget.props.header_argument_list - ); - } else { - gadget.props.header_argument_list.loading_title = - gadget.props.loading_title; - gadget.props.header_element.innerHTML = - gadget.props.sync_loader_template( - gadget.props.header_argument_list - ); - } - } - - function increaseLoadingCounter(gadget) { - return new RSVP.Queue() - .push(function () { - gadget.props.loading_counter += 1; - if (gadget.props.loading_counter === 1) { - return updateHeader(gadget); - } - }); - } - - function decreaseLoadingCounter(gadget) { - return new RSVP.Queue() - .push(function () { - gadget.props.loading_counter -= 1; - if (gadget.props.loading_counter < 0) { - gadget.props.loading_counter = 0; - // throw new Error("Unexpected negative loading counter"); - } - if (gadget.props.loading_counter === 0) { - return updateHeader(gadget); - } - }); - } - - function callJioGadget(gadget, method, param_list) { - var called = false; - var jiogadget = null; - var repair_retry_count_max = 10; - var repair_retry_count = 0; - - function __callJioGadget(){ - return new RSVP.Queue() - .push(function () { - called = true; - return increaseLoadingCounter(gadget); - }) - .push(function () { - return gadget.getDeclaredGadget("jio_gadget"); - }) - .push(function (jio_gadget) { - jiogadget = jio_gadget; - return jio_gadget[method].apply(jio_gadget, param_list); - }) - .push(function (result) { - return decreaseLoadingCounter(gadget) - .push(function () { - return result; - }); - }, function (error) { - if (method == "repair"){ - repair_retry_count++; - console.log('sync retrying '+repair_retry_count) - if (repair_retry_count < repair_retry_count_max){ - return __callJioGadget(); - } - } - if (called) { - return decreaseLoadingCounter(gadget) - .push(function () { - throw error; - }); - } - throw error; - }); - } - return __callJioGadget(); - } - - function renderMainGadget(gadget, url, options) { - return gadget.declareGadget(url, { - scope: MAIN_SCOPE - }) - .push(function (page_gadget) { - var sub_options = options[MAIN_SCOPE] || {}; - delete options[MAIN_SCOPE]; - if (page_gadget.render === undefined) { - return [page_gadget]; - } - return RSVP.all([ - page_gadget, - page_gadget.render(sub_options) - ]); - }) - .push(function (all_result) { - return all_result[0]; - }); - } - - function renderPage(gadget, options) { - return renderMainGadget(gadget, - MAIN_PAGE_PREFIX + "page_" + options.page + ".html", - options); - } - - function renderJioPage(gadget, options) { - return gadget.getDeclaredGadget("jio_gadget") - .push(function (jio_gadget) { - return jio_gadget.get(options.jio_key); - }) - .push(undefined, function (error) { - // User has to initialize the app on the first access. - if ((error !== undefined) && (error.status_code === 404)) { - if (/_module$/.test(options.jio_key)) { - return gadget.aq_pleasePublishMyState({page: "sync"}) - .push(gadget.pleaseRedirectMyHash.bind(gadget)); - } - } - throw error; - }) - .push(function (doc) { - var sub_options = {}; - sub_options[MAIN_SCOPE] = { - doc: doc, - jio_key: options.jio_key, - search: options.search, - begin_from: options.begin_from - }; - var base_portal_type = doc.portal_type.toLowerCase().replace(/\s/g, "_") - if (base_portal_type.search(/_temp$/) >= 0){ - base_portal_type = base_portal_type.substr(0, base_portal_type.length-5)//Remove "_temp" - } - return renderMainGadget( - gadget, - MAIN_PAGE_PREFIX + "jio_" - + base_portal_type - + "_" + options.page + ".html", - sub_options - ); - }); - } - - function displayErrorContent(gadget, error) { - // Do not break the application in case of errors. - // Display it to the user for now, - // and allow user to go back to the frontpage - var error_text = ""; - if ((error !== undefined) && (error.target !== undefined) && (error.target.status === 401)) { - // Redirect to the login view - return gadget.aq_pleasePublishMyState({page: "login"}) - .push(gadget.pleaseRedirectMyHash.bind(gadget)); - } - if (error instanceof RSVP.CancellationError) { - return; - } - - if (error instanceof XMLHttpRequest) { - error_text = error.toString() + " " + - error.status + " " + - error.statusText; - } else if (error instanceof Error) { - error_text = error.toString(); - } else { - error_text = JSON.stringify(error); - } - - console.error(error); - if (error instanceof Error) { - console.error(error.stack); - } - // XXX Improve error rendering - gadget.props.content_element.innerHTML = "<br/><br/><br/><pre></pre>"; - gadget.props.content_element.querySelector('pre').textContent = - "Error: " + error_text; - // XXX Notify error - } - - function displayError(gadget, error) { - return new RSVP.Queue() - .push(function () { - return displayErrorContent(gadget, error); - }) - .push(function () { - return gadget.dropGadget("pg") - .push(undefined, function () { - // Do not crash the app if the pg gadget in not defined - // ie, keep the original error on screen - return; - }); - }); - } - - - ////////////////////////////////////////// - // History Support with Jio - ////////////////////////////////////////// - - function createJio(gadget) { - return gadget.getDeclaredGadget("jio_gadget") - .push(function (jio_gadget) { -/* - return jio_gadget.createJio({ - type: "erp5", - url: (new URI(hateoas_url)).absoluteTo(location.href).toString(), - default_view_reference: "jio_view" - }); -*/ - return jio_gadget.createJio({ - type: "replicate", - // XXX This drop the signature lists... - query: { - query: 'portal_type:( ' + - '"Expense Record Module" ' + - 'OR "Expense Record" ' + - ') ' + - 'OR (portal_type:"Currency" AND validation_state:"validated") ' + - 'OR (portal_type:"Category" AND ( relative_url:"quantity_unit/%" ' + - ' ))', - limit: [0, 1234567890] - }, - use_remote_post: true, - conflict_handling: 2, - check_local_modification: false, - check_local_creation: true, - check_local_deletion: false, - check_remote_modification: false, - check_remote_creation: true, - check_remote_deletion: true, - local_sub_storage: { - type: "query", - sub_storage: { - type: "uuid", - sub_storage: { - type: "indexeddb", - database: "erp5js_travel_expense_"+Cookies.get('jid') - } - } - }, - remote_sub_storage: { - type: "erp5", - url: (new URI(hateoas_url)).absoluteTo(location.href).toString(), - default_view_reference: "jio_view" - } - }); - - }); - } - - ////////////////////////////////////////// - // Page rendering - ////////////////////////////////////////// - function redirectToDefaultPage(gadget) { - // Redirect to expected page by default - return gadget.aq_pleasePublishMyState({ - page: "setting" - }) - .push(gadget.pleaseRedirectMyHash.bind(gadget)); - } - - rJS(window) - .ready(function (g) { - g.props = {}; - return g.getElement() - .push(function (element) { - $(element).trigger("create"); - g.props.loading_counter = 0; - g.props.element = element; - g.props.header_element = element.querySelector('.gadget-header') - .querySelector('div'); - g.props.content_element = element.querySelector('.gadget-content'); - g.props.panel_element = element.querySelector('#mypanel'); - - g.props.edit_template = Handlebars.compile( - document.querySelector(".edit-template").innerHTML - ); - g.props.header_template = Handlebars.compile( - document.querySelector(".header-template").innerHTML - ); - g.props.sync_loader_template = Handlebars.compile( - document.querySelector(".sync-loader-template").innerHTML - ); - g.props.panel_template = Handlebars.compile( - document.querySelector(".panel-template").innerHTML - ); - }); - }) - // Configure jIO storage - .ready(function (g) { - return createJio(g); - }) - .ready(function (g) { - return g.getDeclaredGadget('translation_gadget') - .push(function (translation_gadget) { - return RSVP.all([ - translation_gadget.translate('Loading'), - translation_gadget.translate('Menu'), - translation_gadget.translateHtml(g.props.panel_template()) - ]); - }) - .push(function (string_list) { - g.props.loading_title = string_list[0]; - g.props.header_element.parentElement.querySelector('a').textContent = - string_list[1]; - g.props.panel_element.innerHTML = string_list[2]; - $(g.props.panel_element).enhanceWithin(); - }); - }) - - ////////////////////////////////////////// - // Acquired method - ////////////////////////////////////////// - .declareAcquiredMethod('pleaseRedirectMyHash', 'pleaseRedirectMyHash') - - ////////////////////////////////////////// - // Allow Acquisition - ////////////////////////////////////////// - .allowPublicAcquisition("translateHtml", function (argument_list) { - return this.getDeclaredGadget("translation_gadget") - .push(function (translation_gadget) { - return translation_gadget.translateHtml(argument_list[0]); - }); - }) - .allowPublicAcquisition("translate", function (argument_list) { - return this.getDeclaredGadget("translation_gadget") - .push(function (translation_gadget) { - return translation_gadget.translate(argument_list[0]); - }); - }) - .allowPublicAcquisition("redirect", function (param_list) { - var gadget = this; - return gadget.aq_pleasePublishMyState.apply(gadget, param_list) - .push(gadget.pleaseRedirectMyHash.bind(gadget)); - }) - .allowPublicAcquisition("getUrlFor", function (param_list) { - return this.aq_pleasePublishMyState.apply(this, param_list); - }) - .allowPublicAcquisition("updateHeader", function (param_list) { - var gadget = this; - return this.getDeclaredGadget("translation_gadget") - .push(function (translation_gadget) { - var promise_list = []; - gadget.props.header_argument_list = param_list[0]; - - promise_list.push(translation_gadget.translate( - gadget.props.header_argument_list.title - )); - if (gadget.props.header_argument_list.hasOwnProperty('right_title')) { - promise_list.push(translation_gadget.translate( - gadget.props.header_argument_list.right_title - )); - } - return RSVP.all(promise_list); - }) - .push(function (result_list) { - gadget.props.header_argument_list.title = result_list[0]; - if (result_list.length === 2) { - gadget.props.header_argument_list.right_title = result_list[1]; - } - }); - }) - .allowPublicAcquisition("jio_allDocs", function (param_list) { - return callJioGadget(this, "allDocs", param_list); - }) - .allowPublicAcquisition("jio_remove", function (param_list) { - return callJioGadget(this, "remove", param_list); - }) - .allowPublicAcquisition("jio_post", function (param_list) { - return callJioGadget(this, "post", param_list); - }) - .allowPublicAcquisition("jio_put", function (param_list) { - return callJioGadget(this, "put", param_list); - }) - .allowPublicAcquisition("jio_get", function (param_list) { - return callJioGadget(this, "get", param_list); - }) - .allowPublicAcquisition("jio_repair", function (param_list) { - return callJioGadget(this, "repair", param_list); - }) - ///////////////////////////////////////////////////////////////// - // declared methods - ///////////////////////////////////////////////////////////////// - // Render the page - .declareMethod('render', function (options) { - var gadget = this; - - gadget.props.options = options; - // Reinitialize the loading counter - gadget.props.loading_counter = 0; - return new RSVP.Queue() - .push(function () { - return increaseLoadingCounter(gadget); - }) - .push(function () { - $("#mypanel").panel("close"); - // By default, init the header options to be empty - // (ERP5 title by default + sidebar) - gadget.props.header_argument_list = [{ - title: gadget.props.application_title || "ERP5" - }]; - - if (options.jio_key === undefined) { - if (options.page === undefined) { - redirectToDefaultPage(gadget); - } else { - return renderPage(gadget, options); - } - } else { - return renderJioPage(gadget, options); - } - }) - - .push(function (main_gadget) { - var input; - // Append loaded gadget in the page - if (main_gadget !== undefined) { - return main_gadget.getElement() - .push(function (fragment) { - var element = gadget.props.content_element, - content_container = document.createElement("div"); - content_container.className = "ui-content " + - (gadget.props.sub_header_class || ""); - // reset subheader indicator - delete gadget.props.sub_header_class; - - // go to the top of the page - window.scrollTo(0, 0); - - updateHeader(gadget); - - // Clear first to DOM, append after to reduce flickering/manip - while (element.firstChild) { - element.removeChild(element.firstChild); - } - content_container.appendChild(fragment); - element.appendChild(content_container); - - $(element).trigger("create"); - - input = element.querySelector("input"); - if (input !== null) { - input.focus(); - input.select(); - } - // XXX Drop notification - // return header_gadget.notifyLoaded(); - }); - } - }) - .push(function () { - return decreaseLoadingCounter(gadget); - }, function (error) { - return decreaseLoadingCounter(gadget) - .push(function () { - throw error; - }); - }) - .push(undefined, function (error) { - return displayError(gadget, error); - }); - }) - - ///////////////////////////////// - // Handle sub gadgets services - ///////////////////////////////// - .allowPublicAcquisition('reportServiceError', function (param_list, - gadget_scope) { - if (gadget_scope === undefined) { - // don't fail in case of dropped subgadget (like previous page) - return; - } - return displayError(this, param_list[0]); - }) - - .declareService(function () { - //////////////////////////////////// - // Form submit listening. Prevent browser to automatically - // handle the form submit in case of a bug - //////////////////////////////////// - var gadget = this; - - function catchFormSubmit() { - return displayError(gadget, new Error("Unexpected form submit")); - } - - // Listen to form submit - return loopEventListener( - gadget.props.element, - 'submit', - false, - catchFormSubmit - ); - }); -/* - .declareService(function () { - //////////////////////////////////// - // Appcache handling - //////////////////////////////////// - var gadget = this, - appcache = window.applicationCache, - // Wait 5 seconds by default - delay = 5000, - increase = 0, - promise; - - function handleCacheError(error) { - console.info('cache manifest update failed...'); - console.log(appcache.status); - console.log(error); - return new RSVP.Queue() - .push(function () { - // Increase delay after each try, to prevent killing the browser bandwith - // 5 seconds, 10, 30, 2 minutes, 10 minutes, 1 hour... - increase += 1; - delay = delay * increase; - return RSVP.delay(delay); - }) - .push(function () { - appcache.update(); - }); - } - - // Listen to form submit - promise = loopEventListener( - appcache, - 'error', - false, - handleCacheError - ); - - switch (appcache.status) { - case appcache.UNCACHED: - // UNCACHED == 0 - console.log('UNCACHED'); - // XXX reload needed - break; - case appcache.IDLE: // IDLE == 1 - console.log( 'IDLE'); - appcache.update(); - break; - case appcache.CHECKING: // CHECKING == 2 - console.log( 'CHECKING'); - break; - case appcache.DOWNLOADING: // DOWNLOADING == 3 - console.log( 'DOWNLOADING'); - break; - case appcache.UPDATEREADY: // UPDATEREADY == 4 - console.log( 'UPDATEREADY'); - break; - case appcache.OBSOLETE: // OBSOLETE == 5 - console.log( 'OBSOLETE'); - appcache.update(); - break; - default: - console.log( 'UKNOWN CACHE STATUS'); - break; -}; -// appcache.update(); - return promise; - }); -*/ - -}(window, document, RSVP, rJS, Handlebars, loopEventListener, jQuery, - XMLHttpRequest, location, console)); \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_standalone_jio.html.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_standalone_jio.html.xml deleted file mode 100644 index 25f1236eef642c3695fbc59cdf058bbc6330a150..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_standalone_jio.html.xml +++ /dev/null @@ -1,322 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="Web Page" module="erp5.portal_type"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>_Access_contents_information_Permission</string> </key> - <value> - <tuple> - <string>Anonymous</string> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> - <string>Auditor</string> - <string>Manager</string> - <string>Owner</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Add_portal_content_Permission</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Change_local_roles_Permission</string> </key> - <value> - <tuple> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Modify_portal_content_Permission</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_View_Permission</string> </key> - <value> - <tuple> - <string>Anonymous</string> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> - <string>Auditor</string> - <string>Manager</string> - <string>Owner</string> - </tuple> - </value> - </item> - <item> - <key> <string>content_md5</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>content_type</string> </key> - <value> <string>text/html</string> </value> - </item> - <item> - <key> <string>default_reference</string> </key> - <value> <string>gadget_travel_expense_standalone_jio.html</string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> <string>Jio access</string> </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>gadget_travel_expense_standalone_jio.html</string> </value> - </item> - <item> - <key> <string>language</string> </key> - <value> <string>en</string> </value> - </item> - <item> - <key> <string>portal_type</string> </key> - <value> <string>Web Page</string> </value> - </item> - <item> - <key> <string>short_title</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string>Travel Expense standalone Jio Gadget</string> </value> - </item> - <item> - <key> <string>version</string> </key> - <value> <string>001</string> </value> - </item> - <item> - <key> <string>workflow_history</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> - </value> - </item> - </dictionary> - </pickle> - </record> - <record id="2" aka="AAAAAAAAAAI="> - <pickle> - <global name="PersistentMapping" module="Persistence.mapping"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>data</string> </key> - <value> - <dictionary> - <item> - <key> <string>document_publication_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> - </value> - </item> - <item> - <key> <string>edit_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> - </value> - </item> - <item> - <key> <string>processing_status_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> - </value> - </item> - </dictionary> - </value> - </item> - </dictionary> - </pickle> - </record> - <record id="3" aka="AAAAAAAAAAM="> - <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> - </pickle> - <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> <string>publish_alive</string> </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1472526672.55</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - <item> - <key> <string>validation_state</string> </key> - <value> <string>published_alive</string> </value> - </item> - </dictionary> - </list> - </tuple> - </pickle> - </record> - <record id="4" aka="AAAAAAAAAAQ="> - <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> - </pickle> - <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> <string>edit</string> </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>serial</string> </key> - <value> <string>953.37691.41606.22220</string> </value> - </item> - <item> - <key> <string>state</string> </key> - <value> <string>current</string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1472540564.99</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - </dictionary> - </list> - </tuple> - </pickle> - </record> - <record id="5" aka="AAAAAAAAAAU="> - <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> - </pickle> - <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> <string>detect_converted_file</string> </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>external_processing_state</string> </key> - <value> <string>converted</string> </value> - </item> - <item> - <key> <string>serial</string> </key> - <value> <string>0.0.0.0</string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1472523951.88</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - </dictionary> - </list> - </tuple> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_standalone_jio.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_standalone_jio.js.js deleted file mode 100644 index f00948c0230b96c861129186a80342e94e444797..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_standalone_jio.js.js +++ /dev/null @@ -1,77 +0,0 @@ -/*global window, rJS, jIO, FormData */ -/*jslint indent: 2, maxerr: 3 */ -(function (window, rJS, jIO) { - "use strict"; - - rJS(window) - - .ready(function (gadget) { - // Initialize the gadget local parameters - gadget.state_parameter_dict = {}; - }) - - .declareMethod('createJio', function (jio_options) { - this.state_parameter_dict.jio_storage = jIO.createJIO(jio_options); - }) - .declareMethod('allDocs', function () { - var storage = this.state_parameter_dict.jio_storage; - return storage.allDocs.apply(storage, arguments); - }) - .declareMethod('allAttachments', function () { - var storage = this.state_parameter_dict.jio_storage; - return storage.allAttachments.apply(storage, arguments); - }) - .declareMethod('get', function () { - var storage = this.state_parameter_dict.jio_storage; - return storage.get.apply(storage, arguments); - }) - .declareMethod('put', function () { - var storage = this.state_parameter_dict.jio_storage; - return storage.put.apply(storage, arguments); - }) - .declareMethod('post', function () { - var storage = this.state_parameter_dict.jio_storage; - return storage.post.apply(storage, arguments); - }) - .declareMethod('remove', function () { - var storage = this.state_parameter_dict.jio_storage; - return storage.remove.apply(storage, arguments); - }) - .declareMethod('getAttachment', function () { - var storage = this.state_parameter_dict.jio_storage; - return storage.getAttachment.apply(storage, arguments); - }) - .declareMethod('putAttachment', function () { - var storage = this.state_parameter_dict.jio_storage; - return storage.putAttachment.apply(storage, arguments); - }) - .declareMethod('removeAttachment', function () { - var storage = this.state_parameter_dict.jio_storage; - return storage.removeAttachment.apply(storage, arguments); - }) - .declareMethod('repair', function () { - var storage = this.state_parameter_dict.jio_storage, - argument_list = arguments; - - return storage.allDocs({ - query: 'portal_type:("Organisation" OR "Storage Node" OR "Product" OR "Currency" OR "Category")', - }) - .push(function(result) { - var promise_list = [], - i; - for (i=0; i < result.data.total_rows; i+=1) { - // Remove local documents - promise_list.push(storage.remove(result.data.rows[i].id)); - // Remove synchronization signature, so that document is marked as never synced - // XXX Of course, this is a hack, but, until a cleaner solution is found, it is done like this - promise_list.push(storage.__storage._signature_sub_storage.remove(result.data.rows[i].id)); - } - return RSVP.all(promise_list); - }) - .push(function () { - return storage.repair.apply(storage, argument_list); - }); - - }); - -}(window, rJS, jIO)); \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation.html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation.html.html deleted file mode 100644 index b870bf454b98e2a33f77f90c927ec2fedf39e8bb..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation.html.html +++ /dev/null @@ -1,22 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <meta charset="utf-8" /> - <meta name="viewport" content="width=device-width, user-scalable=no" /> - <title>Translation Gadget</title> - - <!-- renderjs --> - <script src="rsvp.js" type="text/javascript"></script> - <script src="travel_expense_renderjs.js" type="text/javascript"></script> - - <script src="i18next.js"></script> - <script src="travel_expense_js_cookie.js"></script> - <!-- custom script --> - <script src="gadget_global.js"></script> - <script src="gadget_travel_expense_translation_data.js" type="text/javascript"></script> - <script src="gadget_travel_expense_translation.js" type="text/javascript"></script> - - </head> - <body> - </body> -</html> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation.js.js deleted file mode 100644 index e876c2bfa4134dc62dc1fdb9e9e9b70d070499a2..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation.js.js +++ /dev/null @@ -1,116 +0,0 @@ -/*global document, window, rJS, translation_data */ -/*jslint nomen: true, indent: 2 */ -(function (document, window, rJS, translation_data) { - "use strict"; - - function translate(string) { - var language = Cookies.get('language'); - if (language == undefined){ - language = 'en' - } - return translation_data[language][string] || string; - } - - rJS(window) - - ///////////////////////////////////////////////////////////////// - // ready - ///////////////////////////////////////////////////////////////// - .ready(function (gadget) { - gadget.property_dict = {}; - }) - - .declareMethod('translate', function (string) { - // XXX Allow to change the language - return translate(string); - }) - - // translate a list of elements passed and returned as string - .declareMethod('translateHtml', function (my_string) { - var temp, element_list, i, i_len, element, lookup, translate_list, target, - route_text, has_breaks, l, l_len, gadget; - - gadget = this; - - // skip if no translations available - if (gadget.property_dict.translation_disabled) { - return my_string; - } - - // NOTE: <div> cannot be used for everything... (like table rows) - // XXX: currently I only update where needed. Eventually all calls to - // translateHtml should pass "their" proper wrapping element - temp = document.createElement("div"); - temp.innerHTML = my_string; - - element_list = temp.querySelectorAll("[data-i18n]"); - - for (i = 0, i_len = element_list.length; i < i_len; i += 1) { - element = element_list[i]; - lookup = element.getAttribute("data-i18n"); - - if (lookup) { - translate_list = lookup.split(";"); - - for (l = 0, l_len = translate_list.length; l < l_len; l += 1) { - target = translate_list[l].split("]"); - - switch (target[0]) { - case "[placeholder": - case "[alt": - case "[title": - element.setAttribute(target[0].substr(1), translate(target[1])); - break; - case "[value": - has_breaks = element.previousSibling.textContent.match(/\n/g); - - // JQM inputs > this avoids calling checkboxRadio("refresh")! - if (element.tagName === "INPUT") { - switch (element.type) { - case "submit": - case "reset": - case "button": - route_text = true; - break; - } - } - if (route_text && (has_breaks || []).length === 0) { - element.previousSibling.textContent = translate(target[1]); - } - element.value = translate(target[1]); - break; - case "[parent": - element.parentNode.childNodes[0].textContent = - translate(target[1]); - break; - case "[node": - element.childNodes[0].textContent = translate(target[1]); - break; - case "[last": - // if null, append, if textnode replace, if span, appned - if (element.lastChild && element.lastChild.nodeType === 3) { - element.lastChild.textContent = translate(target[1]); - } else { - element.appendChild(document.createTextNode(translate(target[1]))); - } - break; - case "[html": - element.innerHTML = translate(target[1]); - break; - default: - // NOTE: be careful of emptying elements with children! - while (element.hasChildNodes()) { - element.removeChild(element.lastChild); - } - element.appendChild(document.createTextNode(translate(translate_list[l]))); - element.appendChild(document.createElement("span")); - break; - } - } - } - } - // return string - return temp.innerHTML; - }); - -}(document, window, rJS, translation_data)); diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation_data.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation_data.js.js deleted file mode 100644 index 3c6e805f9348eed1d223961d362de8e03cba0635..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation_data.js.js +++ /dev/null @@ -1,14 +0,0 @@ -/*globals window*/ -/*jslint indent: 2, nomen: true, maxlen: 80*/ -(function (window) { - "use strict"; - - window.translation_data = { - fr: { - "Login":"Connexion", - }, - en: { - }, - }; - -}(window)); \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_widget_listbox.html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_widget_listbox.html.html deleted file mode 100644 index 645970747b724f84191c0e238f0df1d4c72272ac..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_widget_listbox.html.html +++ /dev/null @@ -1,69 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <meta charset="utf-8" /> - <meta name="viewport" content="width=device-width, user-scalable=no" /> - <title>Listbox Compact Widget</title> - - <!-- renderjs --> - <script src="rsvp.js" type="text/javascript"></script> - <script src="travel_expense_renderjs.js" type="text/javascript"></script> - <script src="handlebars.js"></script> - - <script id="listbox-widget-table" type="text/x-handlebars-template"> - <form><div class="center"> - <div class="ui-field-contain"> - <div class="ui-input-text ui-body-{{widget_theme}} ui-corner-all ui-shadow-inset ui-input-has-clear {{widget_status_class}}"> - <input type="text" data-enhanced="true" value="{{search}}" name="search" {{widget_status_attribute}} /> - <div class="ui-btn ui-input-clear ui-input-btn ui-corner-all ui-icon-search ui-btn-icon-notext" data-i18n="[node]header-submit"> - Submit<input data-enhanced="true" type="submit" data-i18n="[value]header-submit" value="Submit" {{widget_status_attribute}} /> - </div> - </div> - </div> - </div></form> - <table class="ui-responsive ui-body-c ui-table-inset custom-force-list"> - <thead class="ui-bar-inherit"> - <tr> - {{#each column_list}} - <th>{{this}}</th> - {{/each}} - </tr> - </thead> - {{> listbox-widget-table-partial}} - <tfoot class="ui-bar-inherit"><tr><td colspan="999"> - <div class="ui-controlgroup ui-controlgroup-horizontal ui-corner-all ui-paging-menu"> - <div class="ui-controlgroup-controls"> - <a class="ui-btn ui-icon-carat-l ui-btn-icon-left responsive ui-first-child {{previous_class}}" href="{{previous_href}}" data-i18n="Previous">Previous<span></span></a> - <span class="ui-btn ui-disabled">{{count_text}}</span> - <a class="ui-btn ui-icon-carat-r ui-btn-icon-right responsive ui-last-child {{next_class}}" href="{{next_href}}" data-i18n="Next">Next<span></span></a> - </div> - </div> - </td></tr></tfoot> - </table> - </script> - - <script id="listbox-widget-table-partial" type="text/x-handlebars-template"> - <tbody> - {{#each row_list}} - <tr> - {{#each cell_list}} - <td><a class="ui-link" href="{{href}}">{{value}}</a></td> - {{/each}} - </tr> - {{/each}} - </tbody> - </script> - - <!-- custom script --> - <script src="gadget_global.js"></script> - <script src="gadget_travel_expense_widget_listbox.js" type="text/javascript"></script> - - </head> - <body> - <div class="custom-grid-wrap"> - <div class="custom-grid ui-corner-all ui-body-inherit ui-shadow ui-corner-all"> - <div class="ui-body-c ui-corner-all"></div> - </div> - </div> - </body> -</html> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_widget_listbox.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_widget_listbox.js.js deleted file mode 100644 index e6d499124459513a059b1cb3b6c7bec7c49b9f85..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_widget_listbox.js.js +++ /dev/null @@ -1,218 +0,0 @@ -/*global window, rJS, RSVP, Handlebars, loopEventListener */ -/*jslint nomen: true, indent: 2 */ -(function (window, rJS, RSVP, Handlebars, loopEventListener) { - "use strict"; - - ///////////////////////////////////////////////////////////////// - // templates - ///////////////////////////////////////////////////////////////// - var gadget_klass = rJS(window), - templater = gadget_klass.__template_element, - - listbox_widget_table = Handlebars.compile( - templater.getElementById("listbox-widget-table").innerHTML - ); - Handlebars.registerPartial( - "listbox-widget-table-partial", - templater.getElementById("listbox-widget-table-partial").innerHTML - ); - - ///////////////////////////////////////////////////////////////// - // some methods - ///////////////////////////////////////////////////////////////// - - gadget_klass - - ///////////////////////////////////////////////////////////////// - // ready - ///////////////////////////////////////////////////////////////// - .ready(function (gadget) { - gadget.property_dict = { - render_deferred: RSVP.defer() - }; - }) - - .ready(function (gadget) { - return gadget.getElement() - .push(function (element) { - gadget.property_dict.element = element; - }); - }) - - ///////////////////////////////////////////////////////////////// - // published methods - ///////////////////////////////////////////////////////////////// - - ///////////////////////////////////////////////////////////////// - // acquired methods - ///////////////////////////////////////////////////////////////// - .declareAcquiredMethod("jio_allDocs", "jio_allDocs") - .declareAcquiredMethod("getUrlFor", "getUrlFor") - .declareAcquiredMethod("translate", "translate") - .declareAcquiredMethod("translateHtml", "translateHtml") - .declareAcquiredMethod("redirect", "redirect") - - ///////////////////////////////////////////////////////////////// - // declared methods - ///////////////////////////////////////////////////////////////// - .declareMethod('render', function (option_dict) { - var gadget = this, - content = '', - k, - k_len, - search_list = [], - translated_column_list = [], - all_docs_result; - - // store initial configuration - gadget.property_dict.option_dict = option_dict; - // Prevent casting undefined to string - option_dict.search = option_dict.search || ""; - - // Create the search query - if (option_dict.search) { - for (k = 0, k_len = option_dict.column_list.length; k < k_len; k += 1) { - search_list.push(option_dict.column_list[k].select + ':"%' + option_dict.search + '%"'); - } - option_dict.query.query = '(' + search_list.join(' OR ') + ') AND ' + option_dict.query.query; - } - option_dict.begin_from = parseInt(option_dict.begin_from, 10) || 0; - // Display 10 lines by default - option_dict.line_count = option_dict.line_count || 10; - option_dict.query.limit = [option_dict.begin_from, option_dict.line_count + 1]; - - return gadget.jio_allDocs(option_dict.query) - .push(function (result) { - var promise_list = [], - pagination_promise_list = [], - i_len, - i; - all_docs_result = result; - for (i = 0, i_len = Math.min(result.data.total_rows, option_dict.line_count); i < i_len; i += 1) { - promise_list.push(gadget.getUrlFor({jio_key: result.data.rows[i].id, page: 'view'})); - } - - // Calculate next/previous links if needed - if (option_dict.begin_from === 0) { - pagination_promise_list.push(null); - } else { - pagination_promise_list.push(gadget.getUrlFor({ - jio_key: option_dict.jio_key, - page: 'view', - search: option_dict.search, - begin_from: option_dict.begin_from - option_dict.line_count - })); - } - if (result.data.total_rows > option_dict.line_count) { - pagination_promise_list.push(gadget.getUrlFor({ - jio_key: option_dict.jio_key, - page: 'view', - search: option_dict.search, - begin_from: option_dict.begin_from + option_dict.line_count - })); - } else { - pagination_promise_list.push(null); - } - - return RSVP.all([ - RSVP.all(promise_list), - RSVP.all(pagination_promise_list) - ]); - }) - .push(function (result_list) { - var link_list = result_list[0], - row_list = [], - cell_list, - i_len, - i, - j_len, - j; - - // build handlebars object - - for (j = 0, j_len = Math.min(all_docs_result.data.total_rows, option_dict.line_count); j < j_len; j += 1) { - cell_list = []; - for (i = 0, i_len = option_dict.column_list.length; i < i_len; i += 1) { - cell_list.push({ - "href": link_list[j], - "value": all_docs_result.data.rows[j].value[option_dict.column_list[i].select] - }); - } - row_list.push({"cell_list": cell_list}); - } - - for (i = 0; i < option_dict.column_list.length; i += 1) { - translated_column_list.push(gadget.translate(option_dict.column_list[i].title)); - } - return RSVP.all([ - row_list, - RSVP.all(translated_column_list), - result_list[1] - ]); - }) - .push(function (result_list) { - var previous_href = result_list[2][0], - next_href = result_list[2][1], - previous_class = "ui-disabled", - next_class = "ui-disabled", - count_text = "", - total = Math.min(all_docs_result.data.total_rows, option_dict.line_count); - - if (total === 1) { - count_text = option_dict.begin_from + total; - } else if (total > 1) { - count_text = (option_dict.begin_from + 1) + " - " + (option_dict.begin_from + total); - } - - if (previous_href !== null) { - previous_class = ""; - } - if (next_href !== null) { - next_class = ""; - } - - content += listbox_widget_table({ - search: option_dict.search, - column_list: result_list[1], - row_list: result_list[0], - previous_href: previous_href, - previous_class: previous_class, - next_href: next_href, - next_class: next_class, - count_text: count_text - }); - return gadget.translateHtml(content); - }) - .push(function (html) { - gadget.property_dict.element.querySelector(".custom-grid .ui-body-c") - .innerHTML = html; - gadget.property_dict.render_deferred.resolve(); - }); - }) - - ///////////////////////////////////////////////////////////////// - // declared service - ///////////////////////////////////////////////////////////////// - .declareService(function () { - var gadget = this; - return new RSVP.Queue() - .push(function () { - return gadget.property_dict.render_deferred.promise; - }) - .push(function () { - return loopEventListener( - gadget.property_dict.element.querySelector('form'), - 'submit', - false, - function (evt) { - return gadget.redirect({ - jio_key: gadget.property_dict.option_dict.jio_key, - page: 'view', - search: evt.target[0].value - }); - } - ); - }); - }); - -}(window, rJS, RSVP, Handlebars, loopEventListener)); diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_app.css.css b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_app.css.css deleted file mode 100644 index 583b827b5160ee56ee210f8e127b95e4bec7682d..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_app.css.css +++ /dev/null @@ -1,8 +0,0 @@ -label.travel_expense_required { - font-weight:bold !important; - color: #6666ff !important; -} - -input.travel_expense_required { - border:3px #6666ff solid !important; -} diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_excellentexport.min.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_excellentexport.min.js.xml deleted file mode 100644 index d517d79f851365cc2cae1cab4863e19796d1371a..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_excellentexport.min.js.xml +++ /dev/null @@ -1,121 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="Web Script" module="erp5.portal_type"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>_Access_contents_information_Permission</string> </key> - <value> - <tuple> - <string>Anonymous</string> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> - <string>Auditor</string> - <string>Manager</string> - <string>Owner</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Add_portal_content_Permission</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Change_local_roles_Permission</string> </key> - <value> - <tuple> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Modify_portal_content_Permission</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_View_Permission</string> </key> - <value> - <tuple> - <string>Anonymous</string> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> - <string>Auditor</string> - <string>Manager</string> - <string>Owner</string> - </tuple> - </value> - </item> - <item> - <key> <string>content_md5</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>content_type</string> </key> - <value> <string>text/javascript</string> </value> - </item> - <item> - <key> <string>default_reference</string> </key> - <value> <string>travel_expense_excellentexport.min.js</string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>travel_expense_excellentexport.min.js</string> </value> - </item> - <item> - <key> <string>language</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>portal_type</string> </key> - <value> <string>Web Script</string> </value> - </item> - <item> - <key> <string>short_title</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>title</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>version</string> </key> - <value> - <none/> - </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_jiodev_renderjs_storage.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_jiodev_renderjs_storage.js.js deleted file mode 100644 index 512e9e3a7e73e6d539f04ff869205aa624610964..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_jiodev_renderjs_storage.js.js +++ /dev/null @@ -1,117 +0,0 @@ -/*jslint nomen: true, indent: 2, maxlen: 80*/ -(function () { - "use strict"; - - /** - * The jIO renderJS extension - */ - - function unserializeRjsResponse(storage, method_name, argument_list) { - // console.info('--- rjs storage: ' + method_name); - // console.log(Array.prototype.slice.call(argument_list)); - - return new RSVP.Queue() - .push(function () { - return storage._created_promise; - }) - .push(function () { - return storage._gadget[method_name].apply(storage._gadget, - argument_list) - }) - .push(function (result) { - // console.log(result); - result = JSON.parse(result); - if (result.type === 'jio_response') { - return result.result; - } else if (result.type === 'jio_error') { - throw new jIO.util.jIOError(result.message, result.status_code); - } else { - throw new Error(result); - } - }, function (error) { - console.warn(error); - throw error; - }); - } - - function RenderJSStorage(spec) { - this._gadget = spec.gadget; - this._created_promise = this._gadget.createJio(spec.sub_storage); - } - - RenderJSStorage.prototype.get = function () { - return unserializeRjsResponse(this, 'get', arguments); - }; - - RenderJSStorage.prototype.post = function () { - return unserializeRjsResponse(this, 'post', arguments); - }; - - RenderJSStorage.prototype.put = function () { - return unserializeRjsResponse(this, 'put', arguments); - }; - - RenderJSStorage.prototype.remove = function () { - return unserializeRjsResponse(this, 'remove', arguments); - }; - - RenderJSStorage.prototype.hasCapacity = function (name) { - // console.info('--- rjs storage: hasCapacity ' + name); - return ((name === 'list') || (name === 'query') || (name === 'limit') || (name === 'sort') || (name === 'select')); - }; - - RenderJSStorage.prototype.buildQuery = function () { - return unserializeRjsResponse(this, 'buildQuery', arguments); - }; - - function dataURItoBlob(dataURI) { - // convert base64 to raw binary data held in a string - var byteString = atob(dataURI.split(',')[1]), - // separate out the mime component - mimeString = dataURI.split(',')[0].split(':')[1], - // write the bytes of the string to an ArrayBuffer - arrayBuffer = new ArrayBuffer(byteString.length), - _ia = new Uint8Array(arrayBuffer), - i; - mimeString = mimeString.slice(0, mimeString.length - ";base64".length); - for (i = 0; i < byteString.length; i += 1) { - _ia[i] = byteString.charCodeAt(i); - } - return new Blob([arrayBuffer], {type: mimeString}); - } - - RenderJSStorage.prototype.getAttachment = function (id, name, options) { - var context = this; - return new RSVP.Queue() - .push(function () { - return unserializeRjsResponse(context, 'getAttachment', [id, name, {format: 'data_url'}]); - }) - .push(function (data_uri) { - return dataURItoBlob(data_uri); - }); - }; - - RenderJSStorage.prototype.putAttachment = function (id, name, blob) { - var context = this; - if (blob.type !== 'application/json') { - throw new Error('Only accept json blob, not ' + blob.type); - } - return new RSVP.Queue() - .push(function () { - return jIO.util.readBlobAsText(blob); - }) - .push(function (evt) { - return unserializeRjsResponse(context, 'putAttachment', [id, name, evt.target.result]); - }); - }; - - RenderJSStorage.prototype.removeAttachment = function () { - return unserializeRjsResponse(this, 'removeAttachment', arguments); - }; - - RenderJSStorage.prototype.allAttachments = function () { - return unserializeRjsResponse(this, 'allAttachments', arguments); - }; - - jIO.addStorage('rjs', RenderJSStorage); -}()); diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_js_cookie.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_js_cookie.js.js deleted file mode 100644 index c8f5b51f4cdd15d61c2e39d1136d4336990782e2..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_js_cookie.js.js +++ /dev/null @@ -1,139 +0,0 @@ -/*! - * JavaScript Cookie v2.0.3 - * https://github.com/js-cookie/js-cookie - * - * Copyright 2006, 2015 Klaus Hartl & Fagner Brack - * Released under the MIT license - */ -(function (factory) { - if (typeof define === 'function' && define.amd) { - define(factory); - } else if (typeof exports === 'object') { - module.exports = factory(); - } else { - var _OldCookies = window.Cookies; - var api = window.Cookies = factory(); - api.noConflict = function () { - window.Cookies = _OldCookies; - return api; - }; - } -}(function () { - function extend () { - var i = 0; - var result = {}; - for (; i < arguments.length; i++) { - var attributes = arguments[ i ]; - for (var key in attributes) { - result[key] = attributes[key]; - } - } - return result; - } - - function init (converter) { - function api (key, value, attributes) { - var result; - - // Write - - if (arguments.length > 1) { - attributes = extend({ - path: '/' - }, api.defaults, attributes); - - if (typeof attributes.expires === 'number') { - var expires = new Date(); - expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5); - attributes.expires = expires; - } - - try { - result = JSON.stringify(value); - if (/^[\{\[]/.test(result)) { - value = result; - } - } catch (e) {} - - value = encodeURIComponent(String(value)); - value = value.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent); - - key = encodeURIComponent(String(key)); - key = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent); - key = key.replace(/[\(\)]/g, escape); - - return (document.cookie = [ - key, '=', value, - attributes.expires && '; expires=' + attributes.expires.toUTCString(), // use expires attribute, max-age is not supported by IE - attributes.path && '; path=' + attributes.path, - attributes.domain && '; domain=' + attributes.domain, - attributes.secure ? '; secure' : '' - ].join('')); - } - - // Read - - if (!key) { - result = {}; - } - - // To prevent the for loop in the first place assign an empty array - // in case there are no cookies at all. Also prevents odd result when - // calling "get()" - var cookies = document.cookie ? document.cookie.split('; ') : []; - var rdecode = /(%[0-9A-Z]{2})+/g; - var i = 0; - - for (; i < cookies.length; i++) { - var parts = cookies[i].split('='); - var name = parts[0].replace(rdecode, decodeURIComponent); - var cookie = parts.slice(1).join('='); - - if (cookie.charAt(0) === '"') { - cookie = cookie.slice(1, -1); - } - - try { - cookie = converter && converter(cookie, name) || cookie.replace(rdecode, decodeURIComponent); - - if (this.json) { - try { - cookie = JSON.parse(cookie); - } catch (e) {} - } - - if (key === name) { - result = cookie; - break; - } - - if (!key) { - result[name] = cookie; - } - } catch (e) {} - } - - return result; - } - - api.get = api.set = api; - api.getJSON = function () { - return api.apply({ - json: true - }, [].slice.call(arguments)); - }; - api.defaults = {}; - - api.remove = function (key, attributes) { - api(key, '', extend(attributes, { - expires: -1 - })); - }; - - api.withConverter = init; - - return api; - } - - return init(); -})); diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_js_cookie.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_js_cookie.js.xml deleted file mode 100644 index da05d1ff829aa3177cf63620542fac0e26a2ba74..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_js_cookie.js.xml +++ /dev/null @@ -1,318 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="Web Script" module="erp5.portal_type"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>_Access_contents_information_Permission</string> </key> - <value> - <tuple> - <string>Anonymous</string> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> - <string>Auditor</string> - <string>Manager</string> - <string>Owner</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Add_portal_content_Permission</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Change_local_roles_Permission</string> </key> - <value> - <tuple> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Modify_portal_content_Permission</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_View_Permission</string> </key> - <value> - <tuple> - <string>Anonymous</string> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> - <string>Auditor</string> - <string>Manager</string> - <string>Owner</string> - </tuple> - </value> - </item> - <item> - <key> <string>content_md5</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>default_reference</string> </key> - <value> <string>travel_expense_js_cookie.js</string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>travel_expense_js_cookie.js</string> </value> - </item> - <item> - <key> <string>language</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>portal_type</string> </key> - <value> <string>Web Script</string> </value> - </item> - <item> - <key> <string>short_title</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>version</string> </key> - <value> <string>2.0.3</string> </value> - </item> - <item> - <key> <string>workflow_history</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> - </value> - </item> - </dictionary> - </pickle> - </record> - <record id="2" aka="AAAAAAAAAAI="> - <pickle> - <global name="PersistentMapping" module="Persistence.mapping"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>data</string> </key> - <value> - <dictionary> - <item> - <key> <string>document_publication_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> - </value> - </item> - <item> - <key> <string>edit_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> - </value> - </item> - <item> - <key> <string>processing_status_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> - </value> - </item> - </dictionary> - </value> - </item> - </dictionary> - </pickle> - </record> - <record id="3" aka="AAAAAAAAAAM="> - <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> - </pickle> - <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> <string>publish_alive</string> </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1472526622.79</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - <item> - <key> <string>validation_state</string> </key> - <value> <string>published_alive</string> </value> - </item> - </dictionary> - </list> - </tuple> - </pickle> - </record> - <record id="4" aka="AAAAAAAAAAQ="> - <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> - </pickle> - <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> <string>edit</string> </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>serial</string> </key> - <value> <string>0.0.0.0</string> </value> - </item> - <item> - <key> <string>state</string> </key> - <value> <string>current</string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1472523951.23</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - </dictionary> - </list> - </tuple> - </pickle> - </record> - <record id="5" aka="AAAAAAAAAAU="> - <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> - </pickle> - <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> <string>detect_converted_file</string> </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>external_processing_state</string> </key> - <value> <string>converted</string> </value> - </item> - <item> - <key> <string>serial</string> </key> - <value> <string>0.0.0.0</string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1472523951.21</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - </dictionary> - </list> - </tuple> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_megapix_image.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_megapix_image.js.js deleted file mode 100644 index 65384a3704841b1f079b323aca245a1d548f3246..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_megapix_image.js.js +++ /dev/null @@ -1,263 +0,0 @@ -/** - * Mega pixel image rendering library for iOS6 Safari - * - * Fixes iOS6 Safari's image file rendering issue for large size image (over mega-pixel), - * which causes unexpected subsampling when drawing it in canvas. - * By using this library, you can safely render the image with proper stretching. - * - * Copyright (c) 2012 Shinichi Tomita <shinichi.tomita@gmail.com> - * Released under the MIT license - */ -(function() { - - /** - * Detect subsampling in loaded image. - * In iOS, larger images than 2M pixels may be subsampled in rendering. - */ - function detectSubsampling(img) { - var iw = img.naturalWidth, ih = img.naturalHeight; - if (iw * ih > 1024 * 1024) { // subsampling may happen over megapixel image - var canvas = document.createElement('canvas'); - canvas.width = canvas.height = 1; - var ctx = canvas.getContext('2d'); - ctx.drawImage(img, -iw + 1, 0); - // subsampled image becomes half smaller in rendering size. - // check alpha channel value to confirm image is covering edge pixel or not. - // if alpha value is 0 image is not covering, hence subsampled. - return ctx.getImageData(0, 0, 1, 1).data[3] === 0; - } else { - return false; - } - } - - /** - * Detecting vertical squash in loaded image. - * Fixes a bug which squash image vertically while drawing into canvas for some images. - */ - function detectVerticalSquash(img, iw, ih) { - var canvas = document.createElement('canvas'); - canvas.width = 1; - canvas.height = ih; - var ctx = canvas.getContext('2d'); - ctx.drawImage(img, 0, 0); - var data = ctx.getImageData(0, 0, 1, ih).data; - // search image edge pixel position in case it is squashed vertically. - var sy = 0; - var ey = ih; - var py = ih; - while (py > sy) { - var alpha = data[(py - 1) * 4 + 3]; - if (alpha === 0) { - ey = py; - } else { - sy = py; - } - py = (ey + sy) >> 1; - } - var ratio = (py / ih); - return (ratio===0)?1:ratio; - } - - /** - * Rendering image element (with resizing) and get its data URL - */ - function renderImageToDataURL(img, options, doSquash) { - var canvas = document.createElement('canvas'); - renderImageToCanvas(img, canvas, options, doSquash); - return canvas.toDataURL("image/jpeg", options.quality || 0.8); - } - - /** - * Rendering image element (with resizing) into the canvas element - */ - function renderImageToCanvas(img, canvas, options, doSquash) { - var iw = img.naturalWidth, ih = img.naturalHeight; - if (!(iw+ih)) return; - var width = options.width, height = options.height; - var ctx = canvas.getContext('2d'); - ctx.save(); - transformCoordinate(canvas, ctx, width, height, options.orientation); - var subsampled = detectSubsampling(img); - if (subsampled) { - iw /= 2; - ih /= 2; - } - var d = 1024; // size of tiling canvas - var tmpCanvas = document.createElement('canvas'); - tmpCanvas.width = tmpCanvas.height = d; - var tmpCtx = tmpCanvas.getContext('2d'); - var vertSquashRatio = doSquash ? detectVerticalSquash(img, iw, ih) : 1; - var dw = Math.ceil(d * width / iw); - var dh = Math.ceil(d * height / ih / vertSquashRatio); - var sy = 0; - var dy = 0; - while (sy < ih) { - var sx = 0; - var dx = 0; - while (sx < iw) { - tmpCtx.clearRect(0, 0, d, d); - tmpCtx.drawImage(img, -sx, -sy); - ctx.drawImage(tmpCanvas, 0, 0, d, d, dx, dy, dw, dh); - sx += d; - dx += dw; - } - sy += d; - dy += dh; - } - ctx.restore(); - tmpCanvas = tmpCtx = null; - } - - /** - * Transform canvas coordination according to specified frame size and orientation - * Orientation value is from EXIF tag - */ - function transformCoordinate(canvas, ctx, width, height, orientation) { - switch (orientation) { - case 5: - case 6: - case 7: - case 8: - canvas.width = height; - canvas.height = width; - break; - default: - canvas.width = width; - canvas.height = height; - } - switch (orientation) { - case 2: - // horizontal flip - ctx.translate(width, 0); - ctx.scale(-1, 1); - break; - case 3: - // 180 rotate left - ctx.translate(width, height); - ctx.rotate(Math.PI); - break; - case 4: - // vertical flip - ctx.translate(0, height); - ctx.scale(1, -1); - break; - case 5: - // vertical flip + 90 rotate right - ctx.rotate(0.5 * Math.PI); - ctx.scale(1, -1); - break; - case 6: - // 90 rotate right - ctx.rotate(0.5 * Math.PI); - ctx.translate(0, -height); - break; - case 7: - // horizontal flip + 90 rotate right - ctx.rotate(0.5 * Math.PI); - ctx.translate(width, -height); - ctx.scale(-1, 1); - break; - case 8: - // 90 rotate left - ctx.rotate(-0.5 * Math.PI); - ctx.translate(-width, 0); - break; - default: - break; - } - } - - var URL = window.URL && window.URL.createObjectURL ? window.URL : - window.webkitURL && window.webkitURL.createObjectURL ? window.webkitURL : - null; - - /** - * MegaPixImage class - */ - function MegaPixImage(srcImage) { - if (window.Blob && srcImage instanceof Blob) { - if (!URL) { throw Error("No createObjectURL function found to create blob url"); } - var img = new Image(); - img.src = URL.createObjectURL(srcImage); - this.blob = srcImage; - srcImage = img; - } - if (!srcImage.naturalWidth && !srcImage.naturalHeight) { - var _this = this; - srcImage.onload = srcImage.onerror = function() { - var listeners = _this.imageLoadListeners; - if (listeners) { - _this.imageLoadListeners = null; - for (var i=0, len=listeners.length; i<len; i++) { - listeners[i](); - } - } - }; - this.imageLoadListeners = []; - } - this.srcImage = srcImage; - } - - /** - * Rendering megapix image into specified target element - */ - MegaPixImage.prototype.render = function(target, options, callback) { - if (this.imageLoadListeners) { - var _this = this; - this.imageLoadListeners.push(function() { _this.render(target, options, callback); }); - return; - } - options = options || {}; - var imgWidth = this.srcImage.naturalWidth, imgHeight = this.srcImage.naturalHeight, - width = options.width, height = options.height, - maxWidth = options.maxWidth, maxHeight = options.maxHeight, - doSquash = !this.blob || this.blob.type === 'image/jpeg'; - if (width && !height) { - height = (imgHeight * width / imgWidth) << 0; - } else if (height && !width) { - width = (imgWidth * height / imgHeight) << 0; - } else { - width = imgWidth; - height = imgHeight; - } - if (maxWidth && width > maxWidth) { - width = maxWidth; - height = (imgHeight * width / imgWidth) << 0; - } - if (maxHeight && height > maxHeight) { - height = maxHeight; - width = (imgWidth * height / imgHeight) << 0; - } - var opt = { width : width, height : height }; - for (var k in options) opt[k] = options[k]; - - var tagName = target.tagName.toLowerCase(); - if (tagName === 'img') { - target.src = renderImageToDataURL(this.srcImage, opt, doSquash); - } else if (tagName === 'canvas') { - renderImageToCanvas(this.srcImage, target, opt, doSquash); - } - if (typeof this.onrender === 'function') { - this.onrender(target); - } - if (callback) { - callback(); - } - if (this.blob) { - this.blob = null; - URL.revokeObjectURL(this.srcImage.src); - } - }; - - /** - * Export class to global - */ - if (typeof define === 'function' && define.amd) { - define([], function() { return MegaPixImage; }); // for AMD loader - } else if (typeof exports === 'object') { - module.exports = MegaPixImage; // for CommonJS - } else { - this.MegaPixImage = MegaPixImage; - } - -})(); diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_megapix_image.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_megapix_image.js.xml deleted file mode 100644 index af65500806b7bcf7251153c214d6538465f913d2..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_megapix_image.js.xml +++ /dev/null @@ -1,121 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="Web Script" module="erp5.portal_type"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>_Access_contents_information_Permission</string> </key> - <value> - <tuple> - <string>Anonymous</string> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> - <string>Auditor</string> - <string>Manager</string> - <string>Owner</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Add_portal_content_Permission</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Change_local_roles_Permission</string> </key> - <value> - <tuple> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Modify_portal_content_Permission</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_View_Permission</string> </key> - <value> - <tuple> - <string>Anonymous</string> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> - <string>Auditor</string> - <string>Manager</string> - <string>Owner</string> - </tuple> - </value> - </item> - <item> - <key> <string>content_md5</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>content_type</string> </key> - <value> <string>text/javascript</string> </value> - </item> - <item> - <key> <string>default_reference</string> </key> - <value> <string>travel_expense_megapix_image.js</string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>travel_expense_megapix_image.js</string> </value> - </item> - <item> - <key> <string>language</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>portal_type</string> </key> - <value> <string>Web Script</string> </value> - </item> - <item> - <key> <string>short_title</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>title</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>version</string> </key> - <value> - <none/> - </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_renderjs.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_renderjs.js.js deleted file mode 100644 index cd4c213b76c127625cf2efe1a832c51732a05864..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_renderjs.js.js +++ /dev/null @@ -1,2216 +0,0 @@ -/* - * js_channel is a very lightweight abstraction on top of - * postMessage which defines message formats and semantics - * to support interactions more rich than just message passing - * js_channel supports: - * + query/response - traditional rpc - * + query/update/response - incremental async return of results - * to a query - * + notifications - fire and forget - * + error handling - * - * js_channel is based heavily on json-rpc, but is focused at the - * problem of inter-iframe RPC. - * - * Message types: - * There are 5 types of messages that can flow over this channel, - * and you may determine what type of message an object is by - * examining its parameters: - * 1. Requests - * + integer id - * + string method - * + (optional) any params - * 2. Callback Invocations (or just "Callbacks") - * + integer id - * + string callback - * + (optional) params - * 3. Error Responses (or just "Errors) - * + integer id - * + string error - * + (optional) string message - * 4. Responses - * + integer id - * + (optional) any result - * 5. Notifications - * + string method - * + (optional) any params - */ - -;var Channel = (function() { - "use strict"; - - // current transaction id, start out at a random *odd* number between 1 and a million - // There is one current transaction counter id per page, and it's shared between - // channel instances. That means of all messages posted from a single javascript - // evaluation context, we'll never have two with the same id. - var s_curTranId = Math.floor(Math.random()*1000001); - - // no two bound channels in the same javascript evaluation context may have the same origin, scope, and window. - // futher if two bound channels have the same window and scope, they may not have *overlapping* origins - // (either one or both support '*'). This restriction allows a single onMessage handler to efficiently - // route messages based on origin and scope. The s_boundChans maps origins to scopes, to message - // handlers. Request and Notification messages are routed using this table. - // Finally, channels are inserted into this table when built, and removed when destroyed. - var s_boundChans = { }; - - // add a channel to s_boundChans, throwing if a dup exists - function s_addBoundChan(win, origin, scope, handler) { - function hasWin(arr) { - for (var i = 0; i < arr.length; i++) if (arr[i].win === win) return true; - return false; - } - - // does she exist? - var exists = false; - - - if (origin === '*') { - // we must check all other origins, sadly. - for (var k in s_boundChans) { - if (!s_boundChans.hasOwnProperty(k)) continue; - if (k === '*') continue; - if (typeof s_boundChans[k][scope] === 'object') { - exists = hasWin(s_boundChans[k][scope]); - if (exists) break; - } - } - } else { - // we must check only '*' - if ((s_boundChans['*'] && s_boundChans['*'][scope])) { - exists = hasWin(s_boundChans['*'][scope]); - } - if (!exists && s_boundChans[origin] && s_boundChans[origin][scope]) - { - exists = hasWin(s_boundChans[origin][scope]); - } - } - if (exists) throw "A channel is already bound to the same window which overlaps with origin '"+ origin +"' and has scope '"+scope+"'"; - - if (typeof s_boundChans[origin] != 'object') s_boundChans[origin] = { }; - if (typeof s_boundChans[origin][scope] != 'object') s_boundChans[origin][scope] = [ ]; - s_boundChans[origin][scope].push({win: win, handler: handler}); - } - - function s_removeBoundChan(win, origin, scope) { - var arr = s_boundChans[origin][scope]; - for (var i = 0; i < arr.length; i++) { - if (arr[i].win === win) { - arr.splice(i,1); - } - } - if (s_boundChans[origin][scope].length === 0) { - delete s_boundChans[origin][scope]; - } - } - - function s_isArray(obj) { - if (Array.isArray) return Array.isArray(obj); - else { - return (obj.constructor.toString().indexOf("Array") != -1); - } - } - - // No two outstanding outbound messages may have the same id, period. Given that, a single table - // mapping "transaction ids" to message handlers, allows efficient routing of Callback, Error, and - // Response messages. Entries are added to this table when requests are sent, and removed when - // responses are received. - var s_transIds = { }; - - // class singleton onMessage handler - // this function is registered once and all incoming messages route through here. This - // arrangement allows certain efficiencies, message data is only parsed once and dispatch - // is more efficient, especially for large numbers of simultaneous channels. - var s_onMessage = function(e) { - try { - var m = JSON.parse(e.data); - if (typeof m !== 'object' || m === null) throw "malformed"; - } catch(e) { - // just ignore any posted messages that do not consist of valid JSON - return; - } - - var w = e.source; - var o = e.origin; - var s, i, meth; - - if (typeof m.method === 'string') { - var ar = m.method.split('::'); - if (ar.length == 2) { - s = ar[0]; - meth = ar[1]; - } else { - meth = m.method; - } - } - - if (typeof m.id !== 'undefined') i = m.id; - - // w is message source window - // o is message origin - // m is parsed message - // s is message scope - // i is message id (or undefined) - // meth is unscoped method name - // ^^ based on these factors we can route the message - - // if it has a method it's either a notification or a request, - // route using s_boundChans - if (typeof meth === 'string') { - var delivered = false; - if (s_boundChans[o] && s_boundChans[o][s]) { - for (var j = 0; j < s_boundChans[o][s].length; j++) { - if (s_boundChans[o][s][j].win === w) { - s_boundChans[o][s][j].handler(o, meth, m); - delivered = true; - break; - } - } - } - - if (!delivered && s_boundChans['*'] && s_boundChans['*'][s]) { - for (var j = 0; j < s_boundChans['*'][s].length; j++) { - if (s_boundChans['*'][s][j].win === w) { - s_boundChans['*'][s][j].handler(o, meth, m); - break; - } - } - } - } - // otherwise it must have an id (or be poorly formed - else if (typeof i != 'undefined') { - if (s_transIds[i]) s_transIds[i](o, meth, m); - } - }; - - // Setup postMessage event listeners - if (window.addEventListener) window.addEventListener('message', s_onMessage, false); - else if(window.attachEvent) window.attachEvent('onmessage', s_onMessage); - - /* a messaging channel is constructed from a window and an origin. - * the channel will assert that all messages received over the - * channel match the origin - * - * Arguments to Channel.build(cfg): - * - * cfg.window - the remote window with which we'll communicate - * cfg.origin - the expected origin of the remote window, may be '*' - * which matches any origin - * cfg.scope - the 'scope' of messages. a scope string that is - * prepended to message names. local and remote endpoints - * of a single channel must agree upon scope. Scope may - * not contain double colons ('::'). - * cfg.debugOutput - A boolean value. If true and window.console.log is - * a function, then debug strings will be emitted to that - * function. - * cfg.debugOutput - A boolean value. If true and window.console.log is - * a function, then debug strings will be emitted to that - * function. - * cfg.postMessageObserver - A function that will be passed two arguments, - * an origin and a message. It will be passed these immediately - * before messages are posted. - * cfg.gotMessageObserver - A function that will be passed two arguments, - * an origin and a message. It will be passed these arguments - * immediately after they pass scope and origin checks, but before - * they are processed. - * cfg.onReady - A function that will be invoked when a channel becomes "ready", - * this occurs once both sides of the channel have been - * instantiated and an application level handshake is exchanged. - * the onReady function will be passed a single argument which is - * the channel object that was returned from build(). - */ - return { - build: function(cfg) { - var debug = function(m) { - if (cfg.debugOutput && window.console && window.console.log) { - // try to stringify, if it doesn't work we'll let javascript's built in toString do its magic - try { if (typeof m !== 'string') m = JSON.stringify(m); } catch(e) { } - console.log("["+chanId+"] " + m); - } - }; - - /* browser capabilities check */ - if (!window.postMessage) throw("jschannel cannot run this browser, no postMessage"); - if (!window.JSON || !window.JSON.stringify || ! window.JSON.parse) { - throw("jschannel cannot run this browser, no JSON parsing/serialization"); - } - - /* basic argument validation */ - if (typeof cfg != 'object') throw("Channel build invoked without a proper object argument"); - - if (!cfg.window || !cfg.window.postMessage) throw("Channel.build() called without a valid window argument"); - - /* we'd have to do a little more work to be able to run multiple channels that intercommunicate the same - * window... Not sure if we care to support that */ - if (window === cfg.window) throw("target window is same as present window -- not allowed"); - - // let's require that the client specify an origin. if we just assume '*' we'll be - // propagating unsafe practices. that would be lame. - var validOrigin = false; - if (typeof cfg.origin === 'string') { - var oMatch; - if (cfg.origin === "*") validOrigin = true; - // allow valid domains under http and https. Also, trim paths off otherwise valid origins. - else if (null !== (oMatch = cfg.origin.match(/^https?:\/\/(?:[-a-zA-Z0-9_\.])+(?::\d+)?/))) { - cfg.origin = oMatch[0].toLowerCase(); - validOrigin = true; - } - } - - if (!validOrigin) throw ("Channel.build() called with an invalid origin"); - - if (typeof cfg.scope !== 'undefined') { - if (typeof cfg.scope !== 'string') throw 'scope, when specified, must be a string'; - if (cfg.scope.split('::').length > 1) throw "scope may not contain double colons: '::'"; - } - - /* private variables */ - // generate a random and psuedo unique id for this channel - var chanId = (function () { - var text = ""; - var alpha = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; - for(var i=0; i < 5; i++) text += alpha.charAt(Math.floor(Math.random() * alpha.length)); - return text; - })(); - - // registrations: mapping method names to call objects - var regTbl = { }; - // current oustanding sent requests - var outTbl = { }; - // current oustanding received requests - var inTbl = { }; - // are we ready yet? when false we will block outbound messages. - var ready = false; - var pendingQueue = [ ]; - - var createTransaction = function(id,origin,callbacks) { - var shouldDelayReturn = false; - var completed = false; - - return { - origin: origin, - invoke: function(cbName, v) { - // verify in table - if (!inTbl[id]) throw "attempting to invoke a callback of a nonexistent transaction: " + id; - // verify that the callback name is valid - var valid = false; - for (var i = 0; i < callbacks.length; i++) if (cbName === callbacks[i]) { valid = true; break; } - if (!valid) throw "request supports no such callback '" + cbName + "'"; - - // send callback invocation - postMessage({ id: id, callback: cbName, params: v}); - }, - error: function(error, message) { - completed = true; - // verify in table - if (!inTbl[id]) throw "error called for nonexistent message: " + id; - - // remove transaction from table - delete inTbl[id]; - - // send error - postMessage({ id: id, error: error, message: message }); - }, - complete: function(v) { - completed = true; - // verify in table - if (!inTbl[id]) throw "complete called for nonexistent message: " + id; - // remove transaction from table - delete inTbl[id]; - // send complete - postMessage({ id: id, result: v }); - }, - delayReturn: function(delay) { - if (typeof delay === 'boolean') { - shouldDelayReturn = (delay === true); - } - return shouldDelayReturn; - }, - completed: function() { - return completed; - } - }; - }; - - var setTransactionTimeout = function(transId, timeout, method) { - return window.setTimeout(function() { - if (outTbl[transId]) { - // XXX: what if client code raises an exception here? - var msg = "timeout (" + timeout + "ms) exceeded on method '" + method + "'"; - (1,outTbl[transId].error)("timeout_error", msg); - delete outTbl[transId]; - delete s_transIds[transId]; - } - }, timeout); - }; - - var onMessage = function(origin, method, m) { - // if an observer was specified at allocation time, invoke it - if (typeof cfg.gotMessageObserver === 'function') { - // pass observer a clone of the object so that our - // manipulations are not visible (i.e. method unscoping). - // This is not particularly efficient, but then we expect - // that message observers are primarily for debugging anyway. - try { - cfg.gotMessageObserver(origin, m); - } catch (e) { - debug("gotMessageObserver() raised an exception: " + e.toString()); - } - } - - // now, what type of message is this? - if (m.id && method) { - // a request! do we have a registered handler for this request? - if (regTbl[method]) { - var trans = createTransaction(m.id, origin, m.callbacks ? m.callbacks : [ ]); - inTbl[m.id] = { }; - try { - // callback handling. we'll magically create functions inside the parameter list for each - // callback - if (m.callbacks && s_isArray(m.callbacks) && m.callbacks.length > 0) { - for (var i = 0; i < m.callbacks.length; i++) { - var path = m.callbacks[i]; - var obj = m.params; - var pathItems = path.split('/'); - for (var j = 0; j < pathItems.length - 1; j++) { - var cp = pathItems[j]; - if (typeof obj[cp] !== 'object') obj[cp] = { }; - obj = obj[cp]; - } - obj[pathItems[pathItems.length - 1]] = (function() { - var cbName = path; - return function(params) { - return trans.invoke(cbName, params); - }; - })(); - } - } - var resp = regTbl[method](trans, m.params); - if (!trans.delayReturn() && !trans.completed()) trans.complete(resp); - } catch(e) { - // automagic handling of exceptions: - var error = "runtime_error"; - var message = null; - // * if it's a string then it gets an error code of 'runtime_error' and string is the message - if (typeof e === 'string') { - message = e; - } else if (typeof e === 'object') { - // either an array or an object - // * if it's an array of length two, then array[0] is the code, array[1] is the error message - if (e && s_isArray(e) && e.length == 2) { - error = e[0]; - message = e[1]; - } - // * if it's an object then we'll look form error and message parameters - else if (typeof e.error === 'string') { - error = e.error; - if (!e.message) message = ""; - else if (typeof e.message === 'string') message = e.message; - else e = e.message; // let the stringify/toString message give us a reasonable verbose error string - } - } - - // message is *still* null, let's try harder - if (message === null) { - try { - message = JSON.stringify(e); - /* On MSIE8, this can result in 'out of memory', which - * leaves message undefined. */ - if (typeof(message) == 'undefined') - message = e.toString(); - } catch (e2) { - message = e.toString(); - } - } - - trans.error(error,message); - } - } - } else if (m.id && m.callback) { - if (!outTbl[m.id] ||!outTbl[m.id].callbacks || !outTbl[m.id].callbacks[m.callback]) - { - debug("ignoring invalid callback, id:"+m.id+ " (" + m.callback +")"); - } else { - // XXX: what if client code raises an exception here? - outTbl[m.id].callbacks[m.callback](m.params); - } - } else if (m.id) { - if (!outTbl[m.id]) { - debug("ignoring invalid response: " + m.id); - } else { - // XXX: what if client code raises an exception here? - if (m.error) { - (1,outTbl[m.id].error)(m.error, m.message); - } else { - if (m.result !== undefined) (1,outTbl[m.id].success)(m.result); - else (1,outTbl[m.id].success)(); - } - delete outTbl[m.id]; - delete s_transIds[m.id]; - } - } else if (method) { - // tis a notification. - if (regTbl[method]) { - // yep, there's a handler for that. - // transaction has only origin for notifications. - regTbl[method]({ origin: origin }, m.params); - // if the client throws, we'll just let it bubble out - // what can we do? Also, here we'll ignore return values - } - } - }; - - // now register our bound channel for msg routing - s_addBoundChan(cfg.window, cfg.origin, ((typeof cfg.scope === 'string') ? cfg.scope : ''), onMessage); - - // scope method names based on cfg.scope specified when the Channel was instantiated - var scopeMethod = function(m) { - if (typeof cfg.scope === 'string' && cfg.scope.length) m = [cfg.scope, m].join("::"); - return m; - }; - - // a small wrapper around postmessage whose primary function is to handle the - // case that clients start sending messages before the other end is "ready" - var postMessage = function(msg, force) { - if (!msg) throw "postMessage called with null message"; - - // delay posting if we're not ready yet. - var verb = (ready ? "post " : "queue "); - debug(verb + " message: " + JSON.stringify(msg)); - if (!force && !ready) { - pendingQueue.push(msg); - } else { - if (typeof cfg.postMessageObserver === 'function') { - try { - cfg.postMessageObserver(cfg.origin, msg); - } catch (e) { - debug("postMessageObserver() raised an exception: " + e.toString()); - } - } - - cfg.window.postMessage(JSON.stringify(msg), cfg.origin); - } - }; - - var onReady = function(trans, type) { - debug('ready msg received'); - if (ready) throw "received ready message while in ready state. help!"; - - if (type === 'ping') { - chanId += '-R'; - } else { - chanId += '-L'; - } - - obj.unbind('__ready'); // now this handler isn't needed any more. - ready = true; - debug('ready msg accepted.'); - - if (type === 'ping') { - obj.notify({ method: '__ready', params: 'pong' }); - } - - // flush queue - while (pendingQueue.length) { - postMessage(pendingQueue.pop()); - } - - // invoke onReady observer if provided - if (typeof cfg.onReady === 'function') cfg.onReady(obj); - }; - - var obj = { - // tries to unbind a bound message handler. returns false if not possible - unbind: function (method) { - if (regTbl[method]) { - if (!(delete regTbl[method])) throw ("can't delete method: " + method); - return true; - } - return false; - }, - bind: function (method, cb) { - if (!method || typeof method !== 'string') throw "'method' argument to bind must be string"; - if (!cb || typeof cb !== 'function') throw "callback missing from bind params"; - - if (regTbl[method]) throw "method '"+method+"' is already bound!"; - regTbl[method] = cb; - return this; - }, - call: function(m) { - if (!m) throw 'missing arguments to call function'; - if (!m.method || typeof m.method !== 'string') throw "'method' argument to call must be string"; - if (!m.success || typeof m.success !== 'function') throw "'success' callback missing from call"; - - // now it's time to support the 'callback' feature of jschannel. We'll traverse the argument - // object and pick out all of the functions that were passed as arguments. - var callbacks = { }; - var callbackNames = [ ]; - - var pruneFunctions = function (path, obj) { - if (typeof obj === 'object') { - for (var k in obj) { - if (!obj.hasOwnProperty(k)) continue; - var np = path + (path.length ? '/' : '') + k; - if (typeof obj[k] === 'function') { - callbacks[np] = obj[k]; - callbackNames.push(np); - delete obj[k]; - } else if (typeof obj[k] === 'object') { - pruneFunctions(np, obj[k]); - } - } - } - }; - pruneFunctions("", m.params); - - // build a 'request' message and send it - var msg = { id: s_curTranId, method: scopeMethod(m.method), params: m.params }; - if (callbackNames.length) msg.callbacks = callbackNames; - - if (m.timeout) - // XXX: This function returns a timeout ID, but we don't do anything with it. - // We might want to keep track of it so we can cancel it using clearTimeout() - // when the transaction completes. - setTransactionTimeout(s_curTranId, m.timeout, scopeMethod(m.method)); - - // insert into the transaction table - outTbl[s_curTranId] = { callbacks: callbacks, error: m.error, success: m.success }; - s_transIds[s_curTranId] = onMessage; - - // increment current id - s_curTranId++; - - postMessage(msg); - }, - notify: function(m) { - if (!m) throw 'missing arguments to notify function'; - if (!m.method || typeof m.method !== 'string') throw "'method' argument to notify must be string"; - - // no need to go into any transaction table - postMessage({ method: scopeMethod(m.method), params: m.params }); - }, - destroy: function () { - s_removeBoundChan(cfg.window, cfg.origin, ((typeof cfg.scope === 'string') ? cfg.scope : '')); - if (window.removeEventListener) window.removeEventListener('message', onMessage, false); - else if(window.detachEvent) window.detachEvent('onmessage', onMessage); - ready = false; - regTbl = { }; - inTbl = { }; - outTbl = { }; - cfg.origin = null; - pendingQueue = [ ]; - debug("channel destroyed"); - chanId = ""; - } - }; - - obj.bind('__ready', onReady); - setTimeout(function() { - postMessage({ method: scopeMethod('__ready'), params: "ping" }, true); - }, 0); - - return obj; - } - }; -})(); -;/* - * DOMParser HTML extension - * 2012-09-04 - * - * By Eli Grey, http://eligrey.com - * Public domain. - * NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. - */ -/*! @source https://gist.github.com/1129031 */ -(function (DOMParser) { - "use strict"; - var DOMParser_proto = DOMParser.prototype, - real_parseFromString = DOMParser_proto.parseFromString; - - // Firefox/Opera/IE throw errors on unsupported types - try { - // WebKit returns null on unsupported types - if ((new DOMParser()).parseFromString("", "text/html")) { - // text/html parsing is natively supported - return; - } - } catch (ignore) {} - - DOMParser_proto.parseFromString = function (markup, type) { - var result, doc, doc_elt, first_elt; - if (/^\s*text\/html\s*(?:;|$)/i.test(type)) { - doc = document.implementation.createHTMLDocument(""); - doc_elt = doc.documentElement; - - doc_elt.innerHTML = markup; - first_elt = doc_elt.firstElementChild; - - if (doc_elt.childElementCount === 1 - && first_elt.localName.toLowerCase() === "html") { - doc.replaceChild(first_elt, doc_elt); - } - - result = doc; - } else { - result = real_parseFromString.apply(this, arguments); - } - return result; - }; -}(DOMParser)); - -;// IE does not support have Document.prototype.contains. -if (typeof document.contains !== 'function') { - Document.prototype.contains = function(node) { - if (node === this || node.parentNode === this) - return true; - return this.documentElement.contains(node); - } -} -;/*! RenderJs */ -/*global console*/ -/*jslint nomen: true*/ -function loopEventListener(target, type, useCapture, callback) { - "use strict"; - ////////////////////////// - // Infinite event listener (promise is never resolved) - // eventListener is removed when promise is cancelled/rejected - ////////////////////////// - var handle_event_callback, - callback_promise; - - function cancelResolver() { - if ((callback_promise !== undefined) && - (typeof callback_promise.cancel === "function")) { - callback_promise.cancel(); - } - } - - function canceller() { - if (handle_event_callback !== undefined) { - target.removeEventListener(type, handle_event_callback, useCapture); - } - cancelResolver(); - } - function itsANonResolvableTrap(resolve, reject) { - - handle_event_callback = function (evt) { - evt.stopPropagation(); - evt.preventDefault(); - cancelResolver(); - callback_promise = new RSVP.Queue() - .push(function () { - return callback(evt); - }) - .push(undefined, function (error) { - if (!(error instanceof RSVP.CancellationError)) { - canceller(); - reject(error); - } - }); - }; - - target.addEventListener(type, handle_event_callback, useCapture); - } - return new RSVP.Promise(itsANonResolvableTrap, canceller); -} - -/* - * renderJs - Generic Gadget library renderer. - * http://www.renderjs.org/documentation - */ -(function (document, window, RSVP, DOMParser, Channel, MutationObserver, - Node, FileReader, Blob) { - "use strict"; - - function readBlobAsDataURL(blob) { - var fr = new FileReader(); - return new RSVP.Promise(function (resolve, reject) { - fr.addEventListener("load", function (evt) { - resolve(evt.target.result); - }); - fr.addEventListener("error", reject); - fr.readAsDataURL(blob); - }, function () { - fr.abort(); - }); - } - - function ajax(url) { - var xhr; - function resolver(resolve, reject) { - function handler() { - try { - if (xhr.readyState === 0) { - // UNSENT - reject(xhr); - } else if (xhr.readyState === 4) { - // DONE - if ((xhr.status < 200) || (xhr.status >= 300) || - (!/^text\/html[;]?/.test( - xhr.getResponseHeader("Content-Type") || "" - ))) { - reject(xhr); - } else { - resolve(xhr); - } - } - } catch (e) { - reject(e); - } - } - - xhr = new XMLHttpRequest(); - xhr.open("GET", url); - xhr.onreadystatechange = handler; - xhr.setRequestHeader('Accept', 'text/html'); - xhr.withCredentials = true; - xhr.send(); - } - - function canceller() { - if ((xhr !== undefined) && (xhr.readyState !== xhr.DONE)) { - xhr.abort(); - } - } - return new RSVP.Promise(resolver, canceller); - } - - var gadget_model_dict = {}, - javascript_registration_dict = {}, - stylesheet_registration_dict = {}, - gadget_loading_klass, - loading_klass_promise, - renderJS, - Monitor, - isAbsoluteOrDataURL = new RegExp('^(?:[a-z]+:)?//|data:', 'i'); - - ///////////////////////////////////////////////////////////////// - // Helper functions - ///////////////////////////////////////////////////////////////// - function listenHashChange(gadget) { - - function extractHashAndDispatch(evt) { - var hash = (evt.newURL || window.location.toString()).split('#')[1], - subhashes, - subhash, - keyvalue, - index, - options = {}; - if (hash === undefined) { - hash = ""; - } else { - hash = hash.split('?')[0]; - } - - function optionalize(key, value, dict) { - var key_list = key.split("."), - kk, - i; - for (i = 0; i < key_list.length; i += 1) { - kk = key_list[i]; - if (i === key_list.length - 1) { - dict[kk] = value; - } else { - if (!dict.hasOwnProperty(kk)) { - dict[kk] = {}; - } - dict = dict[kk]; - } - } - } - - subhashes = hash.split('&'); - for (index in subhashes) { - if (subhashes.hasOwnProperty(index)) { - subhash = subhashes[index]; - if (subhash !== '') { - keyvalue = subhash.split('='); - if (keyvalue.length === 2) { - - optionalize(decodeURIComponent(keyvalue[0]), - decodeURIComponent(keyvalue[1]), - options); - - } - } - } - } - - if (gadget.render !== undefined) { - return gadget.render(options); - } - } - - var result = loopEventListener(window, 'hashchange', false, - extractHashAndDispatch), - event = document.createEvent("Event"); - - event.initEvent('hashchange', true, true); - event.newURL = window.location.toString(); - window.dispatchEvent(event); - return result; - } - - - function removeHash(url) { - var index = url.indexOf('#'); - if (index > 0) { - url = url.substring(0, index); - } - return url; - } - - function letsCrash(e) { - if (e.constructor === XMLHttpRequest) { - e = { - readyState: e.readyState, - status: e.status, - statusText: e.statusText, - response_headers: e.getAllResponseHeaders() - }; - } - if (e.constructor === Array || - e.constructor === String || - e.constructor === Object) { - try { - e = JSON.stringify(e); - } catch (ignore) { - } - } - document.getElementsByTagName('body')[0].textContent = e; - // XXX Do not crash the application if it fails - // Where to write the error? - /*global console*/ - console.error(e.stack); - console.error(e); - } - - ///////////////////////////////////////////////////////////////// - // Service Monitor promise - ///////////////////////////////////////////////////////////////// - function ResolvedMonitorError(message) { - this.name = "resolved"; - if ((message !== undefined) && (typeof message !== "string")) { - throw new TypeError('You must pass a string.'); - } - this.message = message || "Default Message"; - } - ResolvedMonitorError.prototype = new Error(); - ResolvedMonitorError.prototype.constructor = ResolvedMonitorError; - - Monitor = function () { - var monitor = this, - promise_list = [], - promise, - reject, - notify, - resolved; - - if (!(this instanceof Monitor)) { - return new Monitor(); - } - - function canceller() { - var len = promise_list.length, - i; - for (i = 0; i < len; i += 1) { - promise_list[i].cancel(); - } - // Clean it to speed up other canceller run - promise_list = []; - } - - promise = new RSVP.Promise(function (done, fail, progress) { - reject = function (rejectedReason) { - if (resolved) { - return; - } - monitor.isRejected = true; - monitor.rejectedReason = rejectedReason; - resolved = true; - canceller(); - return fail(rejectedReason); - }; - notify = progress; - }, canceller); - - monitor.cancel = function () { - if (resolved) { - return; - } - resolved = true; - promise.cancel(); - promise.fail(function (rejectedReason) { - monitor.isRejected = true; - monitor.rejectedReason = rejectedReason; - }); - }; - monitor.then = function () { - return promise.then.apply(promise, arguments); - }; - monitor.fail = function () { - return promise.fail.apply(promise, arguments); - }; - - monitor.monitor = function (promise_to_monitor) { - if (resolved) { - throw new ResolvedMonitorError(); - } - var queue = new RSVP.Queue() - .push(function () { - return promise_to_monitor; - }) - .push(function (fulfillmentValue) { - // Promise to monitor is fullfilled, remove it from the list - var len = promise_list.length, - sub_promise_to_monitor, - new_promise_list = [], - i; - for (i = 0; i < len; i += 1) { - sub_promise_to_monitor = promise_list[i]; - if (!(sub_promise_to_monitor.isFulfilled || - sub_promise_to_monitor.isRejected)) { - new_promise_list.push(sub_promise_to_monitor); - } - } - promise_list = new_promise_list; - }, function (rejectedReason) { - if (rejectedReason instanceof RSVP.CancellationError) { - if (!(promise_to_monitor.isFulfilled && - promise_to_monitor.isRejected)) { - // The queue could be cancelled before the first push is run - promise_to_monitor.cancel(); - } - } - reject(rejectedReason); - throw rejectedReason; - }, function (notificationValue) { - notify(notificationValue); - return notificationValue; - }); - - promise_list.push(queue); - - return this; - }; - }; - - Monitor.prototype = Object.create(RSVP.Promise.prototype); - Monitor.prototype.constructor = Monitor; - - ///////////////////////////////////////////////////////////////// - // RenderJSGadget - ///////////////////////////////////////////////////////////////// - function RenderJSGadget() { - if (!(this instanceof RenderJSGadget)) { - return new RenderJSGadget(); - } - } - RenderJSGadget.prototype.__title = ""; - RenderJSGadget.prototype.__interface_list = []; - RenderJSGadget.prototype.__path = ""; - RenderJSGadget.prototype.__html = ""; - RenderJSGadget.prototype.__required_css_list = []; - RenderJSGadget.prototype.__required_js_list = []; - - function createMonitor(g) { - if (g.__monitor !== undefined) { - g.__monitor.cancel(); - } - g.__monitor = new Monitor(); - g.__monitor.fail(function (error) { - if (!(error instanceof RSVP.CancellationError)) { - return g.aq_reportServiceError(error); - } - }).fail(function (error) { - // Crash the application if the acquisition generates an error. - return letsCrash(error); - }); - } - - function clearGadgetInternalParameters(g) { - g.__sub_gadget_dict = {}; - createMonitor(g); - } - - function loadSubGadgetDOMDeclaration(g) { - var element_list = g.__element.querySelectorAll('[data-gadget-scope]'), - element, - promise_list = [], - scope, - url, - sandbox, - i; - - for (i = 0; i < element_list.length; i += 1) { - element = element_list[i]; - scope = element.getAttribute("data-gadget-scope"); - url = element.getAttribute("data-gadget-url"); - sandbox = element.getAttribute("data-gadget-sandbox"); - if ((scope !== null) && (url !== null)) { - promise_list.push(g.declareGadget(url, { - element: element, - scope: scope || undefined, - sandbox: sandbox || undefined - })); - } - } - - return RSVP.all(promise_list); - } - - RenderJSGadget.__ready_list = [clearGadgetInternalParameters, - loadSubGadgetDOMDeclaration]; - RenderJSGadget.ready = function (callback) { - this.__ready_list.push(callback); - return this; - }; - - RenderJSGadget.__service_list = []; - RenderJSGadget.declareService = function (callback) { - this.__service_list.push(callback); - return this; - }; - - function startService(gadget) { - gadget.__monitor.monitor(new RSVP.Queue() - .push(function () { - var i, - service_list = gadget.constructor.__service_list; - for (i = 0; i < service_list.length; i += 1) { - gadget.__monitor.monitor(service_list[i].apply(gadget)); - } - }) - ); - } - - ///////////////////////////////////////////////////////////////// - // RenderJSGadget.declareMethod - ///////////////////////////////////////////////////////////////// - RenderJSGadget.declareMethod = function (name, callback) { - this.prototype[name] = function () { - var context = this, - argument_list = arguments; - - return new RSVP.Queue() - .push(function () { - return callback.apply(context, argument_list); - }); - }; - // Allow chain - return this; - }; - - RenderJSGadget - .declareMethod('getInterfaceList', function () { - // Returns the list of gadget prototype - return this.__interface_list; - }) - .declareMethod('getRequiredCSSList', function () { - // Returns a list of CSS required by the gadget - return this.__required_css_list; - }) - .declareMethod('getRequiredJSList', function () { - // Returns a list of JS required by the gadget - return this.__required_js_list; - }) - .declareMethod('getPath', function () { - // Returns the path of the code of a gadget - return this.__path; - }) - .declareMethod('getTitle', function () { - // Returns the title of a gadget - return this.__title; - }) - .declareMethod('getElement', function () { - // Returns the DOM Element of a gadget - if (this.__element === undefined) { - throw new Error("No element defined"); - } - return this.__element; - }); - - ///////////////////////////////////////////////////////////////// - // RenderJSGadget.declareAcquiredMethod - ///////////////////////////////////////////////////////////////// - function acquire(child_gadget, method_name, argument_list) { - var gadget = this, - key, - gadget_scope; - - for (key in gadget.__sub_gadget_dict) { - if (gadget.__sub_gadget_dict.hasOwnProperty(key)) { - if (gadget.__sub_gadget_dict[key] === child_gadget) { - gadget_scope = key; - } - } - } - return new RSVP.Queue() - .push(function () { - // Do not specify default __acquired_method_dict on prototype - // to prevent modifying this default value (with - // allowPublicAcquiredMethod for example) - var aq_dict = gadget.__acquired_method_dict || {}; - if (aq_dict.hasOwnProperty(method_name)) { - return aq_dict[method_name].apply(gadget, - [argument_list, gadget_scope]); - } - throw new renderJS.AcquisitionError("aq_dynamic is not defined"); - }) - .push(undefined, function (error) { - if (error instanceof renderJS.AcquisitionError) { - return gadget.__aq_parent(method_name, argument_list); - } - throw error; - }); - } - - RenderJSGadget.declareAcquiredMethod = - function (name, method_name_to_acquire) { - this.prototype[name] = function () { - var argument_list = Array.prototype.slice.call(arguments, 0), - gadget = this; - return new RSVP.Queue() - .push(function () { - return gadget.__aq_parent(method_name_to_acquire, argument_list); - }); - }; - - // Allow chain - return this; - }; - RenderJSGadget.declareAcquiredMethod("aq_reportServiceError", - "reportServiceError"); - RenderJSGadget.declareAcquiredMethod("aq_pleasePublishMyState", - "pleasePublishMyState"); - - ///////////////////////////////////////////////////////////////// - // RenderJSGadget.allowPublicAcquisition - ///////////////////////////////////////////////////////////////// - RenderJSGadget.allowPublicAcquisition = - function (method_name, callback) { - this.prototype.__acquired_method_dict[method_name] = callback; - - // Allow chain - return this; - }; - - // Set aq_parent on gadget_instance which call acquire on parent_gadget - function setAqParent(gadget_instance, parent_gadget) { - gadget_instance.__aq_parent = function (method_name, argument_list) { - return acquire.apply(parent_gadget, [gadget_instance, method_name, - argument_list]); - }; - } - - function pleasePublishMyState(param_list, child_gadget_scope) { - var new_param = {}, - key; - for (key in this.state_parameter_dict) { - if (this.state_parameter_dict.hasOwnProperty(key)) { - new_param[key] = this.state_parameter_dict[key]; - } - } - if (child_gadget_scope === undefined) { - throw new Error("gadget scope is mandatory"); - } - new_param[child_gadget_scope] = param_list[0]; - param_list = [new_param]; - return this.aq_pleasePublishMyState.apply(this, param_list); - } - - ///////////////////////////////////////////////////////////////// - // RenderJSEmbeddedGadget - ///////////////////////////////////////////////////////////////// - // Class inheritance - function RenderJSEmbeddedGadget() { - if (!(this instanceof RenderJSEmbeddedGadget)) { - return new RenderJSEmbeddedGadget(); - } - RenderJSGadget.call(this); - } - RenderJSEmbeddedGadget.__ready_list = RenderJSGadget.__ready_list.slice(); - RenderJSEmbeddedGadget.__service_list = - RenderJSGadget.__service_list.slice(); - RenderJSEmbeddedGadget.ready = - RenderJSGadget.ready; - RenderJSEmbeddedGadget.declareService = - RenderJSGadget.declareService; - RenderJSEmbeddedGadget.prototype = new RenderJSGadget(); - RenderJSEmbeddedGadget.prototype.constructor = RenderJSEmbeddedGadget; - - ///////////////////////////////////////////////////////////////// - // privateDeclarePublicGadget - ///////////////////////////////////////////////////////////////// - function privateDeclarePublicGadget(url, options, parent_gadget) { - var gadget_instance; - if (options.element === undefined) { - options.element = document.createElement("div"); - } - - function loadDependency(method, url) { - return function () { - return method(url); - }; - } - - return new RSVP.Queue() - .push(function () { - return renderJS.declareGadgetKlass(url); - }) - // Get the gadget class and instanciate it - .push(function (Klass) { - var i, - template_node_list = Klass.__template_element.body.childNodes; - gadget_loading_klass = Klass; - gadget_instance = new Klass(); - gadget_instance.__element = options.element; - for (i = 0; i < template_node_list.length; i += 1) { - gadget_instance.__element.appendChild( - template_node_list[i].cloneNode(true) - ); - } - setAqParent(gadget_instance, parent_gadget); - // Load dependencies if needed - return RSVP.all([ - gadget_instance.getRequiredJSList(), - gadget_instance.getRequiredCSSList() - ]); - }) - // Load all JS/CSS - .push(function (all_list) { - var q = new RSVP.Queue(), - i; - // Load JS - for (i = 0; i < all_list[0].length; i += 1) { - q.push(loadDependency(renderJS.declareJS, all_list[0][i])); - } - // Load CSS - for (i = 0; i < all_list[1].length; i += 1) { - q.push(loadDependency(renderJS.declareCSS, all_list[1][i])); - } - return q; - }) - .push(function () { - return gadget_instance; - }); - } - - ///////////////////////////////////////////////////////////////// - // RenderJSIframeGadget - ///////////////////////////////////////////////////////////////// - function RenderJSIframeGadget() { - if (!(this instanceof RenderJSIframeGadget)) { - return new RenderJSIframeGadget(); - } - RenderJSGadget.call(this); - } - RenderJSIframeGadget.__ready_list = RenderJSGadget.__ready_list.slice(); - RenderJSIframeGadget.ready = - RenderJSGadget.ready; - RenderJSIframeGadget.__service_list = RenderJSGadget.__service_list.slice(); - RenderJSIframeGadget.declareService = - RenderJSGadget.declareService; - RenderJSIframeGadget.prototype = new RenderJSGadget(); - RenderJSIframeGadget.prototype.constructor = RenderJSIframeGadget; - - ///////////////////////////////////////////////////////////////// - // privateDeclareIframeGadget - ///////////////////////////////////////////////////////////////// - function privateDeclareIframeGadget(url, options, parent_gadget) { - var gadget_instance, - iframe, - iframe_loading_deferred = RSVP.defer(); - if (options.element === undefined) { - throw new Error("DOM element is required to create Iframe Gadget " + - url); - } - - // Check if the element is attached to the DOM - if (!document.contains(options.element)) { - throw new Error("The parent element is not attached to the DOM for " + - url); - } - - gadget_instance = new RenderJSIframeGadget(); - setAqParent(gadget_instance, parent_gadget); - iframe = document.createElement("iframe"); -// gadget_instance.element.setAttribute("seamless", "seamless"); - iframe.setAttribute("src", url); - gadget_instance.__path = url; - gadget_instance.__element = options.element; - // Attach it to the DOM - options.element.appendChild(iframe); - - // XXX Manage unbind when deleting the gadget - - // Create the communication channel with the iframe - gadget_instance.__chan = Channel.build({ - window: iframe.contentWindow, - origin: "*", - scope: "renderJS" - }); - - // Create new method from the declareMethod call inside the iframe - gadget_instance.__chan.bind("declareMethod", - function (trans, method_name) { - gadget_instance[method_name] = function () { - var argument_list = arguments, - wait_promise = new RSVP.Promise(function (resolve, reject) { - gadget_instance.__chan.call({ - method: "methodCall", - params: [ - method_name, - Array.prototype.slice.call(argument_list, 0)], - success: function (s) { - resolve(s); - }, - error: function (e) { - reject(e); - } - }); - }); - return new RSVP.Queue() - .push(function () { - return wait_promise; - }); - }; - return "OK"; - }); - - // Wait for the iframe to be loaded before continuing - gadget_instance.__chan.bind("ready", function (trans) { - iframe_loading_deferred.resolve(gadget_instance); - return "OK"; - }); - gadget_instance.__chan.bind("failed", function (trans, params) { - iframe_loading_deferred.reject(params); - return "OK"; - }); - gadget_instance.__chan.bind("acquire", function (trans, params) { - gadget_instance.__aq_parent.apply(gadget_instance, params) - .then(function (g) { - trans.complete(g); - }).fail(function (e) { - trans.error(e.toString()); - }); - trans.delayReturn(true); - }); - - return RSVP.any([ - iframe_loading_deferred.promise, - // Timeout to prevent non renderJS embeddable gadget - // XXX Maybe using iframe.onload/onerror would be safer? - RSVP.timeout(50000) - ]); - } - - ///////////////////////////////////////////////////////////////// - // privateDeclareDataUrlGadget - ///////////////////////////////////////////////////////////////// - function privateDeclareDataUrlGadget(url, options, parent_gadget) { - - return new RSVP.Queue() - .push(function () { - return ajax(url); - }) - .push(function (xhr) { - // Insert a "base" element, in order to resolve all relative links - // which could get broken with a data url - var doc = (new DOMParser()).parseFromString(xhr.responseText, - 'text/html'), - base = doc.createElement('base'), - blob; - base.href = url; - doc.head.insertBefore(base, doc.head.firstChild); - blob = new Blob([doc.documentElement.outerHTML], - {type: "text/html;charset=UTF-8"}); - return readBlobAsDataURL(blob); - }) - .push(function (data_url) { - return privateDeclareIframeGadget(data_url, options, parent_gadget); - }); - } - - ///////////////////////////////////////////////////////////////// - // RenderJSGadget.declareGadget - ///////////////////////////////////////////////////////////////// - RenderJSGadget - .declareMethod('declareGadget', function (url, options) { - var queue, - parent_gadget = this, - local_loading_klass_promise, - previous_loading_klass_promise = loading_klass_promise; - - if (options === undefined) { - options = {}; - } - if (options.sandbox === undefined) { - options.sandbox = "public"; - } - - // transform url to absolute url if it is relative - url = renderJS.getAbsoluteURL(url, this.__path); - // Change the global variable to update the loading queue - loading_klass_promise = new RSVP.Queue() - // Wait for previous gadget loading to finish first - .push(function () { - return previous_loading_klass_promise; - }) - .push(undefined, function () { - // Forget previous declareGadget error - return; - }) - .push(function () { - var method; - if (options.sandbox === "public") { - method = privateDeclarePublicGadget; - } else if (options.sandbox === "iframe") { - method = privateDeclareIframeGadget; - } else if (options.sandbox === "dataurl") { - method = privateDeclareDataUrlGadget; - } else { - throw new Error("Unsupported sandbox options '" + - options.sandbox + "'"); - } - return method(url, options, parent_gadget); - }) - // Set the HTML context - .push(function (gadget_instance) { - // Drop the current loading klass info used by selector - gadget_loading_klass = undefined; - return gadget_instance; - }) - .push(undefined, function (e) { - // Drop the current loading klass info used by selector - // even in case of error - gadget_loading_klass = undefined; - throw e; - }); - local_loading_klass_promise = loading_klass_promise; - - queue = new RSVP.Queue() - .push(function () { - return local_loading_klass_promise; - }) - // Set the HTML context - .push(function (gadget_instance) { - var i; - // Trigger calling of all ready callback - function ready_wrapper() { - return gadget_instance; - } - for (i = 0; i < gadget_instance.constructor.__ready_list.length; - i += 1) { - // Put a timeout? - queue.push(gadget_instance.constructor.__ready_list[i]); - // Always return the gadget instance after ready function - queue.push(ready_wrapper); - } - - // Store local reference to the gadget instance - if (options.scope !== undefined) { - parent_gadget.__sub_gadget_dict[options.scope] = gadget_instance; - gadget_instance.__element.setAttribute("data-gadget-scope", - options.scope); - } - - // Put some attribute to ease page layout comprehension - gadget_instance.__element.setAttribute("data-gadget-url", url); - gadget_instance.__element.setAttribute("data-gadget-sandbox", - options.sandbox); - gadget_instance.__element._gadget = gadget_instance; - - if (document.contains(gadget_instance.__element)) { - // Put a timeout - queue.push(startService); - } - // Always return the gadget instance after ready function - queue.push(ready_wrapper); - - return gadget_instance; - }); - return queue; - }) - .declareMethod('getDeclaredGadget', function (gadget_scope) { - if (!this.__sub_gadget_dict.hasOwnProperty(gadget_scope)) { - throw new Error("Gadget scope '" + gadget_scope + "' is not known."); - } - return this.__sub_gadget_dict[gadget_scope]; - }) - .declareMethod('dropGadget', function (gadget_scope) { - if (!this.__sub_gadget_dict.hasOwnProperty(gadget_scope)) { - throw new Error("Gadget scope '" + gadget_scope + "' is not known."); - } - // http://perfectionkills.com/understanding-delete/ - delete this.__sub_gadget_dict[gadget_scope]; - }); - - ///////////////////////////////////////////////////////////////// - // renderJS selector - ///////////////////////////////////////////////////////////////// - renderJS = function (selector) { - var result; - if (selector === window) { - // window is the 'this' value when loading a javascript file - // In this case, use the current loading gadget constructor - result = gadget_loading_klass; - } - if (result === undefined) { - throw new Error("Unknown selector '" + selector + "'"); - } - return result; - }; - - ///////////////////////////////////////////////////////////////// - // renderJS.AcquisitionError - ///////////////////////////////////////////////////////////////// - renderJS.AcquisitionError = function (message) { - this.name = "AcquisitionError"; - if ((message !== undefined) && (typeof message !== "string")) { - throw new TypeError('You must pass a string.'); - } - this.message = message || "Acquisition failed"; - }; - renderJS.AcquisitionError.prototype = new Error(); - renderJS.AcquisitionError.prototype.constructor = - renderJS.AcquisitionError; - - ///////////////////////////////////////////////////////////////// - // renderJS.getAbsoluteURL - ///////////////////////////////////////////////////////////////// - renderJS.getAbsoluteURL = function (url, base_url) { - var doc, base, link, - html = "<!doctype><html><head></head></html>"; - - if (url && base_url && !isAbsoluteOrDataURL.test(url)) { - doc = (new DOMParser()).parseFromString(html, 'text/html'); - base = doc.createElement('base'); - link = doc.createElement('link'); - doc.head.appendChild(base); - doc.head.appendChild(link); - base.href = base_url; - link.href = url; - return link.href; - } - return url; - }; - - ///////////////////////////////////////////////////////////////// - // renderJS.declareJS - ///////////////////////////////////////////////////////////////// - renderJS.declareJS = function (url) { - // Prevent infinite recursion if loading render.js - // more than once - var result; - if (javascript_registration_dict.hasOwnProperty(url)) { - result = RSVP.resolve(); - } else { - result = new RSVP.Promise(function (resolve, reject) { - var newScript; - newScript = document.createElement('script'); - newScript.type = 'text/javascript'; - newScript.src = url; - newScript.onload = function () { - javascript_registration_dict[url] = null; - resolve(); - }; - newScript.onerror = function (e) { - reject(e); - }; - document.head.appendChild(newScript); - }); - } - return result; - }; - - ///////////////////////////////////////////////////////////////// - // renderJS.declareCSS - ///////////////////////////////////////////////////////////////// - renderJS.declareCSS = function (url) { - // https://github.com/furf/jquery-getCSS/blob/master/jquery.getCSS.js - // No way to cleanly check if a css has been loaded - // So, always resolve the promise... - // http://requirejs.org/docs/faq-advanced.html#css - var result; - if (stylesheet_registration_dict.hasOwnProperty(url)) { - result = RSVP.resolve(); - } else { - result = new RSVP.Promise(function (resolve, reject) { - var link; - link = document.createElement('link'); - link.rel = 'stylesheet'; - link.type = 'text/css'; - link.href = url; - link.onload = function () { - stylesheet_registration_dict[url] = null; - resolve(); - }; - link.onerror = function (e) { - reject(e); - }; - document.head.appendChild(link); - }); - } - return result; - }; - - ///////////////////////////////////////////////////////////////// - // renderJS.declareGadgetKlass - ///////////////////////////////////////////////////////////////// - renderJS.declareGadgetKlass = function (url) { - var result; - - function parse(xhr) { - var tmp_constructor, - key, - parsed_html; - if (!gadget_model_dict.hasOwnProperty(url)) { - // Class inheritance - tmp_constructor = function () { - RenderJSGadget.call(this); - }; - tmp_constructor.__ready_list = RenderJSGadget.__ready_list.slice(); - tmp_constructor.__service_list = RenderJSGadget.__service_list.slice(); - tmp_constructor.declareMethod = - RenderJSGadget.declareMethod; - tmp_constructor.declareAcquiredMethod = - RenderJSGadget.declareAcquiredMethod; - tmp_constructor.allowPublicAcquisition = - RenderJSGadget.allowPublicAcquisition; - tmp_constructor.ready = - RenderJSGadget.ready; - tmp_constructor.declareService = - RenderJSGadget.declareService; - tmp_constructor.prototype = new RenderJSGadget(); - tmp_constructor.prototype.constructor = tmp_constructor; - tmp_constructor.prototype.__path = url; - tmp_constructor.prototype.__acquired_method_dict = {}; - tmp_constructor.allowPublicAcquisition("pleasePublishMyState", - pleasePublishMyState); - // https://developer.mozilla.org/en-US/docs/HTML_in_XMLHttpRequest - // https://developer.mozilla.org/en-US/docs/Web/API/DOMParser - // https://developer.mozilla.org/en-US/docs/Code_snippets/HTML_to_DOM - tmp_constructor.__template_element = - (new DOMParser()).parseFromString(xhr.responseText, "text/html"); - parsed_html = renderJS.parseGadgetHTMLDocument( - tmp_constructor.__template_element, - url - ); - for (key in parsed_html) { - if (parsed_html.hasOwnProperty(key)) { - tmp_constructor.prototype['__' + key] = parsed_html[key]; - } - } - - gadget_model_dict[url] = tmp_constructor; - } - - return gadget_model_dict[url]; - } - - if (gadget_model_dict.hasOwnProperty(url)) { - // Return klass object if it already exists - result = RSVP.resolve(gadget_model_dict[url]); - } else { - // Fetch the HTML page and parse it - result = new RSVP.Queue() - .push(function () { - return ajax(url); - }) - .push(function (xhr) { - return parse(xhr); - }); - } - return result; - }; - - ///////////////////////////////////////////////////////////////// - // renderJS.clearGadgetKlassList - ///////////////////////////////////////////////////////////////// - // For test purpose only - renderJS.clearGadgetKlassList = function () { - gadget_model_dict = {}; - javascript_registration_dict = {}; - stylesheet_registration_dict = {}; - }; - - ///////////////////////////////////////////////////////////////// - // renderJS.parseGadgetHTMLDocument - ///////////////////////////////////////////////////////////////// - renderJS.parseGadgetHTMLDocument = function (document_element, url) { - var settings = { - title: "", - interface_list: [], - required_css_list: [], - required_js_list: [] - }, - i, - element; - - if (!url || !isAbsoluteOrDataURL.test(url)) { - throw new Error("The url should be absolute: " + url); - } - - if (document_element.nodeType === 9) { - settings.title = document_element.title; - - if (document_element.head !== null) { - for (i = 0; i < document_element.head.children.length; i += 1) { - element = document_element.head.children[i]; - if (element.href !== null) { - // XXX Manage relative URL during extraction of URLs - // element.href returns absolute URL in firefox but "" in chrome; - if (element.rel === "stylesheet") { - settings.required_css_list.push( - renderJS.getAbsoluteURL(element.getAttribute("href"), url) - ); - } else if (element.nodeName === "SCRIPT" && - (element.type === "text/javascript" || - !element.type)) { - settings.required_js_list.push( - renderJS.getAbsoluteURL(element.getAttribute("src"), url) - ); - } else if (element.rel === - "http://www.renderjs.org/rel/interface") { - settings.interface_list.push( - renderJS.getAbsoluteURL(element.getAttribute("href"), url) - ); - } - } - } - } - } else { - throw new Error("The first parameter should be an HTMLDocument"); - } - return settings; - }; - - ///////////////////////////////////////////////////////////////// - // global - ///////////////////////////////////////////////////////////////// - window.rJS = window.renderJS = renderJS; - window.__RenderJSGadget = RenderJSGadget; - window.__RenderJSEmbeddedGadget = RenderJSEmbeddedGadget; - window.__RenderJSIframeGadget = RenderJSIframeGadget; - - /////////////////////////////////////////////////// - // Bootstrap process. Register the self gadget. - /////////////////////////////////////////////////// - - function mergeSubDict(dict) { - var subkey, - subkey2, - subresult2, - value, - result = {}; - for (subkey in dict) { - if (dict.hasOwnProperty(subkey)) { - value = dict[subkey]; - if (value instanceof Object) { - subresult2 = mergeSubDict(value); - for (subkey2 in subresult2) { - if (subresult2.hasOwnProperty(subkey2)) { - // XXX key should not have an . inside - if (result.hasOwnProperty(subkey + "." + subkey2)) { - throw new Error("Key " + subkey + "." + - subkey2 + " already present"); - } - result[subkey + "." + subkey2] = subresult2[subkey2]; - } - } - } else { - if (result.hasOwnProperty(subkey)) { - throw new Error("Key " + subkey + " already present"); - } - result[subkey] = value; - } - } - } - return result; - - } - - function bootstrap() { - var url = removeHash(window.location.href), - tmp_constructor, - root_gadget, - loading_gadget_promise = new RSVP.Queue(), - declare_method_count = 0, - embedded_channel, - notifyReady, - notifyDeclareMethod, - gadget_ready = false, - iframe_top_gadget, - last_acquisition_gadget; - - // Create the gadget class for the current url - if (gadget_model_dict.hasOwnProperty(url)) { - throw new Error("bootstrap should not be called twice"); - } - loading_klass_promise = new RSVP.Promise(function (resolve, reject) { - - last_acquisition_gadget = new RenderJSGadget(); - last_acquisition_gadget.__acquired_method_dict = { - getTopURL: function () { - return url; - }, - reportServiceError: function (param_list) { - letsCrash(param_list[0]); - }, - pleaseRedirectMyHash: function (param_list) { - window.location.replace(param_list[0]); - }, - pleasePublishMyState: function (param_list) { - var key, - first = true, - hash = "#"; - param_list[0] = mergeSubDict(param_list[0]); - for (key in param_list[0]) { - if (param_list[0].hasOwnProperty(key)) { - if (!first) { - hash += "&"; - } - hash += encodeURIComponent(key) + "=" + - encodeURIComponent(param_list[0][key]); - first = false; - } - } - return hash; - } - }; - // Stop acquisition on the last acquisition gadget - // Do not put this on the klass, as their could be multiple instances - last_acquisition_gadget.__aq_parent = function (method_name) { - throw new renderJS.AcquisitionError( - "No gadget provides " + method_name - ); - }; - - //we need to determine tmp_constructor's value before exit bootstrap - //because of function : renderJS - //but since the channel checking is async, - //we can't use code structure like: - // if channel communication is ok - // tmp_constructor = RenderJSGadget - // else - // tmp_constructor = RenderJSEmbeddedGadget - if (window.self === window.top) { - // XXX Copy/Paste from declareGadgetKlass - tmp_constructor = function () { - RenderJSGadget.call(this); - }; - tmp_constructor.declareMethod = RenderJSGadget.declareMethod; - tmp_constructor.declareAcquiredMethod = - RenderJSGadget.declareAcquiredMethod; - tmp_constructor.allowPublicAcquisition = - RenderJSGadget.allowPublicAcquisition; - tmp_constructor.__ready_list = RenderJSGadget.__ready_list.slice(); - tmp_constructor.ready = RenderJSGadget.ready; - tmp_constructor.__service_list = RenderJSGadget.__service_list.slice(); - tmp_constructor.declareService = - RenderJSGadget.declareService; - tmp_constructor.prototype = new RenderJSGadget(); - tmp_constructor.prototype.constructor = tmp_constructor; - tmp_constructor.prototype.__path = url; - gadget_model_dict[url] = tmp_constructor; - - // Create the root gadget instance and put it in the loading stack - root_gadget = new gadget_model_dict[url](); - - tmp_constructor.declareService(function () { - return listenHashChange(this); - }); - - setAqParent(root_gadget, last_acquisition_gadget); - - } else { - // Create the communication channel - embedded_channel = Channel.build({ - window: window.parent, - origin: "*", - scope: "renderJS" - }); - // Create the root gadget instance and put it in the loading stack - tmp_constructor = RenderJSEmbeddedGadget; - tmp_constructor.__ready_list = RenderJSGadget.__ready_list.slice(); - tmp_constructor.__service_list = RenderJSGadget.__service_list.slice(); - tmp_constructor.prototype.__path = url; - root_gadget = new RenderJSEmbeddedGadget(); - - - // Notify parent about gadget instanciation - notifyReady = function () { - if ((declare_method_count === 0) && (gadget_ready === true)) { - embedded_channel.notify({method: "ready"}); - } - }; - - // Inform parent gadget about declareMethod calls here. - notifyDeclareMethod = function (name) { - declare_method_count += 1; - embedded_channel.call({ - method: "declareMethod", - params: name, - success: function () { - declare_method_count -= 1; - notifyReady(); - }, - error: function () { - declare_method_count -= 1; - } - }); - }; - - notifyDeclareMethod("getInterfaceList"); - notifyDeclareMethod("getRequiredCSSList"); - notifyDeclareMethod("getRequiredJSList"); - notifyDeclareMethod("getPath"); - notifyDeclareMethod("getTitle"); - - // Surcharge declareMethod to inform parent window - tmp_constructor.declareMethod = function (name, callback) { - var result = RenderJSGadget.declareMethod.apply( - this, - [name, callback] - ); - notifyDeclareMethod(name); - return result; - }; - - tmp_constructor.declareService = - RenderJSGadget.declareService; - tmp_constructor.declareAcquiredMethod = - RenderJSGadget.declareAcquiredMethod; - tmp_constructor.allowPublicAcquisition = - RenderJSGadget.allowPublicAcquisition; - - //Default: Define __aq_parent to inform parent window - tmp_constructor.prototype.__aq_parent = function (method_name, - argument_list, time_out) { - return new RSVP.Promise(function (resolve, reject) { - embedded_channel.call({ - method: "acquire", - params: [ - method_name, - argument_list - ], - success: function (s) { - resolve(s); - }, - error: function (e) { - reject(e); - }, - timeout: time_out - }); - }); - }; - } - - tmp_constructor.prototype.__acquired_method_dict = {}; - tmp_constructor.allowPublicAcquisition("pleasePublishMyState", - pleasePublishMyState); - gadget_loading_klass = tmp_constructor; - - function init() { - // XXX HTML properties can only be set when the DOM is fully loaded - var settings = renderJS.parseGadgetHTMLDocument(document, url), - j, - key; - for (key in settings) { - if (settings.hasOwnProperty(key)) { - tmp_constructor.prototype['__' + key] = settings[key]; - } - } - tmp_constructor.__template_element = document.createElement("div"); - root_gadget.__element = document.body; - for (j = 0; j < root_gadget.__element.childNodes.length; j += 1) { - tmp_constructor.__template_element.appendChild( - root_gadget.__element.childNodes[j].cloneNode(true) - ); - } - RSVP.all([root_gadget.getRequiredJSList(), - root_gadget.getRequiredCSSList()]) - .then(function (all_list) { - var i, - js_list = all_list[0], - css_list = all_list[1]; - for (i = 0; i < js_list.length; i += 1) { - javascript_registration_dict[js_list[i]] = null; - } - for (i = 0; i < css_list.length; i += 1) { - stylesheet_registration_dict[css_list[i]] = null; - } - gadget_loading_klass = undefined; - }).then(function () { - - // select the target node - var target = document.querySelector('body'), - // create an observer instance - observer = new MutationObserver(function (mutations) { - var i, k, len, len2, node, added_list; - mutations.forEach(function (mutation) { - if (mutation.type === 'childList') { - - len = mutation.removedNodes.length; - for (i = 0; i < len; i += 1) { - node = mutation.removedNodes[i]; - if (node.nodeType === Node.ELEMENT_NODE) { - if (node.hasAttribute("data-gadget-url") && - (node._gadget !== undefined)) { - createMonitor(node._gadget); - } - added_list = - node.querySelectorAll("[data-gadget-url]"); - len2 = added_list.length; - for (k = 0; k < len2; k += 1) { - node = added_list[k]; - if (node._gadget !== undefined) { - createMonitor(node._gadget); - } - } - } - } - - len = mutation.addedNodes.length; - for (i = 0; i < len; i += 1) { - node = mutation.addedNodes[i]; - if (node.nodeType === Node.ELEMENT_NODE) { - if (node.hasAttribute("data-gadget-url") && - (node._gadget !== undefined)) { - if (document.contains(node)) { - startService(node._gadget); - } - } - added_list = - node.querySelectorAll("[data-gadget-url]"); - len2 = added_list.length; - for (k = 0; k < len2; k += 1) { - node = added_list[k]; - if (document.contains(node)) { - if (node._gadget !== undefined) { - startService(node._gadget); - } - } - } - } - } - - } - }); - }), - // configuration of the observer: - config = { - childList: true, - subtree: true, - attributes: false, - characterData: false - }; - - // pass in the target node, as well as the observer options - observer.observe(target, config); - - return root_gadget; - }).then(resolve, function (e) { - reject(e); - console.error(e); - throw e; - }); - } - document.addEventListener('DOMContentLoaded', init, false); - }); - - loading_gadget_promise - .push(function () { - return loading_klass_promise; - }) - .push(function (root_gadget) { - var i; - - function ready_wrapper() { - return root_gadget; - } - - if (window.top !== window.self) { - //checking channel should be done before sub gadget's declaration - //__ready_list: - //0: clearGadgetInternalParameters - //1: loadSubGadgetDOMDeclaration - //..... - tmp_constructor.__ready_list.splice(1, 0, function () { - return root_gadget.__aq_parent('getTopURL', [], 100) - .then(function (topURL) { - var base = document.createElement('base'); - base.href = topURL; - base.target = "_top"; - document.head.appendChild(base); - //the channel is ok - //so bind calls to renderJS method on the instance - embedded_channel.bind("methodCall", function (trans, v) { - root_gadget[v[0]].apply(root_gadget, v[1]) - .then(function (g) { - trans.complete(g); - }).fail(function (e) { - trans.error(e.toString()); - }); - trans.delayReturn(true); - }); - }) - .fail(function (error) { - if (error === "timeout_error") { - //the channel fail - //we consider current gadget is parent gadget - //redifine last acquisition gadget - iframe_top_gadget = true; - tmp_constructor.declareService(function () { - return listenHashChange(this); - }); - setAqParent(root_gadget, last_acquisition_gadget); - } else { - throw error; - } - }); - }); - } - - tmp_constructor.ready(function (g) { - return startService(g); - }); - - loading_gadget_promise.push(ready_wrapper); - for (i = 0; i < tmp_constructor.__ready_list.length; i += 1) { - // Put a timeout? - loading_gadget_promise - .push(tmp_constructor.__ready_list[i]) - // Always return the gadget instance after ready function - .push(ready_wrapper); - } - }); - if (window.self === window.top) { - loading_gadget_promise - .fail(function (e) { - letsCrash(e); - throw e; - }); - } else { - // Inform parent window that gadget is correctly loaded - loading_gadget_promise - .then(function () { - gadget_ready = true; - notifyReady(); - }) - .fail(function (e) { - //top gadget in iframe - if (iframe_top_gadget) { - letsCrash(e); - } else { - embedded_channel.notify({method: "failed", params: e.toString()}); - } - throw e; - }); - } - - } - bootstrap(); - -}(document, window, RSVP, DOMParser, Channel, MutationObserver, Node, - FileReader, Blob)); \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_renderjs.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_renderjs.js.xml deleted file mode 100644 index 934df0b448bf764bf1b4aff499929fd47c5a8b32..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_renderjs.js.xml +++ /dev/null @@ -1,320 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="Web Script" module="erp5.portal_type"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>_Access_contents_information_Permission</string> </key> - <value> - <tuple> - <string>Anonymous</string> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> - <string>Auditor</string> - <string>Manager</string> - <string>Owner</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Add_portal_content_Permission</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Change_local_roles_Permission</string> </key> - <value> - <tuple> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Modify_portal_content_Permission</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_View_Permission</string> </key> - <value> - <tuple> - <string>Anonymous</string> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> - <string>Auditor</string> - <string>Manager</string> - <string>Owner</string> - </tuple> - </value> - </item> - <item> - <key> <string>content_md5</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>default_reference</string> </key> - <value> <string>travel_expense_renderjs.js</string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>travel_expense_renderjs.js</string> </value> - </item> - <item> - <key> <string>language</string> </key> - <value> <string>en</string> </value> - </item> - <item> - <key> <string>portal_type</string> </key> - <value> <string>Web Script</string> </value> - </item> - <item> - <key> <string>short_title</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string>Travel Expense RenderJS</string> </value> - </item> - <item> - <key> <string>version</string> </key> - <value> <string>001</string> </value> - </item> - <item> - <key> <string>workflow_history</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> - </value> - </item> - </dictionary> - </pickle> - </record> - <record id="2" aka="AAAAAAAAAAI="> - <pickle> - <global name="PersistentMapping" module="Persistence.mapping"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>data</string> </key> - <value> - <dictionary> - <item> - <key> <string>document_publication_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> - </value> - </item> - <item> - <key> <string>edit_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> - </value> - </item> - <item> - <key> <string>processing_status_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> - </value> - </item> - </dictionary> - </value> - </item> - </dictionary> - </pickle> - </record> - <record id="3" aka="AAAAAAAAAAM="> - <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> - </pickle> - <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> <string>publish_alive</string> </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1472540348.77</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - <item> - <key> <string>validation_state</string> </key> - <value> <string>published_alive</string> </value> - </item> - </dictionary> - </list> - </tuple> - </pickle> - </record> - <record id="4" aka="AAAAAAAAAAQ="> - <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> - </pickle> - <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> <string>edit</string> </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>serial</string> </key> - <value> <string>953.37730.40029.35072</string> </value> - </item> - <item> - <key> <string>state</string> </key> - <value> <string>current</string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1472540335.0</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - </dictionary> - </list> - </tuple> - </pickle> - </record> - <record id="5" aka="AAAAAAAAAAU="> - <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> - </pickle> - <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> <string>detect_converted_file</string> </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>external_processing_state</string> </key> - <value> <string>converted</string> </value> - </item> - <item> - <key> <string>serial</string> </key> - <value> <string>0.0.0.0</string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1472540316.54</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - </dictionary> - </list> - </tuple> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_utility.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_utility.js.js deleted file mode 100644 index 78261c30596fbca356af14db7550189d998b6536..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_utility.js.js +++ /dev/null @@ -1,89 +0,0 @@ -function multiLoopEventListener(jquery_wrapped_set_target, type, useCapture, callback) { - jquery_wrapped_set_target.each(function(){ - loopEventListener(this, type, useCapture, callback) - }) -} - -function createOptions(select, option_array, selected_value){ - var option - for(var i=0; i < option_array.length; i++){ - var option = document.createElement("option"); - option.text = option_array[i].text - option.value = option_array[i].value - select.appendChild(option); - } - if(selected_value){ - select.value = selected_value - } - $(select).selectmenu('refresh') -} - -function getSequentialID(record_type_prefix){ - var last_sequential_id = Cookies.get('last_sequential_id'); - if (last_sequential_id == undefined){ - last_sequential_id = 0; - }else{ - last_sequential_id = Number(last_sequential_id); - } - last_sequential_id++; - Cookies.set('last_sequential_id', last_sequential_id, {expires:36500, path:'/', secure:true}); - - var prefix = Cookies.get('sequential_id_prefix'); - if (prefix == undefined){ - prefix = getRandomPrefixForID(); - Cookies.set('sequential_id_prefix', prefix, {expires:36500, path:'/', secure:true}); - } - var date = new Date(); - var date_text = date.getFullYear()+('0'+(date.getMonth()+1)).slice(-2)+('0'+date.getDate()).slice(-2) - return record_type_prefix + '-' + date_text + '-' + prefix + ('0000'+last_sequential_id).slice(-5) -} - -function getRandomPrefixForID(){ - function random(){ - return 65 + Math.floor( Math.random() * 26 ); - } - return String.fromCharCode(random())+String.fromCharCode(random())+String.fromCharCode(random()); -} - -var my_resource = undefined; -var my_currency_option_array = new Array(); -function createResourceSelection(gadget, selected){ - if (my_resource !== undefined && my_currency_option_array.length != 0){ - createOptions(gadget.props.element.querySelector('select[name=resource]'), my_currency_option_array, selected); - }else{ - gadget.allDocs({ - query: 'portal_type: "Currency" AND validation_state: "validated"', - select_list: ["title", "logical_path", "relative_url"], - limit: [0, 1234567890] - }) - .then(function(result){ - for (i = 0; i < result.data.total_rows; i += 1) { - my_currency_option_array[i] = {text:result.data.rows[i].value.title, - value:result.data.rows[i].value.relative_url}; - } - }) - .then(function(){ - createOptions(gadget.props.element.querySelector('select[name=resource]'), my_currency_option_array, selected); - }); - } -} - -function translateString(string) { - var language = Cookies.get('language'); - if (language == undefined){ - language = 'en' - } - return translation_data[language][string] || string; -} - -function getWorkflowState(portal_type, id, sync_flag){ - var sync_state; - if(id.indexOf("_module/") > 0){ - sync_state = "Synced" - }else if(sync_flag){ - sync_state = "Not Synced" - }else{ - sync_state = "Not Ready To Sync" - } - return translateString(sync_state) -} \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_utility.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_utility.js.xml deleted file mode 100644 index 58f4a8a126da1799c7b790832d804346f47d2314..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_utility.js.xml +++ /dev/null @@ -1,320 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="Web Script" module="erp5.portal_type"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>_Access_contents_information_Permission</string> </key> - <value> - <tuple> - <string>Anonymous</string> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> - <string>Auditor</string> - <string>Manager</string> - <string>Owner</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Add_portal_content_Permission</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Change_local_roles_Permission</string> </key> - <value> - <tuple> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_Modify_portal_content_Permission</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>_View_Permission</string> </key> - <value> - <tuple> - <string>Anonymous</string> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> - <string>Auditor</string> - <string>Manager</string> - <string>Owner</string> - </tuple> - </value> - </item> - <item> - <key> <string>content_md5</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>default_reference</string> </key> - <value> <string>travel_expense_utility.js</string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>travel_expense_utility.js</string> </value> - </item> - <item> - <key> <string>language</string> </key> - <value> <string>en</string> </value> - </item> - <item> - <key> <string>portal_type</string> </key> - <value> <string>Web Script</string> </value> - </item> - <item> - <key> <string>short_title</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string>Travel Expense Utility</string> </value> - </item> - <item> - <key> <string>version</string> </key> - <value> <string>001</string> </value> - </item> - <item> - <key> <string>workflow_history</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> - </value> - </item> - </dictionary> - </pickle> - </record> - <record id="2" aka="AAAAAAAAAAI="> - <pickle> - <global name="PersistentMapping" module="Persistence.mapping"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>data</string> </key> - <value> - <dictionary> - <item> - <key> <string>document_publication_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> - </value> - </item> - <item> - <key> <string>edit_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> - </value> - </item> - <item> - <key> <string>processing_status_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> - </value> - </item> - </dictionary> - </value> - </item> - </dictionary> - </pickle> - </record> - <record id="3" aka="AAAAAAAAAAM="> - <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> - </pickle> - <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> <string>publish_alive</string> </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1472526622.78</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - <item> - <key> <string>validation_state</string> </key> - <value> <string>published_alive</string> </value> - </item> - </dictionary> - </list> - </tuple> - </pickle> - </record> - <record id="4" aka="AAAAAAAAAAQ="> - <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> - </pickle> - <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> <string>edit</string> </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>serial</string> </key> - <value> <string>953.39239.63448.21981</string> </value> - </item> - <item> - <key> <string>state</string> </key> - <value> <string>current</string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1472636564.26</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - </dictionary> - </list> - </tuple> - </pickle> - </record> - <record id="5" aka="AAAAAAAAAAU="> - <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> - </pickle> - <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> <string>detect_converted_file</string> </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>external_processing_state</string> </key> - <value> <string>converted</string> </value> - </item> - <item> - <key> <string>serial</string> </key> - <value> <string>0.0.0.0</string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1472523951.25</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - </dictionary> - </list> - </tuple> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_site_module/travel_expense_app.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_site_module/officejs_hr.xml similarity index 72% rename from bt5/erp5_travel_expense/PathTemplateItem/web_site_module/travel_expense_app.xml rename to bt5/erp5_travel_expense/PathTemplateItem/web_site_module/officejs_hr.xml index 418ad1f815ea81d7dab906a557bba29e49ad6690..f5dd62b4f1baba35bd8732010771e87e347a667b 100644 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_site_module/travel_expense_app.xml +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_site_module/officejs_hr.xml @@ -133,7 +133,7 @@ <key> <tuple> <int>99</int> - <string>ERP5 Web Site/travel_expense_app</string> + <string>ERP5 Web Site/officejs_hr</string> </tuple> </key> <value> @@ -232,7 +232,7 @@ <dictionary> <item> <key> <string>id</string> </key> - <value> <string>configuration_manifest_url</string> </value> + <value> <string>configuration_router_gadget_url</string> </value> </item> <item> <key> <string>type</string> </key> @@ -249,6 +249,56 @@ <value> <string>string</string> </value> </item> </dictionary> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>configuration_translation_gadget_url</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>configuration_manifest_url</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>configuration_header_gadget_url</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>configuration_content_security_policy</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>configuration_x_frame_options</string> </value> + </item> + <item> + <key> <string>type</string> </key> + <value> <string>string</string> </value> + </item> + </dictionary> </tuple> </value> </item> @@ -282,57 +332,62 @@ <key> <string>categories</string> </key> <value> <tuple> - <string>aggregate/web_page_module/gadget_travel_expense_record_application.html</string> + <string>caching_policy/must-revalidate</string> + <string>aggregate/web_page_module/rjs_gadget_erp5_html</string> </tuple> </value> </item> <item> <key> <string>configuration_application_title</string> </key> - <value> - <none/> - </value> + <value> <string>Officejs HR</string> </value> + </item> + <item> + <key> <string>configuration_content_security_policy</string> </key> + <value> <string>default-src \'none\'; img-src \'self\' data:; media-src \'self\' blob:; connect-src \'self\' https://localhost:5000 mail.tiolive.com data: *.host.vifib.net *.node.vifib.com *.erp5.net; script-src \'self\' \'unsafe-eval\'; font-src netdna.bootstrapcdn.com; style-src \'self\' netdna.bootstrapcdn.com \'unsafe-inline\' data:; frame-src \'self\' data: *.app.officejs.com</string> </value> </item> <item> <key> <string>configuration_default_view_action_reference</string> </key> - <value> - <none/> - </value> + <value> <string>jio_view</string> </value> </item> <item> <key> <string>configuration_frontpage_gadget_url</string> </key> - <value> - <none/> - </value> + <value> <string>gadget_officejs_page_expense_record_list.html</string> </value> </item> <item> <key> <string>configuration_hateoas_url</string> </key> - <value> - <none/> - </value> + <value> <string>hateoas/</string> </value> + </item> + <item> + <key> <string>configuration_header_gadget_url</string> </key> + <value> <string>gadget_officejs_header.html</string> </value> </item> <item> <key> <string>configuration_jio_gadget_url</string> </key> - <value> - <none/> - </value> + <value> <string>gadget_hr_jio.html</string> </value> </item> <item> <key> <string>configuration_manifest_url</string> </key> - <value> - <none/> - </value> + <value> <string>gadget_officejs_hr.appcache</string> </value> </item> <item> <key> <string>configuration_panel_gadget_url</string> </key> - <value> - <none/> - </value> + <value> <string>gadget_officejs_hr_panel.html</string> </value> + </item> + <item> + <key> <string>configuration_router_gadget_url</string> </key> + <value> <string>gadget_officejs_hr_router.html</string> </value> + </item> + <item> + <key> <string>configuration_translation_gadget_url</string> </key> + <value> <string>gadget_translation.html</string> </value> </item> <item> <key> <string>configuration_view_action_category</string> </key> - <value> - <none/> - </value> + <value> <string>object_view</string> </value> + </item> + <item> + <key> <string>configuration_x_frame_options</string> </key> + <value> <string>SAMEORIGIN</string> </value> </item> <item> <key> <string>container_layout</string> </key> @@ -358,13 +413,11 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>travel_expense_app</string> </value> + <value> <string>officejs_hr</string> </value> </item> <item> <key> <string>layout_configuration_form_id</string> </key> - <value> - <none/> - </value> + <value> <string>WebSection_viewRenderJSPreference</string> </value> </item> <item> <key> <string>portal_type</string> </key> @@ -386,18 +439,12 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Travel Expense App</string> </value> + <value> <string>Office JS HR</string> </value> </item> <item> <key> <string>visible</string> </key> <value> <int>1</int> </value> </item> - <item> - <key> <string>workflow_history</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAg=</string> </persistent> - </value> - </item> </dictionary> </pickle> </record> @@ -461,144 +508,4 @@ <none/> </pickle> </record> - <record id="8" aka="AAAAAAAAAAg="> - <pickle> - <global name="PersistentMapping" module="Persistence.mapping"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>data</string> </key> - <value> - <dictionary> - <item> - <key> <string>category_publication_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAk=</string> </persistent> - </value> - </item> - <item> - <key> <string>edit_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAo=</string> </persistent> - </value> - </item> - </dictionary> - </value> - </item> - </dictionary> - </pickle> - </record> - <record id="9" aka="AAAAAAAAAAk="> - <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> - </pickle> - <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> <string>publish</string> </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1472094318.71</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - <item> - <key> <string>validation_state</string> </key> - <value> <string>published</string> </value> - </item> - </dictionary> - </list> - </tuple> - </pickle> - </record> - <record id="10" aka="AAAAAAAAAAo="> - <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> - </pickle> - <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> <string>edit</string> </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>serial</string> </key> - <value> <string>953.37759.7217.49766</string> </value> - </item> - <item> - <key> <string>state</string> </key> - <value> <string>current</string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1472548158.97</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - </dictionary> - </list> - </tuple> - </pickle> - </record> </ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_site_module/travel_expense_app/hateoas.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_site_module/officejs_hr/hateoas.xml similarity index 72% rename from bt5/erp5_travel_expense/PathTemplateItem/web_site_module/travel_expense_app/hateoas.xml rename to bt5/erp5_travel_expense/PathTemplateItem/web_site_module/officejs_hr/hateoas.xml index f8c7f665a8cc3617f83dad4a914e64972cf163e5..eeb462b0aab993462051010ea6333353103fc3d4 100644 --- a/bt5/erp5_travel_expense/PathTemplateItem/web_site_module/travel_expense_app/hateoas.xml +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_site_module/officejs_hr/hateoas.xml @@ -115,11 +115,17 @@ </value> </item> <item> - <key> <string>_identity_criterion</string> </key> + <key> <string>_count</string> </key> <value> <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> </value> </item> + <item> + <key> <string>_identity_criterion</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> <item> <key> <string>_local_properties</string> </key> <value> @@ -184,13 +190,43 @@ <value> <string>string</string> </value> </item> </dictionary> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>configuration_content_security_policy</string> </value> + </item> + <item> + <key> <string>type</string> </key> + <value> <string>string</string> </value> + </item> + </dictionary> </tuple> </value> </item> + <item> + <key> <string>_mt_index</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> <item> <key> <string>_range_criterion</string> </key> <value> - <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + <persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent> + </value> + </item> + <item> + <key> <string>_tree</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAc=</string> </persistent> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>caching_policy/hateoas</string> + </tuple> </value> </item> <item> @@ -199,6 +235,12 @@ <none/> </value> </item> + <item> + <key> <string>configuration_content_security_policy</string> </key> + <value> + <none/> + </value> + </item> <item> <key> <string>configuration_frontpage_gadget_url</string> </key> <value> @@ -245,9 +287,7 @@ </item> <item> <key> <string>layout_configuration_form_id</string> </key> - <value> - <none/> - </value> + <value> <string>WebSection_viewHateoasPreference</string> </value> </item> <item> <key> <string>portal_type</string> </key> @@ -275,12 +315,6 @@ <key> <string>visible</string> </key> <value> <int>1</int> </value> </item> - <item> - <key> <string>workflow_history</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> - </value> - </item> </dictionary> </pickle> </record> @@ -294,18 +328,9 @@ </record> <record id="3" aka="AAAAAAAAAAM="> <pickle> - <global name="PersistentMapping" module="Persistence.mapping"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>data</string> </key> - <value> - <dictionary/> - </value> - </item> - </dictionary> + <global name="Length" module="BTrees.Length"/> </pickle> + <pickle> <int>0</int> </pickle> </record> <record id="4" aka="AAAAAAAAAAQ="> <pickle> @@ -323,6 +348,14 @@ </pickle> </record> <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="OOBTree" module="BTrees.OOBTree"/> + </pickle> + <pickle> + <none/> + </pickle> + </record> + <record id="6" aka="AAAAAAAAAAY="> <pickle> <global name="PersistentMapping" module="Persistence.mapping"/> </pickle> @@ -331,137 +364,18 @@ <item> <key> <string>data</string> </key> <value> - <dictionary> - <item> - <key> <string>category_publication_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent> - </value> - </item> - <item> - <key> <string>edit_workflow</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAc=</string> </persistent> - </value> - </item> - </dictionary> + <dictionary/> </value> </item> </dictionary> </pickle> </record> - <record id="6" aka="AAAAAAAAAAY="> - <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> - </pickle> - <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1472094281.15</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - <item> - <key> <string>validation_state</string> </key> - <value> <string>embedded</string> </value> - </item> - </dictionary> - </list> - </tuple> - </pickle> - </record> <record id="7" aka="AAAAAAAAAAc="> <pickle> - <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + <global name="OOBTree" module="BTrees.OOBTree"/> </pickle> <pickle> - <tuple> - <none/> - <list> - <dictionary> - <item> - <key> <string>action</string> </key> - <value> <string>edit</string> </value> - </item> - <item> - <key> <string>actor</string> </key> - <value> <string>zope</string> </value> - </item> - <item> - <key> <string>comment</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>error_message</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>serial</string> </key> - <value> <string>953.30296.45093.48503</string> </value> - </item> - <item> - <key> <string>state</string> </key> - <value> <string>current</string> </value> - </item> - <item> - <key> <string>time</string> </key> - <value> - <object> - <klass> - <global name="DateTime" module="DateTime.DateTime"/> - </klass> - <tuple> - <none/> - </tuple> - <state> - <tuple> - <float>1472548158.93</float> - <string>UTC</string> - </tuple> - </state> - </object> - </value> - </item> - </dictionary> - </list> - </tuple> + <none/> </pickle> </record> </ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_site_module/officejs_hr/hateoas/connection.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_site_module/officejs_hr/hateoas/connection.xml new file mode 100644 index 0000000000000000000000000000000000000000..c7d9a640a781144a3995af225ba665f62954ce80 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_site_module/officejs_hr/hateoas/connection.xml @@ -0,0 +1,224 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Section" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_folders_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Copy_or_Move_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Delete_objects_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>__before_publishing_traverse__</string> </key> + <value> + <object> + <klass> + <global name="MultiHook" module="ZPublisher.BeforeTraverse"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_defined_in_class</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>_hookname</string> </key> + <value> <string>__before_publishing_traverse__</string> </value> + </item> + <item> + <key> <string>_list</string> </key> + <value> + <list> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </list> + </value> + </item> + <item> + <key> <string>_prior</string> </key> + <value> + <none/> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>__before_traverse__</string> </key> + <value> + <dictionary> + <item> + <key> + <tuple> + <int>99</int> + <string>ERP5 Web Section/connection</string> + </tuple> + </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>_identity_criterion</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>_range_criterion</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>caching_policy/no-cache</string> + </tuple> + </value> + </item> + <item> + <key> <string>container_layout</string> </key> + <value> <string>WebSection_renderDefaultPageAsGadget</string> </value> + </item> + <item> + <key> <string>content_layout</string> </key> + <value> <string>WebSection_renderDefaultPageAsGadget</string> </value> + </item> + <item> + <key> <string>custom_render_method_id</string> </key> + <value> <string>WebSection_renderDefaultPageAsGadget</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>empty_criterion_valid</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>connection</string> </value> + </item> + <item> + <key> <string>layout_configuration_form_id</string> </key> + <value> <string>WebSection_viewRenderJSPreference</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Section</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>skin_selection_name</string> </key> + <value> <string>RJS</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Connection</string> </value> + </item> + <item> + <key> <string>visible</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="WebSectionTraversalHook" module="Products.ERP5.Document.WebSection"/> + </pickle> + <pickle> + <dictionary/> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary/> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary/> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PortalTypeAllowedContentTypeTemplateItem/allowed_content_types.xml b/bt5/erp5_travel_expense/PortalTypeAllowedContentTypeTemplateItem/allowed_content_types.xml index 9cf38fae2f6135844b53ccc79c92ff3a22462365..165eff7a767c45e5fbaa2f4ffc39c940779766d5 100644 --- a/bt5/erp5_travel_expense/PortalTypeAllowedContentTypeTemplateItem/allowed_content_types.xml +++ b/bt5/erp5_travel_expense/PortalTypeAllowedContentTypeTemplateItem/allowed_content_types.xml @@ -5,4 +5,14 @@ <portal_type id="Expense Validation Item Module"> <item>Expense Validation Item</item> </portal_type> + <portal_type id="Expense Validation Request Module"> + <item>Expense Validation Request</item> + </portal_type> + <portal_type id="Record Module"> + <item>Leave Request Record</item> + <item>Travel Request Record</item> + </portal_type> + <portal_type id="Travel Request Module"> + <item>Travel Request</item> + </portal_type> </allowed_content_type_list> \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PortalTypeBaseCategoryTemplateItem/base_category_list.xml b/bt5/erp5_travel_expense/PortalTypeBaseCategoryTemplateItem/base_category_list.xml index c33873f0d3ba0470f29038aeaa14a2f7b5d1d472..e3b87c90e0673dd8bcf9d3ebe321a1ea0fa3cbb4 100644 --- a/bt5/erp5_travel_expense/PortalTypeBaseCategoryTemplateItem/base_category_list.xml +++ b/bt5/erp5_travel_expense/PortalTypeBaseCategoryTemplateItem/base_category_list.xml @@ -5,4 +5,13 @@ <portal_type id="Expense Validation Item Module"> <item>business_application</item> </portal_type> + <portal_type id="Expense Validation Request Module"> + <item>business_application</item> + </portal_type> + <portal_type id="Record Module"> + <item>business_application</item> + </portal_type> + <portal_type id="Travel Request Module"> + <item>business_application</item> + </portal_type> </base_category_list> \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PortalTypeHiddenContentTypeTemplateItem/hidden_content_type_list.xml b/bt5/erp5_travel_expense/PortalTypeHiddenContentTypeTemplateItem/hidden_content_type_list.xml deleted file mode 100644 index 071b63cb4dbcc9f92db359c9d70321acffd93357..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PortalTypeHiddenContentTypeTemplateItem/hidden_content_type_list.xml +++ /dev/null @@ -1,5 +0,0 @@ -<hidden_content_type_list> - <portal_type id="Expense Record Module"> - <item>Expense Record</item> - </portal_type> -</hidden_content_type_list> \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PortalTypePropertySheetTemplateItem/property_sheet_list.xml b/bt5/erp5_travel_expense/PortalTypePropertySheetTemplateItem/property_sheet_list.xml index e26b10eab7403284595598f2ef7b7d7d2ced5df7..dcdab2f94c3006202a83ee3819a3f13bb63430f6 100644 --- a/bt5/erp5_travel_expense/PortalTypePropertySheetTemplateItem/property_sheet_list.xml +++ b/bt5/erp5_travel_expense/PortalTypePropertySheetTemplateItem/property_sheet_list.xml @@ -2,4 +2,16 @@ <portal_type id="Expense Record"> <item>ExpenseRecord</item> </portal_type> + <portal_type id="Expense Validation Request"> + <item>ExpenseValidationRequest</item> + </portal_type> + <portal_type id="Leave Request Record"> + <item>LeaveRequestRecord</item> + </portal_type> + <portal_type id="Travel Request"> + <item>TravelRequest</item> + </portal_type> + <portal_type id="Travel Request Record"> + <item>TravelRequestRecord</item> + </portal_type> </property_sheet_list> \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Record.xml b/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Record.xml index a24febfd022aa6e330a7401344219d566f8a213e..1c5cc6416d399d690de465b24e92444522b2588c 100644 --- a/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Record.xml +++ b/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Record.xml @@ -37,7 +37,7 @@ </item> <item> <key> <string>init_script</string> </key> - <value> <string>ExpenseRecord_init</string> </value> + <value> <string>Record_init</string> </value> </item> <item> <key> <string>permission</string> </key> diff --git a/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Validation%20Request%20Module.xml b/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Validation%20Request%20Module.xml new file mode 100644 index 0000000000000000000000000000000000000000..376eb7fcf7a84686a6e7e210f5cdc99dcce2c0f8 --- /dev/null +++ b/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Validation%20Request%20Module.xml @@ -0,0 +1,108 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Base Type" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_property_domain_dict</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>content_icon</string> </key> + <value> <string>folder_icon.gif</string> </value> + </item> + <item> + <key> <string>factory</string> </key> + <value> <string>addFolder</string> </value> + </item> + <item> + <key> <string>group_list</string> </key> + <value> + <tuple> + <string>module</string> + </tuple> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>Expense Validation Request Module</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Base Type</string> </value> + </item> + <item> + <key> <string>type_class</string> </key> + <value> <string>Folder</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>short_title</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="TranslationInformation" module="Products.ERP5Type.TranslationProviderBase"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>domain_name</string> </key> + <value> <string>erp5_ui</string> </value> + </item> + <item> + <key> <string>property_name</string> </key> + <value> <string>short_title</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="TranslationInformation" module="Products.ERP5Type.TranslationProviderBase"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>domain_name</string> </key> + <value> <string>erp5_ui</string> </value> + </item> + <item> + <key> <string>property_name</string> </key> + <value> <string>title</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Validation%20Request.xml b/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Validation%20Request.xml new file mode 100644 index 0000000000000000000000000000000000000000..474405afa0eab6ff49e19cfe03cc0e36ebd7bdf1 --- /dev/null +++ b/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Validation%20Request.xml @@ -0,0 +1,74 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Base Type" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>content_icon</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>factory</string> </key> + <value> <string>addXMLObject</string> </value> + </item> + <item> + <key> <string>group_list</string> </key> + <value> + <tuple> + <string>ticket</string> + </tuple> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>Expense Validation Request</string> </value> + </item> + <item> + <key> <string>init_script</string> </key> + <value> <string>Ticket_init</string> </value> + </item> + <item> + <key> <string>permission</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Base Type</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> <string>EVR</string> </value> + </item> + <item> + <key> <string>type_class</string> </key> + <value> <string>Ticket</string> </value> + </item> + <item> + <key> <string>type_interface</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>type_mixin</string> </key> + <value> + <tuple/> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Leave%20Request%20Record.xml b/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Leave%20Request%20Record.xml new file mode 100644 index 0000000000000000000000000000000000000000..31c1b89ceaa6bb3e6304821568e3a97709b69e6d --- /dev/null +++ b/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Leave%20Request%20Record.xml @@ -0,0 +1,73 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Base Type" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>content_icon</string> </key> + <value> <string>event_icon.gif</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>factory</string> </key> + <value> <string>addXMLObject</string> </value> + </item> + <item> + <key> <string>group_list</string> </key> + <value> + <tuple> + <string>delivery</string> + <string>event</string> + </tuple> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>Leave Request Record</string> </value> + </item> + <item> + <key> <string>init_script</string> </key> + <value> <string>Record_init</string> </value> + </item> + <item> + <key> <string>permission</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Base Type</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> <string>LRR</string> </value> + </item> + <item> + <key> <string>type_class</string> </key> + <value> <string>Event</string> </value> + </item> + <item> + <key> <string>type_interface</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>type_mixin</string> </key> + <value> + <tuple/> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Record%20Module.xml b/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Record%20Module.xml new file mode 100644 index 0000000000000000000000000000000000000000..46bea0baca6ab3f3dbbea59efa3ac260771f7bcd --- /dev/null +++ b/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Record%20Module.xml @@ -0,0 +1,138 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Base Type" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_property_domain_dict</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>content_icon</string> </key> + <value> <string>folder_icon.gif</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>factory</string> </key> + <value> <string>addFolder</string> </value> + </item> + <item> + <key> <string>group_list</string> </key> + <value> + <tuple> + <string>module</string> + </tuple> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>Record Module</string> </value> + </item> + <item> + <key> <string>init_script</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>permission</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Base Type</string> </value> + </item> + <item> + <key> <string>type_class</string> </key> + <value> <string>Folder</string> </value> + </item> + <item> + <key> <string>type_interface</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>type_mixin</string> </key> + <value> + <tuple/> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>short_title</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="TranslationInformation" module="Products.ERP5Type.TranslationProviderBase"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>domain_name</string> </key> + <value> <string>erp5_ui</string> </value> + </item> + <item> + <key> <string>property_name</string> </key> + <value> <string>short_title</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="TranslationInformation" module="Products.ERP5Type.TranslationProviderBase"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>domain_name</string> </key> + <value> <string>erp5_ui</string> </value> + </item> + <item> + <key> <string>property_name</string> </key> + <value> <string>title</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Validation%20Item%20Module.xml b/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Travel%20Request%20Module.xml similarity index 97% rename from bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Validation%20Item%20Module.xml rename to bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Travel%20Request%20Module.xml index 7d7020e78f37b363f906d4c9b41f56c5dd92a33f..1f88f960f210d8f34adfb29330a7354674450d60 100644 --- a/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Validation%20Item%20Module.xml +++ b/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Travel%20Request%20Module.xml @@ -30,7 +30,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>Expense Validation Item Module</string> </value> + <value> <string>Travel Request Module</string> </value> </item> <item> <key> <string>portal_type</string> </key> diff --git a/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Travel%20Request%20Record.xml b/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Travel%20Request%20Record.xml new file mode 100644 index 0000000000000000000000000000000000000000..9082de7aaa5fecdc830f69489f65f3c257bf26de --- /dev/null +++ b/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Travel%20Request%20Record.xml @@ -0,0 +1,75 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Base Type" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>content_icon</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>factory</string> </key> + <value> <string>addXMLObject</string> </value> + </item> + <item> + <key> <string>group_list</string> </key> + <value> + <tuple> + <string>delivery</string> + <string>event</string> + </tuple> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>Travel Request Record</string> </value> + </item> + <item> + <key> <string>init_script</string> </key> + <value> <string>Record_init</string> </value> + </item> + <item> + <key> <string>permission</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Base Type</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> <string>TRR</string> </value> + </item> + <item> + <key> <string>type_class</string> </key> + <value> <string>Event</string> </value> + </item> + <item> + <key> <string>type_interface</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>type_mixin</string> </key> + <value> + <tuple/> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Validation%20Item.xml b/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Travel%20Request.xml similarity index 87% rename from bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Validation%20Item.xml rename to bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Travel%20Request.xml index ac31ce344ded37b17f4da60fe9b3681b5d7d0632..13c3b2199415963ca473e269c743403a3743db62 100644 --- a/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Validation%20Item.xml +++ b/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Travel%20Request.xml @@ -32,13 +32,11 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>Expense Validation Item</string> </value> + <value> <string>Travel Request</string> </value> </item> <item> <key> <string>init_script</string> </key> - <value> - <none/> - </value> + <value> <string>Ticket_init</string> </value> </item> <item> <key> <string>permission</string> </key> @@ -50,6 +48,10 @@ <key> <string>portal_type</string> </key> <value> <string>Base Type</string> </value> </item> + <item> + <key> <string>short_title</string> </key> + <value> <string>TR</string> </value> + </item> <item> <key> <string>type_class</string> </key> <value> <string>Ticket</string> </value> diff --git a/bt5/erp5_travel_expense/PortalTypeWorkflowChainTemplateItem/workflow_chain_type.xml b/bt5/erp5_travel_expense/PortalTypeWorkflowChainTemplateItem/workflow_chain_type.xml index 8cdb568de46fe9eedb5bc10e32d870338cb42bf9..82bad94ad69213636637c826baf540d339d7b10e 100644 --- a/bt5/erp5_travel_expense/PortalTypeWorkflowChainTemplateItem/workflow_chain_type.xml +++ b/bt5/erp5_travel_expense/PortalTypeWorkflowChainTemplateItem/workflow_chain_type.xml @@ -1,10 +1,26 @@ <workflow_chain> <chain> <type>Expense Record</type> - <workflow>document_conversion_interaction_workflow, edit_workflow, event_interaction_workflow, pricing_interaction_workflow, travel_expense_event_simulation_workflow, travel_expense_jio_interaction_workflow</workflow> + <workflow>document_conversion_interaction_workflow, edit_workflow, event_interaction_workflow, event_simulation_workflow, pricing_interaction_workflow</workflow> </chain> <chain> - <type>Expense Validation Item</type> - <workflow>edit_workflow, pricing_interaction_workflow, ticket_interaction_workflow, ticket_workflow, travel_expense_jio_interaction_workflow</workflow> + <type>Expense Validation Request</type> + <workflow>edit_workflow, pricing_interaction_workflow, ticket_acceptance_simulation_workflow, ticket_interaction_workflow, ticket_record_interaction_workflow</workflow> + </chain> + <chain> + <type>Leave Request Record</type> + <workflow>document_conversion_interaction_workflow, edit_workflow, event_interaction_workflow, event_simulation_workflow, pricing_interaction_workflow, validation_workflow</workflow> + </chain> + <chain> + <type>Record Module</type> + <workflow>edit_workflow, validation_workflow</workflow> + </chain> + <chain> + <type>Travel Request</type> + <workflow>edit_workflow, pricing_interaction_workflow, ticket_acceptance_simulation_workflow, ticket_interaction_workflow, ticket_record_interaction_workflow</workflow> + </chain> + <chain> + <type>Travel Request Record</type> + <workflow>document_conversion_interaction_workflow, edit_workflow, event_interaction_workflow, event_simulation_workflow, pricing_interaction_workflow</workflow> </chain> </workflow_chain> \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/contributor_category.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/contributor_category.xml deleted file mode 100644 index 778c2d096fc027e8e0c6b25fe0bd966b65657275..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/contributor_category.xml +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="Category Property" module="erp5.portal_type"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>description</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>contributor_category</string> </value> - </item> - <item> - <key> <string>portal_type</string> </key> - <value> <string>Category Property</string> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/latitude_property.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/latitude_property.xml new file mode 100644 index 0000000000000000000000000000000000000000..96ecfe95fd350dbb46e452ddadd380a2b15e9483 --- /dev/null +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/latitude_property.xml @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Standard Property" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>elementary_type/float</string> + </tuple> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>latitude_property</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Standard Property</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/longitude_property.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/longitude_property.xml new file mode 100644 index 0000000000000000000000000000000000000000..f3f69cae4a7711b59e6a53df672d9ff933914ba0 --- /dev/null +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/longitude_property.xml @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Standard Property" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>elementary_type/float</string> + </tuple> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>longitude_property</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Standard Property</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/record_revision_property.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/record_revision_property.xml deleted file mode 100644 index 210bf53a4f4da1e9130e1b6501614acb4f96f610..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/record_revision_property.xml +++ /dev/null @@ -1,34 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="Standard Property" module="erp5.portal_type"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>categories</string> </key> - <value> - <tuple> - <string>elementary_type/int</string> - </tuple> - </value> - </item> - <item> - <key> <string>description</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>record_revision_property</string> </value> - </item> - <item> - <key> <string>portal_type</string> </key> - <value> <string>Standard Property</string> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/resource_title_property.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/resource_title_property.xml new file mode 100644 index 0000000000000000000000000000000000000000..88f864e9ba68b8a73a14ec4091d9c0282a57813c --- /dev/null +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/resource_title_property.xml @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Standard Property" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>elementary_type/string</string> + </tuple> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>resource_title_property</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Standard Property</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/LeaveRequestRecord.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/LeaveRequestRecord.xml new file mode 100644 index 0000000000000000000000000000000000000000..506aeea55a467d273562f78b95be79d4abc18197 --- /dev/null +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/LeaveRequestRecord.xml @@ -0,0 +1,66 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Property Sheet" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_count</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>_mt_index</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>_tree</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>LeaveRequestRecord</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Property Sheet</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Length" module="BTrees.Length"/> + </pickle> + <pickle> <int>0</int> </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="OOBTree" module="BTrees.OOBTree"/> + </pickle> + <pickle> + <none/> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="OOBTree" module="BTrees.OOBTree"/> + </pickle> + <pickle> + <none/> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/copy_of_property.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/LeaveRequestRecord/comment_property.xml similarity index 93% rename from bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/copy_of_property.xml rename to bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/LeaveRequestRecord/comment_property.xml index 98493e1c1b1ae9d30de228116f5b75d67848ebe6..20bdfd9a5f6791ef5ec7b420d4fb233edf2ec9c6 100644 --- a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/copy_of_property.xml +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/LeaveRequestRecord/comment_property.xml @@ -22,7 +22,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>copy_of_property</string> </value> + <value> <string>comment_property</string> </value> </item> <item> <key> <string>portal_type</string> </key> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/LeaveRequestRecord/destination_node_property.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/LeaveRequestRecord/destination_node_property.xml new file mode 100644 index 0000000000000000000000000000000000000000..9cfedef45fcb2572c6b721bff765c5c575346868 --- /dev/null +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/LeaveRequestRecord/destination_node_property.xml @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Standard Property" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>elementary_type/string</string> + </tuple> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>destination_node_property</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Standard Property</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/LeaveRequestRecord/destination_node_title_property.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/LeaveRequestRecord/destination_node_title_property.xml new file mode 100644 index 0000000000000000000000000000000000000000..cde528d6fe339ba32dc92945d06b46253412ee9d --- /dev/null +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/LeaveRequestRecord/destination_node_title_property.xml @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Standard Property" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>elementary_type/string</string> + </tuple> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>destination_node_title_property</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Standard Property</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/resource_property.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/LeaveRequestRecord/resource_property.xml similarity index 100% rename from bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/resource_property.xml rename to bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/LeaveRequestRecord/resource_property.xml diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/LeaveRequestRecord/resource_title_property.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/LeaveRequestRecord/resource_title_property.xml new file mode 100644 index 0000000000000000000000000000000000000000..88f864e9ba68b8a73a14ec4091d9c0282a57813c --- /dev/null +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/LeaveRequestRecord/resource_title_property.xml @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Standard Property" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>elementary_type/string</string> + </tuple> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>resource_title_property</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Standard Property</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/doc_id_property.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/LeaveRequestRecord/site_property.xml similarity index 93% rename from bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/doc_id_property.xml rename to bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/LeaveRequestRecord/site_property.xml index b94157dffa2e6ef46e070b917a4c57f6c375b10f..1a4e5329ef21ff8257db9d0cbe05861609c2f723 100644 --- a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/doc_id_property.xml +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/LeaveRequestRecord/site_property.xml @@ -22,7 +22,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>doc_id_property</string> </value> + <value> <string>site_property</string> </value> </item> <item> <key> <string>portal_type</string> </key> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/TravelRequest.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/TravelRequest.xml new file mode 100644 index 0000000000000000000000000000000000000000..4be6471776ea3cda2f524372e98b7781bcc174e9 --- /dev/null +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/TravelRequest.xml @@ -0,0 +1,66 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Property Sheet" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_count</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>_mt_index</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>_tree</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>TravelRequest</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Property Sheet</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Length" module="BTrees.Length"/> + </pickle> + <pickle> <int>0</int> </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="OOBTree" module="BTrees.OOBTree"/> + </pickle> + <pickle> + <none/> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="OOBTree" module="BTrees.OOBTree"/> + </pickle> + <pickle> + <none/> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/visible_in_html5_app_flag_property.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/TravelRequest/animation_center_property.xml similarity index 81% rename from bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/visible_in_html5_app_flag_property.xml rename to bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/TravelRequest/animation_center_property.xml index 97797f51f60448314aef37d29c7b639b1cf3594e..4f6aa91e2bac64ac41aff18ae6fd08547796cd72 100644 --- a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/visible_in_html5_app_flag_property.xml +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/TravelRequest/animation_center_property.xml @@ -10,7 +10,7 @@ <key> <string>categories</string> </key> <value> <tuple> - <string>elementary_type/boolean</string> + <string>elementary_type/string</string> </tuple> </value> </item> @@ -22,7 +22,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>visible_in_html5_app_flag_property</string> </value> + <value> <string>animation_center_property</string> </value> </item> <item> <key> <string>portal_type</string> </key> @@ -30,9 +30,7 @@ </item> <item> <key> <string>property_default</string> </key> - <value> - <none/> - </value> + <value> <string>python: ""</string> </value> </item> </dictionary> </pickle> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/TravelRequest/travel_destination_property.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/TravelRequest/travel_destination_property.xml new file mode 100644 index 0000000000000000000000000000000000000000..281f9ab1c67ad00770eab25cf032d3aaea2dbda5 --- /dev/null +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/TravelRequest/travel_destination_property.xml @@ -0,0 +1,38 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Standard Property" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>elementary_type/string</string> + </tuple> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>travel_destination_property</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Standard Property</string> </value> + </item> + <item> + <key> <string>property_default</string> </key> + <value> <string>python: ""</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/TravelRequestRecord.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/TravelRequestRecord.xml new file mode 100644 index 0000000000000000000000000000000000000000..08df981fa15e52e16cdf8915559735460e1f29a4 --- /dev/null +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/TravelRequestRecord.xml @@ -0,0 +1,66 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Property Sheet" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_count</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>_mt_index</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>_tree</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>TravelRequestRecord</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Property Sheet</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Length" module="BTrees.Length"/> + </pickle> + <pickle> <int>0</int> </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="OOBTree" module="BTrees.OOBTree"/> + </pickle> + <pickle> + <none/> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="OOBTree" module="BTrees.OOBTree"/> + </pickle> + <pickle> + <none/> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/TravelRequestRecord/comment_property.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/TravelRequestRecord/comment_property.xml new file mode 100644 index 0000000000000000000000000000000000000000..f2855ed84c1af6da23ddd1f856131603f768a1c7 --- /dev/null +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/TravelRequestRecord/comment_property.xml @@ -0,0 +1,38 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Standard Property" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>elementary_type/string</string> + </tuple> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>comment_property</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Standard Property</string> </value> + </item> + <item> + <key> <string>property_default</string> </key> + <value> <string>python: ""</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/TravelRequestRecord/destination_node_property.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/TravelRequestRecord/destination_node_property.xml new file mode 100644 index 0000000000000000000000000000000000000000..9cfedef45fcb2572c6b721bff765c5c575346868 --- /dev/null +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/TravelRequestRecord/destination_node_property.xml @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Standard Property" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>elementary_type/string</string> + </tuple> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>destination_node_property</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Standard Property</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/TravelRequestRecord/destination_node_title_property.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/TravelRequestRecord/destination_node_title_property.xml new file mode 100644 index 0000000000000000000000000000000000000000..cde528d6fe339ba32dc92945d06b46253412ee9d --- /dev/null +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/TravelRequestRecord/destination_node_title_property.xml @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Standard Property" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>elementary_type/string</string> + </tuple> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>destination_node_title_property</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Standard Property</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/sync_flag_property.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/TravelRequestRecord/resource_property.xml similarity index 92% rename from bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/sync_flag_property.xml rename to bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/TravelRequestRecord/resource_property.xml index b11e76453f71fdcaf469ebe4bd80ca4aadb8b517..0af10e9e48298f385b427e4dde90fee9e67d20bb 100644 --- a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/sync_flag_property.xml +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/TravelRequestRecord/resource_property.xml @@ -22,7 +22,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>sync_flag_property</string> </value> + <value> <string>resource_property</string> </value> </item> <item> <key> <string>portal_type</string> </key> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/TravelRequestRecord/resource_title_property.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/TravelRequestRecord/resource_title_property.xml new file mode 100644 index 0000000000000000000000000000000000000000..88f864e9ba68b8a73a14ec4091d9c0282a57813c --- /dev/null +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/TravelRequestRecord/resource_title_property.xml @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Standard Property" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>elementary_type/string</string> + </tuple> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>resource_title_property</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Standard Property</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/TravelRequestRecord/site_property.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/TravelRequestRecord/site_property.xml new file mode 100644 index 0000000000000000000000000000000000000000..1a4e5329ef21ff8257db9d0cbe05861609c2f723 --- /dev/null +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/TravelRequestRecord/site_property.xml @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Standard Property" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>elementary_type/string</string> + </tuple> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>site_property</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Standard Property</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record.xml new file mode 100644 index 0000000000000000000000000000000000000000..c4a4990e7e8979827eb94bb4734a009857c14f52 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record.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>erp5_hr_record</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Alarm_processDraftRecord.py b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Alarm_processDraftRecord.py new file mode 100644 index 0000000000000000000000000000000000000000..3defbb58076a9e1425f1457c776a84670ab2d4e3 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Alarm_processDraftRecord.py @@ -0,0 +1,18 @@ +portal = context.getPortalObject() +portal.portal_catalog.searchAndActivate( + portal_type="Leave Request Record", + simulation_state=["draft"], + method_id='LeaveRequestRecord_processDraftRecord', +) + +portal.portal_catalog.searchAndActivate( + portal_type="Travel Request Record", + simulation_state=["draft"], + method_id='Record_processDraftRecord', +) + +portal.portal_catalog.searchAndActivate( + portal_type="Expense Record", + simulation_state=["draft"], + method_id='Record_processDraftRecord', +) diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Alarm_createExpenseValidationItem.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Alarm_processDraftRecord.xml similarity index 96% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Alarm_createExpenseValidationItem.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Alarm_processDraftRecord.xml index 52a4cce297ea611cbbcf0c63425c841f8596541d..48f427c46c96f1a8e52f336ed7ddd203c671ce40 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Alarm_createExpenseValidationItem.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Alarm_processDraftRecord.xml @@ -54,7 +54,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>Alarm_createExpenseValidationItem</string> </value> + <value> <string>Alarm_processDraftRecord</string> </value> </item> </dictionary> </pickle> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Base_viewAsJio.xml similarity index 100% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Base_viewAsJio.xml diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio/my_category_relative_url.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Base_viewAsJio/my_category_relative_url.xml similarity index 100% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio/my_category_relative_url.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Base_viewAsJio/my_category_relative_url.xml diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio/my_logical_path.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Base_viewAsJio/my_logical_path.xml similarity index 100% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio/my_logical_path.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Base_viewAsJio/my_logical_path.xml diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio/my_parent_uid.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Base_viewAsJio/my_parent_uid.xml similarity index 100% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio/my_parent_uid.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Base_viewAsJio/my_parent_uid.xml diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio/my_relative_url.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Base_viewAsJio/my_relative_url.xml similarity index 100% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio/my_relative_url.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Base_viewAsJio/my_relative_url.xml diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio/my_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Base_viewAsJio/my_title.xml similarity index 100% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio/my_title.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Base_viewAsJio/my_title.xml diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Currency_viewAsJio.xml similarity index 100% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Currency_viewAsJio.xml diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio/my_logical_path.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Currency_viewAsJio/my_logical_path.xml similarity index 100% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio/my_logical_path.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Currency_viewAsJio/my_logical_path.xml diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio/my_parent_uid.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Currency_viewAsJio/my_parent_uid.xml similarity index 100% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio/my_parent_uid.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Currency_viewAsJio/my_parent_uid.xml diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio/my_relative_url.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Currency_viewAsJio/my_relative_url.xml similarity index 100% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio/my_relative_url.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Currency_viewAsJio/my_relative_url.xml diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio/my_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Currency_viewAsJio/my_title.xml similarity index 100% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio/my_title.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Currency_viewAsJio/my_title.xml diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio/my_validation_state.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Currency_viewAsJio/my_validation_state.xml similarity index 100% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio/my_validation_state.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Currency_viewAsJio/my_validation_state.xml diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecordModule_viewExpenseRecordList.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecordModule_viewExpenseRecordList.xml similarity index 100% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecordModule_viewExpenseRecordList.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecordModule_viewExpenseRecordList.xml diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecordModule_viewExpenseRecordList/listbox.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecordModule_viewExpenseRecordList/listbox.xml similarity index 87% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecordModule_viewExpenseRecordList/listbox.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecordModule_viewExpenseRecordList/listbox.xml index 1d4ff1ade2ac2072e24f0e292bcd3decd89d5c90..f95b803eb010b2448e1d97d84e567ef542cdcea2 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecordModule_viewExpenseRecordList/listbox.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecordModule_viewExpenseRecordList/listbox.xml @@ -12,6 +12,7 @@ <list> <string>columns</string> <string>selection_name</string> + <string>sort</string> <string>title</string> </list> </value> @@ -74,16 +75,12 @@ <string>Title</string> </tuple> <tuple> - <string>record_revision</string> - <string>Record Revision</string> + <string>quantity</string> + <string>Quantity</string> </tuple> <tuple> - <string>contributor_title</string> - <string>Contributor</string> - </tuple> - <tuple> - <string>translated_simulation_state_title</string> - <string>State</string> + <string>source_title</string> + <string>Source</string> </tuple> <tuple> <string>creation_date</string> @@ -93,6 +90,10 @@ <string>modification_date</string> <string>Modification Date</string> </tuple> + <tuple> + <string>translated_simulation_state_title</string> + <string>State</string> + </tuple> </list> </value> </item> @@ -119,6 +120,17 @@ <key> <string>selection_name</string> </key> <value> <string>expense_record_module_selection</string> </value> </item> + <item> + <key> <string>sort</string> </key> + <value> + <list> + <tuple> + <string>creation_date</string> + <string>descending</string> + </tuple> + </list> + </value> + </item> <item> <key> <string>title</string> </key> <value> <string>Expense Records</string> </value> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_updateRelatedTicket.py b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_updateRelatedTicket.py new file mode 100644 index 0000000000000000000000000000000000000000..df7e9ae010aa789810eefb8f4ca3dc5842000f04 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_updateRelatedTicket.py @@ -0,0 +1,50 @@ +portal = context.getPortalObject() +record = context + +if record.getDestinationReference() is not None: + ticket_brain_list = portal.portal_catalog( + portal_type="Expense Validation Request", + reference=record.getDestinationReference(), + ) + if len(ticket_brain_list) != 1: + raise ValueError("Incorrect number of follow_up ticket found for the Record") + ticket = ticket_brain_list[0].getObject() +else: + # No destination reference means no ticket to track it server side: Create a new one + record.Event_createFollowUpTicket( + follow_up_ticket_title=record.getTitle(), + follow_up_ticket_type="Expense Validation Request", + ) + ticket = record.getFollowUpValue() + +record.setDestinationReference(ticket.getReference()) + +record.setFollowUpValue(ticket) + + +ticket.edit( + title=record.getTitle(), + #resource=record.getSource(), + start_date=DateTime(record.getDate()), + stop_date=DateTime(record.getDate()), + # Specific + quantity=1.0, + quantity_unit="unit", + price=record.getQuantity(), + price_currency=record.getResource(), + description=record.getComment(), + latitude=record.getLatitude(), + longitude=record.getLongitude(), + ) +photo_data = record.getPhotoData() +if photo_data: + ticket.setPhotoData(photo_data) + +record.deliver() + +# Probably should leave the interaction do this +ticket.ExpenseValidationRequest_createRepresentativeRecord( + record_relative_url=record.getRelativeUrl() + ) + +return ticket diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_updateRelatedTicket.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_updateRelatedTicket.xml new file mode 100644 index 0000000000000000000000000000000000000000..494d70922a082cb398b545286a59c9aaf58011fb --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_updateRelatedTicket.xml @@ -0,0 +1,62 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>Script_magic</string> </key> + <value> <int>3</int> </value> + </item> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_container</string> </key> + <value> <string>container</string> </value> + </item> + <item> + <key> <string>name_context</string> </key> + <value> <string>context</string> </value> + </item> + <item> + <key> <string>name_m_self</string> </key> + <value> <string>script</string> </value> + </item> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_params</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>ExpenseRecord_updateRelatedTicket</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view.xml similarity index 91% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view.xml index 1ed7fdb63fd4b345e4a38f8d27611aa127a2faf0..d2fab1aff6c3fad4461860c53684c876ada2dc5b 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view.xml @@ -60,9 +60,7 @@ <key> <string>center</string> </key> <value> <list> - <string>my_date</string> <string>my_comment</string> - <string>my_quantity</string> <string>your_image</string> </list> </value> @@ -70,17 +68,22 @@ <item> <key> <string>hidden</string> </key> <value> - <list/> + <list> + <string>my_record_revision</string> + <string>your_error_message</string> + </list> </value> </item> <item> <key> <string>left</string> </key> <value> <list> - <string>my_record_revision</string> - <string>my_contributor_title</string> - <string>my_follow_up_title</string> - <string>my_translated_simulation_state_title</string> + <string>my_reference</string> + <string>my_source_reference</string> + <string>my_title</string> + <string>my_date</string> + <string>my_quantity</string> + <string>my_resource_title</string> </list> </value> </item> @@ -88,7 +91,9 @@ <key> <string>right</string> </key> <value> <list> - <string>your_error_message</string> + <string>my_default_follow_up_title</string> + <string>my_source_title</string> + <string>my_translated_simulation_state_title</string> </list> </value> </item> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_ledger.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/my_comment.xml similarity index 92% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_ledger.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/my_comment.xml index 6daf4f3bbc98dfe32b6e5521d70a7fa5c7252fb0..cd6c961a9f50e448b03067b277774fbb838fadf0 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_ledger.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/my_comment.xml @@ -14,7 +14,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>my_ledger</string> </value> + <value> <string>my_comment</string> </value> </item> <item> <key> <string>message_values</string> </key> @@ -71,11 +71,11 @@ <dictionary> <item> <key> <string>field_id</string> </key> - <value> <string>my_ledger</string> </value> + <value> <string>my_description</string> </value> </item> <item> <key> <string>form_id</string> </key> - <value> <string>AccountingTransaction_viewFieldLibrary</string> </value> + <value> <string>Base_viewCRMFieldLibrary</string> </value> </item> <item> <key> <string>target</string> </key> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_date.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/my_date.xml similarity index 100% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_date.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/my_date.xml diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/my_default_follow_up_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/my_default_follow_up_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..3de3f9aa68b119503b923eb5697517100bf5fafd --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/my_default_follow_up_title.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_default_follow_up_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_default_follow_up_title</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_quantity.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/my_quantity.xml similarity index 100% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_quantity.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/my_quantity.xml diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_record_revision.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/my_record_revision.xml similarity index 100% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_record_revision.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/my_record_revision.xml diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/my_reference.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/my_reference.xml new file mode 100644 index 0000000000000000000000000000000000000000..b184a3f86d644749b44894247ee1fb175a265534 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/my_reference.xml @@ -0,0 +1,96 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>editable</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_reference</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>editable</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_reference</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/my_resource_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/my_resource_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..cb87b41954fc0ed6f9c1792d978dc747533922a0 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/my_resource_title.xml @@ -0,0 +1,264 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_resource_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Currency</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_reference.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/my_source_reference.xml similarity index 89% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_reference.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/my_source_reference.xml index a69166ad4b7e9fd6c89103b7895b86c5f105d7f7..7e3eeb70877773b9c6552d7351ef8a8d14d0200b 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_reference.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/my_source_reference.xml @@ -10,13 +10,14 @@ <key> <string>delegated_list</string> </key> <value> <list> + <string>editable</string> <string>title</string> </list> </value> </item> <item> <key> <string>id</string> </key> - <value> <string>my_reference</string> </value> + <value> <string>my_source_reference</string> </value> </item> <item> <key> <string>message_values</string> </key> @@ -72,8 +73,8 @@ <value> <dictionary> <item> - <key> <string>description</string> </key> - <value> <string></string> </value> + <key> <string>editable</string> </key> + <value> <int>0</int> </value> </item> <item> <key> <string>field_id</string> </key> @@ -81,7 +82,7 @@ </item> <item> <key> <string>form_id</string> </key> - <value> <string>AccountingTransaction_viewFieldLibrary</string> </value> + <value> <string>Base_viewFieldLibrary</string> </value> </item> <item> <key> <string>target</string> </key> @@ -89,7 +90,7 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Document Reference</string> </value> + <value> <string>Source Reference</string> </value> </item> </dictionary> </value> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_source_reference.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/my_source_title.xml similarity index 83% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_source_reference.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/my_source_title.xml index be7934e147d7eab173f8863585fd9ec654a9612a..1413ec4109f9f37a34dbb1592d1c165db3b75110 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_source_reference.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/my_source_title.xml @@ -9,12 +9,15 @@ <item> <key> <string>delegated_list</string> </key> <value> - <list/> + <list> + <string>allow_creation</string> + <string>editable</string> + </list> </value> </item> <item> <key> <string>id</string> </key> - <value> <string>my_source_reference</string> </value> + <value> <string>my_source_title</string> </value> </item> <item> <key> <string>message_values</string> </key> @@ -70,25 +73,25 @@ <value> <dictionary> <item> - <key> <string>description</string> </key> - <value> <string>the accountant transaction reference of the sale</string> </value> + <key> <string>allow_creation</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> </item> <item> <key> <string>field_id</string> </key> - <value> <string>my_source_reference</string> </value> + <value> <string>my_event_source_title</string> </value> </item> <item> <key> <string>form_id</string> </key> - <value> <string>AccountingTransaction_viewFieldLibrary</string> </value> + <value> <string>Base_viewCRMFieldLibrary</string> </value> </item> <item> <key> <string>target</string> </key> <value> <string>Click to edit the target</string> </value> </item> - <item> - <key> <string>title</string> </key> - <value> <string>Transaction Reference</string> </value> - </item> </dictionary> </value> </item> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/my_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/my_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..aa1828b1b0677dbf1dcf535c9d77e38305209d1e --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/my_title.xml @@ -0,0 +1,264 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Title</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_translated_simulation_state_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/my_translated_simulation_state_title.xml similarity index 100% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_translated_simulation_state_title.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/my_translated_simulation_state_title.xml diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/your_error_message.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/your_error_message.xml similarity index 100% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/your_error_message.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/your_error_message.xml diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/your_photo.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/your_image.xml similarity index 77% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/your_photo.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/your_image.xml index 503663fe1eed7910c79fcb777689ef0b43b76516..77eba35337b312e35ce7a03c8efe928e3438199a 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/your_photo.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_view/your_image.xml @@ -2,13 +2,13 @@ <ZopeData> <record id="1" aka="AAAAAAAAAAE="> <pickle> - <global name="ImageField" module="Products.ERP5Form.ImageField"/> + <global name="EditorField" module="Products.ERP5Form.EditorField"/> </pickle> <pickle> <dictionary> <item> <key> <string>id</string> </key> - <value> <string>your_photo</string> </value> + <value> <string>your_image</string> </value> </item> <item> <key> <string>message_values</string> </key> @@ -18,13 +18,21 @@ <key> <string>external_validator_failed</string> </key> <value> <string>The input failed the external validator.</string> </value> </item> + <item> + <key> <string>line_too_long</string> </key> + <value> <string>A line was too long.</string> </value> + </item> <item> <key> <string>required_not_found</string> </key> <value> <string>Input is required but no input given.</string> </value> </item> <item> <key> <string>too_long</string> </key> - <value> <string>Too much input was given.</string> </value> + <value> <string>You entered too many characters.</string> </value> + </item> + <item> + <key> <string>too_many_lines</string> </key> + <value> <string>You entered too many lines.</string> </value> </item> </dictionary> </value> @@ -49,14 +57,6 @@ <key> <string>description</string> </key> <value> <string></string> </value> </item> - <item> - <key> <string>display_maxwidth</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>display_width</string> </key> - <value> <string></string> </value> - </item> <item> <key> <string>editable</string> </key> <value> <string></string> </value> @@ -74,35 +74,31 @@ <value> <string></string> </value> </item> <item> - <key> <string>hidden</string> </key> + <key> <string>height</string> </key> <value> <string></string> </value> </item> <item> - <key> <string>image_display</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>image_format</string> </key> + <key> <string>hidden</string> </key> <value> <string></string> </value> </item> <item> - <key> <string>image_pre_converted_only</string> </key> + <key> <string>max_length</string> </key> <value> <string></string> </value> </item> <item> - <key> <string>image_quality</string> </key> + <key> <string>max_linelength</string> </key> <value> <string></string> </value> </item> <item> - <key> <string>input_type</string> </key> + <key> <string>max_lines</string> </key> <value> <string></string> </value> </item> <item> - <key> <string>max_length</string> </key> + <key> <string>required</string> </key> <value> <string></string> </value> </item> <item> - <key> <string>required</string> </key> + <key> <string>text_editor</string> </key> <value> <string></string> </value> </item> <item> @@ -110,15 +106,15 @@ <value> <string></string> </value> </item> <item> - <key> <string>truncate</string> </key> + <key> <string>unicode</string> </key> <value> <string></string> </value> </item> <item> - <key> <string>unicode</string> </key> + <key> <string>whitespace_preserve</string> </key> <value> <string></string> </value> </item> <item> - <key> <string>whitespace_preserve</string> </key> + <key> <string>width</string> </key> <value> <string></string> </value> </item> </dictionary> @@ -138,27 +134,23 @@ </item> <item> <key> <string>default</string> </key> - <value> <string></string> </value> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> </item> <item> <key> <string>description</string> </key> <value> <string></string> </value> </item> - <item> - <key> <string>display_maxwidth</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>display_width</string> </key> - <value> <string></string> </value> - </item> <item> <key> <string>editable</string> </key> <value> <string></string> </value> </item> <item> <key> <string>enabled</string> </key> - <value> <string></string> </value> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> </item> <item> <key> <string>external_validator</string> </key> @@ -169,35 +161,31 @@ <value> <string></string> </value> </item> <item> - <key> <string>hidden</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>image_display</string> </key> + <key> <string>height</string> </key> <value> <string></string> </value> </item> <item> - <key> <string>image_format</string> </key> + <key> <string>hidden</string> </key> <value> <string></string> </value> </item> <item> - <key> <string>image_pre_converted_only</string> </key> + <key> <string>max_length</string> </key> <value> <string></string> </value> </item> <item> - <key> <string>image_quality</string> </key> + <key> <string>max_linelength</string> </key> <value> <string></string> </value> </item> <item> - <key> <string>input_type</string> </key> + <key> <string>max_lines</string> </key> <value> <string></string> </value> </item> <item> - <key> <string>max_length</string> </key> + <key> <string>required</string> </key> <value> <string></string> </value> </item> <item> - <key> <string>required</string> </key> + <key> <string>text_editor</string> </key> <value> <string></string> </value> </item> <item> @@ -205,15 +193,15 @@ <value> <string></string> </value> </item> <item> - <key> <string>truncate</string> </key> + <key> <string>unicode</string> </key> <value> <string></string> </value> </item> <item> - <key> <string>unicode</string> </key> + <key> <string>whitespace_preserve</string> </key> <value> <string></string> </value> </item> <item> - <key> <string>whitespace_preserve</string> </key> + <key> <string>width</string> </key> <value> <string></string> </value> </item> </dictionary> @@ -233,23 +221,15 @@ </item> <item> <key> <string>default</string> </key> - <value> <string>photo</string> </value> - </item> - <item> - <key> <string>description</string> </key> <value> <string></string> </value> </item> <item> - <key> <string>display_maxwidth</string> </key> + <key> <string>description</string> </key> <value> <string></string> </value> </item> - <item> - <key> <string>display_width</string> </key> - <value> <int>20</int> </value> - </item> <item> <key> <string>editable</string> </key> - <value> <int>1</int> </value> + <value> <int>0</int> </value> </item> <item> <key> <string>enabled</string> </key> @@ -264,31 +244,23 @@ <value> <string></string> </value> </item> <item> - <key> <string>hidden</string> </key> - <value> <int>0</int> </value> - </item> - <item> - <key> <string>image_display</string> </key> - <value> <string>original</string> </value> + <key> <string>height</string> </key> + <value> <int>5</int> </value> </item> <item> - <key> <string>image_format</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>image_pre_converted_only</string> </key> + <key> <string>hidden</string> </key> <value> <int>0</int> </value> </item> <item> - <key> <string>image_quality</string> </key> - <value> <int>75</int> </value> + <key> <string>max_length</string> </key> + <value> <string></string> </value> </item> <item> - <key> <string>input_type</string> </key> - <value> <string>text</string> </value> + <key> <string>max_linelength</string> </key> + <value> <string></string> </value> </item> <item> - <key> <string>max_length</string> </key> + <key> <string>max_lines</string> </key> <value> <string></string> </value> </item> <item> @@ -296,12 +268,12 @@ <value> <int>0</int> </value> </item> <item> - <key> <string>title</string> </key> - <value> <string>Photo</string> </value> + <key> <string>text_editor</string> </key> + <value> <string>text_area</string> </value> </item> <item> - <key> <string>truncate</string> </key> - <value> <int>0</int> </value> + <key> <string>title</string> </key> + <value> <string>Photo</string> </value> </item> <item> <key> <string>unicode</string> </key> @@ -311,10 +283,44 @@ <key> <string>whitespace_preserve</string> </key> <value> <int>0</int> </value> </item> + <item> + <key> <string>width</string> </key> + <value> <int>40</int> </value> + </item> </dictionary> </value> </item> </dictionary> </pickle> </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string encoding="cdata"><![CDATA[ + +python:\'<img src="%s">\' % here.getPhotoData() + +]]></string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>here/getPhotoData</string> </value> + </item> + </dictionary> + </pickle> + </record> </ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio.xml new file mode 100644 index 0000000000000000000000000000000000000000..f1d18b6a11f5104b0605277252d279f8222b184f --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio.xml @@ -0,0 +1,172 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ERP5 Form" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>action</string> </key> + <value> <string>Base_edit</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>edit_order</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>enctype</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>group_list</string> </key> + <value> + <list> + <string>left</string> + <string>right</string> + <string>center</string> + <string>bottom</string> + <string>hidden</string> + <string>price (Price)</string> + <string>supplier (Supplier)</string> + <string>product (Product)</string> + </list> + </value> + </item> + <item> + <key> <string>groups</string> </key> + <value> + <dictionary> + <item> + <key> <string>bottom</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>center</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>left</string> </key> + <value> + <list> + <string>my_resource</string> + <string>my_quantity</string> + <string>my_date</string> + <string>my_comment</string> + <string>my_sync_flag</string> + <string>my_source_reference</string> + <string>my_copy_of</string> + <string>my_record_revision</string> + <string>my_photo_data</string> + <string>my_visible_in_html5_app_flag</string> + <string>your_modification_date</string> + <string>my_longitude</string> + <string>my_latitude</string> + <string>my_resource_title</string> + <string>your_simulation_state</string> + <string>your_state</string> + <string>my_title</string> + </list> + </value> + </item> + <item> + <key> <string>price (Price)</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>product (Product)</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>right</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>supplier (Supplier)</string> </key> + <value> + <list/> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>ExpenseRecord_viewAsJio</string> </value> + </item> + <item> + <key> <string>method</string> </key> + <value> <string>POST</string> </value> + </item> + <item> + <key> <string>name</string> </key> + <value> <string>ExpenseRecord_view</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>ERP5 Form</string> </value> + </item> + <item> + <key> <string>pt</string> </key> + <value> <string>form_view</string> </value> + </item> + <item> + <key> <string>row_length</string> </key> + <value> <int>4</int> </value> + </item> + <item> + <key> <string>stored_encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Expense Record</string> </value> + </item> + <item> + <key> <string>unicode_mode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>update_action</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>update_action_title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_comment.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_comment.xml similarity index 100% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_comment.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_comment.xml diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_copy_of.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_copy_of.xml similarity index 100% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_copy_of.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_copy_of.xml diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_date.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_date.xml similarity index 100% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_date.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_date.xml diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_latitude.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_latitude.xml new file mode 100644 index 0000000000000000000000000000000000000000..a69c5553ba4978152de714d8be82372109a0d739 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_latitude.xml @@ -0,0 +1,264 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="FloatField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_latitude</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>not_float</string> </key> + <value> <string>You did not enter a floating point number.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_large_precision</string> </key> + <value> <string>The number you input has too large precision.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_style</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>precision</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_style</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>precision</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_style</string> </key> + <value> <string>-1234.5</string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>precision</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Latitude</string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_longitude.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_longitude.xml new file mode 100644 index 0000000000000000000000000000000000000000..a5cd118c46451fa595acc01780ef0a0caca307d6 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_longitude.xml @@ -0,0 +1,264 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="FloatField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_longitude</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>not_float</string> </key> + <value> <string>You did not enter a floating point number.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_large_precision</string> </key> + <value> <string>The number you input has too large precision.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_style</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>precision</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_style</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>precision</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_style</string> </key> + <value> <string>-1234.5</string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>precision</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Longitude</string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_photo_data.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_photo_data.xml similarity index 100% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_photo_data.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_photo_data.xml diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_quantity.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_quantity.xml similarity index 100% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_quantity.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_quantity.xml diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_record_revision.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_record_revision.xml similarity index 100% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_record_revision.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_record_revision.xml diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_resource.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_resource.xml similarity index 100% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_resource.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_resource.xml diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_resource_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_resource_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..d193aad1cbbd2044d39b795114f4f9858584e525 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_resource_title.xml @@ -0,0 +1,272 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_resource_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Resource title</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_source_reference.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_source_reference.xml new file mode 100644 index 0000000000000000000000000000000000000000..e593049c63de40ebdefd15951ac4d3c888521d2a --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_source_reference.xml @@ -0,0 +1,272 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_source_reference</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>my_doc_id</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_sync_flag.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_sync_flag.xml similarity index 100% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_sync_flag.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_sync_flag.xml diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..aa1828b1b0677dbf1dcf535c9d77e38305209d1e --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_title.xml @@ -0,0 +1,264 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Title</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_visible_in_html5_app_flag.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_visible_in_html5_app_flag.xml similarity index 100% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_visible_in_html5_app_flag.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/my_visible_in_html5_app_flag.xml diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/your_modification_date.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/your_modification_date.xml new file mode 100644 index 0000000000000000000000000000000000000000..b66f341fff546e3c07c1c943e1d512c31a53166d --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/your_modification_date.xml @@ -0,0 +1,287 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>your_modification_date</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Modification Date</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: here.getModificationDate().HTML4()</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/your_simulation_state.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/your_simulation_state.xml new file mode 100644 index 0000000000000000000000000000000000000000..f3ffaed311ef3743c769267608dc40713a91d44b --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/your_simulation_state.xml @@ -0,0 +1,287 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>your_simulation_state</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Simulation State</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>here/getSimulationState</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/your_state.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/your_state.xml new file mode 100644 index 0000000000000000000000000000000000000000..84817affe2ccd3478f935f9e7a5330967d7692fe --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ExpenseRecord_viewAsJio/your_state.xml @@ -0,0 +1,287 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>your_state</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Follow Up Simulation State</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: here.getFollowUpValue().getTranslatedSimulationStateTitle() if here.getFollowUpValue() else ""</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRecord_view.xml similarity index 88% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRecord_view.xml index 5141b85dfc9c08c17ad34eef73379543adb783bf..48dc3aaa275f1fdb34c4bed4eef7f3378ea3a1a0 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRecord_view.xml @@ -14,7 +14,7 @@ </item> <item> <key> <string>action</string> </key> - <value> <string></string> </value> + <value> <string>Base_edit</string> </value> </item> <item> <key> <string>description</string> </key> @@ -73,9 +73,6 @@ <value> <list> <string>my_title</string> - <string>my_follow_up_related_title_list</string> - <string>my_source_project_title</string> - <string>my_translated_simulation_state_title</string> </list> </value> </item> @@ -90,7 +87,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>ExpenseValidationItem_view</string> </value> + <value> <string>LeaveRecord_view</string> </value> </item> <item> <key> <string>method</string> </key> @@ -98,7 +95,7 @@ </item> <item> <key> <string>name</string> </key> - <value> <string>ExpenseValidationItem_view</string> </value> + <value> <string>LeaveRecord_view</string> </value> </item> <item> <key> <string>pt</string> </key> @@ -114,7 +111,7 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Expense Validation Item</string> </value> + <value> <string>Leave Record</string> </value> </item> <item> <key> <string>unicode_mode</string> </key> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view/my_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRecord_view/my_title.xml similarity index 100% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view/my_title.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRecord_view/my_title.xml diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveReport_view.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveReport_view.xml new file mode 100644 index 0000000000000000000000000000000000000000..d2aa3c8639fd619463faa770f0d66eb61545909c --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveReport_view.xml @@ -0,0 +1,131 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ERP5 Form" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>action</string> </key> + <value> <string>Base_edit</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>edit_order</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>enctype</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>group_list</string> </key> + <value> + <list> + <string>left</string> + <string>right</string> + <string>center</string> + <string>bottom</string> + <string>hidden</string> + </list> + </value> + </item> + <item> + <key> <string>groups</string> </key> + <value> + <dictionary> + <item> + <key> <string>bottom</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>center</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>left</string> </key> + <value> + <list> + <string>my_title</string> + </list> + </value> + </item> + <item> + <key> <string>right</string> </key> + <value> + <list/> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>LeaveReport_view</string> </value> + </item> + <item> + <key> <string>method</string> </key> + <value> <string>POST</string> </value> + </item> + <item> + <key> <string>name</string> </key> + <value> <string>LeaveReport_view</string> </value> + </item> + <item> + <key> <string>pt</string> </key> + <value> <string>form_view</string> </value> + </item> + <item> + <key> <string>row_length</string> </key> + <value> <int>4</int> </value> + </item> + <item> + <key> <string>stored_encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Leave Report</string> </value> + </item> + <item> + <key> <string>unicode_mode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>update_action</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>update_action_title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_comment.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveReport_view/my_title.xml similarity index 98% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_comment.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveReport_view/my_title.xml index 0dcb2805e5bd2c4c642531b953a107a8139db236..4cc7d2e889b694839cd669fac164e3a5b87a9ff5 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_comment.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveReport_view/my_title.xml @@ -8,7 +8,7 @@ <dictionary> <item> <key> <string>id</string> </key> - <value> <string>my_comment</string> </value> + <value> <string>my_title</string> </value> </item> <item> <key> <string>message_values</string> </key> @@ -249,7 +249,7 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Comment</string> </value> + <value> <string>Title</string> </value> </item> <item> <key> <string>truncate</string> </key> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_processDraftRecord.py b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_processDraftRecord.py new file mode 100644 index 0000000000000000000000000000000000000000..a09c86384fae4026d1bc4967816bd6709fd576c5 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_processDraftRecord.py @@ -0,0 +1 @@ +return diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_processDraftRecord.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_processDraftRecord.xml new file mode 100644 index 0000000000000000000000000000000000000000..343abcfca64f3cd2c73733ec2617505da044037c --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_processDraftRecord.xml @@ -0,0 +1,62 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>Script_magic</string> </key> + <value> <int>3</int> </value> + </item> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_container</string> </key> + <value> <string>container</string> </value> + </item> + <item> + <key> <string>name_context</string> </key> + <value> <string>context</string> </value> + </item> + <item> + <key> <string>name_m_self</string> </key> + <value> <string>script</string> </value> + </item> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_params</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>LeaveRequestRecord_processDraftRecord</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio.xml similarity index 93% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio.xml index 2d3ab5441b6e8851479e84dcf6bbbb560885c9de..4eb0364f03cdd7d86ba848cf0733307d28001abd 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio.xml @@ -77,7 +77,7 @@ <list> <string>my_resource</string> <string>my_quantity</string> - <string>my_date</string> + <string>my_stop_date</string> <string>my_comment</string> <string>my_sync_flag</string> <string>my_doc_id</string> @@ -85,6 +85,10 @@ <string>my_record_revision</string> <string>my_photo_data</string> <string>my_visible_in_html5_app_flag</string> + <string>your_modification_date</string> + <string>my_resource_title</string> + <string>my_start_date</string> + <string>your_validation_state</string> </list> </value> </item> @@ -117,7 +121,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>ExpenseRecord_viewAsJio</string> </value> + <value> <string>LeaveRequestRecord_viewAsJio</string> </value> </item> <item> <key> <string>method</string> </key> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_comment.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_comment.xml new file mode 100644 index 0000000000000000000000000000000000000000..dbb51dbd8c3997da9f136082134f2650bddcabab --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_comment.xml @@ -0,0 +1,260 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_comment</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Description</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_copy_of.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_copy_of.xml new file mode 100644 index 0000000000000000000000000000000000000000..d0c39749927e26d5b1aad87932f54499f3b79acd --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_copy_of.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_copy_of</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_string_field</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_doc_id.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_doc_id.xml similarity index 100% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_doc_id.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_doc_id.xml diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_photo_data.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_photo_data.xml new file mode 100644 index 0000000000000000000000000000000000000000..26aa02f39137564ca995faf5d38f5eb555388f5c --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_photo_data.xml @@ -0,0 +1,272 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_photo_data</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>photo_canvas</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_quantity.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_quantity.xml new file mode 100644 index 0000000000000000000000000000000000000000..ae148c161d93a646d350fd125970ec3f04b70a17 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_quantity.xml @@ -0,0 +1,286 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="FloatField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_quantity</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>not_float</string> </key> + <value> <string>You did not enter a floating point number.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_large_precision</string> </key> + <value> <string>The number you input has too large precision.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_style</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>precision</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_style</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>precision</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string>figure</string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_style</string> </key> + <value> <string>-1 234.5</string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>precision</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Priced Quantity</string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: preferences.getPreference(\'preferred_quantity_field_width\', 10)</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: preferences.getPreference(\'preferred_float_number_style\', \'-1 234.5\')</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_record_revision.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_record_revision.xml new file mode 100644 index 0000000000000000000000000000000000000000..f7b9f9e32037031fbd97d05366ac9f0e08c73f15 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_record_revision.xml @@ -0,0 +1,264 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="IntegerField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_record_revision</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>integer_out_of_range</string> </key> + <value> <string>The integer you entered was out of range.</string> </value> + </item> + <item> + <key> <string>not_integer</string> </key> + <value> <string>You did not enter an integer.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>my_record_revision</string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_resource.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_resource.xml new file mode 100644 index 0000000000000000000000000000000000000000..8260053988cb40b5d1647bf331ed5a85038418b5 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_resource.xml @@ -0,0 +1,260 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_resource</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Price Currency</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_resource_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_resource_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..d193aad1cbbd2044d39b795114f4f9858584e525 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_resource_title.xml @@ -0,0 +1,272 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_resource_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Resource title</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_start_date.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_start_date.xml new file mode 100644 index 0000000000000000000000000000000000000000..b60fa0300aa5220efe4c58c19a4854339001d20a --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_start_date.xml @@ -0,0 +1,268 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_start_date</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Date</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_stop_date.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_stop_date.xml new file mode 100644 index 0000000000000000000000000000000000000000..48548ac05d6baa8d4f3d731ead158305046a5147 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_stop_date.xml @@ -0,0 +1,268 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_stop_date</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Date</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_sync_flag.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_sync_flag.xml new file mode 100644 index 0000000000000000000000000000000000000000..5fc56dd845f79378036a0b852692c33032aebef9 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_sync_flag.xml @@ -0,0 +1,264 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_sync_flag</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Sync Flag</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_visible_in_html5_app_flag.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_visible_in_html5_app_flag.xml new file mode 100644 index 0000000000000000000000000000000000000000..cbba17ea138e3994aea996e32fd98c2aaa3bef01 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/my_visible_in_html5_app_flag.xml @@ -0,0 +1,264 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="IntegerField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_visible_in_html5_app_flag</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>integer_out_of_range</string> </key> + <value> <string>The integer you entered was out of range.</string> </value> + </item> + <item> + <key> <string>not_integer</string> </key> + <value> <string>You did not enter an integer.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>my_visible_in_html5_app_flag</string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/your_modification_date.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/your_modification_date.xml new file mode 100644 index 0000000000000000000000000000000000000000..b66f341fff546e3c07c1c943e1d512c31a53166d --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/your_modification_date.xml @@ -0,0 +1,287 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>your_modification_date</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Modification Date</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: here.getModificationDate().HTML4()</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/your_validation_state.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/your_validation_state.xml new file mode 100644 index 0000000000000000000000000000000000000000..5e2904a1569829dcdd9670062c515805d08b1b4e --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/LeaveRequestRecord_viewAsJio/your_validation_state.xml @@ -0,0 +1,272 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>your_validation_state</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Resource title</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Person_jio_view.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Person_jio_view.xml new file mode 100644 index 0000000000000000000000000000000000000000..d28a64103a7aedd2202537ee929c61bbc83e7155 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Person_jio_view.xml @@ -0,0 +1,110 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ERP5 Form" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>action</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>enctype</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>group_list</string> </key> + <value> + <list> + <string>left</string> + <string>right</string> + <string>center</string> + <string>bottom</string> + <string>hidden</string> + </list> + </value> + </item> + <item> + <key> <string>groups</string> </key> + <value> + <dictionary> + <item> + <key> <string>bottom</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>center</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>left</string> </key> + <value> + <list> + <string>my_first_name</string> + <string>my_last_name</string> + </list> + </value> + </item> + <item> + <key> <string>right</string> </key> + <value> + <list/> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>Person_jio_view</string> </value> + </item> + <item> + <key> <string>method</string> </key> + <value> <string>POST</string> </value> + </item> + <item> + <key> <string>name</string> </key> + <value> <string>Person_jio_view</string> </value> + </item> + <item> + <key> <string>row_length</string> </key> + <value> <int>4</int> </value> + </item> + <item> + <key> <string>stored_encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode_mode</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Person_jio_view/my_first_name.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Person_jio_view/my_first_name.xml new file mode 100644 index 0000000000000000000000000000000000000000..fb0cf27720c914c53a5d47f6bf56eb14609c48a3 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Person_jio_view/my_first_name.xml @@ -0,0 +1,272 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_first_name</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>First Name</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Person_jio_view/my_last_name.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Person_jio_view/my_last_name.xml new file mode 100644 index 0000000000000000000000000000000000000000..e987fb841f31f8192946efd210a8a47d149b5c1b --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Person_jio_view/my_last_name.xml @@ -0,0 +1,272 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_last_name</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Last Name</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItemModule_viewExpenseValidationItemList.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/RecordModule_viewLeaveRecordList.xml similarity index 93% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItemModule_viewExpenseValidationItemList.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/RecordModule_viewLeaveRecordList.xml index d2cdf087ada74b8b21a27d3a4b9d6dd1efe2d4eb..39ed9acc772ce74f2ae78c698a59f0e7d3fd7b0a 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItemModule_viewExpenseValidationItemList.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/RecordModule_viewLeaveRecordList.xml @@ -87,7 +87,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>ExpenseValidationItemModule_viewExpenseValidationItemList</string> </value> + <value> <string>RecordModule_viewLeaveRecordList</string> </value> </item> <item> <key> <string>method</string> </key> @@ -95,7 +95,7 @@ </item> <item> <key> <string>name</string> </key> - <value> <string>ExpenseValidationItemModule_viewExpenseValidationItemList</string> </value> + <value> <string>RecordModule_viewLeaveRecordList</string> </value> </item> <item> <key> <string>pt</string> </key> @@ -111,7 +111,7 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Expense Validation Items</string> </value> + <value> <string>Records</string> </value> </item> <item> <key> <string>unicode_mode</string> </key> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/RecordModule_viewLeaveRecordList/listbox.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/RecordModule_viewLeaveRecordList/listbox.xml new file mode 100644 index 0000000000000000000000000000000000000000..e0bd075321dbbedbcfcb7bdb46aaf50d09446ee1 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/RecordModule_viewLeaveRecordList/listbox.xml @@ -0,0 +1,132 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>columns</string> + <string>selection_name</string> + <string>title</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>listbox</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>columns</string> </key> + <value> + <list> + <tuple> + <string>source_reference</string> + <string>User Reference</string> + </tuple> + <tuple> + <string>destination_reference</string> + <string>Ticket Reference</string> + </tuple> + <tuple> + <string>title</string> + <string>Title</string> + </tuple> + <tuple> + <string>portal_type</string> + <string>Type</string> + </tuple> + <tuple> + <string>modification_date</string> + <string>Modification Date</string> + </tuple> + <tuple> + <string>simulation_state</string> + <string>State</string> + </tuple> + </list> + </value> + </item> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_list_mode_listbox</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewFieldLibrary</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> + <list> + <tuple> + <string>Leave Record</string> + <string>Leave Record</string> + </tuple> + </list> + </value> + </item> + <item> + <key> <string>selection_name</string> </key> + <value> <string>record_module_selection</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Records</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Record_archivePreviousVersions.py b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Record_archivePreviousVersions.py new file mode 100644 index 0000000000000000000000000000000000000000..7138f85bcb56ae2f07f26a786392720fce1b0515 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Record_archivePreviousVersions.py @@ -0,0 +1,16 @@ +from Products.ZSQLCatalog.SQLCatalog import SimpleQuery + +record = context +search_kw = { + 'portal_type': record.getPortalType(), + 'strict_follow_up_uid': record.getFollowUpUid(), + 'simulation_state': "stopped", + # exclude current workflow changed document + 'uid': SimpleQuery(uid=record.getUid(), comparison_operator='!='), +} + +# We can now archive all previous records +for old_document in context.getPortalObject().portal_catalog(**search_kw): + old_document = old_document.getObject() + if old_document.getSimulationState() in ("stopped"): + old_document.deliver() diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_createTicket.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Record_archivePreviousVersions.xml similarity index 94% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_createTicket.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Record_archivePreviousVersions.xml index e46b942ec47dad236193d59e322bd89350372765..789d52871b46bfc00dcd6a7b91e6bc27dee69aac 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_createTicket.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Record_archivePreviousVersions.xml @@ -50,11 +50,11 @@ </item> <item> <key> <string>_params</string> </key> - <value> <string>record_value</string> </value> + <value> <string></string> </value> </item> <item> <key> <string>id</string> </key> - <value> <string>Base_createTicket</string> </value> + <value> <string>Record_archivePreviousVersions</string> </value> </item> </dictionary> </pickle> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_init.py b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Record_init.py similarity index 56% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_init.py rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Record_init.py index 1491ce63854ce0ac8d6710be4a05f0584633f24e..f09d77ff2034726784a74c5c40c42e0d1d837e92 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_init.py +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Record_init.py @@ -2,4 +2,5 @@ # and it causes a problem when record is cloned. context.setContentType(None) -context.setContributorValue(context.ERP5Site_getAuthenticatedMemberPersonValue()) +context.setSourceValue(context.ERP5Site_getAuthenticatedMemberPersonValue()) +context.Event_init() diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_init.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Record_init.xml similarity index 97% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_init.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Record_init.xml index cae1198c6f16a1b860b641fdff9841d5674b0a32..e5c8aef04cefe44d04936c10e1638ca1ffc334c5 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_init.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Record_init.xml @@ -54,7 +54,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>ExpenseRecord_init</string> </value> + <value> <string>Record_init</string> </value> </item> </dictionary> </pickle> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Record_processDraftRecord.py b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Record_processDraftRecord.py new file mode 100644 index 0000000000000000000000000000000000000000..d2db3c145618992a2f3a0577322481d9b6fc501d --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Record_processDraftRecord.py @@ -0,0 +1,29 @@ +#if REQUEST is not None: +# raise ValueError + +portal = context.getPortalObject() +record = context +if record.getSimulationState() not in ("draft", "started"): + return + +# Is it the only new record +new_record_list = portal.portal_catalog( + portal_type=record.getPortalType(), + source_reference=record.getSourceReference(), + strict_source_uid=record.getSourceUid(), + simulation_state=('draft','started') + ) + +if len(new_record_list) != 1: + if record.getSimulationState() != "started": + record.start(comment="Multiple similar records detected, please pick one") +# It is the only record to be taken into account + +if record.getSimulationState() != "started": + record.start() +ticket_update_method = record.getTypeBasedMethod( + "updateRelatedTicket", + fallback_script_id="Record_updatedRelatedTicket" + ) + +ticket_update_method() diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Record_processDraftRecord.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Record_processDraftRecord.xml new file mode 100644 index 0000000000000000000000000000000000000000..2f82620d0dd118416723f446c14cd718a726e6ea --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Record_processDraftRecord.xml @@ -0,0 +1,62 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>Script_magic</string> </key> + <value> <int>3</int> </value> + </item> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_container</string> </key> + <value> <string>container</string> </value> + </item> + <item> + <key> <string>name_context</string> </key> + <value> <string>context</string> </value> + </item> + <item> + <key> <string>name_m_self</string> </key> + <value> <string>script</string> </value> + </item> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_params</string> </key> + <value> <string>REQUEST=None</string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>Record_processDraftRecord</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Record_updatedRelatedTicket.py b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Record_updatedRelatedTicket.py new file mode 100644 index 0000000000000000000000000000000000000000..8aa2f807999252d610ad1e0fbef9f2fe520272c7 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Record_updatedRelatedTicket.py @@ -0,0 +1 @@ +raise NotImplementedError('A script should be create for this portal_type') diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_getDateTime.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Record_updatedRelatedTicket.xml similarity index 94% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_getDateTime.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Record_updatedRelatedTicket.xml index 9b9002cd12d3f56e91bf9a047523cde585997aa4..658428234435d0ba1fba17ea52bed08cee65ec48 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_getDateTime.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/Record_updatedRelatedTicket.xml @@ -50,11 +50,11 @@ </item> <item> <key> <string>_params</string> </key> - <value> <string>date_text</string> </value> + <value> <string></string> </value> </item> <item> <key> <string>id</string> </key> - <value> <string>Base_getDateTime</string> </value> + <value> <string>Record_updatedRelatedTicket</string> </value> </item> </dictionary> </pickle> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ReportModule_viewLeaveReportList.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ReportModule_viewLeaveReportList.xml new file mode 100644 index 0000000000000000000000000000000000000000..a243969c6abe44cef0a4832acf118f33b22b7576 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ReportModule_viewLeaveReportList.xml @@ -0,0 +1,131 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ERP5 Form" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>action</string> </key> + <value> <string>Base_doSelect</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>edit_order</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>enctype</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>group_list</string> </key> + <value> + <list> + <string>left</string> + <string>right</string> + <string>center</string> + <string>bottom</string> + <string>hidden</string> + </list> + </value> + </item> + <item> + <key> <string>groups</string> </key> + <value> + <dictionary> + <item> + <key> <string>bottom</string> </key> + <value> + <list> + <string>listbox</string> + </list> + </value> + </item> + <item> + <key> <string>center</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>left</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>right</string> </key> + <value> + <list/> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>ReportModule_viewLeaveReportList</string> </value> + </item> + <item> + <key> <string>method</string> </key> + <value> <string>POST</string> </value> + </item> + <item> + <key> <string>name</string> </key> + <value> <string>ReportModule_viewLeaveReportList</string> </value> + </item> + <item> + <key> <string>pt</string> </key> + <value> <string>form_list</string> </value> + </item> + <item> + <key> <string>row_length</string> </key> + <value> <int>4</int> </value> + </item> + <item> + <key> <string>stored_encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Reports</string> </value> + </item> + <item> + <key> <string>unicode_mode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>update_action</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>update_action_title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItemModule_viewExpenseValidationItemList/listbox.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ReportModule_viewLeaveReportList/listbox.xml similarity index 91% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItemModule_viewExpenseValidationItemList/listbox.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ReportModule_viewLeaveReportList/listbox.xml index 939754e33aaefe1a2fa0b977057e933b1f07275b..9fa77095fd1e3a93a5dddfd0c52384813c99c1b8 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItemModule_viewExpenseValidationItemList/listbox.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/ReportModule_viewLeaveReportList/listbox.xml @@ -78,19 +78,19 @@ <value> <list> <tuple> - <string>Expense Validation Item</string> - <string>Expense Validation Item</string> + <string>Leave Report</string> + <string>Leave Report</string> </tuple> </list> </value> </item> <item> <key> <string>selection_name</string> </key> - <value> <string>expense_validation_item_module_selection</string> </value> + <value> <string>report_module_selection</string> </value> </item> <item> <key> <string>title</string> </key> - <value> <string>Expense Validation Items</string> </value> + <value> <string>Reports</string> </value> </item> </dictionary> </value> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_updateRelatedTicket.py b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_updateRelatedTicket.py new file mode 100644 index 0000000000000000000000000000000000000000..a314c74456c08678e88e896280f0f72b11ba3ec0 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_updateRelatedTicket.py @@ -0,0 +1,41 @@ +portal = context.getPortalObject() +record = context + +if record.getDestinationReference() is not None: + ticket_brain_list = portal.portal_catalog( + portal_type="Travel Request", + reference=record.getDestinationReference(), + ) + if len(ticket_brain_list) != 1: + raise ValueError("Incorrect number of follow_up ticket found for the Record") + ticket = ticket_brain_list[0].getObject() +else: + # No destination reference means no ticket to track it server side: Create a new one + record.Event_createFollowUpTicket( + follow_up_ticket_title=record.getTitle(), + follow_up_ticket_type="Travel Request", + ) + ticket = record.getFollowUpValue() + +record.setDestinationReference(ticket.getReference()) + +record.setFollowUpValue(ticket) + +ticket.edit( + title=record.getTitle(), + #resource=record.getSource(), + start_date=DateTime(record.getStartDate()), + stop_date=DateTime(record.getStopDate()), + animation_center=record.getSite(), + travel_destination=record.getDestinationNodeTitle(), + # XX Hackish + description=record.getComment(), + ) + +record.deliver() + +ticket.TravelRequest_createRepresentativeRecord( + record_relative_url=record.getRelativeUrl() + ) + +return ticket diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_isNewestVersionRecord.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_updateRelatedTicket.xml similarity index 94% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_isNewestVersionRecord.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_updateRelatedTicket.xml index 875ac968233feb35b0d45137e290bd2117a2eaaf..573e883ee6cc84451cb4a3b3fd4856b0861288a0 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_isNewestVersionRecord.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_updateRelatedTicket.xml @@ -50,11 +50,11 @@ </item> <item> <key> <string>_params</string> </key> - <value> <string>record_value</string> </value> + <value> <string></string> </value> </item> <item> <key> <string>id</string> </key> - <value> <string>Base_isNewestVersionRecord</string> </value> + <value> <string>TravelRequestRecord_updateRelatedTicket</string> </value> </item> </dictionary> </pickle> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view.xml new file mode 100644 index 0000000000000000000000000000000000000000..d60ec34f749215b04804842c93ba0fbd0545b2de --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view.xml @@ -0,0 +1,169 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ERP5 Form" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>action</string> </key> + <value> <string>Base_edit</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>edit_order</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>enctype</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>group_list</string> </key> + <value> + <list> + <string>left</string> + <string>right</string> + <string>center</string> + <string>bottom</string> + <string>hidden</string> + <string>price (Price)</string> + <string>supplier (Supplier)</string> + <string>product (Product)</string> + </list> + </value> + </item> + <item> + <key> <string>groups</string> </key> + <value> + <dictionary> + <item> + <key> <string>bottom</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>center</string> </key> + <value> + <list> + <string>my_comment</string> + </list> + </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>left</string> </key> + <value> + <list> + <string>my_reference</string> + <string>my_source_reference</string> + <string>my_title</string> + <string>my_site</string> + <string>my_destination_node_title</string> + <string>my_start_date</string> + <string>my_stop_date</string> + </list> + </value> + </item> + <item> + <key> <string>price (Price)</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>product (Product)</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>right</string> </key> + <value> + <list> + <string>my_default_follow_up_title</string> + <string>my_source_title</string> + <string>my_translated_portal_type</string> + <string>my_translated_simulation_state_title</string> + </list> + </value> + </item> + <item> + <key> <string>supplier (Supplier)</string> </key> + <value> + <list/> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>TravelRequestRecord_view</string> </value> + </item> + <item> + <key> <string>method</string> </key> + <value> <string>POST</string> </value> + </item> + <item> + <key> <string>name</string> </key> + <value> <string>ExpenseRecord_view</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>ERP5 Form</string> </value> + </item> + <item> + <key> <string>pt</string> </key> + <value> <string>form_view</string> </value> + </item> + <item> + <key> <string>row_length</string> </key> + <value> <int>4</int> </value> + </item> + <item> + <key> <string>stored_encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Expense Record</string> </value> + </item> + <item> + <key> <string>unicode_mode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>update_action</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>update_action_title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_comment.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_comment.xml new file mode 100644 index 0000000000000000000000000000000000000000..cd6c961a9f50e448b03067b277774fbb838fadf0 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_comment.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_comment</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_description</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_default_follow_up_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_default_follow_up_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..3de3f9aa68b119503b923eb5697517100bf5fafd --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_default_follow_up_title.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_default_follow_up_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_default_follow_up_title</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_destination_node_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_destination_node_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..3ecc14e91e9f81f8d44a8f68ec7f948cdb0c3453 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_destination_node_title.xml @@ -0,0 +1,264 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_destination_node_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Destination</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_reference.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_reference.xml new file mode 100644 index 0000000000000000000000000000000000000000..b184a3f86d644749b44894247ee1fb175a265534 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_reference.xml @@ -0,0 +1,96 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>editable</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_reference</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>editable</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_reference</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_site.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_site.xml new file mode 100644 index 0000000000000000000000000000000000000000..e124bf410282e924fbc1d7338ac5691bd0c27b2d --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_site.xml @@ -0,0 +1,264 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_site</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Animation Center</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source_credit.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_source_reference.xml similarity index 87% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source_credit.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_source_reference.xml index 9459578c3ab4dfe683621a8c76bfcf960304917f..7e3eeb70877773b9c6552d7351ef8a8d14d0200b 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source_credit.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_source_reference.xml @@ -10,13 +10,14 @@ <key> <string>delegated_list</string> </key> <value> <list> + <string>editable</string> <string>title</string> </list> </value> </item> <item> <key> <string>id</string> </key> - <value> <string>listbox_source_credit</string> </value> + <value> <string>my_source_reference</string> </value> </item> <item> <key> <string>message_values</string> </key> @@ -64,10 +65,6 @@ <key> <string>target</string> </key> <value> <string></string> </value> </item> - <item> - <key> <string>title</string> </key> - <value> <string></string> </value> - </item> </dictionary> </value> </item> @@ -75,13 +72,17 @@ <key> <string>values</string> </key> <value> <dictionary> + <item> + <key> <string>editable</string> </key> + <value> <int>0</int> </value> + </item> <item> <key> <string>field_id</string> </key> - <value> <string>listbox_source_credit</string> </value> + <value> <string>my_reference</string> </value> </item> <item> <key> <string>form_id</string> </key> - <value> <string>AccountingTransaction_viewFieldLibrary</string> </value> + <value> <string>Base_viewFieldLibrary</string> </value> </item> <item> <key> <string>target</string> </key> @@ -89,7 +90,7 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>listbox_source_credit</string> </value> + <value> <string>Source Reference</string> </value> </item> </dictionary> </value> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_source_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_source_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..1413ec4109f9f37a34dbb1592d1c165db3b75110 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_source_title.xml @@ -0,0 +1,101 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>allow_creation</string> + <string>editable</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_source_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>allow_creation</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_event_source_title</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_start_date.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_start_date.xml new file mode 100644 index 0000000000000000000000000000000000000000..184edad89be2f0509bc4b538e858544ac43a7c84 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_start_date.xml @@ -0,0 +1,268 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_start_date</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Start Date</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_stop_date.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_stop_date.xml new file mode 100644 index 0000000000000000000000000000000000000000..be85cb41aa6b963b20b36f851b7c3e4d90fb42e8 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_stop_date.xml @@ -0,0 +1,268 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_stop_date</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Stop Date</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..aa1828b1b0677dbf1dcf535c9d77e38305209d1e --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_title.xml @@ -0,0 +1,264 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Title</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_translated_portal_type.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_translated_portal_type.xml similarity index 96% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_translated_portal_type.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_translated_portal_type.xml index aa8341117949eecffce2972b526c57f6873747cf..2ea7722de6274f6eb64ca3244e69dad78095c16b 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_translated_portal_type.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_translated_portal_type.xml @@ -75,7 +75,7 @@ </item> <item> <key> <string>form_id</string> </key> - <value> <string>AccountingTransaction_viewFieldLibrary</string> </value> + <value> <string>Base_viewCRMFieldLibrary</string> </value> </item> <item> <key> <string>target</string> </key> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_translated_simulation_state_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_translated_simulation_state_title.xml similarity index 96% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_translated_simulation_state_title.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_translated_simulation_state_title.xml index ef385a03e858c1469053bac9cd8a79c1a359f07a..7bc23f5cf1b1114c631e64e4835fad5939b53587 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_translated_simulation_state_title.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_view/my_translated_simulation_state_title.xml @@ -75,7 +75,7 @@ </item> <item> <key> <string>form_id</string> </key> - <value> <string>AccountingTransaction_viewFieldLibrary</string> </value> + <value> <string>Base_viewCRMFieldLibrary</string> </value> </item> <item> <key> <string>target</string> </key> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio.xml new file mode 100644 index 0000000000000000000000000000000000000000..4c3c898cebfb83927423f3faf025c047761240cd --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio.xml @@ -0,0 +1,172 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ERP5 Form" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>action</string> </key> + <value> <string>Base_edit</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>edit_order</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>enctype</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>group_list</string> </key> + <value> + <list> + <string>left</string> + <string>right</string> + <string>center</string> + <string>bottom</string> + <string>hidden</string> + <string>price (Price)</string> + <string>supplier (Supplier)</string> + <string>product (Product)</string> + </list> + </value> + </item> + <item> + <key> <string>groups</string> </key> + <value> + <dictionary> + <item> + <key> <string>bottom</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>center</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>left</string> </key> + <value> + <list> + <string>my_resource</string> + <string>my_quantity</string> + <string>my_stop_date</string> + <string>my_comment</string> + <string>my_sync_flag</string> + <string>my_source_reference</string> + <string>my_copy_of</string> + <string>my_record_revision</string> + <string>my_visible_in_html5_app_flag</string> + <string>your_modification_date</string> + <string>my_resource_title</string> + <string>my_start_date</string> + <string>your_simulation_state</string> + <string>my_title</string> + <string>my_site</string> + <string>my_destination_node_title</string> + <string>your_state</string> + </list> + </value> + </item> + <item> + <key> <string>price (Price)</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>product (Product)</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>right</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>supplier (Supplier)</string> </key> + <value> + <list/> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>TravelRequestRecord_viewAsJio</string> </value> + </item> + <item> + <key> <string>method</string> </key> + <value> <string>POST</string> </value> + </item> + <item> + <key> <string>name</string> </key> + <value> <string>ExpenseRecord_view</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>ERP5 Form</string> </value> + </item> + <item> + <key> <string>pt</string> </key> + <value> <string>form_view</string> </value> + </item> + <item> + <key> <string>row_length</string> </key> + <value> <int>4</int> </value> + </item> + <item> + <key> <string>stored_encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Expense Record</string> </value> + </item> + <item> + <key> <string>unicode_mode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>update_action</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>update_action_title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_comment.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_comment.xml new file mode 100644 index 0000000000000000000000000000000000000000..dbb51dbd8c3997da9f136082134f2650bddcabab --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_comment.xml @@ -0,0 +1,260 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_comment</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Description</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_copy_of.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_copy_of.xml new file mode 100644 index 0000000000000000000000000000000000000000..d0c39749927e26d5b1aad87932f54499f3b79acd --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_copy_of.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_copy_of</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_string_field</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_destination_node_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_destination_node_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..8211cccbf11b51db0a310a77bb1564fc3594616f --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_destination_node_title.xml @@ -0,0 +1,264 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_destination_node_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Animation Center</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_quantity.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_quantity.xml new file mode 100644 index 0000000000000000000000000000000000000000..ae148c161d93a646d350fd125970ec3f04b70a17 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_quantity.xml @@ -0,0 +1,286 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="FloatField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_quantity</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>not_float</string> </key> + <value> <string>You did not enter a floating point number.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_large_precision</string> </key> + <value> <string>The number you input has too large precision.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_style</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>precision</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_style</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>precision</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string>figure</string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_style</string> </key> + <value> <string>-1 234.5</string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>precision</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Priced Quantity</string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: preferences.getPreference(\'preferred_quantity_field_width\', 10)</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: preferences.getPreference(\'preferred_float_number_style\', \'-1 234.5\')</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_record_revision.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_record_revision.xml new file mode 100644 index 0000000000000000000000000000000000000000..f7b9f9e32037031fbd97d05366ac9f0e08c73f15 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_record_revision.xml @@ -0,0 +1,264 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="IntegerField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_record_revision</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>integer_out_of_range</string> </key> + <value> <string>The integer you entered was out of range.</string> </value> + </item> + <item> + <key> <string>not_integer</string> </key> + <value> <string>You did not enter an integer.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>my_record_revision</string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_resource.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_resource.xml new file mode 100644 index 0000000000000000000000000000000000000000..8260053988cb40b5d1647bf331ed5a85038418b5 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_resource.xml @@ -0,0 +1,260 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_resource</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Price Currency</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_resource_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_resource_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..d193aad1cbbd2044d39b795114f4f9858584e525 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_resource_title.xml @@ -0,0 +1,272 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_resource_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Resource title</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_site.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_site.xml new file mode 100644 index 0000000000000000000000000000000000000000..e0c270caea976d33c0a4e69127d0021eea6c2f44 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_site.xml @@ -0,0 +1,264 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_site</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Location</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_source_reference.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_source_reference.xml new file mode 100644 index 0000000000000000000000000000000000000000..e593049c63de40ebdefd15951ac4d3c888521d2a --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_source_reference.xml @@ -0,0 +1,272 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_source_reference</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>my_doc_id</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_start_date.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_start_date.xml new file mode 100644 index 0000000000000000000000000000000000000000..184edad89be2f0509bc4b538e858544ac43a7c84 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_start_date.xml @@ -0,0 +1,268 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_start_date</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Start Date</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_stop_date.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_stop_date.xml new file mode 100644 index 0000000000000000000000000000000000000000..be85cb41aa6b963b20b36f851b7c3e4d90fb42e8 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_stop_date.xml @@ -0,0 +1,268 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_stop_date</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Stop Date</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_sync_flag.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_sync_flag.xml new file mode 100644 index 0000000000000000000000000000000000000000..5fc56dd845f79378036a0b852692c33032aebef9 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_sync_flag.xml @@ -0,0 +1,264 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_sync_flag</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Sync Flag</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..aa1828b1b0677dbf1dcf535c9d77e38305209d1e --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_title.xml @@ -0,0 +1,264 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Title</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_visible_in_html5_app_flag.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_visible_in_html5_app_flag.xml new file mode 100644 index 0000000000000000000000000000000000000000..cbba17ea138e3994aea996e32fd98c2aaa3bef01 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/my_visible_in_html5_app_flag.xml @@ -0,0 +1,264 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="IntegerField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_visible_in_html5_app_flag</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>integer_out_of_range</string> </key> + <value> <string>The integer you entered was out of range.</string> </value> + </item> + <item> + <key> <string>not_integer</string> </key> + <value> <string>You did not enter an integer.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>my_visible_in_html5_app_flag</string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/your_modification_date.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/your_modification_date.xml new file mode 100644 index 0000000000000000000000000000000000000000..b66f341fff546e3c07c1c943e1d512c31a53166d --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/your_modification_date.xml @@ -0,0 +1,287 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>your_modification_date</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Modification Date</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: here.getModificationDate().HTML4()</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/your_simulation_state.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/your_simulation_state.xml new file mode 100644 index 0000000000000000000000000000000000000000..f3ffaed311ef3743c769267608dc40713a91d44b --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/your_simulation_state.xml @@ -0,0 +1,287 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>your_simulation_state</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Simulation State</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>here/getSimulationState</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/your_state.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/your_state.xml new file mode 100644 index 0000000000000000000000000000000000000000..84817affe2ccd3478f935f9e7a5330967d7692fe --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_record/TravelRequestRecord_viewAsJio/your_state.xml @@ -0,0 +1,287 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>your_state</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Follow Up Simulation State</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: here.getFollowUpValue().getTranslatedSimulationStateTitle() if here.getFollowUpValue() else ""</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request.xml similarity index 91% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request.xml index 71ac7edaacf95b239575cac5e8d65f70fe256b09..21dd8ca0e2d0e474d6ee410ac3f574134e67a1ff 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request.xml @@ -31,11 +31,11 @@ </item> <item> <key> <string>business_template_skin_layer_priority</string> </key> - <value> <float>99.59</float> </value> + <value> <float>60.0</float> </value> </item> <item> <key> <string>id</string> </key> - <value> <string>erp5_travel_expense</string> </value> + <value> <string>erp5_hr_request</string> </value> </item> <item> <key> <string>title</string> </key> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequestModule_viewExpenseValidationRequestList.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequestModule_viewExpenseValidationRequestList.xml new file mode 100644 index 0000000000000000000000000000000000000000..bd6ea0f8e7fa2ec351a17589096452e0c37c3bb4 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequestModule_viewExpenseValidationRequestList.xml @@ -0,0 +1,131 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ERP5 Form" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>action</string> </key> + <value> <string>Base_doSelect</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>edit_order</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>enctype</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>group_list</string> </key> + <value> + <list> + <string>left</string> + <string>right</string> + <string>center</string> + <string>bottom</string> + <string>hidden</string> + </list> + </value> + </item> + <item> + <key> <string>groups</string> </key> + <value> + <dictionary> + <item> + <key> <string>bottom</string> </key> + <value> + <list> + <string>listbox</string> + </list> + </value> + </item> + <item> + <key> <string>center</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>left</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>right</string> </key> + <value> + <list/> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>ExpenseValidationRequestModule_viewExpenseValidationRequestList</string> </value> + </item> + <item> + <key> <string>method</string> </key> + <value> <string>POST</string> </value> + </item> + <item> + <key> <string>name</string> </key> + <value> <string>ExpenseValidationRequestModule_viewExpenseValidationRequestList</string> </value> + </item> + <item> + <key> <string>pt</string> </key> + <value> <string>form_list</string> </value> + </item> + <item> + <key> <string>row_length</string> </key> + <value> <int>4</int> </value> + </item> + <item> + <key> <string>stored_encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Expense Validation Requests</string> </value> + </item> + <item> + <key> <string>unicode_mode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>update_action</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>update_action_title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view/my_follow_up_related_title_list.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequestModule_viewExpenseValidationRequestList/listbox.xml similarity index 78% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view/my_follow_up_related_title_list.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequestModule_viewExpenseValidationRequestList/listbox.xml index 735e0c1a2995d4b8a313e9b61c3e6725c0c3e490..11e06aec363ba59215f9dd5628d3c0a819018f8d 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view/my_follow_up_related_title_list.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequestModule_viewExpenseValidationRequestList/listbox.xml @@ -11,13 +11,14 @@ <value> <list> <string>portal_type</string> + <string>selection_name</string> <string>title</string> </list> </value> </item> <item> <key> <string>id</string> </key> - <value> <string>my_follow_up_related_title_list</string> </value> + <value> <string>listbox</string> </value> </item> <item> <key> <string>message_values</string> </key> @@ -42,10 +43,6 @@ <key> <string>form_id</string> </key> <value> <string></string> </value> </item> - <item> - <key> <string>target</string> </key> - <value> <string></string> </value> - </item> </dictionary> </value> </item> @@ -61,10 +58,6 @@ <key> <string>form_id</string> </key> <value> <string></string> </value> </item> - <item> - <key> <string>target</string> </key> - <value> <string></string> </value> - </item> </dictionary> </value> </item> @@ -74,7 +67,7 @@ <dictionary> <item> <key> <string>field_id</string> </key> - <value> <string>my_multi_relation_field</string> </value> + <value> <string>my_list_mode_listbox</string> </value> </item> <item> <key> <string>form_id</string> </key> @@ -85,19 +78,19 @@ <value> <list> <tuple> - <string>Expense Record</string> - <string>Expense Record</string> + <string>Expense Validation Request</string> + <string>Expense Validation Request</string> </tuple> </list> </value> </item> <item> - <key> <string>target</string> </key> - <value> <string>Click to edit the target</string> </value> + <key> <string>selection_name</string> </key> + <value> <string>expense_validation_request_module_selection</string> </value> </item> <item> <key> <string>title</string> </key> - <value> <string>Expense Record</string> </value> + <value> <string>Expense Validation Requests</string> </value> </item> </dictionary> </value> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_createRepresentativeRecord.py b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_createRepresentativeRecord.py new file mode 100644 index 0000000000000000000000000000000000000000..2be259a60598058d48291afb7ad87530c089c893 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_createRepresentativeRecord.py @@ -0,0 +1,35 @@ +portal = context.getPortalObject() + +if not record_relative_url: + record_brain_list = portal.portal_catalog( + portal_type="Expense Record", + strict_follow_up_uid=context.getUid(), + simulation_state="stopped", + ) + if len(record_brain_list) > 1: + raise ValueError("Number of record superior to one") + elif len(record_brain_list) == 0: + return + record= record_brain_list[0].getObject() + # XXX to be finished +else: + record = portal.restrictedTraverse(record_relative_url) + +new_record = record.Base_createCloneDocument(batch_mode=True) +new_record.edit( + title=context.getTitle(), + destination_reference=context.getReference(), + date=context.getStartDate().Date().replace('/','-'), + + # Specific + quantity=context.getPrice(), + resource=context.getPriceCurrency(), + resource_title=context.getPriceCurrencyTitle(), + comment=context.getDescription(), + latitude=context.getLatitude(), + longitude=context.getLongitude(), + ) +new_record.setPhotoData(None) + +new_record.stop() +new_record.Record_archivePreviousVersions() diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_createRepresentativeRecord.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_createRepresentativeRecord.xml new file mode 100644 index 0000000000000000000000000000000000000000..0d7ac9d3ccf2c04ff8def6d65460496a8a9505f5 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_createRepresentativeRecord.xml @@ -0,0 +1,62 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>Script_magic</string> </key> + <value> <int>3</int> </value> + </item> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_container</string> </key> + <value> <string>container</string> </value> + </item> + <item> + <key> <string>name_context</string> </key> + <value> <string>context</string> </value> + </item> + <item> + <key> <string>name_m_self</string> </key> + <value> <string>script</string> </value> + </item> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_params</string> </key> + <value> <string>record_relative_url=""</string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>ExpenseValidationRequest_createRepresentativeRecord</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view.xml similarity index 71% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view.xml index d56be5e14f4850e044ecf39f13a1c11156e2085f..c304cccdf7b1b8e8af4cfae86effbf338928cb87 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view.xml @@ -37,6 +37,16 @@ <key> <string>action</string> </key> <value> <string>Base_edit</string> </value> </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>edit_order</string> </key> + <value> + <list/> + </value> + </item> <item> <key> <string>encoding</string> </key> <value> <string>UTF-8</string> </value> @@ -72,18 +82,19 @@ <item> <key> <string>center</string> </key> <value> - <list/> + <list> + <string>my_description</string> + <string>your_image</string> + </list> </value> </item> <item> <key> <string>hidden</string> </key> <value> <list> - <string>listbox_source</string> - <string>listbox_source_credit</string> - <string>listbox_source_debit</string> - <string>listbox_source_function</string> - <string>listbox_source_funding</string> + <string>listbox_delivery_start_date</string> + <string>listbox_destination_title</string> + <string>listbox_content</string> </list> </value> </item> @@ -91,14 +102,18 @@ <key> <string>left</string> </key> <value> <list> - <string>my_source_section</string> - <string>my_source_reference</string> <string>my_title</string> - <string>my_destination_section_title</string> <string>my_reference</string> - <string>my_ledger</string> <string>my_resource</string> - <string>your_photo</string> + <string>my_destination_section_title</string> + <string>my_destination_decision_title</string> + <string>my_destination_project_title</string> + <string>my_source_section_title</string> + <string>my_source_decision_title</string> + <string>my_source_title</string> + <string>my_source_project_title</string> + <string>my_destination_title</string> + <string>my_assessment_form_id</string> </list> </value> </item> @@ -107,10 +122,12 @@ <value> <list> <string>my_start_date</string> - <string>my_source_project_title</string> - <string>my_comment</string> - <string>my_causality_title_list</string> - <string>my_translated_portal_type</string> + <string>my_source_trade_title_list</string> + <string>my_quantity</string> + <string>my_quantity_unit</string> + <string>my_price</string> + <string>my_price_currency</string> + <string>my_total_price</string> <string>my_translated_simulation_state_title</string> </list> </value> @@ -120,7 +137,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>AccountingTransaction_view</string> </value> + <value> <string>ExpenseValidationRequest_view</string> </value> </item> <item> <key> <string>method</string> </key> @@ -128,7 +145,7 @@ </item> <item> <key> <string>name</string> </key> - <value> <string>AccountingTransaction_view</string> </value> + <value> <string>Campaign_view</string> </value> </item> <item> <key> <string>pt</string> </key> @@ -144,7 +161,7 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Accounting Transaction</string> </value> + <value> <string>Expense Validation Request</string> </value> </item> <item> <key> <string>unicode_mode</string> </key> @@ -154,6 +171,10 @@ <key> <string>update_action</string> </key> <value> <string></string> </value> </item> + <item> + <key> <string>update_action_title</string> </key> + <value> <string></string> </value> + </item> </dictionary> </pickle> </record> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/listbox.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/listbox.xml new file mode 100644 index 0000000000000000000000000000000000000000..4fe38d570c67eafefb2a0d656440804ee608f96f --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/listbox.xml @@ -0,0 +1,269 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>columns</string> + <string>count_method</string> + <string>description</string> + <string>editable</string> + <string>editable_columns</string> + <string>list_method</string> + <string>portal_types</string> + <string>selection_name</string> + <string>sort</string> + <string>title</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>listbox</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>portal_types</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>columns</string> </key> + <value> + <list> + <tuple> + <string>getTitle</string> + <string>Title</string> + </tuple> + <tuple> + <string>translated_portal_type</string> + <string>Event Type</string> + </tuple> + <tuple> + <string>delivery.start_date</string> + <string>Date</string> + </tuple> + <tuple> + <string>source_title</string> + <string>Sender or Caller</string> + </tuple> + <tuple> + <string>destination_title</string> + <string>Recipients</string> + </tuple> + <tuple> + <string>content</string> + <string>Content</string> + </tuple> + <tuple> + <string>translated_simulation_state_title</string> + <string>State</string> + </tuple> + </list> + </value> + </item> + <item> + <key> <string>count_method</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>List of all events related to the follow up ticket</string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>editable_columns</string> </key> + <value> + <list> + <tuple> + <string>delivery.start_date</string> + <string>Date</string> + </tuple> + <tuple> + <string>destination_title</string> + <string>Recipients</string> + </tuple> + <tuple> + <string>content</string> + <string>Content</string> + </tuple> + </list> + </value> + </item> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_view_mode_listbox</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewFieldLibrary</string> </value> + </item> + <item> + <key> <string>list_method</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>portal_types</string> </key> + <value> + <list> + <tuple> + <string>Mail Message</string> + <string>Email</string> + </tuple> + <tuple> + <string>Phone Call</string> + <string>Phone Call</string> + </tuple> + <tuple> + <string>Fax Message</string> + <string>Fax</string> + </tuple> + <tuple> + <string>Letter</string> + <string>Letter</string> + </tuple> + <tuple> + <string>Note</string> + <string>Note</string> + </tuple> + </list> + </value> + </item> + <item> + <key> <string>selection_name</string> </key> + <value> <string>ticket_view_selection</string> </value> + </item> + <item> + <key> <string>sort</string> </key> + <value> + <list> + <tuple> + <string>delivery.start_date</string> + <string>asc</string> + </tuple> + </list> + </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Events</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <tuple> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python:[(x, x) for x in here.getPortalEventTypeList()]</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="Method" module="Products.Formulator.MethodField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>method_name</string> </key> + <value> <string>Ticket_countFollowUpRelatedEventList</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="Method" module="Products.Formulator.MethodField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>method_name</string> </key> + <value> <string>Ticket_getFollowUpRelatedEventList</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/listbox_content.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/listbox_content.xml new file mode 100644 index 0000000000000000000000000000000000000000..b1165d154bae57987f63b4799202079418a9329e --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/listbox_content.xml @@ -0,0 +1,278 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>listbox_content</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Content</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <tuple> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>cell/Event_getHeadOfTextContent</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/listbox_delivery_start_date.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/listbox_delivery_start_date.xml new file mode 100644 index 0000000000000000000000000000000000000000..f6710be4f8cb7a3391afcea28ef612e3b2fdf910 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/listbox_delivery_start_date.xml @@ -0,0 +1,2386 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="DateTimeField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>listbox_delivery_start_date</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>datetime_out_of_range</string> </key> + <value> <string>The date and time you entered were out of range.</string> </value> + </item> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>not_datetime</string> </key> + <value> <string>You did not enter a valid date and time.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>allow_empty_time</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>ampm_time_style</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>date_only</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>date_separator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default_now</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end_datetime</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden_day_is_last_day</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hide_day</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_order</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_style</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start_datetime</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time_separator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>timezone_style</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>sub_form</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>allow_empty_time</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>ampm_time_style</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>date_only</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>date_separator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default_now</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end_datetime</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden_day_is_last_day</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hide_day</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_order</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>input_style</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start_datetime</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time_separator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>timezone_style</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>allow_empty_time</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>ampm_time_style</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string>date_field</string> </value> + </item> + <item> + <key> <string>date_only</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>date_separator</string> </key> + <value> <string>/</string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>default_now</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>The Date</string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>end_datetime</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>hidden_day_is_last_day</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>hide_day</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_order</string> </key> + <value> <string>ymd</string> </value> + </item> + <item> + <key> <string>input_style</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>start_datetime</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>time_separator</string> </key> + <value> <string>:</string> </value> + </item> + <item> + <key> <string>timezone_style</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Date</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <tuple> + <global name="BasicForm" module="Products.Formulator.Form"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>enctype</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>fields</string> </key> + <value> + <dictionary> + <item> + <key> <string>ampm</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>day</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + <item> + <key> <string>hour</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent> + </value> + </item> + <item> + <key> <string>minute</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAc=</string> </persistent> + </value> + </item> + <item> + <key> <string>month</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAg=</string> </persistent> + </value> + </item> + <item> + <key> <string>timezone</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAk=</string> </persistent> + </value> + </item> + <item> + <key> <string>year</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAo=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>group_list</string> </key> + <value> + <list> + <string>Default</string> + <string>date</string> + <string>time</string> + </list> + </value> + </item> + <item> + <key> <string>groups</string> </key> + <value> + <dictionary> + <item> + <key> <string>Default</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>date</string> </key> + <value> + <list> + <string>year</string> + <string>month</string> + <string>day</string> + </list> + </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <list> + <string>hour</string> + <string>minute</string> + <string>ampm</string> + <string>timezone</string> + </list> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>method</string> </key> + <value> <string>POST</string> </value> + </item> + <item> + <key> <string>name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>stored_encoding</string> </key> + <value> <string>ISO-8859-1</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Basic Form</string> </value> + </item> + <item> + <key> <string>unicode_mode</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <tuple> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>preferences/getPreferredDateOrder | string:ymd</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <tuple> + <global name="StringField" module="Products.Formulator.StandardFields"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>ampm</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <int>2</int> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>2</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <int>2</int> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>am/pm</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <tuple> + <global name="IntegerField" module="Products.Formulator.StandardFields"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>day</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>integer_out_of_range</string> </key> + <value> <string>The integer you entered was out of range.</string> </value> + </item> + <item> + <key> <string>not_integer</string> </key> + <value> <string>You did not enter an integer.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <int>2</int> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>2</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Day</string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="6" aka="AAAAAAAAAAY="> + <pickle> + <tuple> + <global name="IntegerField" module="Products.Formulator.StandardFields"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>hour</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>integer_out_of_range</string> </key> + <value> <string>The integer you entered was out of range.</string> </value> + </item> + <item> + <key> <string>not_integer</string> </key> + <value> <string>You did not enter an integer.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <int>2</int> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>2</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Hour</string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="7" aka="AAAAAAAAAAc="> + <pickle> + <tuple> + <global name="IntegerField" module="Products.Formulator.StandardFields"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>minute</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>integer_out_of_range</string> </key> + <value> <string>The integer you entered was out of range.</string> </value> + </item> + <item> + <key> <string>not_integer</string> </key> + <value> <string>You did not enter an integer.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <int>2</int> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>2</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Minute</string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="8" aka="AAAAAAAAAAg="> + <pickle> + <tuple> + <global name="IntegerField" module="Products.Formulator.StandardFields"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>month</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>integer_out_of_range</string> </key> + <value> <string>The integer you entered was out of range.</string> </value> + </item> + <item> + <key> <string>not_integer</string> </key> + <value> <string>You did not enter an integer.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <int>2</int> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>2</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Month</string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="9" aka="AAAAAAAAAAk="> + <pickle> + <tuple> + <global name="ListField" module="Products.Formulator.StandardFields"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>timezone</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>unknown_selection</string> </key> + <value> <string>You selected an item that was not in the list.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra_item</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>first_item</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>items</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>size</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra_item</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>first_item</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>items</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>size</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string>GMT</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra_item</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>first_item</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>items</string> </key> + <value> + <list> + <tuple> + <string>GMT-12</string> + <string>GMT-12</string> + </tuple> + <tuple> + <string>GMT-11</string> + <string>GMT-11</string> + </tuple> + <tuple> + <string>GMT-10</string> + <string>GMT-10</string> + </tuple> + <tuple> + <string>GMT-9</string> + <string>GMT-9</string> + </tuple> + <tuple> + <string>GMT-8</string> + <string>GMT-8</string> + </tuple> + <tuple> + <string>GMT-7</string> + <string>GMT-7</string> + </tuple> + <tuple> + <string>GMT-6</string> + <string>GMT-6</string> + </tuple> + <tuple> + <string>GMT-5</string> + <string>GMT-5</string> + </tuple> + <tuple> + <string>GMT-4</string> + <string>GMT-4</string> + </tuple> + <tuple> + <string>GMT-3</string> + <string>GMT-3</string> + </tuple> + <tuple> + <string>GMT-2</string> + <string>GMT-2</string> + </tuple> + <tuple> + <string>GMT-1</string> + <string>GMT-1</string> + </tuple> + <tuple> + <string>GMT</string> + <string>GMT</string> + </tuple> + <tuple> + <string>GMT+1</string> + <string>GMT+1</string> + </tuple> + <tuple> + <string>GMT+2</string> + <string>GMT+2</string> + </tuple> + <tuple> + <string>GMT+3</string> + <string>GMT+3</string> + </tuple> + <tuple> + <string>GMT+4</string> + <string>GMT+4</string> + </tuple> + <tuple> + <string>GMT+5</string> + <string>GMT+5</string> + </tuple> + <tuple> + <string>GMT+6</string> + <string>GMT+6</string> + </tuple> + <tuple> + <string>GMT+7</string> + <string>GMT+7</string> + </tuple> + <tuple> + <string>GMT+8</string> + <string>GMT+8</string> + </tuple> + <tuple> + <string>GMT+9</string> + <string>GMT+9</string> + </tuple> + <tuple> + <string>GMT+10</string> + <string>GMT+10</string> + </tuple> + <tuple> + <string>GMT+11</string> + <string>GMT+11</string> + </tuple> + <tuple> + <string>GMT+12</string> + <string>GMT+12</string> + </tuple> + </list> + </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>size</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Timezone</string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="10" aka="AAAAAAAAAAo="> + <pickle> + <tuple> + <global name="IntegerField" module="Products.Formulator.StandardFields"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>year</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>integer_out_of_range</string> </key> + <value> <string>The integer you entered was out of range.</string> </value> + </item> + <item> + <key> <string>not_integer</string> </key> + <value> <string>You did not enter an integer.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <int>4</int> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>4</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Year</string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/listbox_destination_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/listbox_destination_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..f85675fa8cda98a945bb7a0031ea92e1e04bc8d9 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/listbox_destination_title.xml @@ -0,0 +1,296 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>listbox_destination_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>30</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Recipients</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <tuple> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python:" / ".join(cell.getDestinationTitleList([]))</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <tuple> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: preferences.getPreference(\'preferred_string_field_width\', 30)</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_assessment_form_id.xml similarity index 92% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_assessment_form_id.xml index 3eac19821df9c98a75cd7b943f5ec81ef40c2c4a..3eaa3a2ef493fc22eaaccd17c60a07bbc4459574 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_assessment_form_id.xml @@ -14,7 +14,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>listbox_source</string> </value> + <value> <string>my_assessment_form_id</string> </value> </item> <item> <key> <string>message_values</string> </key> @@ -71,11 +71,11 @@ <dictionary> <item> <key> <string>field_id</string> </key> - <value> <string>listbox_node</string> </value> + <value> <string>my_assessment_form_id</string> </value> </item> <item> <key> <string>form_id</string> </key> - <value> <string>AccountingTransaction_viewFieldLibrary</string> </value> + <value> <string>Base_viewCRMFieldLibrary</string> </value> </item> <item> <key> <string>target</string> </key> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_description.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_description.xml new file mode 100644 index 0000000000000000000000000000000000000000..e703af92e08a4ecacf46a3fb57fb59d2fadda168 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_description.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_description</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_description</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_destination_decision_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_destination_decision_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..7e5165a5f21a71e7d13c9315e1724c07fb55605d --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_destination_decision_title.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_destination_decision_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_destination_decision_title</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_destination_project_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_destination_project_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..428b449e0ff6d1b54b4605ec8049abbe23f1d362 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_destination_project_title.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_destination_project_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_destination_project_title</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_destination_section_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_destination_section_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..b1003b2e15e1886c8f24dd61b7d93b8f749ac416 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_destination_section_title.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_destination_section_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_destination_section_title</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_destination_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_destination_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..7fcd0a72570bcfdef1de8b2f17a4c224fa218fb4 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_destination_title.xml @@ -0,0 +1,101 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>allow_creation</string> + <string>editable</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_destination_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>allow_creation</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_destination_title</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_price.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_price.xml new file mode 100644 index 0000000000000000000000000000000000000000..776982907b3a44187d2fc0139c075fe6c3d57b4a --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_price.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_price</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_price</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_price_currency.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_price_currency.xml new file mode 100644 index 0000000000000000000000000000000000000000..c5fbd12f982e4a0daecf1af5292cc98b7ba8304f --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_price_currency.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_price_currency</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_price_currency</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_quantity.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_quantity.xml new file mode 100644 index 0000000000000000000000000000000000000000..a0d0d6d16bcf235ec21012d58f36caa7614ce192 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_quantity.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_quantity</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_quantity</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_quantity_unit.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_quantity_unit.xml new file mode 100644 index 0000000000000000000000000000000000000000..76cc2b8b4ad6432e15c9264af3daf7ef8fb7d836 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_quantity_unit.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_quantity_unit</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_quantity_unit</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_reference.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_reference.xml new file mode 100644 index 0000000000000000000000000000000000000000..5a0abb592a290fd935be46fe4fba9f26c7269c6c --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_reference.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_reference</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_reference</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_resource.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_resource.xml similarity index 94% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_resource.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_resource.xml index 015d866ea3118afd42f0ffa27e4f6623926f1bbe..4371ce93b37378ceedb0159ccaa35d92b3e8096c 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_resource.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_resource.xml @@ -71,11 +71,11 @@ <dictionary> <item> <key> <string>field_id</string> </key> - <value> <string>my_resource</string> </value> + <value> <string>my_ticket_resource</string> </value> </item> <item> <key> <string>form_id</string> </key> - <value> <string>AccountingTransaction_viewFieldLibrary</string> </value> + <value> <string>Base_viewCRMFieldLibrary</string> </value> </item> <item> <key> <string>target</string> </key> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source_function.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_source_decision_title.xml similarity index 92% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source_function.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_source_decision_title.xml index d83843f0f331e3ba9aa86d79f8e013b4cad639f6..7aab4b4cc1ffa0a444fb856a4a32227f8e57895e 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source_function.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_source_decision_title.xml @@ -14,7 +14,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>listbox_source_function</string> </value> + <value> <string>my_source_decision_title</string> </value> </item> <item> <key> <string>message_values</string> </key> @@ -71,11 +71,11 @@ <dictionary> <item> <key> <string>field_id</string> </key> - <value> <string>listbox_function</string> </value> + <value> <string>my_source_decision_title</string> </value> </item> <item> <key> <string>form_id</string> </key> - <value> <string>AccountingTransaction_viewFieldLibrary</string> </value> + <value> <string>Base_viewCRMFieldLibrary</string> </value> </item> <item> <key> <string>target</string> </key> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_causality_title_list.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_source_project_title.xml similarity index 92% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_causality_title_list.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_source_project_title.xml index 6b51044ef124b0a7c61374246c556a739f172417..9a13d519f23e7703b6a15d94b080d4150f9e2f6f 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_causality_title_list.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_source_project_title.xml @@ -14,7 +14,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>my_causality_title_list</string> </value> + <value> <string>my_source_project_title</string> </value> </item> <item> <key> <string>message_values</string> </key> @@ -71,11 +71,11 @@ <dictionary> <item> <key> <string>field_id</string> </key> - <value> <string>my_causality_title_list</string> </value> + <value> <string>my_source_project_title</string> </value> </item> <item> <key> <string>form_id</string> </key> - <value> <string>AccountingTransaction_viewFieldLibrary</string> </value> + <value> <string>Base_viewCRMFieldLibrary</string> </value> </item> <item> <key> <string>target</string> </key> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source_funding.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_source_section_title.xml similarity index 92% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source_funding.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_source_section_title.xml index 8c337d6705ec5103c05c72fce295c6fcfbadd5bd..32b726dc2b18e75996bfdad7628650b071af6aad 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source_funding.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_source_section_title.xml @@ -14,7 +14,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>listbox_source_funding</string> </value> + <value> <string>my_source_section_title</string> </value> </item> <item> <key> <string>message_values</string> </key> @@ -71,11 +71,11 @@ <dictionary> <item> <key> <string>field_id</string> </key> - <value> <string>listbox_funding</string> </value> + <value> <string>my_source_section_title</string> </value> </item> <item> <key> <string>form_id</string> </key> - <value> <string>AccountingTransaction_viewFieldLibrary</string> </value> + <value> <string>Base_viewCRMFieldLibrary</string> </value> </item> <item> <key> <string>target</string> </key> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_source_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_source_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..a9157bb8a5dcfea045b487df909c5ba4fa7dc40e --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_source_title.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_source_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_ticket_source_title</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_source_trade_title_list.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_source_trade_title_list.xml new file mode 100644 index 0000000000000000000000000000000000000000..90f71bc99e39368553624b422fcf2266c3a110b0 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_source_trade_title_list.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_source_trade_title_list</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_source_trade_title_list</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source_debit.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_start_date.xml similarity index 86% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source_debit.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_start_date.xml index b3227b547aad19469bcf5499cc9a829a5df7c0b4..1be9be66d5bd17fe097e0316204baf83e6659ebe 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source_debit.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_start_date.xml @@ -16,7 +16,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>listbox_source_debit</string> </value> + <value> <string>my_start_date</string> </value> </item> <item> <key> <string>message_values</string> </key> @@ -64,10 +64,6 @@ <key> <string>target</string> </key> <value> <string></string> </value> </item> - <item> - <key> <string>title</string> </key> - <value> <string></string> </value> - </item> </dictionary> </value> </item> @@ -77,11 +73,11 @@ <dictionary> <item> <key> <string>field_id</string> </key> - <value> <string>listbox_source_debit</string> </value> + <value> <string>my_ticket_start_date</string> </value> </item> <item> <key> <string>form_id</string> </key> - <value> <string>AccountingTransaction_viewFieldLibrary</string> </value> + <value> <string>Base_viewCRMFieldLibrary</string> </value> </item> <item> <key> <string>target</string> </key> @@ -89,7 +85,7 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>listbox_source_debit</string> </value> + <value> <string>Date</string> </value> </item> </dictionary> </value> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_title.xml similarity index 94% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_title.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_title.xml index e9cec1bb03f9bb0dada5002fe90db2a1bb30ebc4..7d5ad43f16bd2d21c6410fc705b0f54a7e82221c 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_title.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_title.xml @@ -71,11 +71,11 @@ <dictionary> <item> <key> <string>field_id</string> </key> - <value> <string>my_title</string> </value> + <value> <string>my_ticket_title</string> </value> </item> <item> <key> <string>form_id</string> </key> - <value> <string>AccountingTransaction_viewFieldLibrary</string> </value> + <value> <string>Base_viewCRMFieldLibrary</string> </value> </item> <item> <key> <string>target</string> </key> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_total_price.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_total_price.xml new file mode 100644 index 0000000000000000000000000000000000000000..682a4e209556ba58f35f1a2b8ef9c4b66e7eb371 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_total_price.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_total_price</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_total_price</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_translated_simulation_state_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_translated_simulation_state_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..7bc23f5cf1b1114c631e64e4835fad5939b53587 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/my_translated_simulation_state_title.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_translated_simulation_state_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_translated_simulation_state_title</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/your_image.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/your_image.xml similarity index 100% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/your_image.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/ExpenseValidationRequest_view/your_image.xml diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/SystemPreference_viewHumanResource.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/SystemPreference_viewHumanResource.xml new file mode 100644 index 0000000000000000000000000000000000000000..12c80a054c1ff1070012edb2c9f2554d4033f3b4 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/SystemPreference_viewHumanResource.xml @@ -0,0 +1,155 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ERP5 Form" module="erp5.portal_type"/> + </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/> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>action</string> </key> + <value> <string>Base_edit</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>edit_order</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>enctype</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>group_list</string> </key> + <value> + <list> + <string>left</string> + <string>right</string> + <string>center</string> + <string>bottom</string> + <string>hidden</string> + </list> + </value> + </item> + <item> + <key> <string>groups</string> </key> + <value> + <dictionary> + <item> + <key> <string>bottom</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>center</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>left</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>right</string> </key> + <value> + <list> + <string>my_preferred_expense_validation_request_use_list</string> + <string>my_preferred_expense_validation_request_resource</string> + <string>my_preferred_travel_request_use_list</string> + <string>my_preferred_travel_request_resource</string> + </list> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>SystemPreference_viewHumanResource</string> </value> + </item> + <item> + <key> <string>method</string> </key> + <value> <string>POST</string> </value> + </item> + <item> + <key> <string>name</string> </key> + <value> <string>Preference_viewCRM</string> </value> + </item> + <item> + <key> <string>pt</string> </key> + <value> <string>form_view</string> </value> + </item> + <item> + <key> <string>row_length</string> </key> + <value> <int>4</int> </value> + </item> + <item> + <key> <string>stored_encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>HR</string> </value> + </item> + <item> + <key> <string>unicode_mode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>update_action</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>update_action_title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/SystemPreference_viewHumanResource/my_preferred_expense_validation_request_resource.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/SystemPreference_viewHumanResource/my_preferred_expense_validation_request_resource.xml new file mode 100644 index 0000000000000000000000000000000000000000..d7182dc48e9cefff006740fa5d25d10a9a9ac98f --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/SystemPreference_viewHumanResource/my_preferred_expense_validation_request_resource.xml @@ -0,0 +1,126 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>items</string> + <string>title</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_preferred_expense_validation_request_resource</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>items</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_list_field</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewFieldLibrary</string> </value> + </item> + <item> + <key> <string>items</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Preferred Resource for Expense Validation Request</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: [(\'\', \'\')] + [(resource.getTitle(), resource.getRelativeUrl()) for resource in here.getPortalObject().portal_catalog(portal_type=here.getPortalObject().getPortalResourceTypeList(), validation_state=\'validated\', use_uid=here.getPortalObject().portal_categories.getCategoryUid(here.getPreference(field.getId().replace(\'my_\', \'\').replace(\'_resource\', \'_use\')), base_category=\'use\'))]</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_contributor_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/SystemPreference_viewHumanResource/my_preferred_expense_validation_request_use_list.xml similarity index 70% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_contributor_title.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/SystemPreference_viewHumanResource/my_preferred_expense_validation_request_use_list.xml index 445a552db33851a5ca7274bac21de3827804f3d0..175bd50b33af3aa55e74c127ba758ce6a3f3bfc8 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_contributor_title.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/SystemPreference_viewHumanResource/my_preferred_expense_validation_request_use_list.xml @@ -10,15 +10,14 @@ <key> <string>delegated_list</string> </key> <value> <list> - <string>editable</string> - <string>portal_type</string> + <string>items</string> <string>title</string> </list> </value> </item> <item> <key> <string>id</string> </key> - <value> <string>my_contributor_title</string> </value> + <value> <string>my_preferred_expense_validation_request_use_list</string> </value> </item> <item> <key> <string>message_values</string> </key> @@ -62,10 +61,20 @@ <key> <string>form_id</string> </key> <value> <string></string> </value> </item> + <item> + <key> <string>items</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> <item> <key> <string>target</string> </key> <value> <string></string> </value> </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> </dictionary> </value> </item> @@ -73,27 +82,18 @@ <key> <string>values</string> </key> <value> <dictionary> - <item> - <key> <string>editable</string> </key> - <value> <int>0</int> </value> - </item> <item> <key> <string>field_id</string> </key> - <value> <string>my_relation_field</string> </value> + <value> <string>my_multi_list_field</string> </value> </item> <item> <key> <string>form_id</string> </key> <value> <string>Base_viewFieldLibrary</string> </value> </item> <item> - <key> <string>portal_type</string> </key> + <key> <string>items</string> </key> <value> - <list> - <tuple> - <string>Person</string> - <string>Person</string> - </tuple> - </list> + <list/> </value> </item> <item> @@ -102,7 +102,7 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Contributor</string> </value> + <value> <string>Expense Validation Request Uses</string> </value> </item> </dictionary> </value> @@ -110,4 +110,17 @@ </dictionary> </pickle> </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: getattr(here.portal_categories.use, preferences.getPreference(\'preferred_category_child_item_list_method_id\', \'getCategoryChildCompactLogicalPathItemList\'))(local_sort_id=(\'int_index\', \'translated_title\'), checked_permission=\'View\')</string> </value> + </item> + </dictionary> + </pickle> + </record> </ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_follow_up_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/SystemPreference_viewHumanResource/my_preferred_travel_request_resource.xml similarity index 67% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_follow_up_title.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/SystemPreference_viewHumanResource/my_preferred_travel_request_resource.xml index c8bee21986643eccffa5fbad78163f53b23ec0f0..fa09928501ff4f7f80688562e5403fbe3d5b22dc 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_follow_up_title.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/SystemPreference_viewHumanResource/my_preferred_travel_request_resource.xml @@ -10,14 +10,14 @@ <key> <string>delegated_list</string> </key> <value> <list> - <string>portal_type</string> + <string>items</string> <string>title</string> </list> </value> </item> <item> <key> <string>id</string> </key> - <value> <string>my_follow_up_title</string> </value> + <value> <string>my_preferred_travel_request_resource</string> </value> </item> <item> <key> <string>message_values</string> </key> @@ -61,10 +61,20 @@ <key> <string>form_id</string> </key> <value> <string></string> </value> </item> + <item> + <key> <string>items</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> <item> <key> <string>target</string> </key> <value> <string></string> </value> </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> </dictionary> </value> </item> @@ -74,21 +84,16 @@ <dictionary> <item> <key> <string>field_id</string> </key> - <value> <string>my_relation_field</string> </value> + <value> <string>my_list_field</string> </value> </item> <item> <key> <string>form_id</string> </key> <value> <string>Base_viewFieldLibrary</string> </value> </item> <item> - <key> <string>portal_type</string> </key> + <key> <string>items</string> </key> <value> - <list> - <tuple> - <string>Expense Validation Item</string> - <string>Expense Validation Item</string> - </tuple> - </list> + <list/> </value> </item> <item> @@ -97,7 +102,7 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Expense Validation Item</string> </value> + <value> <string>Preferred Resource for Travel Requests</string> </value> </item> </dictionary> </value> @@ -105,4 +110,17 @@ </dictionary> </pickle> </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: [(\'\', \'\')] + [(resource.getTitle(), resource.getRelativeUrl()) for resource in here.getPortalObject().portal_catalog(portal_type=here.getPortalObject().getPortalResourceTypeList(), validation_state=\'validated\', use_uid=here.getPortalObject().portal_categories.getCategoryUid(here.getPreference(field.getId().replace(\'my_\', \'\').replace(\'_resource\', \'_use\')), base_category=\'use\'))]</string> </value> + </item> + </dictionary> + </pickle> + </record> </ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/SystemPreference_viewHumanResource/my_preferred_travel_request_use_list.xml similarity index 73% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/SystemPreference_viewHumanResource/my_preferred_travel_request_use_list.xml index 5ae7e9f70f5aad0260e05861d93bb65a0745bfe3..8ae9c1b0de2f2c987a0f8b77d0b1c1135e92d43e 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/SystemPreference_viewHumanResource/my_preferred_travel_request_use_list.xml @@ -10,14 +10,14 @@ <key> <string>delegated_list</string> </key> <value> <list> - <string>list_method</string> - <string>stat_method</string> + <string>items</string> + <string>title</string> </list> </value> </item> <item> <key> <string>id</string> </key> - <value> <string>listbox</string> </value> + <value> <string>my_preferred_travel_request_use_list</string> </value> </item> <item> <key> <string>message_values</string> </key> @@ -61,10 +61,20 @@ <key> <string>form_id</string> </key> <value> <string></string> </value> </item> + <item> + <key> <string>items</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> <item> <key> <string>target</string> </key> <value> <string></string> </value> </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> </dictionary> </value> </item> @@ -74,28 +84,26 @@ <dictionary> <item> <key> <string>field_id</string> </key> - <value> <string>my_source_view_listbox</string> </value> + <value> <string>my_multi_list_field</string> </value> </item> <item> <key> <string>form_id</string> </key> - <value> <string>AccountingTransaction_viewFieldLibrary</string> </value> - </item> - <item> - <key> <string>list_method</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> - </value> + <value> <string>Base_viewFieldLibrary</string> </value> </item> <item> - <key> <string>stat_method</string> </key> + <key> <string>items</string> </key> <value> - <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + <list/> </value> </item> <item> <key> <string>target</string> </key> <value> <string>Click to edit the target</string> </value> </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Request Uses</string> </value> + </item> </dictionary> </value> </item> @@ -104,26 +112,13 @@ </record> <record id="2" aka="AAAAAAAAAAI="> <pickle> - <global name="Method" module="Products.Formulator.MethodField"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>method_name</string> </key> - <value> <string>AccountingTransaction_getAccountingTransactionLineList</string> </value> - </item> - </dictionary> - </pickle> - </record> - <record id="3" aka="AAAAAAAAAAM="> - <pickle> - <global name="Method" module="Products.Formulator.MethodField"/> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> </pickle> <pickle> <dictionary> <item> - <key> <string>method_name</string> </key> - <value> <string>AccountingTransaction_getAccountingTransactionLineList</string> </value> + <key> <string>_text</string> </key> + <value> <string>python: getattr(here.portal_categories.use, preferences.getPreference(\'preferred_category_child_item_list_method_id\', \'getCategoryChildCompactLogicalPathItemList\'))(local_sort_id=(\'int_index\', \'translated_title\'), checked_permission=\'View\')</string> </value> </item> </dictionary> </pickle> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequestModule_view.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequestModule_view.xml new file mode 100644 index 0000000000000000000000000000000000000000..274ce493fd65a3e0a02ac26faeef3a55067da314 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequestModule_view.xml @@ -0,0 +1,155 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ERP5 Form" module="erp5.portal_type"/> + </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/> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>action</string> </key> + <value> <string>Base_doSelect</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>edit_order</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>enctype</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>group_list</string> </key> + <value> + <list> + <string>left</string> + <string>right</string> + <string>center</string> + <string>bottom</string> + <string>hidden</string> + </list> + </value> + </item> + <item> + <key> <string>groups</string> </key> + <value> + <dictionary> + <item> + <key> <string>bottom</string> </key> + <value> + <list> + <string>listbox</string> + </list> + </value> + </item> + <item> + <key> <string>center</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> + <list> + <string>listbox_delivery_start_date</string> + <string>listbox_delivery_stop_date</string> + </list> + </value> + </item> + <item> + <key> <string>left</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>right</string> </key> + <value> + <list/> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>TravelRequestModule_view</string> </value> + </item> + <item> + <key> <string>method</string> </key> + <value> <string>POST</string> </value> + </item> + <item> + <key> <string>name</string> </key> + <value> <string>SaleOpportunityModule_viewSaleOpportunityList</string> </value> + </item> + <item> + <key> <string>pt</string> </key> + <value> <string>form_list</string> </value> + </item> + <item> + <key> <string>row_length</string> </key> + <value> <int>4</int> </value> + </item> + <item> + <key> <string>stored_encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Requests</string> </value> + </item> + <item> + <key> <string>unicode_mode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>update_action</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>update_action_title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequestModule_view/listbox.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequestModule_view/listbox.xml new file mode 100644 index 0000000000000000000000000000000000000000..27cda26081cbaf37c5727cc81142e5400307b486 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequestModule_view/listbox.xml @@ -0,0 +1,504 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>all_columns</string> + <string>columns</string> + <string>domain_root_list</string> + <string>domain_tree</string> + <string>editable_columns</string> + <string>search_columns</string> + <string>selection_name</string> + <string>sort</string> + <string>sort_columns</string> + <string>title</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>listbox</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>selection_name</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>all_columns</string> </key> + <value> + <list> + <tuple> + <string>title</string> + <string>Title</string> + </tuple> + <tuple> + <string>destination_section_title</string> + <string>Client</string> + </tuple> + <tuple> + <string>destination_decision_title</string> + <string>Requester</string> + </tuple> + <tuple> + <string>source_section_title</string> + <string>Supplier</string> + </tuple> + <tuple> + <string>source_decision_title</string> + <string>Supervisor</string> + </tuple> + <tuple> + <string>source_title</string> + <string>Operations Manager</string> + </tuple> + <tuple> + <string>destination_title</string> + <string>Location</string> + </tuple> + <tuple> + <string>delivery.start_date</string> + <string>Begin Date</string> + </tuple> + <tuple> + <string>delivery.stop_date</string> + <string>End Date</string> + </tuple> + <tuple> + <string>resource_title</string> + <string>Type</string> + </tuple> + <tuple> + <string>source_trade_title</string> + <string>Operator</string> + </tuple> + <tuple> + <string>translated_simulation_state_title</string> + <string>State</string> + </tuple> + <tuple> + <string>quantity</string> + <string>Quantity</string> + </tuple> + <tuple> + <string>quantity_unit_title</string> + <string>Quantity Unit</string> + </tuple> + <tuple> + <string>price</string> + <string>Unit Price</string> + </tuple> + <tuple> + <string>price_currency_title</string> + <string>Currency</string> + </tuple> + <tuple> + <string>description</string> + <string>Description</string> + </tuple> + <tuple> + <string>creation_date</string> + <string>Creation Date</string> + </tuple> + <tuple> + <string>modification_date</string> + <string>Modification Date</string> + </tuple> + <tuple> + <string>owner_title</string> + <string>Owner</string> + </tuple> + </list> + </value> + </item> + <item> + <key> <string>columns</string> </key> + <value> + <list> + <tuple> + <string>reference</string> + <string>Reference</string> + </tuple> + <tuple> + <string>title</string> + <string>Title</string> + </tuple> + <tuple> + <string>resource_title</string> + <string>Type</string> + </tuple> + <tuple> + <string>destination_section_title</string> + <string>Client</string> + </tuple> + <tuple> + <string>destination_decision_title</string> + <string>Requester</string> + </tuple> + <tuple> + <string>source_section_title</string> + <string>Supplier</string> + </tuple> + <tuple> + <string>source_title</string> + <string>Operations Manager</string> + </tuple> + <tuple> + <string>delivery.start_date</string> + <string>Begin Date</string> + </tuple> + <tuple> + <string>delivery.stop_date</string> + <string>End Date</string> + </tuple> + <tuple> + <string>translated_simulation_state_title</string> + <string>State</string> + </tuple> + </list> + </value> + </item> + <item> + <key> <string>domain_root_list</string> </key> + <value> + <list> + <tuple> + <string>ticket_use_domain</string> + <string>Type</string> + </tuple> + </list> + </value> + </item> + <item> + <key> <string>domain_tree</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>editable_columns</string> </key> + <value> + <list> + <tuple> + <string>delivery.start_date</string> + <string>Begin Date</string> + </tuple> + <tuple> + <string>delivery.stop_date</string> + <string>End Date</string> + </tuple> + </list> + </value> + </item> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_list_mode_listbox</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewFieldLibrary</string> </value> + </item> + <item> + <key> <string>search_columns</string> </key> + <value> + <list> + <tuple> + <string>reference</string> + <string>Reference</string> + </tuple> + <tuple> + <string>title</string> + <string>Title</string> + </tuple> + <tuple> + <string>destination_section_title</string> + <string>Client</string> + </tuple> + <tuple> + <string>destination_decision_title</string> + <string>Requester</string> + </tuple> + <tuple> + <string>source_section_title</string> + <string>Supplier</string> + </tuple> + <tuple> + <string>source_decision_title</string> + <string>Supervisor</string> + </tuple> + <tuple> + <string>source_title</string> + <string>Operations Manager</string> + </tuple> + <tuple> + <string>destination_title</string> + <string>Location</string> + </tuple> + <tuple> + <string>delivery.start_date</string> + <string>Begin Date</string> + </tuple> + <tuple> + <string>delivery.stop_date</string> + <string>End Date</string> + </tuple> + <tuple> + <string>resource_title</string> + <string>Type</string> + </tuple> + <tuple> + <string>source_trade_title</string> + <string>Operator</string> + </tuple> + <tuple> + <string>translated_simulation_state_title</string> + <string>State</string> + </tuple> + <tuple> + <string>quantity</string> + <string>Quantity</string> + </tuple> + <tuple> + <string>quantity_unit_title</string> + <string>Quantity Unit</string> + </tuple> + <tuple> + <string>price</string> + <string>Unit Price</string> + </tuple> + <tuple> + <string>price_currency_title</string> + <string>Currency</string> + </tuple> + <tuple> + <string>description</string> + <string>Description</string> + </tuple> + <tuple> + <string>creation_date</string> + <string>Creation Date</string> + </tuple> + <tuple> + <string>modification_date</string> + <string>Modification Date</string> + </tuple> + <tuple> + <string>owner_title</string> + <string>Owner</string> + </tuple> + </list> + </value> + </item> + <item> + <key> <string>selection_name</string> </key> + <value> <string>ticket_selection</string> </value> + </item> + <item> + <key> <string>sort</string> </key> + <value> + <list> + <tuple> + <string>modification_date</string> + <string>descending</string> + </tuple> + </list> + </value> + </item> + <item> + <key> <string>sort_columns</string> </key> + <value> + <list> + <tuple> + <string>reference</string> + <string>Reference</string> + </tuple> + <tuple> + <string>title</string> + <string>Title</string> + </tuple> + <tuple> + <string>destination_section_title</string> + <string>Client</string> + </tuple> + <tuple> + <string>destination_decision_title</string> + <string>Requester</string> + </tuple> + <tuple> + <string>source_section_title</string> + <string>Supplier</string> + </tuple> + <tuple> + <string>source_decision_title</string> + <string>Supervisor</string> + </tuple> + <tuple> + <string>source_title</string> + <string>Operations Manager</string> + </tuple> + <tuple> + <string>destination_title</string> + <string>Location</string> + </tuple> + <tuple> + <string>delivery.start_date</string> + <string>Begin Date</string> + </tuple> + <tuple> + <string>delivery.stop_date</string> + <string>End Date</string> + </tuple> + <tuple> + <string>resource_title</string> + <string>Type</string> + </tuple> + <tuple> + <string>source_trade_title</string> + <string>Operator</string> + </tuple> + <tuple> + <string>translated_simulation_state_title</string> + <string>State</string> + </tuple> + <tuple> + <string>quantity</string> + <string>Quantity</string> + </tuple> + <tuple> + <string>quantity_unit_title</string> + <string>Quantity Unit</string> + </tuple> + <tuple> + <string>price</string> + <string>Unit Price</string> + </tuple> + <tuple> + <string>price_currency_title</string> + <string>Currency</string> + </tuple> + <tuple> + <string>description</string> + <string>Description</string> + </tuple> + <tuple> + <string>creation_date</string> + <string>Creation Date</string> + </tuple> + <tuple> + <string>modification_date</string> + <string>Modification Date</string> + </tuple> + <tuple> + <string>owner_title</string> + <string>Owner</string> + </tuple> + </list> + </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Tickets</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python:\'%s_ticket_selection\' % here.getId()</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: here.getTranslatedTitle()</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_destination_section_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequestModule_view/listbox_delivery_start_date.xml similarity index 87% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_destination_section_title.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequestModule_view/listbox_delivery_start_date.xml index 54ca51c50dcc8789ecfbc7047eabd94ee4bc62a1..2e6a740af8915436f99175186801ea88c23d747a 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_destination_section_title.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequestModule_view/listbox_delivery_start_date.xml @@ -10,13 +10,13 @@ <key> <string>delegated_list</string> </key> <value> <list> - <string>base_category</string> + <string>editable</string> </list> </value> </item> <item> <key> <string>id</string> </key> - <value> <string>my_destination_section_title</string> </value> + <value> <string>listbox_delivery_start_date</string> </value> </item> <item> <key> <string>message_values</string> </key> @@ -72,16 +72,16 @@ <value> <dictionary> <item> - <key> <string>base_category</string> </key> - <value> <string>destination_section</string> </value> + <key> <string>editable</string> </key> + <value> <int>0</int> </value> </item> <item> <key> <string>field_id</string> </key> - <value> <string>my_destination_section_title</string> </value> + <value> <string>my_ticket_start_date</string> </value> </item> <item> <key> <string>form_id</string> </key> - <value> <string>AccountingTransaction_viewFieldLibrary</string> </value> + <value> <string>Base_viewCRMFieldLibrary</string> </value> </item> <item> <key> <string>target</string> </key> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequestModule_view/listbox_delivery_stop_date.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequestModule_view/listbox_delivery_stop_date.xml new file mode 100644 index 0000000000000000000000000000000000000000..f1152440fff51c6bc0881c86215ddc983efd4310 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequestModule_view/listbox_delivery_stop_date.xml @@ -0,0 +1,96 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>editable</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>listbox_delivery_stop_date</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>editable</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_stop_date</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_createRepresentativeRecord.py b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_createRepresentativeRecord.py new file mode 100644 index 0000000000000000000000000000000000000000..6d33c7dfc27aa643c9643c3297a7fe419d5c70fc --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_createRepresentativeRecord.py @@ -0,0 +1,31 @@ +portal = context.getPortalObject() + +if not record_relative_url: + record_brain_list = portal.portal_catalog( + portal_type="Travel Request Record", + strict_follow_up_uid=context.getUid(), + simulation_state="stopped", + ) + if len(record_brain_list) > 1: + raise ValueError("Number of record superior to one") + elif len(record_brain_list) == 0: + return + record= record_brain_list[0].getObject() + # XXX to be finished +else: + record = portal.restrictedTraverse(record_relative_url) + +new_record = record.Base_createCloneDocument(batch_mode=True) +new_record.edit( + title=context.getTitle(), + destination_reference=context.getReference(), + start_date=context.getStartDate().Date().replace('/','-'), + stop_date=context.getStopDate().Date().replace('/','-'), + site=context.getAnimationCenter(), + destination_node_title=context.getTravelDestination(), + # XX Hackish + comment=context.getDescription(), + + ) +new_record.stop() +new_record.Record_archivePreviousVersions() diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_getValidOriginalEvent.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_createRepresentativeRecord.xml similarity index 93% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_getValidOriginalEvent.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_createRepresentativeRecord.xml index 27a78063ffaa757c6e0755acf0d199531fc91b19..1e13a4fafd8e96501007b7ca36efd30979a8a200 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_getValidOriginalEvent.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_createRepresentativeRecord.xml @@ -50,11 +50,11 @@ </item> <item> <key> <string>_params</string> </key> - <value> <string>record_value</string> </value> + <value> <string>record_relative_url=""</string> </value> </item> <item> <key> <string>id</string> </key> - <value> <string>Base_getValidOriginalEvent</string> </value> + <value> <string>TravelRequest_createRepresentativeRecord</string> </value> </item> </dictionary> </pickle> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view.xml new file mode 100644 index 0000000000000000000000000000000000000000..ff9078ae44382753d36c104da1236392468b4e64 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view.xml @@ -0,0 +1,183 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ERP5 Form" module="erp5.portal_type"/> + </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/> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>action</string> </key> + <value> <string>Base_edit</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>edit_order</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>enctype</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>group_list</string> </key> + <value> + <list> + <string>left</string> + <string>right</string> + <string>center</string> + <string>bottom</string> + <string>hidden</string> + </list> + </value> + </item> + <item> + <key> <string>groups</string> </key> + <value> + <dictionary> + <item> + <key> <string>bottom</string> </key> + <value> + <list> + <string>listbox</string> + </list> + </value> + </item> + <item> + <key> <string>center</string> </key> + <value> + <list> + <string>my_description</string> + </list> + </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> + <list> + <string>listbox_delivery_start_date</string> + <string>listbox_destination_title</string> + <string>listbox_content</string> + <string>my_quantity</string> + <string>my_quantity_unit</string> + <string>my_price</string> + <string>my_price_currency</string> + <string>my_total_price</string> + </list> + </value> + </item> + <item> + <key> <string>left</string> </key> + <value> + <list> + <string>my_title</string> + <string>my_reference</string> + <string>my_resource</string> + <string>my_destination_section_title</string> + <string>my_destination_decision_title</string> + <string>my_destination_project_title</string> + <string>my_source_section_title</string> + <string>my_source_decision_title</string> + <string>my_source_title</string> + <string>my_source_project_title</string> + <string>my_destination_title</string> + <string>my_assessment_form_id</string> + </list> + </value> + </item> + <item> + <key> <string>right</string> </key> + <value> + <list> + <string>my_travel_destination</string> + <string>my_animation_center</string> + <string>my_start_date</string> + <string>my_stop_date</string> + <string>my_source_trade_title_list</string> + <string>my_translated_simulation_state_title</string> + </list> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>TravelRequest_view</string> </value> + </item> + <item> + <key> <string>method</string> </key> + <value> <string>POST</string> </value> + </item> + <item> + <key> <string>name</string> </key> + <value> <string>Campaign_view</string> </value> + </item> + <item> + <key> <string>pt</string> </key> + <value> <string>form_view</string> </value> + </item> + <item> + <key> <string>row_length</string> </key> + <value> <int>4</int> </value> + </item> + <item> + <key> <string>stored_encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Request</string> </value> + </item> + <item> + <key> <string>unicode_mode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>update_action</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>update_action_title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/listbox.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/listbox.xml new file mode 100644 index 0000000000000000000000000000000000000000..4fe38d570c67eafefb2a0d656440804ee608f96f --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/listbox.xml @@ -0,0 +1,269 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>columns</string> + <string>count_method</string> + <string>description</string> + <string>editable</string> + <string>editable_columns</string> + <string>list_method</string> + <string>portal_types</string> + <string>selection_name</string> + <string>sort</string> + <string>title</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>listbox</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>portal_types</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>columns</string> </key> + <value> + <list> + <tuple> + <string>getTitle</string> + <string>Title</string> + </tuple> + <tuple> + <string>translated_portal_type</string> + <string>Event Type</string> + </tuple> + <tuple> + <string>delivery.start_date</string> + <string>Date</string> + </tuple> + <tuple> + <string>source_title</string> + <string>Sender or Caller</string> + </tuple> + <tuple> + <string>destination_title</string> + <string>Recipients</string> + </tuple> + <tuple> + <string>content</string> + <string>Content</string> + </tuple> + <tuple> + <string>translated_simulation_state_title</string> + <string>State</string> + </tuple> + </list> + </value> + </item> + <item> + <key> <string>count_method</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>List of all events related to the follow up ticket</string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>editable_columns</string> </key> + <value> + <list> + <tuple> + <string>delivery.start_date</string> + <string>Date</string> + </tuple> + <tuple> + <string>destination_title</string> + <string>Recipients</string> + </tuple> + <tuple> + <string>content</string> + <string>Content</string> + </tuple> + </list> + </value> + </item> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_view_mode_listbox</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewFieldLibrary</string> </value> + </item> + <item> + <key> <string>list_method</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>portal_types</string> </key> + <value> + <list> + <tuple> + <string>Mail Message</string> + <string>Email</string> + </tuple> + <tuple> + <string>Phone Call</string> + <string>Phone Call</string> + </tuple> + <tuple> + <string>Fax Message</string> + <string>Fax</string> + </tuple> + <tuple> + <string>Letter</string> + <string>Letter</string> + </tuple> + <tuple> + <string>Note</string> + <string>Note</string> + </tuple> + </list> + </value> + </item> + <item> + <key> <string>selection_name</string> </key> + <value> <string>ticket_view_selection</string> </value> + </item> + <item> + <key> <string>sort</string> </key> + <value> + <list> + <tuple> + <string>delivery.start_date</string> + <string>asc</string> + </tuple> + </list> + </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Events</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <tuple> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python:[(x, x) for x in here.getPortalEventTypeList()]</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="Method" module="Products.Formulator.MethodField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>method_name</string> </key> + <value> <string>Ticket_countFollowUpRelatedEventList</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="Method" module="Products.Formulator.MethodField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>method_name</string> </key> + <value> <string>Ticket_getFollowUpRelatedEventList</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/listbox_content.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/listbox_content.xml new file mode 100644 index 0000000000000000000000000000000000000000..b1165d154bae57987f63b4799202079418a9329e --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/listbox_content.xml @@ -0,0 +1,278 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>listbox_content</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Content</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <tuple> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>cell/Event_getHeadOfTextContent</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/listbox_delivery_start_date.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/listbox_delivery_start_date.xml new file mode 100644 index 0000000000000000000000000000000000000000..f6710be4f8cb7a3391afcea28ef612e3b2fdf910 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/listbox_delivery_start_date.xml @@ -0,0 +1,2386 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="DateTimeField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>listbox_delivery_start_date</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>datetime_out_of_range</string> </key> + <value> <string>The date and time you entered were out of range.</string> </value> + </item> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>not_datetime</string> </key> + <value> <string>You did not enter a valid date and time.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>allow_empty_time</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>ampm_time_style</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>date_only</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>date_separator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default_now</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end_datetime</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden_day_is_last_day</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hide_day</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_order</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_style</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start_datetime</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time_separator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>timezone_style</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>sub_form</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>allow_empty_time</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>ampm_time_style</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>date_only</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>date_separator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default_now</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end_datetime</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden_day_is_last_day</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hide_day</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_order</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>input_style</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start_datetime</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time_separator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>timezone_style</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>allow_empty_time</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>ampm_time_style</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string>date_field</string> </value> + </item> + <item> + <key> <string>date_only</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>date_separator</string> </key> + <value> <string>/</string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>default_now</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>The Date</string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>end_datetime</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>hidden_day_is_last_day</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>hide_day</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_order</string> </key> + <value> <string>ymd</string> </value> + </item> + <item> + <key> <string>input_style</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>start_datetime</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>time_separator</string> </key> + <value> <string>:</string> </value> + </item> + <item> + <key> <string>timezone_style</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Date</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <tuple> + <global name="BasicForm" module="Products.Formulator.Form"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>enctype</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>fields</string> </key> + <value> + <dictionary> + <item> + <key> <string>ampm</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>day</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + <item> + <key> <string>hour</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent> + </value> + </item> + <item> + <key> <string>minute</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAc=</string> </persistent> + </value> + </item> + <item> + <key> <string>month</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAg=</string> </persistent> + </value> + </item> + <item> + <key> <string>timezone</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAk=</string> </persistent> + </value> + </item> + <item> + <key> <string>year</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAo=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>group_list</string> </key> + <value> + <list> + <string>Default</string> + <string>date</string> + <string>time</string> + </list> + </value> + </item> + <item> + <key> <string>groups</string> </key> + <value> + <dictionary> + <item> + <key> <string>Default</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>date</string> </key> + <value> + <list> + <string>year</string> + <string>month</string> + <string>day</string> + </list> + </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <list> + <string>hour</string> + <string>minute</string> + <string>ampm</string> + <string>timezone</string> + </list> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>method</string> </key> + <value> <string>POST</string> </value> + </item> + <item> + <key> <string>name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>stored_encoding</string> </key> + <value> <string>ISO-8859-1</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Basic Form</string> </value> + </item> + <item> + <key> <string>unicode_mode</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <tuple> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>preferences/getPreferredDateOrder | string:ymd</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <tuple> + <global name="StringField" module="Products.Formulator.StandardFields"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>ampm</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <int>2</int> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>2</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <int>2</int> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>am/pm</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <tuple> + <global name="IntegerField" module="Products.Formulator.StandardFields"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>day</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>integer_out_of_range</string> </key> + <value> <string>The integer you entered was out of range.</string> </value> + </item> + <item> + <key> <string>not_integer</string> </key> + <value> <string>You did not enter an integer.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <int>2</int> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>2</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Day</string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="6" aka="AAAAAAAAAAY="> + <pickle> + <tuple> + <global name="IntegerField" module="Products.Formulator.StandardFields"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>hour</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>integer_out_of_range</string> </key> + <value> <string>The integer you entered was out of range.</string> </value> + </item> + <item> + <key> <string>not_integer</string> </key> + <value> <string>You did not enter an integer.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <int>2</int> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>2</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Hour</string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="7" aka="AAAAAAAAAAc="> + <pickle> + <tuple> + <global name="IntegerField" module="Products.Formulator.StandardFields"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>minute</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>integer_out_of_range</string> </key> + <value> <string>The integer you entered was out of range.</string> </value> + </item> + <item> + <key> <string>not_integer</string> </key> + <value> <string>You did not enter an integer.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <int>2</int> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>2</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Minute</string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="8" aka="AAAAAAAAAAg="> + <pickle> + <tuple> + <global name="IntegerField" module="Products.Formulator.StandardFields"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>month</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>integer_out_of_range</string> </key> + <value> <string>The integer you entered was out of range.</string> </value> + </item> + <item> + <key> <string>not_integer</string> </key> + <value> <string>You did not enter an integer.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <int>2</int> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>2</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Month</string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="9" aka="AAAAAAAAAAk="> + <pickle> + <tuple> + <global name="ListField" module="Products.Formulator.StandardFields"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>timezone</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>unknown_selection</string> </key> + <value> <string>You selected an item that was not in the list.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra_item</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>first_item</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>items</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>size</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra_item</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>first_item</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>items</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>size</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string>GMT</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra_item</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>first_item</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>items</string> </key> + <value> + <list> + <tuple> + <string>GMT-12</string> + <string>GMT-12</string> + </tuple> + <tuple> + <string>GMT-11</string> + <string>GMT-11</string> + </tuple> + <tuple> + <string>GMT-10</string> + <string>GMT-10</string> + </tuple> + <tuple> + <string>GMT-9</string> + <string>GMT-9</string> + </tuple> + <tuple> + <string>GMT-8</string> + <string>GMT-8</string> + </tuple> + <tuple> + <string>GMT-7</string> + <string>GMT-7</string> + </tuple> + <tuple> + <string>GMT-6</string> + <string>GMT-6</string> + </tuple> + <tuple> + <string>GMT-5</string> + <string>GMT-5</string> + </tuple> + <tuple> + <string>GMT-4</string> + <string>GMT-4</string> + </tuple> + <tuple> + <string>GMT-3</string> + <string>GMT-3</string> + </tuple> + <tuple> + <string>GMT-2</string> + <string>GMT-2</string> + </tuple> + <tuple> + <string>GMT-1</string> + <string>GMT-1</string> + </tuple> + <tuple> + <string>GMT</string> + <string>GMT</string> + </tuple> + <tuple> + <string>GMT+1</string> + <string>GMT+1</string> + </tuple> + <tuple> + <string>GMT+2</string> + <string>GMT+2</string> + </tuple> + <tuple> + <string>GMT+3</string> + <string>GMT+3</string> + </tuple> + <tuple> + <string>GMT+4</string> + <string>GMT+4</string> + </tuple> + <tuple> + <string>GMT+5</string> + <string>GMT+5</string> + </tuple> + <tuple> + <string>GMT+6</string> + <string>GMT+6</string> + </tuple> + <tuple> + <string>GMT+7</string> + <string>GMT+7</string> + </tuple> + <tuple> + <string>GMT+8</string> + <string>GMT+8</string> + </tuple> + <tuple> + <string>GMT+9</string> + <string>GMT+9</string> + </tuple> + <tuple> + <string>GMT+10</string> + <string>GMT+10</string> + </tuple> + <tuple> + <string>GMT+11</string> + <string>GMT+11</string> + </tuple> + <tuple> + <string>GMT+12</string> + <string>GMT+12</string> + </tuple> + </list> + </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>size</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Timezone</string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="10" aka="AAAAAAAAAAo="> + <pickle> + <tuple> + <global name="IntegerField" module="Products.Formulator.StandardFields"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>year</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>integer_out_of_range</string> </key> + <value> <string>The integer you entered was out of range.</string> </value> + </item> + <item> + <key> <string>not_integer</string> </key> + <value> <string>You did not enter an integer.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <int>4</int> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>4</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Year</string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/listbox_destination_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/listbox_destination_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..f85675fa8cda98a945bb7a0031ea92e1e04bc8d9 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/listbox_destination_title.xml @@ -0,0 +1,296 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>listbox_destination_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>30</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Recipients</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <tuple> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python:" / ".join(cell.getDestinationTitleList([]))</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <tuple> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: preferences.getPreference(\'preferred_string_field_width\', 30)</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view/my_translated_simulation_state_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_animation_center.xml similarity index 78% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view/my_translated_simulation_state_title.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_animation_center.xml index a0ac2ca510aa1a271d501f1bc1ded88e44d74928..6c54c29f8fa0c020b1be041d28cbf035b1840217 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view/my_translated_simulation_state_title.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_animation_center.xml @@ -6,9 +6,17 @@ </pickle> <pickle> <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>title</string> + </list> + </value> + </item> <item> <key> <string>id</string> </key> - <value> <string>my_translated_simulation_state_title</string> </value> + <value> <string>my_animation_center</string> </value> </item> <item> <key> <string>message_values</string> </key> @@ -33,10 +41,6 @@ <key> <string>form_id</string> </key> <value> <string></string> </value> </item> - <item> - <key> <string>target</string> </key> - <value> <string></string> </value> - </item> </dictionary> </value> </item> @@ -52,10 +56,6 @@ <key> <string>form_id</string> </key> <value> <string></string> </value> </item> - <item> - <key> <string>target</string> </key> - <value> <string></string> </value> - </item> </dictionary> </value> </item> @@ -65,15 +65,15 @@ <dictionary> <item> <key> <string>field_id</string> </key> - <value> <string>my_translated_workflow_state_title</string> </value> + <value> <string>my_string_field</string> </value> </item> <item> <key> <string>form_id</string> </key> <value> <string>Base_viewFieldLibrary</string> </value> </item> <item> - <key> <string>target</string> </key> - <value> <string>Click to edit the target</string> </value> + <key> <string>title</string> </key> + <value> <string>Animation Center</string> </value> </item> </dictionary> </value> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_assessment_form_id.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_assessment_form_id.xml new file mode 100644 index 0000000000000000000000000000000000000000..3eaa3a2ef493fc22eaaccd17c60a07bbc4459574 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_assessment_form_id.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_assessment_form_id</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_assessment_form_id</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_description.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_description.xml new file mode 100644 index 0000000000000000000000000000000000000000..e703af92e08a4ecacf46a3fb57fb59d2fadda168 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_description.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_description</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_description</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_destination_decision_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_destination_decision_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..7e5165a5f21a71e7d13c9315e1724c07fb55605d --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_destination_decision_title.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_destination_decision_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_destination_decision_title</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_destination_project_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_destination_project_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..428b449e0ff6d1b54b4605ec8049abbe23f1d362 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_destination_project_title.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_destination_project_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_destination_project_title</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_destination_section_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_destination_section_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..b1003b2e15e1886c8f24dd61b7d93b8f749ac416 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_destination_section_title.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_destination_section_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_destination_section_title</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_destination_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_destination_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..7fcd0a72570bcfdef1de8b2f17a4c224fa218fb4 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_destination_title.xml @@ -0,0 +1,101 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>allow_creation</string> + <string>editable</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_destination_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>allow_creation</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_destination_title</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_price.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_price.xml new file mode 100644 index 0000000000000000000000000000000000000000..776982907b3a44187d2fc0139c075fe6c3d57b4a --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_price.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_price</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_price</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_price_currency.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_price_currency.xml new file mode 100644 index 0000000000000000000000000000000000000000..c5fbd12f982e4a0daecf1af5292cc98b7ba8304f --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_price_currency.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_price_currency</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_price_currency</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_quantity.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_quantity.xml new file mode 100644 index 0000000000000000000000000000000000000000..a0d0d6d16bcf235ec21012d58f36caa7614ce192 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_quantity.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_quantity</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_quantity</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_quantity_unit.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_quantity_unit.xml new file mode 100644 index 0000000000000000000000000000000000000000..76cc2b8b4ad6432e15c9264af3daf7ef8fb7d836 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_quantity_unit.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_quantity_unit</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_quantity_unit</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_reference.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_reference.xml new file mode 100644 index 0000000000000000000000000000000000000000..5a0abb592a290fd935be46fe4fba9f26c7269c6c --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_reference.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_reference</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_reference</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_resource.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_resource.xml new file mode 100644 index 0000000000000000000000000000000000000000..4371ce93b37378ceedb0159ccaa35d92b3e8096c --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_resource.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_resource</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_ticket_resource</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_source_decision_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_source_decision_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..7aab4b4cc1ffa0a444fb856a4a32227f8e57895e --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_source_decision_title.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_source_decision_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_source_decision_title</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_source_project_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_source_project_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..9a13d519f23e7703b6a15d94b080d4150f9e2f6f --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_source_project_title.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_source_project_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_source_project_title</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_source_section_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_source_section_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..32b726dc2b18e75996bfdad7628650b071af6aad --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_source_section_title.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_source_section_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_source_section_title</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_source_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_source_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..a9157bb8a5dcfea045b487df909c5ba4fa7dc40e --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_source_title.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_source_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_ticket_source_title</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_source_trade_title_list.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_source_trade_title_list.xml new file mode 100644 index 0000000000000000000000000000000000000000..90f71bc99e39368553624b422fcf2266c3a110b0 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_source_trade_title_list.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_source_trade_title_list</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_source_trade_title_list</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_start_date.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_start_date.xml new file mode 100644 index 0000000000000000000000000000000000000000..20974ff9109fa784b2cc954ab41746e31eae81fb --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_start_date.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_start_date</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_ticket_start_date</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_start_date.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_stop_date.xml similarity index 94% rename from bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_start_date.xml rename to bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_stop_date.xml index 0156a7a7b9a7c1adbb9f9e963bcad024e6344da2..9df91ac70f0a7c35f98003104c413a384c68aedc 100644 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_start_date.xml +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_stop_date.xml @@ -14,7 +14,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>my_start_date</string> </value> + <value> <string>my_stop_date</string> </value> </item> <item> <key> <string>message_values</string> </key> @@ -75,7 +75,7 @@ </item> <item> <key> <string>form_id</string> </key> - <value> <string>AccountingTransaction_viewFieldLibrary</string> </value> + <value> <string>Base_viewCRMFieldLibrary</string> </value> </item> <item> <key> <string>target</string> </key> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..7d5ad43f16bd2d21c6410fc705b0f54a7e82221c --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_title.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_ticket_title</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_total_price.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_total_price.xml new file mode 100644 index 0000000000000000000000000000000000000000..682a4e209556ba58f35f1a2b8ef9c4b66e7eb371 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_total_price.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_total_price</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_total_price</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_translated_simulation_state_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_translated_simulation_state_title.xml new file mode 100644 index 0000000000000000000000000000000000000000..7bc23f5cf1b1114c631e64e4835fad5939b53587 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_translated_simulation_state_title.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_translated_simulation_state_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_translated_simulation_state_title</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewCRMFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_travel_destination.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_travel_destination.xml new file mode 100644 index 0000000000000000000000000000000000000000..a71eba7e32e550b73384665ed8215e77734e9297 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_hr_request/TravelRequest_view/my_travel_destination.xml @@ -0,0 +1,84 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>title</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_travel_destination</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_string_field</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewFieldLibrary</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Destination</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_comment.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_comment.xml deleted file mode 100644 index fb67d8a035c44b1d6257c17aa4d23ab0e095f011..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_comment.xml +++ /dev/null @@ -1,98 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>delegated_list</string> </key> - <value> - <list/> - </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>my_comment</string> </value> - </item> - <item> - <key> <string>message_values</string> </key> - <value> - <dictionary> - <item> - <key> <string>external_validator_failed</string> </key> - <value> <string>The input failed the external validator.</string> </value> - </item> - </dictionary> - </value> - </item> - <item> - <key> <string>overrides</string> </key> - <value> - <dictionary> - <item> - <key> <string>field_id</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>form_id</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>target</string> </key> - <value> <string></string> </value> - </item> - </dictionary> - </value> - </item> - <item> - <key> <string>tales</string> </key> - <value> - <dictionary> - <item> - <key> <string>field_id</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>form_id</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>target</string> </key> - <value> <string></string> </value> - </item> - </dictionary> - </value> - </item> - <item> - <key> <string>values</string> </key> - <value> - <dictionary> - <item> - <key> <string>description</string> </key> - <value> <string>Comments which can be read by internal users but unlike description, are not printed out on official documents.</string> </value> - </item> - <item> - <key> <string>field_id</string> </key> - <value> <string>my_comment</string> </value> - </item> - <item> - <key> <string>form_id</string> </key> - <value> <string>AccountingTransaction_viewFieldLibrary</string> </value> - </item> - <item> - <key> <string>target</string> </key> - <value> <string>Click to edit the target</string> </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string>Comments</string> </value> - </item> - </dictionary> - </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_source_project_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_source_project_title.xml deleted file mode 100644 index b437844945fcd67bb2dc836d38d605fea7de40b5..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_source_project_title.xml +++ /dev/null @@ -1,637 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="RelationStringField" module="Products.ERP5Form.RelationField"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>id</string> </key> - <value> <string>my_source_project_title</string> </value> - </item> - <item> - <key> <string>message_values</string> </key> - <value> - <dictionary> - <item> - <key> <string>external_validator_failed</string> </key> - <value> <string>The input failed the external validator.</string> </value> - </item> - <item> - <key> <string>line_too_long</string> </key> - <value> <string>A line was too long.</string> </value> - </item> - <item> - <key> <string>relation_result_ambiguous</string> </key> - <value> <string>Select appropriate document in the list.</string> </value> - </item> - <item> - <key> <string>relation_result_empty</string> </key> - <value> <string>No such document was found.</string> </value> - </item> - <item> - <key> <string>relation_result_too_long</string> </key> - <value> <string>Too many documents were found.</string> </value> - </item> - <item> - <key> <string>required_not_found</string> </key> - <value> <string>Input is required but no input given.</string> </value> - </item> - <item> - <key> <string>too_long</string> </key> - <value> <string>You entered too many characters.</string> </value> - </item> - <item> - <key> <string>too_many_lines</string> </key> - <value> <string>You entered too many lines.</string> </value> - </item> - </dictionary> - </value> - </item> - <item> - <key> <string>overrides</string> </key> - <value> - <dictionary> - <item> - <key> <string>allow_creation</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>allow_jump</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>alternate_name</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>base_category</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>catalog_index</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>columns</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>container_getter_id</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>css_class</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>default</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>display_maxwidth</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>display_width</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>editable</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>enabled</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>external_validator</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>extra</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>extra_item</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>first_item</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>hidden</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>items</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>jump_method</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>list_method</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>max_length</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>max_linelength</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>max_lines</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>parameter_list</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>portal_type</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>proxy_listbox_ids</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>relation_form_id</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>relation_setter_id</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>required</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>size</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>sort</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>truncate</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>unicode</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>update_method</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>whitespace_preserve</string> </key> - <value> <string></string> </value> - </item> - </dictionary> - </value> - </item> - <item> - <key> <string>tales</string> </key> - <value> - <dictionary> - <item> - <key> <string>allow_creation</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>allow_jump</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>alternate_name</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>base_category</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> - </value> - </item> - <item> - <key> <string>catalog_index</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> - </value> - </item> - <item> - <key> <string>columns</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>container_getter_id</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>css_class</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>default</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>display_maxwidth</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>display_width</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> - </value> - </item> - <item> - <key> <string>editable</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>enabled</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> - </value> - </item> - <item> - <key> <string>external_validator</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>extra</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>extra_item</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>first_item</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>hidden</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>items</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>jump_method</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>list_method</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>max_length</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>max_linelength</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>max_lines</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>parameter_list</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>portal_type</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent> - </value> - </item> - <item> - <key> <string>proxy_listbox_ids</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>relation_form_id</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>relation_setter_id</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>required</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>size</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>sort</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>truncate</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>unicode</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>update_method</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>whitespace_preserve</string> </key> - <value> <string></string> </value> - </item> - </dictionary> - </value> - </item> - <item> - <key> <string>values</string> </key> - <value> - <dictionary> - <item> - <key> <string>allow_creation</string> </key> - <value> <int>0</int> </value> - </item> - <item> - <key> <string>allow_jump</string> </key> - <value> <int>1</int> </value> - </item> - <item> - <key> <string>alternate_name</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>base_category</string> </key> - <value> <string>(tales)</string> </value> - </item> - <item> - <key> <string>catalog_index</string> </key> - <value> <string>(tales)</string> </value> - </item> - <item> - <key> <string>columns</string> </key> - <value> - <list/> - </value> - </item> - <item> - <key> <string>container_getter_id</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>css_class</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>default</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>display_maxwidth</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>display_width</string> </key> - <value> <int>20</int> </value> - </item> - <item> - <key> <string>editable</string> </key> - <value> <int>1</int> </value> - </item> - <item> - <key> <string>enabled</string> </key> - <value> <int>1</int> </value> - </item> - <item> - <key> <string>external_validator</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>extra</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>extra_item</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>first_item</string> </key> - <value> <int>0</int> </value> - </item> - <item> - <key> <string>hidden</string> </key> - <value> <int>0</int> </value> - </item> - <item> - <key> <string>items</string> </key> - <value> - <list/> - </value> - </item> - <item> - <key> <string>jump_method</string> </key> - <value> <string>Base_jumpToRelatedDocument</string> </value> - </item> - <item> - <key> <string>list_method</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>max_length</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>max_linelength</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>max_lines</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>parameter_list</string> </key> - <value> - <list/> - </value> - </item> - <item> - <key> <string>portal_type</string> </key> - <value> - <list> - <tuple> - <string>(tales)</string> - <string>(tales)</string> - </tuple> - </list> - </value> - </item> - <item> - <key> <string>proxy_listbox_ids</string> </key> - <value> - <list> - <tuple> - <string>ProjectModule_viewProjectList/listbox</string> - <string>Projects</string> - </tuple> - <tuple> - <string>Folder_viewTicketList/listbox</string> - <string>Campaigns</string> - </tuple> - <tuple> - <string>Base_viewRelatedObjectListBase/listbox</string> - <string>All</string> - </tuple> - </list> - </value> - </item> - <item> - <key> <string>relation_form_id</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>relation_setter_id</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>required</string> </key> - <value> <int>0</int> </value> - </item> - <item> - <key> <string>size</string> </key> - <value> <int>1</int> </value> - </item> - <item> - <key> <string>sort</string> </key> - <value> - <list/> - </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string>Project</string> </value> - </item> - <item> - <key> <string>truncate</string> </key> - <value> <int>0</int> </value> - </item> - <item> - <key> <string>unicode</string> </key> - <value> <int>0</int> </value> - </item> - <item> - <key> <string>update_method</string> </key> - <value> <string>Base_validateRelation</string> </value> - </item> - <item> - <key> <string>whitespace_preserve</string> </key> - <value> <int>0</int> </value> - </item> - </dictionary> - </value> - </item> - </dictionary> - </pickle> - </record> - <record id="2" aka="AAAAAAAAAAI="> - <pickle> - <global name="TALESMethod" module="Products.Formulator.TALESField"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>_text</string> </key> - <value> <string>python: field.Base_getFieldParameterDict()[\'base_category\']</string> </value> - </item> - </dictionary> - </pickle> - </record> - <record id="3" aka="AAAAAAAAAAM="> - <pickle> - <global name="TALESMethod" module="Products.Formulator.TALESField"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>_text</string> </key> - <value> <string>python: field.Base_getFieldParameterDict()[\'catalog_index\']</string> </value> - </item> - </dictionary> - </pickle> - </record> - <record id="4" aka="AAAAAAAAAAQ="> - <pickle> - <global name="TALESMethod" module="Products.Formulator.TALESField"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>_text</string> </key> - <value> <string>python: preferences.getPreference(\'preferred_string_field_width\', 30)</string> </value> - </item> - </dictionary> - </pickle> - </record> - <record id="5" aka="AAAAAAAAAAU="> - <pickle> - <global name="TALESMethod" module="Products.Formulator.TALESField"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>_text</string> </key> - <value> <string>context/getPortalProjectTypeList</string> </value> - </item> - </dictionary> - </pickle> - </record> - <record id="6" aka="AAAAAAAAAAY="> - <pickle> - <global name="TALESMethod" module="Products.Formulator.TALESField"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>_text</string> </key> - <value> <string>python: [(x, x) for x in context.getPortalProjectTypeList()]</string> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_source_section.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_source_section.xml deleted file mode 100644 index 38cd2f144923caec434cdc1a6d40e060a655dded..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_source_section.xml +++ /dev/null @@ -1,90 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>delegated_list</string> </key> - <value> - <list/> - </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>my_source_section</string> </value> - </item> - <item> - <key> <string>message_values</string> </key> - <value> - <dictionary> - <item> - <key> <string>external_validator_failed</string> </key> - <value> <string>The input failed the external validator.</string> </value> - </item> - </dictionary> - </value> - </item> - <item> - <key> <string>overrides</string> </key> - <value> - <dictionary> - <item> - <key> <string>field_id</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>form_id</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>target</string> </key> - <value> <string></string> </value> - </item> - </dictionary> - </value> - </item> - <item> - <key> <string>tales</string> </key> - <value> - <dictionary> - <item> - <key> <string>field_id</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>form_id</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>target</string> </key> - <value> <string></string> </value> - </item> - </dictionary> - </value> - </item> - <item> - <key> <string>values</string> </key> - <value> - <dictionary> - <item> - <key> <string>field_id</string> </key> - <value> <string>my_source_section</string> </value> - </item> - <item> - <key> <string>form_id</string> </key> - <value> <string>AccountingTransaction_viewFieldLibrary</string> </value> - </item> - <item> - <key> <string>target</string> </key> - <value> <string>Click to edit the target</string> </value> - </item> - </dictionary> - </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Alarm_createExpenseValidationItem.py b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Alarm_createExpenseValidationItem.py deleted file mode 100644 index 759f68467130389cae0f54c35b6858e62dc2d034..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Alarm_createExpenseValidationItem.py +++ /dev/null @@ -1,9 +0,0 @@ -portal = context.getPortalObject() - -date_now = None -if params is not None: - date_now = params.get('date_now') - -for brain in context.portal_catalog(portal_type="Expense Record", simulation_state="draft"): - if brain.getSimulationState() == 'draft': - brain.activate().ExpenseRecord_createExpenseValidationItem(date_now=date_now) diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_createTicket.py b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_createTicket.py deleted file mode 100644 index 39e7442e2f4c51b55bd02440b0bdcb34cf9b50ad..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_createTicket.py +++ /dev/null @@ -1,11 +0,0 @@ -record_portal_type = record_value.portal_type -mapping = { -'Expense Record':(context.expense_validation_item_module, 'Expense Validation Item'), -} - -module, portal_type = mapping[record_portal_type] - -if getattr(module, record_value.getDocId(), None) is not None: - raise ValueError('%s %s' % (module, record_value.getDocId())) - -return module.newContent(portal_type=portal_type, id=record_value.getDocId()) diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_getDateTime.py b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_getDateTime.py deleted file mode 100644 index 330f3d4bba2cbe43e5ba496f61e2509b8d415384..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_getDateTime.py +++ /dev/null @@ -1 +0,0 @@ -return DateTime('%s 00:00:00 GMT+9' % date_text) diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_getValidOriginalEvent.py b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_getValidOriginalEvent.py deleted file mode 100644 index 4a0cde982c66d248bf5ad35b4d536eec0f765bc4..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_getValidOriginalEvent.py +++ /dev/null @@ -1,24 +0,0 @@ -if not record_value.getCopyOf(): - return ValueError - -original_event = context.getPortalObject().restrictedTraverse(record_value.getCopyOf()) - -if original_event is None: - raise ValueError - -if not original_event.getSimulationState() in ('cancelled', 'deleted', 'draft', 'error'): - return original_event - -record_list = [] -for brain in context.portal_catalog(portal_type=record_value.portal_type, title={'query':record_value.getDocId(), 'key':'ExactMatch'}): - record = brain.getObject() - if record in (record_value, original_event): - continue - if not record.getSimulationState() in ('cancelled', 'deleted', 'draft'): - record_list.append(record) - -if not record_list: - return None - -record_list.sort(key=lambda x:(x.getRecordRevision(), int(x.getId()))) -return record_list[-1] diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_isNewestVersionRecord.py b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_isNewestVersionRecord.py deleted file mode 100644 index de6edeba7286af238a19fafaea86e336e4d3eb21..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_isNewestVersionRecord.py +++ /dev/null @@ -1,19 +0,0 @@ -doc_id = record_value.getDocId() -portal_type = record_value.portal_type -revision = int(record_value.getRecordRevision()) - -if not doc_id: - return False - -for brain in context.portal_catalog(portal_type=portal_type, title={'query':doc_id, 'key':'ExactMatch'}): - if brain.getObject() == record_value: - continue - - if int(brain.getRecordRevision()) > revision: - return False - elif int(brain.getRecordRevision()) == revision: - if not brain.getSimulationState() in ('cancelled', 'deleted'): - if int(brain.getId()) <= int(record_value.getId()): - return False - -return True diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ERP5Document_getHateoas.py b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ERP5Document_getHateoas.py deleted file mode 100644 index ffdc6168604b9de87bd1fb82ee1ae19a2186d299..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ERP5Document_getHateoas.py +++ /dev/null @@ -1,1014 +0,0 @@ -from ZTUtils import make_query -import json -from base64 import urlsafe_b64encode, urlsafe_b64decode -from DateTime import DateTime -if REQUEST is None: - REQUEST = context.REQUEST - # raise Unauthorized -if response is None: - response = REQUEST.RESPONSE - -url_template_dict = { - "form_action": "%(traversed_document_url)s/%(action_id)s", - "traverse_generator": "%(root_url)s/%(script_id)s?mode=traverse" + \ - "&relative_url=%(relative_url)s&view=%(view)s", - "traverse_template": "%(root_url)s/%(script_id)s?mode=traverse" + \ - "{&relative_url,view}", - "search_template": "%(root_url)s/%(script_id)s?mode=search" + \ - "{&query,select_list*,limit*,sort_on*}", - "custom_search_template": "%(root_url)s/%(script_id)s?mode=search" + \ - "&relative_url=%(relative_url)s" \ - "&form_relative_url=%(form_relative_url)s" \ - "&list_method=%(list_method)s" \ - "&default_param_json=%(default_param_json)s" \ - "{&query,select_list*,limit*,sort_on*}", - "custom_search_template_no_editable": "%(root_url)s/%(script_id)s?mode=search" + \ - "&relative_url=%(relative_url)s" \ - "&list_method=%(list_method)s" \ - "&default_param_json=%(default_param_json)s" \ - "{&query,select_list*,limit*,sort_on*}", - "new_content_action": "%(root_url)s/%(script_id)s?mode=newContent", - "bulk_action": "%(root_url)s/%(script_id)s?mode=bulk", - # XXX View is set by default to empty - "document_hal": "%(root_url)s/%(script_id)s?mode=traverse" + \ - "&relative_url=%(relative_url)s", - "jio_get_template": "urn:jio:get:%(relative_url)s", - "jio_search_template": "urn:jio:allDocs?%(query)s" -} - -default_document_uri_template = url_template_dict["jio_get_template"] - -def getRealRelativeUrl(document): - return '/'.join(portal.portal_url.getRelativeContentPath(document)) - -def getFormRelativeUrl(form): - return portal.portal_catalog( - portal_type="ERP5 Form", - uid=form.getUid(), - id=form.getId(), - limit=1, - select_dict={'relative_url': None} - )[0].relative_url - -def getFieldDefault(traversed_document, field, key, value=None): - # REQUEST.get(field.id, field.get_value("default")) - return traversed_document.Field_getDefaultValue(field, key, value, REQUEST) - -def renderField(traversed_document, field, form_relative_url, value=None, meta_type=None, key=None): - if meta_type is None: - meta_type = field.meta_type - if key is None: - key = field.generate_field_key() - - if meta_type == "ProxyField": - result = renderField(traversed_document, field, form_relative_url, value, meta_type=field.getRecursiveTemplateField().meta_type, key=key) - elif meta_type == "ListField": - result = { - "type": meta_type, - "key": key, - "editable": field.get_value("editable"), - "css_class": field.get_value("css_class"), - "hidden": field.get_value("hidden"), - "description": field.get_value("description"), - "title": field.get_value("title"), - "required": field.get_value("required"), - # XXX Message can not be converted to json as is - "items": field.get_value("items"), - } - result["default"] = getFieldDefault(traversed_document, field, result["key"], value) - elif meta_type == "RadioField": - result = { - "type": meta_type, - "key": key, - "editable": field.get_value("editable"), - "css_class": field.get_value("css_class"), - "hidden": field.get_value("hidden"), - "description": field.get_value("description"), - "title": field.get_value("title"), - "required": field.get_value("required"), - "items": field.get_value("items"), - "select_first_item": field.get_value("first_item"), - "orientation": field.get_value("orientation"), - } - result["default"] = getFieldDefault(traversed_document, field, result["key"], value) - elif meta_type in ("ParallelListField", "MultiListField"): - result = { - "type": meta_type, - "key": key, - "editable": field.get_value("editable"), - "css_class": field.get_value("css_class"), - "hidden": field.get_value("hidden"), - "description": field.get_value("description"), - "title": field.get_value("title"), - "required": field.get_value("required"), - # XXX Message can not be converted to json as is - "items": field.get_value("items"), - } - result["default"] = getFieldDefault(traversed_document, field, result["key"], value) - result["sub_select_key"] = traversed_document.Field_getSubFieldKeyDict(field, 'default:list', key=result["key"]) - result["sub_input_key"] = "default_" + traversed_document.Field_getSubFieldKeyDict(field, 'default:list:int', key=result["key"]) - elif meta_type in ("StringField", "FloatField", "EmailField", "TextAreaField", - "LinesField", "ImageField", "FileField", "IntegerField", - "PasswordField", "EditorField"): - result = { - "type": meta_type, - "key": key, - "editable": field.get_value("editable"), - "css_class": field.get_value("css_class"), - "hidden": field.get_value("hidden"), - "description": field.get_value("description"), - "title": field.get_value("title"), - "required": field.get_value("required"), - } - result["default"] = getFieldDefault(traversed_document, field, result["key"], value) - if meta_type == "FloatField": - result["precision"] = field.get_value("precision") - if meta_type == "ImageField": - options = {} - options['display'] = field.get_value('image_display') - options['format'] = field.get_value('image_format') - options['quality'] = field.get_value('image_quality') - pre_converted_only = field.get_value('image_pre_converted_only') - if pre_converted_only: - options['pre_converted_only'] = pre_converted_only - parameters = '&'.join(['%s=%s' % (k, v) for k, v in options.items() \ - if v]) - if parameters: - result["default"] = '%s?%s' % (result["default"], parameters) - - elif meta_type == "DateTimeField": - result = { - "type": meta_type, - "key": key, - "editable": field.get_value("editable"), - "css_class": field.get_value("css_class"), - "hidden": field.get_value("hidden"), - "description": field.get_value("description"), - "title": field.get_value("title"), - "required": field.get_value("required"), - "date_only": field.get_value("date_only"), - "ampm_time_style": field.get_value("ampm_time_style"), - "timezone_style": field.get_value("timezone_style"), - "allow_empty_time": field.get_value('allow_empty_time'), - "hide_day": field.get_value('hide_day'), - "hidden_day_is_last_day": field.get_value('hidden_day_is_last_day'), - } - date_value = getFieldDefault(traversed_document, field, result["key"], value) - if same_type(date_value, DateTime()): - # Serialize DateTime - date_value = date_value.rfc822() - result["default"] = date_value - for subkey in ("year", "month", "day", "hour", "minute", "ampm", "timezone"): - result["subfield_%s_key" % subkey] = traversed_document.Field_getSubFieldKeyDict(field, subkey, key=result["key"]) - - elif meta_type in ("RelationStringField", "MultiRelationStringField"): - portal_type_list = field.get_value('portal_type') - if portal_type_list: - portal_type_list = [x[0] for x in portal_type_list] - - # ported from Base_jumpToRelatedDocument\n - base_category = field.get_value('base_category') - kw = {} - for k, v in field.get_value('parameter_list'): - kw[k] = v - - accessor_name = 'get%sValueList' % \ - ''.join([part.capitalize() for part in base_category.split('_')]) - jump_reference_list = getattr(traversed_document, accessor_name)( - portal_type=[x[0] for x in field.get_value('portal_type')], - - filter=kw - ) - query = url_template_dict["jio_search_template"] % { - "query": make_query({"query": sql_catalog.buildQuery( - {"portal_type": portal_type_list} - ).asSearchTextExpression(sql_catalog)}) - } - result = { - "portal_types": portal_type_list, - "query": query, - "catalog_index": field.get_value('catalog_index'), - "allow_jump": field.get_value('allow_jump'), - "allow_creation": field.get_value('allow_creation'), - "type": meta_type, - "key": key, - "editable": field.get_value("editable"), - "css_class": field.get_value("css_class"), - "hidden": field.get_value("hidden"), - "description": field.get_value("description"), - "title": field.get_value("title"), - "required": field.get_value("required") - } - result["default"] = getFieldDefault(traversed_document, field, result["key"], value) - result["relation_field_id"] = traversed_document.Field_getSubFieldKeyDict( - field, - "relation", - key=result["key"] - ) - result["relation_item_key"] = traversed_document.Field_getSubFieldKeyDict( - field, - "item", key=result["key"] - ) - - if jump_reference_list: - url = [jump_reference.getRelativeUrl() for jump_reference in jump_reference_list] - uid = [jump_reference.getUid() for jump_reference in jump_reference_list] - result["relation_item_relative_url"] = url - result["relation_item_uid"] = uid - - elif meta_type == "CheckBoxField": - result = { - "type": meta_type, - "key": key, - "editable": field.get_value("editable"), - "css_class": field.get_value("css_class"), - "hidden": field.get_value("hidden"), - "description": field.get_value("description"), - "title": field.get_value("title") - } - result["default"] = getFieldDefault(traversed_document, field, result["key"], value) - elif meta_type == "MultiCheckBoxField": - result = { - "type": meta_type, - "key": key, - "editable": field.get_value("editable"), - "css_class": field.get_value("css_class"), - "hidden": field.get_value("hidden"), - "description": field.get_value("description"), - "title": field.get_value("title"), - "required": field.get_value("required"), - # XXX Message can not be converted to json as is - "items": field.get_value("items"), - } - result["default"] = getFieldDefault(traversed_document, field, result["key"], value) - elif meta_type == "GadgetField": - result = { - "type": meta_type, - "key": key, - "editable": field.get_value("editable"), - "css_class": field.get_value("css_class"), - "hidden": field.get_value("hidden"), - "description": field.get_value("description"), - "title": field.get_value("title"), - "url": field.get_value("gadget_url"), - "sandbox": field.get_value("js_sandbox"), - } - result["default"] = getFieldDefault(traversed_document, field, result["key"], value) - elif meta_type == "ListBox": - # XXX Not implemented - column_list = field.get_value("columns") - search_column_list = field.get_value('search_columns') - editable_column_list = field.get_value('editable_columns') - - # XXX -# list_method = getattr(traversed_document, traversed_document.Listbox_getListMethodName(field)) - # portal_types = [x[1] for x in field.get_value('portal_types')] - portal_types = field.get_value('portal_types') - default_params = dict(field.get_value('default_params')) - # How to implement pagination? - # default_params.update(REQUEST.form) - lines = field.get_value('lines') - list_method_name = traversed_document.Listbox_getListMethodName(field) - list_method_query_dict = dict( - portal_type=[x[1] for x in portal_types], **default_params - ) - list_method_custom = None - - if (editable_column_list): - list_method_custom = url_template_dict["custom_search_template"] % { - "root_url": site_root.absolute_url(), - "script_id": script.id, - "relative_url": traversed_document.getRelativeUrl().replace("/", "%2F"), - "form_relative_url": "%s/%s" % (form_relative_url, field.id), - "list_method": list_method_name, - "default_param_json": urlsafe_b64encode(json.dumps(list_method_query_dict)) - } - list_method_query_dict = {} - elif (list_method_name == "portal_catalog"): - pass - elif (list_method_name == "searchFolder"): - list_method_query_dict["parent_uid"] = traversed_document.getUid() - else: - list_method_custom = url_template_dict["custom_search_template_no_editable"] % { - "root_url": site_root.absolute_url(), - "script_id": script.id, - "relative_url": traversed_document.getRelativeUrl().replace("/", "%2F"), - "list_method": list_method_name, - "default_param_json": urlsafe_b64encode(json.dumps(list_method_query_dict)) - } - list_method_query_dict = {} - -# row_list = list_method(limit=lines, portal_type=portal_types, -# **default_params) -# line_list = [] -# for row in row_list: -# document = row.getObject() -# line = { -# "url": url_template_dict["document_hal"] % { -# "root_url": site_root.absolute_url(), -# "relative_url": document.getRelativeUrl(), -# "script_id": script.id -# } -# } -# for property, title in columns: -# prop = document.getProperty(property) -# if same_type(prop, DateTime()): -# prop = "XXX Serialize DateTime" -# line[title] = prop -# line["_relative_url"] = document.getRelativeUrl() -# line_list.append(line) - - result = { - "type": meta_type, - "editable": field.get_value("editable"), - # "column_list": [x[1] for x in columns], - "column_list": column_list, - "search_column_list": search_column_list, - "editable_column_list": editable_column_list, - "show_anchor": field.get_value("anchor"), -# "line_list": line_list, - "title": field.get_value("title"), - "key": key, - "portal_type": portal_types, - "lines": lines, - "default_params": default_params, - "list_method": list_method_name - } - if (list_method_custom is not None): - result["list_method_template"] = list_method_custom - - result["query"] = url_template_dict["jio_search_template"] % { - "query": make_query({"query": sql_catalog.buildQuery( - list_method_query_dict - ).asSearchTextExpression(sql_catalog)}) - } - else: - # XXX Not implemented - result = { - "type": meta_type, - "_debug": "Unsupported field type", - "title": field.get_value("title"), - "key": key, - } - return result - - -def renderForm(traversed_document, form, response_dict): - REQUEST.set('here', traversed_document) - field_errors = REQUEST.get('field_errors', {}) - - #hardcoded - if form.pt == 'form_dialog': - action_to_call = "Base_callDialogMethod" - else: - action_to_call = form.action - - # Form action - response_dict['_actions'] = { - 'put': { - "href": url_template_dict["form_action"] % { - "traversed_document_url": site_root.absolute_url() + "/" + traversed_document.getRelativeUrl(), - "action_id": action_to_call - }, - "action": form.action, - "method": form.method, - } - } - # Form traversed_document - response_dict['_links']['traversed_document'] = { - "href": default_document_uri_template % { - "root_url": site_root.absolute_url(), - "relative_url": traversed_document.getRelativeUrl(), - "script_id": script.id - }, - "name": traversed_document.getRelativeUrl(), - "title": traversed_document.getTitle() - } - - form_relative_url = getFormRelativeUrl(form) - response_dict['_links']['form_definition'] = { -# "href": default_document_uri_template % { -# "root_url": site_root.absolute_url(), -# "script_id": script.id, -# "relative_url": getFormRelativeUrl(form) -# }, - "href": default_document_uri_template % { - "relative_url": form_relative_url - }, - 'name': form.id - } - - for group in form.Form_getGroupTitleAndId(): - - if group['gid'].find('hidden') < 0: -# field_list = [] - for field in form.get_fields_in_group(group['goid']): -# field_list.append((field.id, renderRawField(field))) - if field.get_value("enabled"): - try: - response_dict[field.id] = renderField(traversed_document, field, form_relative_url) - if field_errors.has_key(field.id): - response_dict[field.id]["error_text"] = field_errors[field.id].error_text - except AttributeError: - # Do not crash if field configuration is wrong. - pass - - # for field_group in field.form.get_groups(): - # traversed_document.log("Field group: " + field_group) - # traversed_document.log(field_group) - # for field_property in field.form.get_fields_in_group(field_group): - # # traversed_document.log("Field attribute: " + field_property.id) - # # field.get_value(field_property.id) - # traversed_document.log(field_property) - -# group_list.append((group['gid'], field_list)) - - response_dict["form_id"] = { - "type": "StringField", - "key": "form_id", - "default": form.id, - "editable": 0, - "css_class": "", - "hidden": 1, - "description": "", - "title": "form_id", - "required": 1, - } - -# response_dict["group_list"] = group_list -# rendered_response_dict["_embedded"] = { -# "form": raw_response_dict -# } - - -# XXX form action update, etc -def renderRawField(field): - meta_type = field.meta_type - - return { - "meta_type": field.meta_type - } - - - if meta_type == "MethodField": - result = { - "meta_type": field.meta_type - } - else: - result = { - "meta_type": field.meta_type, - "_values": field.values, - # XXX TALES expression is not JSON serializable by default - # "_tales": field.tales - "_overrides": field.overrides - } - if meta_type == "ProxyField": - result['_delegated_list'] = field.delegated_list -# try: -# result['_delegated_list'].pop('list_method') -# except KeyError: -# pass - - # XXX ListMethod is not JSON serialized by default - try: - result['_values'].pop('list_method') - except KeyError: - pass - try: - result['_overrides'].pop('list_method') - except KeyError: - pass - return result - - -def renderFormDefinition(form, response_dict): - group_list = [] - for group in form.Form_getGroupTitleAndId(): - - if group['gid'].find('hidden') < 0: - field_list = [] - - for field in form.get_fields_in_group(group['goid'], include_disabled=1): - field_list.append((field.id, renderRawField(field))) - - group_list.append((group['gid'], field_list)) - response_dict["group_list"] = group_list - response_dict["title"] = form.getTitle() - response_dict["pt"] = form.pt - response_dict["action"] = form.action - - -mime_type = 'application/hal+json' -portal = context.getPortalObject() -sql_catalog = portal.portal_catalog.getSQLCatalog() - -# Calculate the site root to prevent unexpected browsing -is_web_mode = (context.REQUEST.get('current_web_section', None) is not None) or (hasattr(context, 'isWebMode') and context.isWebMode()) -# is_web_mode = traversed_document.isWebMode() -if is_web_mode: - site_root = context.getWebSectionValue() - view_action_type = site_root.getLayoutProperty("configuration_view_action_category", default='object_view') -else: - site_root = portal - view_action_type = "object_view" - -context.Base_prepareCorsResponse(RESPONSE=response) - -# Check if traversed_document is the site_root -if relative_url: - temp_traversed_document = site_root.restrictedTraverse(relative_url, None) - if (temp_traversed_document is None): - response.setStatus(404) - return "" -else: - temp_traversed_document = context -temp_is_site_root = (temp_traversed_document.getPath() == site_root.getPath()) -temp_is_portal = (temp_traversed_document.getPath() == portal.getPath()) - -def calculateHateoas(is_portal=None, is_site_root=None, traversed_document=None, REQUEST=None, - response=None, view=None, mode=None, query=None, - select_list=None, limit=None, form=None, - relative_url=None, restricted=None, list_method=None, - default_param_json=None, form_relative_url=None): - - if relative_url: - try: - traversed_document = site_root.restrictedTraverse(str(relative_url)) - view = str(view) - is_site_root = False - except: - raise NotImplementedError(relative_url) - result_dict = { - '_debug': mode, - '_links': { - "self": { - # XXX Include query parameters - # FIXME does not work in case of bulk queries - "href": traversed_document.Base_getRequestUrl() - }, - # Always inform about site root - "site_root": { - "href": default_document_uri_template % { - "root_url": site_root.absolute_url(), - "relative_url": site_root.getRelativeUrl(), - "script_id": script.id - }, - "name": site_root.getTitle(), - }, - # Always inform about portal - "portal": { - "href": default_document_uri_template % { - "root_url": portal.absolute_url(), - # XXX the portal has an empty getRelativeUrl. Make it still compatible - # with restrictedTraverse - "relative_url": portal.getId(), - "script_id": script.id - }, - "name": portal.getTitle(), - } - } - } - - - if (restricted == 1) and (portal.portal_membership.isAnonymousUser()): - response.setStatus(401) - - elif mime_type != traversed_document.Base_handleAcceptHeader([mime_type]): - response.setStatus(406) - return "" - - - elif (mode == 'root') or (mode == 'traverse'): - ################################################# - # Raw document - ################################################# - if (REQUEST is not None) and (REQUEST.other['method'] != "GET"): - response.setStatus(405) - return "" - # Default properties shared by all ERP5 Document and Site - action_dict = {} - # result_dict['_relative_url'] = traversed_document.getRelativeUrl() - result_dict['title'] = traversed_document.getTitle() - - # Add a link to the portal type if possible - if not is_portal: - result_dict['_links']['type'] = { - "href": default_document_uri_template % { - "root_url": site_root.absolute_url(), - "relative_url": portal.portal_types[traversed_document.getPortalType()]\ - .getRelativeUrl(), - "script_id": script.id - }, - "name": traversed_document.getPortalType(), - } - - # Return info about container - if not is_portal: - container = traversed_document.getParentValue() - if container != portal: - # Jio does not support fetching the root document for now - result_dict['_links']['parent'] = { - "href": default_document_uri_template % { - "root_url": site_root.absolute_url(), - "relative_url": container.getRelativeUrl(), - "script_id": script.id - }, - "name": container.getTitle(), - } - - # XXX Loop on form rendering - erp5_action_dict = portal.Base_filterDuplicateActions( - portal.portal_actions.listFilteredActionsFor(traversed_document)) - - embedded_url = None - # XXX See ERP5Type.getDefaultViewFor - for erp5_action_key in erp5_action_dict.keys(): - erp5_action_list = [] - for view_action in erp5_action_dict[erp5_action_key]: - # Action condition is probably checked in Base_filterDuplicateActions - erp5_action_list.append({ - 'href': '%s' % view_action['url'], - 'name': view_action['id'], - 'title': view_action['title'] - }) - # Try to embed the form in the result - if (view == view_action['id']): - embedded_url = '%s' % view_action['url'] - - if (erp5_action_key in (view_action_type, "view", "workflow", "object_new_content_action")): - erp5_action_list[-1]['href'] = url_template_dict["traverse_generator"] % { - "root_url": site_root.absolute_url(), - "script_id": script.id, - "relative_url": traversed_document.getRelativeUrl().replace("/", "%2F"), - "view": erp5_action_list[-1]['name'] - } - - if erp5_action_list: - if len(erp5_action_list) == 1: - erp5_action_list = erp5_action_list[0] - - if erp5_action_key == view_action_type: - # Configure view tabs on server level - result_dict['_links']["view"] = erp5_action_list - - # XXX Put a prefix to prevent conflict - result_dict['_links']["action_" + erp5_action_key] = erp5_action_list - - # for view_action in erp5_action_dict.get('object_view', []): - # traversed_document.log(view_action) - # # XXX Check the action condition - # # if (view is None) or (view != view_action['name']): - # object_view_list.append({ - # 'href': '%s' % view_action['url'], - # 'name': view_action['name'] - # }) - - - # if (renderer_form is not None): - # traversed_document_property_dict, renderer_form_json = traversed_document.Base_renderFormAsSomething(renderer_form) - # result_dict['_embedded'] = { - # 'object_view': renderer_form_json - # } - # result_dict.update(traversed_document_property_dict) - - # XXX XXX XXX XXX - if (embedded_url is not None): - # XXX Try to fetch the form in the traversed_document of the document - # Of course, this code will completely crash in many cases (page template - # instead of form, unexpected action TALES expression). Happy debugging. - # renderer_form_relative_url = view_action['url'][len(portal.absolute_url()):] - form_id = embedded_url.split('?', 1)[0].split("/")[-1] - # renderer_form = traversed_document.restrictedTraverse(form_id, None) - # XXX Proxy field are not correctly handled in traversed_document of web site - renderer_form = getattr(traversed_document, form_id) - # traversed_document.log(form_id) - if (renderer_form is not None): - embedded_dict = { - '_links': { - 'self': { - 'href': embedded_url - } - } - } - # Put all query parameters (?reset:int=1&workflow_action=start_action) in request to mimic usual form display - query_split = embedded_url.split('?', 1) - if len(query_split) == 2: - for query_parameter in query_split[1].split("&"): - query_key, query_value = query_parameter.split("=") - REQUEST.set(query_key, query_value) - - renderForm(traversed_document, renderer_form, embedded_dict) - result_dict['_embedded'] = { - '_view': embedded_dict - # embedded_action_key: embedded_dict - } - # result_dict['_links']["_view"] = {"href": embedded_url} - - # Include properties in document JSON - # XXX Extract from renderer form? - """ - for group in renderer_form.Form_getGroupTitleAndId(): - for field in renderer_form.get_fields_in_group(group['goid']): - field_id = field.id - # traversed_document.log(field_id) - if field_id.startswith('my_'): - property_name = field_id[len('my_'):] - # traversed_document.log(property_name) - property_value = traversed_document.getProperty(property_name, d=None) - if (property_value is not None): - if same_type(property_value, DateTime()): - # Serialize DateTime - property_value = property_value.rfc822() - result_dict[property_name] = property_value - """ - - ############## - # XXX Custom slapos code - ############## - if is_site_root: - - result_dict['default_view'] = 'view' - REQUEST.set("X-HATEOAS-CACHE", 1) - - # Global action users for the jIO plugin - # XXX Would be better to not hardcode them but put them as portal type - # "actions" (search could be on portal_catalog document, traverse on all - # documents, newContent on all, etc) - # result_dict['_links']['object_search'] = { - # 'href': '%s/ERP5Site_viewSearchForm?portal_skin=Hal' % absolute_url, - # 'name': 'Global Search' - # } - result_dict['_links']['raw_search'] = { - "href": url_template_dict["search_template"] % { - "root_url": site_root.absolute_url(), - "script_id": script.id - }, - 'name': 'Raw Search', - 'templated': True - } - result_dict['_links']['traverse'] = { - "href": url_template_dict["traverse_template"] % { - "root_url": site_root.absolute_url(), - "script_id": script.id - }, - 'name': 'Traverse', - 'templated': True - } - action_dict['add'] = { - "href": url_template_dict["new_content_action"] % { - "root_url": site_root.absolute_url(), - "script_id": script.id - }, - 'method': 'POST', - 'name': 'New Content', - } - action_dict['bulk'] = { - "href": url_template_dict["bulk_action"] % { - "root_url": site_root.absolute_url(), - "script_id": script.id - }, - 'method': 'POST', - 'name': 'Bulk' - } - - # Handle also other kind of users: instance, computer, master - person = portal.ERP5Site_getAuthenticatedMemberPersonValue() - if person is not None: - result_dict['_links']['me'] = { - "href": default_document_uri_template % { - "root_url": site_root.absolute_url(), - "relative_url": person.getRelativeUrl(), - "script_id": script.id - }, - # '_relative_url': person.getRelativeUrl() - } - - else: - traversed_document_portal_type = traversed_document.getPortalType() - if traversed_document_portal_type == "ERP5 Form": - renderFormDefinition(traversed_document, result_dict) - REQUEST.set("X-HATEOAS-CACHE", 1) - - # Define document action - if action_dict: - result_dict['_actions'] = action_dict - - - elif mode == 'search': - ################################################# - # Portal catalog search - ################################################# - if REQUEST.other['method'] != "GET": - response.setStatus(405) - return "" - - if query == "__root__": - # XXX Hardcoded behaviour to get root object with jIO - sql_list = [site_root] - - elif query == "__portal__": - # XXX Hardcoded behaviour to get portal object with jIO - sql_list = [portal] - - # document = site_root - # document_result = { - # # '_relative_url': site_root.getRelativeUrl(), - # '_links': { - # 'self': { - # "href": default_document_uri_template % { - # "root_url": site_root.absolute_url(), - # "relative_url": document.getRelativeUrl(), - # "script_id": script.id - # }, - # }, - # } - # } - # for select in select_list: - # document_result[select] = document.getProperty(select, d=None) - # result_dict['_embedded'] = {"contents": [document_result]} - else: - # raise NotImplementedError("Unsupported query: %s" % query) - - - # # XXX - # length = len('/%s/' % portal.getId()) - # # context.log(portal.portal_catalog(full_text=query, limit=limit, src__=1)) - # context.log(query) - catalog_kw = {} - if (default_param_json is not None): - catalog_kw = json.loads(urlsafe_b64decode(default_param_json)) - if (list_method is None): - callable_list_method = portal.portal_catalog - else: - callable_list_method = getattr(traversed_document, list_method) - - tmp_sort_on = () - if sort_on is not None: - for grain in sort_on: - if grain != "": - tmp_sort_on += (tuple([x for x in grain.split(",")]),) - - if query: - sql_list = callable_list_method(full_text=query, limit=limit, sort_on=tmp_sort_on, **catalog_kw) - else: - sql_list = callable_list_method(limit=limit, sort_on=tmp_sort_on, **catalog_kw) - - result_list = [] - - # if (select_list is None): - # # Only include links - # for sql_document in sql_list: - # document = sql_document.getObject() - # result_list.append({ - # "href": default_document_uri_template % { - # "root_url": site_root.absolute_url(), - # "relative_url": document.getRelativeUrl(), - # "script_id": script.id - # }, - # }) - # result_dict['_links']['contents'] = result_list - # - # else: - - # Cast to list if only one element is provided - editable_field_dict = {} - if select_list is None: - select_list = [] - elif same_type(select_list, ""): - select_list = [select_list] - - if select_list: - if (form_relative_url is not None): - listbox_field = portal.restrictedTraverse(form_relative_url) - listbox_field_id = listbox_field.id - # XXX Proxy field are not correctly handled in traversed_document of web site - listbox_form = getattr(traversed_document, listbox_field.aq_parent.id) - for select in select_list: - # See Listbox.py getEditableField method - if listbox_form.has_field("%s_%s" % (listbox_field_id, select), include_disabled=1): - editable_field_dict[select] = listbox_form.get_field("%s_%s" % (listbox_field_id, select), include_disabled=1) - - # CUSTOMIZATION FOR TRAVEL EXPENSE APP######################## - person = portal.ERP5Site_getAuthenticatedMemberPersonValue() - for sql_document in sql_list: - try: - document = sql_document.getObject() - # CUSTOMIZATION FOR TRAVEL EXPENSE APP######################## - if getattr(document, 'isVisibleInHtml5AppFlag', None) is not None and not document.isVisibleInHtml5AppFlag(): - continue - elif document.portal_type.endswith('Record') and document.getSimulationState() == 'cancelled': - continue - elif document.portal_type.endswith('Record') and not person in document.getContributorValueList(): - continue - ############################################### - except AttributeError, e: - # XXX ERP5 Site is not an ERP5 document - document = sql_document - document_uid = document.getUid() - document_result = { - # '_relative_url': sql_document.path[length:], - '_links': { - 'self': { - "href": default_document_uri_template % { - "root_url": site_root.absolute_url(), - # XXX ERP5 Site is not an ERP5 document - "relative_url": getRealRelativeUrl(document) or document.getId(), - "script_id": script.id - }, - }, - } - } - if editable_field_dict: - document_result['listbox_uid:list'] = { - 'key': "%s_uid:list" % listbox_field_id, - 'value': document_uid - } - for select in select_list: - if editable_field_dict.has_key(select): - REQUEST.set('cell', document) - - if ('default' in editable_field_dict[select].tales): - tmp_value = None - else: - tmp_value = document.getProperty(select, d=None) - - property_value = renderField(traversed_document, editable_field_dict[select], form_relative_url, - tmp_value, - key='field_%s_%s' % (editable_field_dict[select].id, - document_uid)) - REQUEST.other.pop('cell', None) - else: - property_value = document.getProperty(select, d=None) - if property_value is not None: - if same_type(property_value, DateTime()): - # Serialize DateTime - property_value = property_value.rfc822() - document_result[select] = property_value - result_list.append(document_result) - result_dict['_embedded'] = {"contents": result_list} - - result_dict['_query'] = query - result_dict['_limit'] = limit - result_dict['_select_list'] = select_list - - elif mode == 'form': - ################################################# - # Calculate form value - ################################################# - if REQUEST.other['method'] != "POST": - response.setStatus(405) - return "" - - renderForm(traversed_document, form, result_dict) - - elif mode == 'newContent': - ################################################# - # Create new document - ################################################# - if REQUEST.other['method'] != "POST": - response.setStatus(405) - return "" - portal_type = REQUEST.form["portal_type"] - parent_relative_url = REQUEST.form["parent_relative_url"] - # First, try to validate the data on a temp document - parent = portal.restrictedTraverse(parent_relative_url) - # module = portal.getDefaultModule(portal_type=portal_type) - document = parent.newContent( - portal_type=portal_type - ) - # http://en.wikipedia.org/wiki/Post/Redirect/Get - response.setStatus(201) - response.setHeader("X-Location", - default_document_uri_template % { - "root_url": site_root.absolute_url(), - "relative_url": document.getRelativeUrl(), - "script_id": script.id - }) - return '' - - elif mode == 'bulk': - ################################################# - # Return multiple documents in one request - ################################################# - if REQUEST.other['method'] != "POST": - response.setStatus(405) - return "" - result_dict["result_list"] = [calculateHateoas(mode="traverse", **x) for x in json.loads(bulk_list)] - - else: - raise NotImplementedError("Unsupported mode %s" % mode) - - return result_dict - -response.setHeader('Content-Type', mime_type) -hateoas = calculateHateoas(is_portal=temp_is_portal, is_site_root=temp_is_site_root, - traversed_document=temp_traversed_document, - REQUEST=REQUEST, response=response, view=view, mode=mode, - query=query, select_list=select_list, limit=limit, form=form, - restricted=restricted, list_method=list_method, - default_param_json=default_param_json, - form_relative_url=form_relative_url) -if hateoas == "": - return hateoas -else: - return json.dumps(hateoas, indent=2) diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ERP5Document_getHateoas.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ERP5Document_getHateoas.xml deleted file mode 100644 index 627515ccdbb59fe5f239e54a31fbf6c638d6a104..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ERP5Document_getHateoas.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?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>_Cacheable__manager_id</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>_bind_names</string> </key> - <value> - <object> - <klass> - <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> - </klass> - <tuple/> - <state> - <dictionary> - <item> - <key> <string>_asgns</string> </key> - <value> - <dictionary> - <item> - <key> <string>name_container</string> </key> - <value> <string>container</string> </value> - </item> - <item> - <key> <string>name_context</string> </key> - <value> <string>context</string> </value> - </item> - <item> - <key> <string>name_m_self</string> </key> - <value> <string>script</string> </value> - </item> - <item> - <key> <string>name_subpath</string> </key> - <value> <string>traverse_subpath</string> </value> - </item> - </dictionary> - </value> - </item> - </dictionary> - </state> - </object> - </value> - </item> - <item> - <key> <string>_params</string> </key> - <value> <string>REQUEST=None, response=None, view=None, mode=\'root\', query=None, select_list=None, limit=10, local_roles=None, form=None, relative_url=None, restricted=0, list_method=None, default_param_json=None, form_relative_url=None, bulk_list="[]", sort_on=()</string> </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>ERP5Document_getHateoas</string> </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string>Customized for Travel Expense App</string> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_createExpenseValidationItem.py b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_createExpenseValidationItem.py deleted file mode 100644 index 9989a26712adb4de19bab076db582b394225cea0..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_createExpenseValidationItem.py +++ /dev/null @@ -1,135 +0,0 @@ -if REQUEST is not None: - raise ValueError - -if context.getPortalType() != "Expense Record": - raise TypeError('%s is not supported' % context.getPortalType()) - -if not context.getDocId(): - # It means that sync is not finished yet. - return - -if not context.Base_isNewestVersionRecord(context): - context.cancel(comment='Newer revision is found') - return - -portal = context.getPortalObject() -isTransitionPossible = portal.portal_workflow.isTransitionPossible -event = context - -def markHistory(document, comment): - portal_workflow = portal.portal_workflow - last_workflow_item = portal_workflow.getInfoFor(ob=document, - name='comment', - wf_id='edit_workflow') - if last_workflow_item != comment: - portal_workflow.doActionFor(document, action='edit_action', comment=comment) - -error = False - -update_flag = False - -if (event.getSimulationState() == "draft"): - - if context.portal_activities.countMessage(path=context.getPath(), method_id=script.id) > 1: - return - - # Try to fetch person document. If none is found, do nothing. - organisation = None - person = event.getContributorValue() - if (person is None): - markHistory(event, "No owner person found") - error = True - if person is not None: - organisation = person.getSubordinationValue() - if (organisation is None): - markHistory(event, "No subordination found for: %s" % person.getRelativeUrl()) - error = True - - from Products.ERP5Type.DateUtils import addToDate - if date_now is None: - date_now = DateTime() - if context.Base_getDateTime(event.getDate()) > addToDate(date_now, day=31): - markHistory(event, 'Date %s is a future date' % event.getDate()) - error = True - elif context.Base_getDateTime(event.getDate()) < addToDate(date_now, day=-335): - markHistory(event, 'Date %s is an old date' % event.getDate()) - error = True - - if error: - context.changeToError() - return - - - # Document has been cloned and should be attached to an existing ticket - ticket = None - original_event = None - if event.getCopyOf(): - original_event = context.Base_getValidOriginalEvent(event) - if original_event is not None: - - ticket = original_event.getFollowUpValue() - - # Suspend original event if possible - original_event.edit( - visible_in_html5_app_flag=False, - ) - if isTransitionPossible(original_event, 'deliver'): - original_event.deliver(comment='New clone: %s' % event.getRelativeUrl()) - - # Activate new event - if isTransitionPossible(ticket, 'validate'): - ticket.validate(comment='New clone: %s' % event.getRelativeUrl()) - ticket.suspend(comment='New clone: %s' % event.getRelativeUrl()) - - # Update existing document - update_flag = True - - if ticket is not None and update_flag: - accounting_transaction = ticket.getSourceProjectValue() - if not accounting_transaction.getSimulationState() in ('draft', 'planned'): - raise ValueError('Accounting Transaction is no longer editable.') - else: - ticket = context.Base_createTicket(event) - accounting_transaction = context.accounting_module.newContent(portal_type='Accounting Transaction') - accounting_transaction.manage_delObjects(ids=list(accounting_transaction.objectIds())) - - account_dict = context.ExpenseRecord_getAccountDict(organisation) - - accounting_transaction.edit( - title=event.getDocId(), - comment=event.getComment(), - source_section_value=organisation, - destination_section_value=person, - start_date=context.Base_getDateTime(event.getDate()), - resource=context.getResource(), - ) - accounting_transaction.newContent(portal_type='Accounting Transaction Line', source_value=account_dict['credit_account_value'], source_credit=context.getQuantity()) - accounting_transaction.newContent(portal_type='Accounting Transaction Line', source_value=account_dict['debit_account_value'], source_debit=context.getQuantity()) - accounting_transaction.newContent(id='photo', portal_type='Embedded File', data=context.getPhotoData().split(',')[1].decode('base64')) - - if accounting_transaction.getSimulationState() == 'draft': - accounting_transaction.plan() - - ticket.edit( - source_project_value=accounting_transaction, - title='Accounting Transaction requested for: %s' % event.getTitle(), - start_date=DateTime() - ) - ticket.validate(comment='New automatic ticket from %s for %s' % (event.getRelativeUrl(), accounting_transaction.getRelativeUrl())) - ticket.suspend(comment='New automatic ticket from %s for %s' % (event.getRelativeUrl(), accounting_transaction.getRelativeUrl())) - - # Prevent concurrent transaction to create 2 tickets for the same event - event_kw = { - 'follow_up_value': ticket, - 'source_value': person, - 'source_section_value': organisation - } - event.edit(**event_kw) - event.serializeSimulationState() - - if update_flag: - event.stop(comment='Attached to existing ticket: %s' % ticket.getRelativeUrl()) - else: - event.stop(comment='New automatic ticket: %s' % ticket.getRelativeUrl()) - - return ticket, accounting_transaction diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_createExpenseValidationItem.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_createExpenseValidationItem.xml deleted file mode 100644 index 9b00bdb35a33c2c1a9c14fa02fded81a0da87bcd..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_createExpenseValidationItem.xml +++ /dev/null @@ -1,62 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>Script_magic</string> </key> - <value> <int>3</int> </value> - </item> - <item> - <key> <string>_bind_names</string> </key> - <value> - <object> - <klass> - <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> - </klass> - <tuple/> - <state> - <dictionary> - <item> - <key> <string>_asgns</string> </key> - <value> - <dictionary> - <item> - <key> <string>name_container</string> </key> - <value> <string>container</string> </value> - </item> - <item> - <key> <string>name_context</string> </key> - <value> <string>context</string> </value> - </item> - <item> - <key> <string>name_m_self</string> </key> - <value> <string>script</string> </value> - </item> - <item> - <key> <string>name_subpath</string> </key> - <value> <string>traverse_subpath</string> </value> - </item> - </dictionary> - </value> - </item> - </dictionary> - </state> - </object> - </value> - </item> - <item> - <key> <string>_params</string> </key> - <value> <string>REQUEST=None, date_now=None</string> </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>ExpenseRecord_createExpenseValidationItem</string> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_getAccountDict.py b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_getAccountDict.py deleted file mode 100644 index 53ca73b9bfa375d3448f2fbbd7c5dd6d4e324c3c..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_getAccountDict.py +++ /dev/null @@ -1,2 +0,0 @@ -raise NotImplementedError('This script must be customized.') -#return {'credit_account_value':payable_for_employees, 'debit_account_value':travel_expense} diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_getAccountDict.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_getAccountDict.xml deleted file mode 100644 index 3aaecea1f74f0ae98fe4defbdb0707d4c7a8c7ef..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_getAccountDict.xml +++ /dev/null @@ -1,66 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>Script_magic</string> </key> - <value> <int>3</int> </value> - </item> - <item> - <key> <string>_bind_names</string> </key> - <value> - <object> - <klass> - <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> - </klass> - <tuple/> - <state> - <dictionary> - <item> - <key> <string>_asgns</string> </key> - <value> - <dictionary> - <item> - <key> <string>name_container</string> </key> - <value> <string>container</string> </value> - </item> - <item> - <key> <string>name_context</string> </key> - <value> <string>context</string> </value> - </item> - <item> - <key> <string>name_m_self</string> </key> - <value> <string>script</string> </value> - </item> - <item> - <key> <string>name_subpath</string> </key> - <value> <string>traverse_subpath</string> </value> - </item> - </dictionary> - </value> - </item> - </dictionary> - </state> - </object> - </value> - </item> - <item> - <key> <string>_params</string> </key> - <value> <string>section_value</string> </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>ExpenseRecord_getAccountDict</string> </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string>This script must be customized</string> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view/my_source_project_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view/my_source_project_title.xml deleted file mode 100644 index 8f8241c6199b7d110ab6a30904ebe7d185d67476..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view/my_source_project_title.xml +++ /dev/null @@ -1,108 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>delegated_list</string> </key> - <value> - <list> - <string>portal_type</string> - <string>title</string> - </list> - </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>my_source_project_title</string> </value> - </item> - <item> - <key> <string>message_values</string> </key> - <value> - <dictionary> - <item> - <key> <string>external_validator_failed</string> </key> - <value> <string>The input failed the external validator.</string> </value> - </item> - </dictionary> - </value> - </item> - <item> - <key> <string>overrides</string> </key> - <value> - <dictionary> - <item> - <key> <string>field_id</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>form_id</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>target</string> </key> - <value> <string></string> </value> - </item> - </dictionary> - </value> - </item> - <item> - <key> <string>tales</string> </key> - <value> - <dictionary> - <item> - <key> <string>field_id</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>form_id</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>target</string> </key> - <value> <string></string> </value> - </item> - </dictionary> - </value> - </item> - <item> - <key> <string>values</string> </key> - <value> - <dictionary> - <item> - <key> <string>field_id</string> </key> - <value> <string>my_relation_field</string> </value> - </item> - <item> - <key> <string>form_id</string> </key> - <value> <string>Base_viewFieldLibrary</string> </value> - </item> - <item> - <key> <string>portal_type</string> </key> - <value> - <list> - <tuple> - <string>Accounting Transaction</string> - <string>Accounting Transaction</string> - </tuple> - </list> - </value> - </item> - <item> - <key> <string>target</string> </key> - <value> <string>Click to edit the target</string> </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string>Accounting Transaction</string> </value> - </item> - </dictionary> - </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/WebPage_viewAsWeb.py b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/WebPage_viewAsWeb.py deleted file mode 100644 index 8682c19fa3a527696fe629f0c0a1c32d1f7b3399..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/WebPage_viewAsWeb.py +++ /dev/null @@ -1,37 +0,0 @@ -if REQUEST is None: - REQUEST = context.REQUEST -if response is None: - response = REQUEST.RESPONSE - -web_page = context - -if REQUEST.getHeader('If-Modified-Since', '') == web_page.getModificationDate().rfc822(): - response.setStatus(304) - return "" - -portal_type = web_page.getPortalType() -web_content = web_page.getTextContent() - -# set headers depending on type of script -if (portal_type == "Web Script"): - response.setHeader('Content-Type', 'application/javascript') - -elif (portal_type == "Web Style"): - response.setHeader('Content-Type', 'text/css') - -elif (portal_type == "Web Manifest"): - response.setHeader('Content-Type', 'text/cache-manifest') - -else: - if (mapping_dict is not None): - web_content = web_page.TextDocument_substituteTextContent(web_content, mapping_dict=mapping_dict) - # Do not allow to put inside an iframe - # response.setHeader("X-Frame-Options", "SAMEORIGIN") - response.setHeader("X-Content-Type-Options", "nosniff") - - # Only fetch code (html, js, css, image) and data from this ERP5, to prevent any data leak as the web site do not control the gadget's code - response.setHeader("Content-Security-Policy", "default-src 'none'; img-src 'self' blob: data:; media-src 'self'; connect-src * 'self' mail.tiolive.com; script-src 'self' 'unsafe-eval' cdn.jsdelivr.net cdnjs.cloudflare.com; font-src netdna.bootstrapcdn.com; style-src 'self' cdn.jsdelivr.net netdna.bootstrapcdn.com cdnjs.cloudflare.com 'unsafe-inline' data:; frame-src 'self' data:") - - response.setHeader('Content-Type', 'text/html') - -return web_content diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/WebPage_viewAsWeb.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/WebPage_viewAsWeb.xml deleted file mode 100644 index e5475d04784a7e8091ecee62187803a5722173d6..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/WebPage_viewAsWeb.xml +++ /dev/null @@ -1,66 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>Script_magic</string> </key> - <value> <int>3</int> </value> - </item> - <item> - <key> <string>_bind_names</string> </key> - <value> - <object> - <klass> - <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> - </klass> - <tuple/> - <state> - <dictionary> - <item> - <key> <string>_asgns</string> </key> - <value> - <dictionary> - <item> - <key> <string>name_container</string> </key> - <value> <string>container</string> </value> - </item> - <item> - <key> <string>name_context</string> </key> - <value> <string>context</string> </value> - </item> - <item> - <key> <string>name_m_self</string> </key> - <value> <string>script</string> </value> - </item> - <item> - <key> <string>name_subpath</string> </key> - <value> <string>traverse_subpath</string> </value> - </item> - </dictionary> - </value> - </item> - </dictionary> - </state> - </object> - </value> - </item> - <item> - <key> <string>_params</string> </key> - <value> <string>REQUEST=None, response=None, mapping_dict=None</string> </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>WebPage_viewAsWeb</string> </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string>Customized for CSP problem</string> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow.xml similarity index 75% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow.xml index ee772c777ad06cf8d301ac0f655d07a1cfd2f651..53f47469620ccba90d13e50f902f478533586a18 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow.xml @@ -20,7 +20,7 @@ </item> <item> <key> <string>description</string> </key> - <value> <string></string> </value> + <value> <string>The ticket workflow keeps track of ticket processing. A ticket is created in draft state. It is then submitted by its author (Owner) or operator (Assignee) and waits for further approval. The ticket manager (Assignor) eventually approves the ticket. The ticket is then open. The ticket can be closed by the ticket manager or by the ticket operator.</string> </value> </item> <item> <key> <string>groups</string> </key> @@ -30,7 +30,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>travel_expense_event_simulation_workflow</string> </value> + <value> <string>ticket_acceptance_simulation_workflow</string> </value> </item> <item> <key> <string>initial_state</string> </key> @@ -45,10 +45,9 @@ <value> <tuple> <string>Access contents information</string> + <string>Modify portal content</string> <string>View</string> <string>Add portal content</string> - <string>Modify portal content</string> - <string>Delete objects</string> </tuple> </value> </item> @@ -58,7 +57,7 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Travel Expense Event Simulation Workflow</string> </value> + <value> <string>Ticket Acceptance Simulation Workflow</string> </value> </item> </dictionary> </pickle> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/scripts.xml similarity index 100% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/scripts.xml diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/scripts/checkConsistency.py b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/scripts/checkConsistency.py new file mode 100644 index 0000000000000000000000000000000000000000..8823d28571dc894d1fc55a2be194bdd70ef91dcb --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/scripts/checkConsistency.py @@ -0,0 +1 @@ +state_change['object'].Base_checkConsistency() diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts/Event_checkConsistency.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/scripts/checkConsistency.xml similarity index 96% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts/Event_checkConsistency.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/scripts/checkConsistency.xml index 36eed6b71d88237adfed5790e29324d686b541ad..01fb8e3581d72aed1427b607b8b9d0facb341432 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts/Event_checkConsistency.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/scripts/checkConsistency.xml @@ -54,7 +54,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>Event_checkConsistency</string> </value> + <value> <string>checkConsistency</string> </value> </item> </dictionary> </pickle> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/scripts/createResponseAndInvalidate.py b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/scripts/createResponseAndInvalidate.py new file mode 100644 index 0000000000000000000000000000000000000000..c7faee8fbc3df4cc9023f1a85f37498638ddfcaf --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/scripts/createResponseAndInvalidate.py @@ -0,0 +1,16 @@ +ticket = sci['object'] +kw = sci['kwargs'] + +event = ticket.Ticket_getCausalityValue() +event.Event_createResponse( + response_event_portal_type=kw['response_event_portal_type'], + response_event_resource=kw['response_event_resource'], + response_event_title=kw.get('response_event_title'), + response_event_text_content=kw.get('response_event_text_content'), + response_event_start_date=kw['response_event_start_date'], + response_workflow_action=kw['response_workflow_action'], + response_event_notification_message=kw['response_event_notification_message'], + default_destination=kw['default_destination'], + response_event_content_type=kw['response_event_content_type']) + +ticket.invalidate() diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/scripts/createResponseAndInvalidate.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/scripts/createResponseAndInvalidate.xml new file mode 100644 index 0000000000000000000000000000000000000000..359c33475d824404a67520edc83c6b00e33ebda2 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/scripts/createResponseAndInvalidate.xml @@ -0,0 +1,62 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>Script_magic</string> </key> + <value> <int>3</int> </value> + </item> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_container</string> </key> + <value> <string>container</string> </value> + </item> + <item> + <key> <string>name_context</string> </key> + <value> <string>context</string> </value> + </item> + <item> + <key> <string>name_m_self</string> </key> + <value> <string>script</string> </value> + </item> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_params</string> </key> + <value> <string>sci</string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>createResponseAndInvalidate</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/states.xml similarity index 100% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/states.xml diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/error.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/states/accepted.xml similarity index 66% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/error.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/states/accepted.xml index e793152f8ca2f0ed7cef039f12afc3b94f54dba7..62365ab2b3978d78270569487af56dfc7a790f7e 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/error.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/states/accepted.xml @@ -8,25 +8,20 @@ <dictionary> <item> <key> <string>description</string> </key> - <value> <string></string> </value> + <value> <string>Ticket has been accepted</string> </value> </item> <item> <key> <string>id</string> </key> - <value> <string>error</string> </value> + <value> <string>accepted</string> </value> </item> <item> <key> <string>title</string> </key> - <value> <string>Error</string> </value> + <value> <string>Accepted</string> </value> </item> <item> <key> <string>transitions</string> </key> <value> - <tuple> - <string>cancel</string> - <string>cancel_action</string> - <string>change_to_draft</string> - <string>change_to_draft_action</string> - </tuple> + <tuple/> </value> </item> <item> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/delivered.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/states/cancelled.xml similarity index 87% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/delivered.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/states/cancelled.xml index 296b1400f62e9c39a43682390b00e6d6694c760c..9fa875508da41cce0173e78f4f03fb626177c016 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/delivered.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/states/cancelled.xml @@ -8,11 +8,11 @@ <dictionary> <item> <key> <string>description</string> </key> - <value> <string></string> </value> + <value> <string>Tickets in this state are tickets which have been rejected or which processing has been stopped.</string> </value> </item> <item> <key> <string>id</string> </key> - <value> <string>delivered</string> </value> + <value> <string>cancelled</string> </value> </item> <item> <key> <string>permission_roles</string> </key> @@ -22,7 +22,7 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Delivered</string> </value> + <value> <string>Cancelled</string> </value> </item> <item> <key> <string>transitions</string> </key> @@ -57,6 +57,7 @@ <string>Assignor</string> <string>Associate</string> <string>Auditor</string> + <string>Author</string> <string>Manager</string> </tuple> </value> @@ -69,14 +70,6 @@ </tuple> </value> </item> - <item> - <key> <string>Delete objects</string> </key> - <value> - <tuple> - <string>Manager</string> - </tuple> - </value> - </item> <item> <key> <string>Modify portal content</string> </key> <value> @@ -93,6 +86,7 @@ <string>Assignor</string> <string>Associate</string> <string>Auditor</string> + <string>Author</string> <string>Manager</string> </tuple> </value> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/deleted.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/states/deleted.xml similarity index 89% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/deleted.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/states/deleted.xml index 439857330fa1bb8273c6437fd83fc3729dfb5eaf..b4b489ce2f3b01177410a46406d9e305c51435c9 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/deleted.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/states/deleted.xml @@ -8,7 +8,7 @@ <dictionary> <item> <key> <string>description</string> </key> - <value> <string></string> </value> + <value> <string>Tickets in this state can only be accessed and viewed by the the portal Manager.</string> </value> </item> <item> <key> <string>id</string> </key> @@ -65,14 +65,6 @@ </tuple> </value> </item> - <item> - <key> <string>Delete objects</string> </key> - <value> - <tuple> - <string>Manager</string> - </tuple> - </value> - </item> <item> <key> <string>Modify portal content</string> </key> <value> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/draft.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/states/draft.xml similarity index 75% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/draft.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/states/draft.xml index 1e09eeec404f273f1b3df665a9f95fca0c2769c3..7dfd49c14036bb4e773579aa3787dec7b22037b3 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/draft.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/states/draft.xml @@ -8,7 +8,7 @@ <dictionary> <item> <key> <string>description</string> </key> - <value> <string></string> </value> + <value> <string>Tickets in draft state are being prepared by their original author (Owner) or operator (Assignee).</string> </value> </item> <item> <key> <string>id</string> </key> @@ -30,15 +30,12 @@ <tuple> <string>cancel</string> <string>cancel_action</string> - <string>change_to_error</string> <string>delete</string> <string>delete_action</string> - <string>initial_stop_action</string> - <string>plan</string> - <string>plan_action</string> - <string>start</string> - <string>start_action</string> - <string>stop</string> + <string>submit</string> + <string>submit_action</string> + <string>validate</string> + <string>validate_action</string> </tuple> </value> </item> @@ -67,8 +64,6 @@ <tuple> <string>Assignee</string> <string>Assignor</string> - <string>Associate</string> - <string>Auditor</string> <string>Manager</string> <string>Owner</string> </tuple> @@ -80,19 +75,6 @@ <tuple> <string>Assignee</string> <string>Assignor</string> - <string>Associate</string> - <string>Manager</string> - <string>Owner</string> - </tuple> - </value> - </item> - <item> - <key> <string>Delete objects</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> <string>Manager</string> <string>Owner</string> </tuple> @@ -104,7 +86,6 @@ <tuple> <string>Assignee</string> <string>Assignor</string> - <string>Associate</string> <string>Manager</string> <string>Owner</string> </tuple> @@ -116,8 +97,6 @@ <tuple> <string>Assignee</string> <string>Assignor</string> - <string>Associate</string> - <string>Auditor</string> <string>Manager</string> <string>Owner</string> </tuple> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/cancelled.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/states/invalidated.xml similarity index 82% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/cancelled.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/states/invalidated.xml index 95b6026f5e9c720f52399b31aca28a1faa8bad75..fa323f0fc60916792f2eb2d42abbaa6e574bcf5d 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/cancelled.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/states/invalidated.xml @@ -8,11 +8,11 @@ <dictionary> <item> <key> <string>description</string> </key> - <value> <string></string> </value> + <value> <string>Tickets in this state have been fully processed and no longer need further processing.</string> </value> </item> <item> <key> <string>id</string> </key> - <value> <string>cancelled</string> </value> + <value> <string>invalidated</string> </value> </item> <item> <key> <string>permission_roles</string> </key> @@ -22,12 +22,15 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Cancelled</string> </value> + <value> <string>Closed</string> </value> </item> <item> <key> <string>transitions</string> </key> <value> - <tuple/> + <tuple> + <string>validate</string> + <string>validate_action</string> + </tuple> </value> </item> <item> @@ -65,16 +68,6 @@ <key> <string>Add portal content</string> </key> <value> <tuple> - <string>Assignor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>Delete objects</string> </key> - <value> - <tuple> - <string>Assignor</string> <string>Manager</string> </tuple> </value> @@ -83,7 +76,6 @@ <key> <string>Modify portal content</string> </key> <value> <tuple> - <string>Assignor</string> <string>Manager</string> </tuple> </value> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/planned.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/states/submitted.xml similarity index 74% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/planned.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/states/submitted.xml index db166999ce06f9fe9dc4b72b0118122a5bc83667..f68ee0b4874dcc8f55b6c1970b3be565517eea2d 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/planned.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/states/submitted.xml @@ -8,11 +8,11 @@ <dictionary> <item> <key> <string>description</string> </key> - <value> <string></string> </value> + <value> <string>Tickets in this state are waiting for approval from the Ticket manager before being further processed.</string> </value> </item> <item> <key> <string>id</string> </key> - <value> <string>planned</string> </value> + <value> <string>submitted</string> </value> </item> <item> <key> <string>permission_roles</string> </key> @@ -22,7 +22,7 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Planned</string> </value> + <value> <string>Submitted</string> </value> </item> <item> <key> <string>transitions</string> </key> @@ -30,10 +30,8 @@ <tuple> <string>cancel</string> <string>cancel_action</string> - <string>confirm</string> - <string>confirm_action</string> - <string>start</string> - <string>start_action</string> + <string>validate</string> + <string>validate_action</string> </tuple> </value> </item> @@ -62,7 +60,6 @@ <tuple> <string>Assignee</string> <string>Assignor</string> - <string>Associate</string> <string>Auditor</string> <string>Manager</string> </tuple> @@ -72,20 +69,7 @@ <key> <string>Add portal content</string> </key> <value> <tuple> - <string>Assignee</string> <string>Assignor</string> - <string>Associate</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>Delete objects</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> <string>Manager</string> </tuple> </value> @@ -94,9 +78,7 @@ <key> <string>Modify portal content</string> </key> <value> <tuple> - <string>Assignee</string> <string>Assignor</string> - <string>Associate</string> <string>Manager</string> </tuple> </value> @@ -107,7 +89,6 @@ <tuple> <string>Assignee</string> <string>Assignor</string> - <string>Associate</string> <string>Auditor</string> <string>Manager</string> </tuple> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/confirmed.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/states/suspended.xml similarity index 75% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/confirmed.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/states/suspended.xml index 17c33a82ca01328ebce54bf673e6831aff659766..2cda90e71b0d1657c0103737c8731fba7ccd6cb9 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/confirmed.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/states/suspended.xml @@ -8,11 +8,11 @@ <dictionary> <item> <key> <string>description</string> </key> - <value> <string></string> </value> + <value> <string>Support requests that is temporarily suspended (waiting for an answer from another department or from the customer) </string> </value> </item> <item> <key> <string>id</string> </key> - <value> <string>confirmed</string> </value> + <value> <string>suspended</string> </value> </item> <item> <key> <string>permission_roles</string> </key> @@ -22,16 +22,17 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Confirmed</string> </value> + <value> <string>Suspended</string> </value> </item> <item> <key> <string>transitions</string> </key> <value> <tuple> - <string>cancel</string> - <string>cancel_action</string> - <string>start</string> - <string>start_action</string> + <string>create_response_and_invalidate_action</string> + <string>invalidate</string> + <string>invalidate_action</string> + <string>validate</string> + <string>validate_action</string> </tuple> </value> </item> @@ -60,7 +61,6 @@ <tuple> <string>Assignee</string> <string>Assignor</string> - <string>Associate</string> <string>Auditor</string> <string>Manager</string> </tuple> @@ -72,18 +72,6 @@ <tuple> <string>Assignee</string> <string>Assignor</string> - <string>Associate</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>Delete objects</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> <string>Manager</string> </tuple> </value> @@ -94,7 +82,6 @@ <tuple> <string>Assignee</string> <string>Assignor</string> - <string>Associate</string> <string>Manager</string> </tuple> </value> @@ -105,7 +92,6 @@ <tuple> <string>Assignee</string> <string>Assignor</string> - <string>Associate</string> <string>Auditor</string> <string>Manager</string> </tuple> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/started.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/states/validated.xml similarity index 78% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/started.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/states/validated.xml index bb0d3bc66e4c8781cc36bfec8d0d93d3e9b6db82..9ba4cbff05e3643b56258f34d025c11609de69f0 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/started.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/states/validated.xml @@ -8,11 +8,11 @@ <dictionary> <item> <key> <string>description</string> </key> - <value> <string></string> </value> + <value> <string>Tickets in this state require processing. They can be filled with events, and will remain open until their treatment is not entirely over.</string> </value> </item> <item> <key> <string>id</string> </key> - <value> <string>started</string> </value> + <value> <string>validated</string> </value> </item> <item> <key> <string>permission_roles</string> </key> @@ -22,16 +22,19 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Sent</string> </value> + <value> <string>Opened</string> </value> </item> <item> <key> <string>transitions</string> </key> <value> <tuple> - <string>deliver</string> - <string>deliver_action</string> - <string>stop</string> - <string>stop_action</string> + <string>accept</string> + <string>accept_action</string> + <string>create_response_and_invalidate_action</string> + <string>invalidate</string> + <string>invalidate_action</string> + <string>suspend</string> + <string>suspend_action</string> </tuple> </value> </item> @@ -72,18 +75,6 @@ <tuple> <string>Assignee</string> <string>Assignor</string> - <string>Associate</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>Delete objects</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> <string>Manager</string> </tuple> </value> @@ -94,7 +85,6 @@ <tuple> <string>Assignee</string> <string>Assignor</string> - <string>Associate</string> <string>Manager</string> </tuple> </value> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions.xml similarity index 100% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions.xml diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/change_to_draft.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/accept.xml similarity index 83% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/change_to_draft.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/accept.xml index 2dd6a3185b8efb8fae145ce6ae915aae6af7af5c..bdd72bba9f792c1dd8f36d9fc7c74de75c2c42ec 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/change_to_draft.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/accept.xml @@ -28,7 +28,7 @@ </item> <item> <key> <string>description</string> </key> - <value> <string></string> </value> + <value> <string>The accept logical transition sets the ticket state to accept state.</string> </value> </item> <item> <key> <string>guard</string> </key> @@ -38,11 +38,11 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>change_to_draft</string> </value> + <value> <string>accept</string> </value> </item> <item> <key> <string>new_state_id</string> </key> - <value> <string>draft</string> </value> + <value> <string>accepted</string> </value> </item> <item> <key> <string>script_name</string> </key> @@ -50,7 +50,7 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Finish To Fix Error</string> </value> + <value> <string>Accept Ticket</string> </value> </item> <item> <key> <string>trigger_type</string> </key> @@ -66,12 +66,10 @@ <pickle> <dictionary> <item> - <key> <string>roles</string> </key> + <key> <string>permissions</string> </key> <value> <tuple> - <string>Manager</string> - <string>Assignee</string> - <string>Assignor</string> + <string>Modify portal content</string> </tuple> </value> </item> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/accept_action.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/accept_action.xml new file mode 100644 index 0000000000000000000000000000000000000000..ea007cd0be406a81addc59833767da246dec279f --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/accept_action.xml @@ -0,0 +1,88 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>workflow</string> </value> + </item> + <item> + <key> <string>actbox_icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string>Accept Ticket</string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string>%(content_url)s/Base_viewWorkflowActionDialog?workflow_action=accept_action</string> </value> + </item> + <item> + <key> <string>after_script_name</string> </key> + <value> <string>accept</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>Use the Accept action to accept an open ticket and mark the end of ticket processing.</string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>accept_action</string> </value> + </item> + <item> + <key> <string>new_state_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Accept Ticket Acction</string> </value> + </item> + <item> + <key> <string>trigger_type</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>Modify portal content</string> + </tuple> + </value> + </item> + <item> + <key> <string>roles</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Assignee</string> + </tuple> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/confirm_action.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/cancel.xml similarity index 79% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/confirm_action.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/cancel.xml index 2fb022427bae5c7e8eb0ffb13e77e7e272fffd0a..3023514fcf0442a9662751a8c092338940dd6b59 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/confirm_action.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/cancel.xml @@ -12,19 +12,19 @@ </item> <item> <key> <string>actbox_name</string> </key> - <value> <string>Confirm</string> </value> + <value> <string></string> </value> </item> <item> <key> <string>actbox_url</string> </key> - <value> <string>%(content_url)s/Base_viewWorkflowActionDialog?workflow_action=confirm_action</string> </value> + <value> <string></string> </value> </item> <item> <key> <string>after_script_name</string> </key> - <value> <string>confirm</string> </value> + <value> <string></string> </value> </item> <item> <key> <string>description</string> </key> - <value> <string></string> </value> + <value> <string>The cancel logical transition sets the ticket state to cancelled.</string> </value> </item> <item> <key> <string>guard</string> </key> @@ -34,11 +34,11 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>confirm_action</string> </value> + <value> <string>cancel</string> </value> </item> <item> <key> <string>new_state_id</string> </key> - <value> <string></string> </value> + <value> <string>cancelled</string> </value> </item> <item> <key> <string>script_name</string> </key> @@ -46,11 +46,11 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Confirm Action</string> </value> + <value> <string>Cancel Ticket</string> </value> </item> <item> <key> <string>trigger_type</string> </key> - <value> <int>1</int> </value> + <value> <int>2</int> </value> </item> </dictionary> </pickle> @@ -62,10 +62,10 @@ <pickle> <dictionary> <item> - <key> <string>roles</string> </key> + <key> <string>permissions</string> </key> <value> <tuple> - <string>Assignor</string> + <string>Modify portal content</string> </tuple> </value> </item> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/cancel_action.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/cancel_action.xml similarity index 82% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/cancel_action.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/cancel_action.xml index 44e69e97328cc4cffe1d965927b22deadd73d23c..0c8d0d842351249f0121c5a7ea3c9b471d198db5 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/cancel_action.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/cancel_action.xml @@ -10,13 +10,9 @@ <key> <string>actbox_category</string> </key> <value> <string>workflow</string> </value> </item> - <item> - <key> <string>actbox_icon</string> </key> - <value> <string></string> </value> - </item> <item> <key> <string>actbox_name</string> </key> - <value> <string>Cancel</string> </value> + <value> <string>Cancel Ticket</string> </value> </item> <item> <key> <string>actbox_url</string> </key> @@ -28,7 +24,7 @@ </item> <item> <key> <string>description</string> </key> - <value> <string></string> </value> + <value> <string>Use the Cancel action to stop any further processing for this ticket yet keep a trace of it (unlike the Delete action).</string> </value> </item> <item> <key> <string>guard</string> </key> @@ -50,7 +46,7 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Cancel Action</string> </value> + <value> <string>Cancel Ticket Action</string> </value> </item> <item> <key> <string>trigger_type</string> </key> @@ -61,7 +57,10 @@ </record> <record id="2" aka="AAAAAAAAAAI="> <pickle> - <global name="Guard" module="Products.DCWorkflow.Guard"/> + <tuple> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + <tuple/> + </tuple> </pickle> <pickle> <dictionary> @@ -69,10 +68,9 @@ <key> <string>roles</string> </key> <value> <tuple> + <string>Owner</string> <string>Assignee</string> <string>Assignor</string> - <string>Associate</string> - <string>Manager</string> </tuple> </value> </item> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/start_action.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/create_response_and_invalidate_action.xml similarity index 72% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/start_action.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/create_response_and_invalidate_action.xml index fe70d7db552887a883398d1c761d9f503fa34791..cacee6a3f451867bf5bc27e248464e45ec0bf332 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/start_action.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/create_response_and_invalidate_action.xml @@ -16,19 +16,19 @@ </item> <item> <key> <string>actbox_name</string> </key> - <value> <string>Send</string> </value> + <value> <string>Create Response and Close Ticket</string> </value> </item> <item> <key> <string>actbox_url</string> </key> - <value> <string>%(content_url)s/Event_viewStartWorkflowActionDialog?workflow_action=start_action</string> </value> + <value> <string>%(content_url)s/Ticket_viewCreateResponseWorkflowActionDialog?workflow_action=create_response_and_invalidate_action</string> </value> </item> <item> <key> <string>after_script_name</string> </key> - <value> <string>start</string> </value> + <value> <string>createResponseAndInvalidate</string> </value> </item> <item> <key> <string>description</string> </key> - <value> <string></string> </value> + <value> <string>Create an response and mark the ticket as closed in the same time.</string> </value> </item> <item> <key> <string>guard</string> </key> @@ -38,7 +38,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>start_action</string> </value> + <value> <string>create_response_and_invalidate_action</string> </value> </item> <item> <key> <string>new_state_id</string> </key> @@ -46,22 +46,16 @@ </item> <item> <key> <string>script_name</string> </key> - <value> <string>Event_checkConsistency</string> </value> + <value> <string>checkConsistency</string> </value> </item> <item> <key> <string>title</string> </key> - <value> <string>Send Action</string> </value> + <value> <string>Create Response and Close Ticket Action</string> </value> </item> <item> <key> <string>trigger_type</string> </key> <value> <int>1</int> </value> </item> - <item> - <key> <string>var_exprs</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> - </value> - </item> </dictionary> </pickle> </record> @@ -71,13 +65,18 @@ </pickle> <pickle> <dictionary> + <item> + <key> <string>expr</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> <item> <key> <string>roles</string> </key> <value> <tuple> <string>Assignee</string> <string>Assignor</string> - <string>Associate</string> </tuple> </value> </item> @@ -86,15 +85,13 @@ </record> <record id="3" aka="AAAAAAAAAAM="> <pickle> - <global name="PersistentMapping" module="Persistence.mapping"/> + <global name="Expression" module="Products.CMFCore.Expression"/> </pickle> <pickle> <dictionary> <item> - <key> <string>data</string> </key> - <value> - <dictionary/> - </value> + <key> <string>text</string> </key> + <value> <string>python: here.Ticket_getCausalityValue() is not None</string> </value> </item> </dictionary> </pickle> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/plan_action.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/delete.xml similarity index 76% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/plan_action.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/delete.xml index 970cde8952afb5f3d03104beb78740e142ac454b..28546c8e1c11e571582d8ad5c51a6f7dd3806cb8 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/plan_action.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/delete.xml @@ -12,19 +12,19 @@ </item> <item> <key> <string>actbox_name</string> </key> - <value> <string>Plan</string> </value> + <value> <string></string> </value> </item> <item> <key> <string>actbox_url</string> </key> - <value> <string>%(content_url)s/Base_viewWorkflowActionDialog?workflow_action=plan_action</string> </value> + <value> <string></string> </value> </item> <item> <key> <string>after_script_name</string> </key> - <value> <string>plan</string> </value> + <value> <string></string> </value> </item> <item> <key> <string>description</string> </key> - <value> <string></string> </value> + <value> <string>The delete logical transition sets the ticket state to deleted.</string> </value> </item> <item> <key> <string>guard</string> </key> @@ -34,11 +34,11 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>plan_action</string> </value> + <value> <string>delete</string> </value> </item> <item> <key> <string>new_state_id</string> </key> - <value> <string></string> </value> + <value> <string>deleted</string> </value> </item> <item> <key> <string>script_name</string> </key> @@ -46,11 +46,11 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Plan Action</string> </value> + <value> <string>Delete Ticket</string> </value> </item> <item> <key> <string>trigger_type</string> </key> - <value> <int>1</int> </value> + <value> <int>2</int> </value> </item> </dictionary> </pickle> @@ -62,12 +62,10 @@ <pickle> <dictionary> <item> - <key> <string>roles</string> </key> + <key> <string>permissions</string> </key> <value> <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> + <string>Modify portal content</string> </tuple> </value> </item> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/delete_action.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/delete_action.xml similarity index 85% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/delete_action.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/delete_action.xml index af682c6b08665cb9014f7fdfebbd0a380b82278d..a2b9a303a977d141413617201dc53665f294c082 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/delete_action.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/delete_action.xml @@ -24,7 +24,7 @@ </item> <item> <key> <string>description</string> </key> - <value> <string></string> </value> + <value> <string>Use the Delete action to delete tickets. This action can be invoked through the trash icon is list mode. It is not displayed in the action menu.</string> </value> </item> <item> <key> <string>guard</string> </key> @@ -46,7 +46,7 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Delete Action</string> </value> + <value> <string>Delete Ticket Action</string> </value> </item> <item> <key> <string>trigger_type</string> </key> @@ -57,7 +57,10 @@ </record> <record id="2" aka="AAAAAAAAAAI="> <pickle> - <global name="Guard" module="Products.DCWorkflow.Guard"/> + <tuple> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + <tuple/> + </tuple> </pickle> <pickle> <dictionary> @@ -65,9 +68,8 @@ <key> <string>roles</string> </key> <value> <tuple> - <string>Assignee</string> <string>Assignor</string> - <string>Associate</string> + <string>Assignee</string> <string>Owner</string> </tuple> </value> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/invalidate.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/invalidate.xml new file mode 100644 index 0000000000000000000000000000000000000000..b70078e4e9e6c25b2d01b6529c13462ce42ca1f6 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/invalidate.xml @@ -0,0 +1,75 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>workflow</string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>after_script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>The invalidate logical transition sets the ticket state to closed state.</string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>invalidate</string> </value> + </item> + <item> + <key> <string>new_state_id</string> </key> + <value> <string>invalidated</string> </value> + </item> + <item> + <key> <string>script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Close Ticket</string> </value> + </item> + <item> + <key> <string>trigger_type</string> </key> + <value> <int>2</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>Modify portal content</string> + </tuple> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/stop_action.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/invalidate_action.xml similarity index 78% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/stop_action.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/invalidate_action.xml index 1e31e392a064b40bcf23c682185af6bad73cc402..790343f070b00f53f7340614a7832362886c73d8 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/stop_action.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/invalidate_action.xml @@ -12,19 +12,19 @@ </item> <item> <key> <string>actbox_name</string> </key> - <value> <string>Declare as Received</string> </value> + <value> <string>Close Ticket</string> </value> </item> <item> <key> <string>actbox_url</string> </key> - <value> <string>%(content_url)s/Base_viewWorkflowActionDialog?workflow_action=stop_action</string> </value> + <value> <string>%(content_url)s/Base_viewWorkflowActionDialog?workflow_action=invalidate_action</string> </value> </item> <item> <key> <string>after_script_name</string> </key> - <value> <string>stop</string> </value> + <value> <string>invalidate</string> </value> </item> <item> <key> <string>description</string> </key> - <value> <string></string> </value> + <value> <string>Use the Close action to close an open ticket and mark the end of ticket processing.</string> </value> </item> <item> <key> <string>guard</string> </key> @@ -34,7 +34,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>stop_action</string> </value> + <value> <string>invalidate_action</string> </value> </item> <item> <key> <string>new_state_id</string> </key> @@ -46,7 +46,7 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Declare as Received Action</string> </value> + <value> <string>Close Ticket Action</string> </value> </item> <item> <key> <string>trigger_type</string> </key> @@ -57,7 +57,10 @@ </record> <record id="2" aka="AAAAAAAAAAI="> <pickle> - <global name="Guard" module="Products.DCWorkflow.Guard"/> + <tuple> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + <tuple/> + </tuple> </pickle> <pickle> <dictionary> @@ -65,9 +68,8 @@ <key> <string>roles</string> </key> <value> <tuple> - <string>Assignee</string> <string>Assignor</string> - <string>Associate</string> + <string>Assignee</string> </tuple> </value> </item> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/submit.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/submit.xml new file mode 100644 index 0000000000000000000000000000000000000000..f0315d3c38c41d39b3b2833da04d7d33e86c1cc0 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/submit.xml @@ -0,0 +1,75 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>workflow</string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>after_script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>The submit logical transition sets the Ticket state to submitted.</string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>submit</string> </value> + </item> + <item> + <key> <string>new_state_id</string> </key> + <value> <string>submitted</string> </value> + </item> + <item> + <key> <string>script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Request Approval</string> </value> + </item> + <item> + <key> <string>trigger_type</string> </key> + <value> <int>2</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>Modify portal content</string> + </tuple> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/submit_action.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/submit_action.xml new file mode 100644 index 0000000000000000000000000000000000000000..c31b3722265d69b6727adec80074af00f36e0f98 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/submit_action.xml @@ -0,0 +1,81 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>workflow</string> </value> + </item> + <item> + <key> <string>actbox_icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string>Request Approval of Manager</string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string>%(content_url)s/Base_viewWorkflowActionDialog?workflow_action=submit_action</string> </value> + </item> + <item> + <key> <string>after_script_name</string> </key> + <value> <string>submit</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>The submit logical transition sets the Ticket state to submitted.</string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>submit_action</string> </value> + </item> + <item> + <key> <string>new_state_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>script_name</string> </key> + <value> <string>checkConsistency</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Request Approval Action</string> </value> + </item> + <item> + <key> <string>trigger_type</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>roles</string> </key> + <value> + <tuple> + <string>Owner</string> + <string>Assignee</string> + <string>Assignor</string> + </tuple> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/suspend.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/suspend.xml new file mode 100644 index 0000000000000000000000000000000000000000..9f5b45233a7fd4e465f5b548cf738b0bce88d78c --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/suspend.xml @@ -0,0 +1,79 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>workflow</string> </value> + </item> + <item> + <key> <string>actbox_icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>after_script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>The suspend logical transition sets the Ticket state to suspended.</string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>suspend</string> </value> + </item> + <item> + <key> <string>new_state_id</string> </key> + <value> <string>suspended</string> </value> + </item> + <item> + <key> <string>script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Suspend</string> </value> + </item> + <item> + <key> <string>trigger_type</string> </key> + <value> <int>2</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>Modify portal content</string> + </tuple> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/change_to_draft_action.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/suspend_action.xml similarity index 82% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/change_to_draft_action.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/suspend_action.xml index 0814a995332a4263f1f8f5889cc8806810e51a5d..b0403dd6401d2f595d00a2f635a00f604e75bdf0 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/change_to_draft_action.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/suspend_action.xml @@ -16,19 +16,19 @@ </item> <item> <key> <string>actbox_name</string> </key> - <value> <string>Finish To Fix Error</string> </value> + <value> <string>Suspend Ticket</string> </value> </item> <item> <key> <string>actbox_url</string> </key> - <value> <string>%(content_url)s/Base_viewWorkflowActionDialog?workflow_action=change_to_draft_action</string> </value> + <value> <string>%(content_url)s/Base_viewWorkflowActionDialog?workflow_action=suspend_action</string> </value> </item> <item> <key> <string>after_script_name</string> </key> - <value> <string>change_to_draft</string> </value> + <value> <string>suspend</string> </value> </item> <item> <key> <string>description</string> </key> - <value> <string></string> </value> + <value> <string>Declare a Ticket as suspended</string> </value> </item> <item> <key> <string>guard</string> </key> @@ -38,7 +38,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>change_to_draft_action</string> </value> + <value> <string>suspend_action</string> </value> </item> <item> <key> <string>new_state_id</string> </key> @@ -50,7 +50,7 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Finish To Fix Error</string> </value> + <value> <string>Suspend Ticket Action</string> </value> </item> <item> <key> <string>trigger_type</string> </key> @@ -69,9 +69,8 @@ <key> <string>roles</string> </key> <value> <tuple> - <string>Assignee</string> <string>Assignor</string> - <string>Manager</string> + <string>Assignee: Associate</string> </tuple> </value> </item> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/validate.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/validate.xml new file mode 100644 index 0000000000000000000000000000000000000000..169370ac5a001abcbd7a980f52c32b8aeedaf22a --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/validate.xml @@ -0,0 +1,75 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>workflow</string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>after_script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>The validate logical transition sets the Ticket state to validated.</string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>validate</string> </value> + </item> + <item> + <key> <string>new_state_id</string> </key> + <value> <string>validated</string> </value> + </item> + <item> + <key> <string>script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Open Ticket</string> </value> + </item> + <item> + <key> <string>trigger_type</string> </key> + <value> <int>2</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>Modify portal content</string> + </tuple> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/initial_stop_action.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/validate_action.xml similarity index 78% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/initial_stop_action.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/validate_action.xml index 74a8e5558ad1c7610f29150e57456595c6713533..29410ac0d886ff86abe20335fe92f5eb0dfade79 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/initial_stop_action.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/transitions/validate_action.xml @@ -10,21 +10,25 @@ <key> <string>actbox_category</string> </key> <value> <string>workflow</string> </value> </item> + <item> + <key> <string>actbox_icon</string> </key> + <value> <string></string> </value> + </item> <item> <key> <string>actbox_name</string> </key> - <value> <string>Declare as Received</string> </value> + <value> <string>Open Ticket</string> </value> </item> <item> <key> <string>actbox_url</string> </key> - <value> <string>%(content_url)s/Base_viewWorkflowActionDialog?workflow_action=initial_stop_action</string> </value> + <value> <string>%(content_url)s/Base_viewWorkflowActionDialog?workflow_action=validate_action</string> </value> </item> <item> <key> <string>after_script_name</string> </key> - <value> <string>stop</string> </value> + <value> <string>validate</string> </value> </item> <item> <key> <string>description</string> </key> - <value> <string></string> </value> + <value> <string>Use the Open action to open a Ticket.</string> </value> </item> <item> <key> <string>guard</string> </key> @@ -34,7 +38,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>initial_stop_action</string> </value> + <value> <string>validate_action</string> </value> </item> <item> <key> <string>new_state_id</string> </key> @@ -42,11 +46,11 @@ </item> <item> <key> <string>script_name</string> </key> - <value> <string></string> </value> + <value> <string>checkConsistency</string> </value> </item> <item> <key> <string>title</string> </key> - <value> <string>Declare as Received Action</string> </value> + <value> <string>Open Ticket Action</string> </value> </item> <item> <key> <string>trigger_type</string> </key> @@ -65,10 +69,7 @@ <key> <string>roles</string> </key> <value> <tuple> - <string>Assignee</string> <string>Assignor</string> - <string>Associate</string> - <string>Owner</string> </tuple> </value> </item> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/variables.xml similarity index 100% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/variables.xml diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/action.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/variables/action.xml similarity index 88% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/action.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/variables/action.xml index cf9789beee1801e4043920f14b286afe2b7731b2..e00c8713348bce7b6fe4178219a5ec5ae633c413 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/action.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/variables/action.xml @@ -18,7 +18,7 @@ </item> <item> <key> <string>description</string> </key> - <value> <string>The last transition</string> </value> + <value> <string></string> </value> </item> <item> <key> <string>for_catalog</string> </key> @@ -47,7 +47,13 @@ </record> <record id="2" aka="AAAAAAAAAAI="> <pickle> - <global name="Expression" module="Products.CMFCore.Expression"/> + <tuple> + <tuple> + <string>Products.CMFCore.Expression</string> + <string>Expression</string> + </tuple> + <none/> + </tuple> </pickle> <pickle> <dictionary> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/actor.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/variables/actor.xml similarity index 88% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/actor.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/variables/actor.xml index 99dc5a1238c7346b9b96a1d2ee7d5d05bf6f14b9..493f0994f7b3cba6a09ae9691df927ec5eafc050 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/actor.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/variables/actor.xml @@ -18,7 +18,7 @@ </item> <item> <key> <string>description</string> </key> - <value> <string>The name of the user who performed the last transition</string> </value> + <value> <string></string> </value> </item> <item> <key> <string>for_catalog</string> </key> @@ -47,7 +47,13 @@ </record> <record id="2" aka="AAAAAAAAAAI="> <pickle> - <global name="Expression" module="Products.CMFCore.Expression"/> + <tuple> + <tuple> + <string>Products.CMFCore.Expression</string> + <string>Expression</string> + </tuple> + <none/> + </tuple> </pickle> <pickle> <dictionary> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/comment.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/variables/comment.xml similarity index 86% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/comment.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/variables/comment.xml index 37beb5e4f4c511a40ebafa6a978b08cce1002f06..73cd2e791368af4a8e45c18b443bdc7ce1044318 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/comment.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/variables/comment.xml @@ -18,7 +18,7 @@ </item> <item> <key> <string>description</string> </key> - <value> <string>Comments about the last transition</string> </value> + <value> <string></string> </value> </item> <item> <key> <string>for_catalog</string> </key> @@ -47,13 +47,19 @@ </record> <record id="2" aka="AAAAAAAAAAI="> <pickle> - <global name="Expression" module="Products.CMFCore.Expression"/> + <tuple> + <tuple> + <string>Products.CMFCore.Expression</string> + <string>Expression</string> + </tuple> + <none/> + </tuple> </pickle> <pickle> <dictionary> <item> <key> <string>text</string> </key> - <value> <string>python:state_change.kwargs.get(\'comment\', \'\')</string> </value> + <value> <string>python:state_change.kwargs.get(\'comment\',\'\')</string> </value> </item> </dictionary> </pickle> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/history.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/variables/history.xml similarity index 86% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/history.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/variables/history.xml index 44306b76d7460536661dc87f7786d58d071917d2..e0fe339d69806e85c8cb3e1022cb1911912fad0e 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/history.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/variables/history.xml @@ -18,7 +18,7 @@ </item> <item> <key> <string>description</string> </key> - <value> <string>Provides access to workflow history</string> </value> + <value> <string></string> </value> </item> <item> <key> <string>for_catalog</string> </key> @@ -40,14 +40,20 @@ </item> <item> <key> <string>update_always</string> </key> - <value> <int>0</int> </value> + <value> <int>1</int> </value> </item> </dictionary> </pickle> </record> <record id="2" aka="AAAAAAAAAAI="> <pickle> - <global name="Expression" module="Products.CMFCore.Expression"/> + <tuple> + <tuple> + <string>Products.CMFCore.Expression</string> + <string>Expression</string> + </tuple> + <none/> + </tuple> </pickle> <pickle> <dictionary> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/create_event.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/variables/portal_type.xml similarity index 95% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/create_event.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/variables/portal_type.xml index 494a7c88bba873bc95d870b8a4bebb97dfdde08b..521a53aa171520987084020ee19ce4a8d48a40dc 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/create_event.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/variables/portal_type.xml @@ -22,15 +22,15 @@ </item> <item> <key> <string>for_catalog</string> </key> - <value> <int>0</int> </value> + <value> <int>1</int> </value> </item> <item> <key> <string>for_status</string> </key> - <value> <int>1</int> </value> + <value> <int>0</int> </value> </item> <item> <key> <string>id</string> </key> - <value> <string>create_event</string> </value> + <value> <string>portal_type</string> </value> </item> <item> <key> <string>info_guard</string> </key> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/time.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/variables/time.xml similarity index 88% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/time.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/variables/time.xml index 5a517524eeccd0eb267d648b8a077e741acc3725..5ae6932d9904ddbf87ab731c4188bdcf279f62ba 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/time.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/variables/time.xml @@ -18,7 +18,7 @@ </item> <item> <key> <string>description</string> </key> - <value> <string>Time of the last transition</string> </value> + <value> <string></string> </value> </item> <item> <key> <string>for_catalog</string> </key> @@ -47,7 +47,13 @@ </record> <record id="2" aka="AAAAAAAAAAI="> <pickle> - <global name="Expression" module="Products.CMFCore.Expression"/> + <tuple> + <tuple> + <string>Products.CMFCore.Expression</string> + <string>Expression</string> + </tuple> + <none/> + </tuple> </pickle> <pickle> <dictionary> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists.xml similarity index 100% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists.xml diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/0A_draft_travel_request_list.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/0A_draft_travel_request_list.xml new file mode 100644 index 0000000000000000000000000000000000000000..0b5a905283d14184c1817ea61b86fc485fb48234 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/0A_draft_travel_request_list.xml @@ -0,0 +1,101 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="WorklistDefinition" module="Products.DCWorkflow.Worklists"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>global</string> </value> + </item> + <item> + <key> <string>actbox_icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string>Travel Requests to Submit (%(count)s)</string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string encoding="cdata"><![CDATA[ + +travel_request_module?simulation_state=draft&portal_type:list=%(portal_type)s&local_roles:list=%(local_roles)s&reset:int=1 + +]]></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>Draft Travel Requests</string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>0A_draft_travel_request_list</string> </value> + </item> + <item> + <key> <string>var_matches</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>roles</string> </key> + <value> + <tuple> + <string>Owner</string> + </tuple> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>portal_type</string> </key> + <value> + <tuple> + <string>Travel Request</string> + </tuple> + </value> + </item> + <item> + <key> <string>simulation_state</string> </key> + <value> + <tuple> + <string>draft</string> + </tuple> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/0B_submitted_travel_request_list.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/0B_submitted_travel_request_list.xml new file mode 100644 index 0000000000000000000000000000000000000000..588732929ec78d2bedbc42b2a29aab2c98c36d66 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/0B_submitted_travel_request_list.xml @@ -0,0 +1,101 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="WorklistDefinition" module="Products.DCWorkflow.Worklists"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>global</string> </value> + </item> + <item> + <key> <string>actbox_icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string>Travel Requests to Open (%(count)s)</string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string encoding="cdata"><![CDATA[ + +travel_request_module?simulation_state=submitted&portal_type:list=%(portal_type)s&local_roles:list=%(local_roles)s&reset:int=1 + +]]></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>Submitted Travel Requests</string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>0B_submitted_travel_request_list</string> </value> + </item> + <item> + <key> <string>var_matches</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>roles</string> </key> + <value> + <tuple> + <string>Assignor</string> + </tuple> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>portal_type</string> </key> + <value> + <tuple> + <string>Travel Request</string> + </tuple> + </value> + </item> + <item> + <key> <string>simulation_state</string> </key> + <value> + <tuple> + <string>submitted</string> + </tuple> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/0C_open_travel_request_list.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/0C_open_travel_request_list.xml new file mode 100644 index 0000000000000000000000000000000000000000..4e735634e8d94d9ab7f3ad1ac9c124cf52e46959 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/0C_open_travel_request_list.xml @@ -0,0 +1,102 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="WorklistDefinition" module="Products.DCWorkflow.Worklists"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>global</string> </value> + </item> + <item> + <key> <string>actbox_icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string>Travel Requests to Close (%(count)s)</string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string encoding="cdata"><![CDATA[ + +travel_request_module?simulation_state=validated&portal_type:list=%(portal_type)s&local_roles:list=%(local_roles)s&reset:int=1 + +]]></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>Open Travel Requests</string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>0C_open_travel_request_list</string> </value> + </item> + <item> + <key> <string>var_matches</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>roles</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + </tuple> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>portal_type</string> </key> + <value> + <tuple> + <string>Travel Request</string> + </tuple> + </value> + </item> + <item> + <key> <string>simulation_state</string> </key> + <value> + <tuple> + <string>validated</string> + </tuple> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/0D_suspended_travel_request_list.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/0D_suspended_travel_request_list.xml new file mode 100644 index 0000000000000000000000000000000000000000..de55dab87f84b4ef664cffbaa211be1829d012be --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/0D_suspended_travel_request_list.xml @@ -0,0 +1,102 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="WorklistDefinition" module="Products.DCWorkflow.Worklists"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>global</string> </value> + </item> + <item> + <key> <string>actbox_icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string>Suspended Travel Requests (%(count)s)</string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string encoding="cdata"><![CDATA[ + +travel_request_module?simulation_state=suspended&portal_type:list=%(portal_type)s&local_roles:list=%(local_roles)s&reset:int=1 + +]]></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>Suspended Travel Requests</string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>0D_suspended_travel_request_list</string> </value> + </item> + <item> + <key> <string>var_matches</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>roles</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Assignee</string> + </tuple> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>portal_type</string> </key> + <value> + <tuple> + <string>Travel Request</string> + </tuple> + </value> + </item> + <item> + <key> <string>simulation_state</string> </key> + <value> + <tuple> + <string>suspended</string> + </tuple> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists/0_draft_event_list.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/1A_draft_meeting_list.xml similarity index 80% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists/0_draft_event_list.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/1A_draft_meeting_list.xml index 5cf6a88d1c94fa3df898312fd293d6caafe8249e..1f5a2a8ec8beb3a3e9e8bd642e317249d4faa2f4 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists/0_draft_event_list.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/1A_draft_meeting_list.xml @@ -16,19 +16,19 @@ </item> <item> <key> <string>actbox_name</string> </key> - <value> <string>Draft Events to Process (%(count)s)</string> </value> + <value> <string>Meetings to Submit (%(count)s)</string> </value> </item> <item> <key> <string>actbox_url</string> </key> <value> <string encoding="cdata"><![CDATA[ -event_module/view?simulation_state=draft&local_roles:list=%(local_roles)s&portal_type:list=%(portal_type)s&reset:int=1 +meeting_module?simulation_state=draft&portal_type:list=%(portal_type)s&local_roles:list=%(local_roles)s&reset:int=1 ]]></string> </value> </item> <item> <key> <string>description</string> </key> - <value> <string>Draft Events</string> </value> + <value> <string>Draft Meetings</string> </value> </item> <item> <key> <string>guard</string> </key> @@ -38,7 +38,7 @@ event_module/view?simulation_state=draft&local_roles:list=%(local_roles)s&portal </item> <item> <key> <string>id</string> </key> - <value> <string>0_draft_event_list</string> </value> + <value> <string>1A_draft_meeting_list</string> </value> </item> <item> <key> <string>var_matches</string> </key> @@ -60,7 +60,6 @@ event_module/view?simulation_state=draft&local_roles:list=%(local_roles)s&portal <value> <tuple> <string>Owner</string> - <string>Assignee</string> </tuple> </value> </item> @@ -77,6 +76,14 @@ event_module/view?simulation_state=draft&local_roles:list=%(local_roles)s&portal <key> <string>data</string> </key> <value> <dictionary> + <item> + <key> <string>portal_type</string> </key> + <value> + <tuple> + <string>Meeting</string> + </tuple> + </value> + </item> <item> <key> <string>simulation_state</string> </key> <value> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists/1_planned_event_list.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/1B_submitted_meeting_list.xml similarity index 78% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists/1_planned_event_list.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/1B_submitted_meeting_list.xml index cfe6649991a44fb829c843d7f4088981518acb97..3cf773c78bdf3ea5f7c3d60be52b1ef29f5434bd 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists/1_planned_event_list.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/1B_submitted_meeting_list.xml @@ -16,19 +16,19 @@ </item> <item> <key> <string>actbox_name</string> </key> - <value> <string>Planned Events to Confirm (%(count)s)</string> </value> + <value> <string>Meetings to Open (%(count)s)</string> </value> </item> <item> <key> <string>actbox_url</string> </key> <value> <string encoding="cdata"><![CDATA[ -event_module/view?simulation_state=planned&local_roles:list=%(local_roles)s&portal_type:list=%(portal_type)s&reset:int=1 +meeting_module?simulation_state=submitted&portal_type:list=%(portal_type)s&local_roles:list=%(local_roles)s&reset:int=1 ]]></string> </value> </item> <item> <key> <string>description</string> </key> - <value> <string>Planned Events</string> </value> + <value> <string>Submitted Meetings</string> </value> </item> <item> <key> <string>guard</string> </key> @@ -38,7 +38,7 @@ event_module/view?simulation_state=planned&local_roles:list=%(local_roles)s&port </item> <item> <key> <string>id</string> </key> - <value> <string>1_planned_event_list</string> </value> + <value> <string>1B_submitted_meeting_list</string> </value> </item> <item> <key> <string>var_matches</string> </key> @@ -76,11 +76,19 @@ event_module/view?simulation_state=planned&local_roles:list=%(local_roles)s&port <key> <string>data</string> </key> <value> <dictionary> + <item> + <key> <string>portal_type</string> </key> + <value> + <tuple> + <string>Meeting</string> + </tuple> + </value> + </item> <item> <key> <string>simulation_state</string> </key> <value> <tuple> - <string>planned</string> + <string>submitted</string> </tuple> </value> </item> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists/3_stopped_event_list.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/1C_open_meeting_list.xml similarity index 79% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists/3_stopped_event_list.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/1C_open_meeting_list.xml index 9a6f967c1bfbe8d9311e8a27945a37c6a940623f..871b84be4d6c505af076677fa4c5da1f1302b709 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists/3_stopped_event_list.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/1C_open_meeting_list.xml @@ -16,19 +16,19 @@ </item> <item> <key> <string>actbox_name</string> </key> - <value> <string>Received Events to Deliver (%(count)s)</string> </value> + <value> <string>Meetings to Close (%(count)s)</string> </value> </item> <item> <key> <string>actbox_url</string> </key> <value> <string encoding="cdata"><![CDATA[ -event_module/view?simulation_state=stopped&local_roles:list=%(local_roles)s&portal_type=%(portal_type)s&reset=1&is_assigned_event:int=1 +meeting_module?simulation_state=validated&portal_type:list=%(portal_type)s&local_roles:list=%(local_roles)s&reset:int=1 ]]></string> </value> </item> <item> <key> <string>description</string> </key> - <value> <string>Stopped Events</string> </value> + <value> <string>Open Meetings</string> </value> </item> <item> <key> <string>guard</string> </key> @@ -38,7 +38,7 @@ event_module/view?simulation_state=stopped&local_roles:list=%(local_roles)s&port </item> <item> <key> <string>id</string> </key> - <value> <string>3_stopped_event_list</string> </value> + <value> <string>1C_open_meeting_list</string> </value> </item> <item> <key> <string>var_matches</string> </key> @@ -77,11 +77,19 @@ event_module/view?simulation_state=stopped&local_roles:list=%(local_roles)s&port <key> <string>data</string> </key> <value> <dictionary> + <item> + <key> <string>portal_type</string> </key> + <value> + <tuple> + <string>Meeting</string> + </tuple> + </value> + </item> <item> <key> <string>simulation_state</string> </key> <value> <tuple> - <string>stopped</string> + <string>validated</string> </tuple> </value> </item> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists/2_confirmed_event_list.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/1D_suspended_meeting_list.xml similarity index 78% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists/2_confirmed_event_list.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/1D_suspended_meeting_list.xml index 1cfa0fd1ab25cad589f66247a062bc555363bb65..772dcd627d05f8d248f15a411a399292682d14d2 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists/2_confirmed_event_list.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/1D_suspended_meeting_list.xml @@ -16,19 +16,19 @@ </item> <item> <key> <string>actbox_name</string> </key> - <value> <string>Confirmed Events to Generate (%(count)s)</string> </value> + <value> <string>Suspended Meetings (%(count)s)</string> </value> </item> <item> <key> <string>actbox_url</string> </key> <value> <string encoding="cdata"><![CDATA[ -event_module/view?simulation_state=confirmed&local_roles:list=%(local_roles)s&portal_type:list=%(portal_type)s&reset:int=1 +meeting_module?simulation_state=suspended&portal_type:list=%(portal_type)s&local_roles:list=%(local_roles)s&reset:int=1 ]]></string> </value> </item> <item> <key> <string>description</string> </key> - <value> <string>Confirmed Events</string> </value> + <value> <string>Suspended Meetings</string> </value> </item> <item> <key> <string>guard</string> </key> @@ -38,7 +38,7 @@ event_module/view?simulation_state=confirmed&local_roles:list=%(local_roles)s&po </item> <item> <key> <string>id</string> </key> - <value> <string>2_confirmed_event_list</string> </value> + <value> <string>1D_suspended_meeting_list</string> </value> </item> <item> <key> <string>var_matches</string> </key> @@ -77,11 +77,19 @@ event_module/view?simulation_state=confirmed&local_roles:list=%(local_roles)s&po <key> <string>data</string> </key> <value> <dictionary> + <item> + <key> <string>portal_type</string> </key> + <value> + <tuple> + <string>Meeting</string> + </tuple> + </value> + </item> <item> <key> <string>simulation_state</string> </key> <value> <tuple> - <string>confirmed</string> + <string>suspended</string> </tuple> </value> </item> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/2A_draft_support_request_list.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/2A_draft_support_request_list.xml new file mode 100644 index 0000000000000000000000000000000000000000..6c96b1cc6b7975809217fbf7b6f4f01d8c6ab831 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/2A_draft_support_request_list.xml @@ -0,0 +1,101 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="WorklistDefinition" module="Products.DCWorkflow.Worklists"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>global</string> </value> + </item> + <item> + <key> <string>actbox_icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string>Support Requests to Submit (%(count)s)</string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string encoding="cdata"><![CDATA[ + +support_request_module?simulation_state=draft&portal_type:list=%(portal_type)s&local_roles:list=%(local_roles)s&reset:int=1 + +]]></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>Draft Support Requests</string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>2A_draft_support_request_list</string> </value> + </item> + <item> + <key> <string>var_matches</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>roles</string> </key> + <value> + <tuple> + <string>Owner</string> + </tuple> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>portal_type</string> </key> + <value> + <tuple> + <string>Support Request</string> + </tuple> + </value> + </item> + <item> + <key> <string>simulation_state</string> </key> + <value> + <tuple> + <string>draft</string> + </tuple> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/2B_submitted_support_request_list.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/2B_submitted_support_request_list.xml new file mode 100644 index 0000000000000000000000000000000000000000..d4e27599f7da567dc0168a17315f4cdd66646114 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/2B_submitted_support_request_list.xml @@ -0,0 +1,101 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="WorklistDefinition" module="Products.DCWorkflow.Worklists"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>global</string> </value> + </item> + <item> + <key> <string>actbox_icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string>Support Requests to Open (%(count)s)</string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string encoding="cdata"><![CDATA[ + +support_request_module?simulation_state=submitted&portal_type:list=%(portal_type)s&local_roles:list=%(local_roles)s&reset:int=1 + +]]></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>Submitted Support Requests</string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>2B_submitted_support_request_list</string> </value> + </item> + <item> + <key> <string>var_matches</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>roles</string> </key> + <value> + <tuple> + <string>Assignor</string> + </tuple> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>portal_type</string> </key> + <value> + <tuple> + <string>Support Request</string> + </tuple> + </value> + </item> + <item> + <key> <string>simulation_state</string> </key> + <value> + <tuple> + <string>submitted</string> + </tuple> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/2C_open_support_request_list.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/2C_open_support_request_list.xml new file mode 100644 index 0000000000000000000000000000000000000000..fd0dc8febefad86371cb7ffc42a2fce97370bc12 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/2C_open_support_request_list.xml @@ -0,0 +1,102 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="WorklistDefinition" module="Products.DCWorkflow.Worklists"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>global</string> </value> + </item> + <item> + <key> <string>actbox_icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string>Support Requests to Close (%(count)s)</string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string encoding="cdata"><![CDATA[ + +support_request_module?simulation_state=validated&portal_type:list=%(portal_type)s&local_roles:list=%(local_roles)s&reset:int=1 + +]]></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>Open Support Requests</string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>2C_open_support_request_list</string> </value> + </item> + <item> + <key> <string>var_matches</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>roles</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + </tuple> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>portal_type</string> </key> + <value> + <tuple> + <string>Support Request</string> + </tuple> + </value> + </item> + <item> + <key> <string>simulation_state</string> </key> + <value> + <tuple> + <string>validated</string> + </tuple> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/2D_suspended_support_request_list.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/2D_suspended_support_request_list.xml new file mode 100644 index 0000000000000000000000000000000000000000..1b6b50cd2db620679728ea227bbe57345ee1ad35 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_acceptance_simulation_workflow/worklists/2D_suspended_support_request_list.xml @@ -0,0 +1,102 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="WorklistDefinition" module="Products.DCWorkflow.Worklists"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>global</string> </value> + </item> + <item> + <key> <string>actbox_icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string>Suspended Support Requests (%(count)s)</string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string encoding="cdata"><![CDATA[ + +support_request_module?simulation_state=suspended&portal_type:list=%(portal_type)s&local_roles:list=%(local_roles)s&reset:int=1 + +]]></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>Suspended Support Requests</string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>2D_suspended_support_request_list</string> </value> + </item> + <item> + <key> <string>var_matches</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>roles</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Assignee</string> + </tuple> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>portal_type</string> </key> + <value> + <tuple> + <string>Support Request</string> + </tuple> + </value> + </item> + <item> + <key> <string>simulation_state</string> </key> + <value> + <tuple> + <string>suspended</string> + </tuple> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_record_interaction_workflow.xml similarity index 81% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_record_interaction_workflow.xml index 0021da8b423fe677fc5318b9a99ceb3b925b9154..5d058b1856e981246c7da2dfdc6c167a073bb5b3 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_record_interaction_workflow.xml @@ -20,7 +20,7 @@ </item> <item> <key> <string>description</string> </key> - <value> <string></string> </value> + <value> <string>Update Records related to tickets</string> </value> </item> <item> <key> <string>groups</string> </key> @@ -30,7 +30,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>travel_expense_jio_interaction_workflow</string> </value> + <value> <string>ticket_record_interaction_workflow</string> </value> </item> <item> <key> <string>manager_bypass</string> </key> @@ -38,7 +38,7 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Travel Expense JIO Interaction Workflow</string> </value> + <value> <string>Ticket Record Interaction Workflow Definition</string> </value> </item> </dictionary> </pickle> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/interactions.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_record_interaction_workflow/interactions.xml similarity index 100% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/interactions.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_record_interaction_workflow/interactions.xml diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/interactions/local_role_update.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_record_interaction_workflow/interactions/Ticket_edit.xml similarity index 84% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/interactions/local_role_update.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_record_interaction_workflow/interactions/Ticket_edit.xml index a156ec4f345d54354f5115f110016471d50df764..8a18ed7d3cca153af4b2ade159d29940473aa5eb 100644 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/interactions/local_role_update.xml +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_record_interaction_workflow/interactions/Ticket_edit.xml @@ -27,15 +27,15 @@ <item> <key> <string>after_script_name</string> </key> <value> - <list> - <string>Base_updateLocalRole</string> - </list> + <tuple/> </value> </item> <item> <key> <string>before_commit_script_name</string> </key> <value> - <tuple/> + <list> + <string>Ticket_updateRecord</string> + </list> </value> </item> <item> @@ -50,24 +50,30 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>local_role_update</string> </value> + <value> <string>Ticket_edit</string> </value> </item> <item> <key> <string>method_id</string> </key> <value> <list> - <string>_setContributor*</string> + <string>edit</string> + <string>validate</string> + <string>suspend</string> + <string>invalidate</string> </list> </value> </item> <item> <key> <string>once_per_transaction</string> </key> - <value> <int>0</int> </value> + <value> <int>1</int> </value> </item> <item> <key> <string>portal_type_filter</string> </key> <value> - <none/> + <list> + <string>Expense Validation Request</string> + <string>Travel Request</string> + </list> </value> </item> <item> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_record_interaction_workflow/scripts.xml similarity index 100% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_record_interaction_workflow/scripts.xml diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_record_interaction_workflow/scripts/Ticket_updateRecord.py b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_record_interaction_workflow/scripts/Ticket_updateRecord.py new file mode 100644 index 0000000000000000000000000000000000000000..1ebc995fc8c31210b6f35de510501772fe895b75 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_record_interaction_workflow/scripts/Ticket_updateRecord.py @@ -0,0 +1,5 @@ +ticket = state_change["object"] + +ticket.getTypeBasedMethod( + "createRepresentativeRecord" + )() diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_record_interaction_workflow/scripts/Ticket_updateRecord.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_record_interaction_workflow/scripts/Ticket_updateRecord.xml new file mode 100644 index 0000000000000000000000000000000000000000..f8ac8888e976e95d830594bc2afa7c1afd0b2b32 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_record_interaction_workflow/scripts/Ticket_updateRecord.xml @@ -0,0 +1,62 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>Script_magic</string> </key> + <value> <int>3</int> </value> + </item> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_container</string> </key> + <value> <string>container</string> </value> + </item> + <item> + <key> <string>name_context</string> </key> + <value> <string>context</string> </value> + </item> + <item> + <key> <string>name_m_self</string> </key> + <value> <string>script</string> </value> + </item> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_params</string> </key> + <value> <string>state_change</string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>Ticket_updateRecord</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/variables.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_record_interaction_workflow/variables.xml similarity index 100% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/variables.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_record_interaction_workflow/variables.xml diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/worklists.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_record_interaction_workflow/worklists.xml similarity index 100% rename from bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/worklists.xml rename to bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/ticket_record_interaction_workflow/worklists.xml diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts/Event_checkConsistency.py b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts/Event_checkConsistency.py deleted file mode 100644 index b9c9cc9a8efdc224967e06043348a35baf62949d..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts/Event_checkConsistency.py +++ /dev/null @@ -1,2 +0,0 @@ -object = state_change['object'] -object.Base_checkConsistency() diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts/Event_send.py b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts/Event_send.py deleted file mode 100644 index 595f23be78ae5754982e2316976da8f1f158372c..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts/Event_send.py +++ /dev/null @@ -1,16 +0,0 @@ -event = state_change['object'] - -send_method = event.getTypeBasedMethod('send') -parameter_list = ('from_url', 'to_url', 'reply_url', 'subject', - 'body', 'attachment_format', 'attachment_list',) -if getattr(send_method, 'meta_type', None) == 'Script (Python)': - parameter_list = send_method.ZScriptHTML_tryParams() - -# Turn the SafeMapping from keyword arguments into a dict. -kwargs = {} -for key in parameter_list: - state_change_arg = state_change['kwargs'].get(key) - if state_change_arg: - kwargs[key] = state_change_arg - -event.send(**kwargs) # will call type based method diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts/Event_send.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts/Event_send.xml deleted file mode 100644 index cacefb63b067a9d5af0664f097bb95073dd35acf..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts/Event_send.xml +++ /dev/null @@ -1,70 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>Script_magic</string> </key> - <value> <int>3</int> </value> - </item> - <item> - <key> <string>_bind_names</string> </key> - <value> - <object> - <klass> - <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> - </klass> - <tuple/> - <state> - <dictionary> - <item> - <key> <string>_asgns</string> </key> - <value> - <dictionary> - <item> - <key> <string>name_container</string> </key> - <value> <string>container</string> </value> - </item> - <item> - <key> <string>name_context</string> </key> - <value> <string>context</string> </value> - </item> - <item> - <key> <string>name_m_self</string> </key> - <value> <string>script</string> </value> - </item> - <item> - <key> <string>name_subpath</string> </key> - <value> <string>traverse_subpath</string> </value> - </item> - </dictionary> - </value> - </item> - </dictionary> - </state> - </object> - </value> - </item> - <item> - <key> <string>_params</string> </key> - <value> <string>state_change</string> </value> - </item> - <item> - <key> <string>_proxy_roles</string> </key> - <value> - <tuple> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>Event_send</string> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/stopped.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/stopped.xml deleted file mode 100644 index f6fef0dc2427a522a2463cfba9f8a36c9b9d0eb2..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/stopped.xml +++ /dev/null @@ -1,120 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="StateDefinition" module="Products.DCWorkflow.States"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>description</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>stopped</string> </value> - </item> - <item> - <key> <string>permission_roles</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> - </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string>Received</string> </value> - </item> - <item> - <key> <string>transitions</string> </key> - <value> - <tuple> - <string>create_ticket</string> - <string>create_ticket_action</string> - <string>deliver</string> - <string>deliver_action</string> - </tuple> - </value> - </item> - <item> - <key> <string>type_list</string> </key> - <value> - <tuple/> - </value> - </item> - </dictionary> - </pickle> - </record> - <record id="2" aka="AAAAAAAAAAI="> - <pickle> - <global name="PersistentMapping" module="Persistence.mapping"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>data</string> </key> - <value> - <dictionary> - <item> - <key> <string>Access contents information</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> - <string>Auditor</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>Add portal content</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>Delete objects</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>Modify portal content</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>View</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> - <string>Auditor</string> - <string>Manager</string> - </tuple> - </value> - </item> - </dictionary> - </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/cancel.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/cancel.xml deleted file mode 100644 index 7e1d6b2a8dfdab812d34abfff1781a47dc9b2395..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/cancel.xml +++ /dev/null @@ -1,58 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>actbox_category</string> </key> - <value> <string>workflow</string> </value> - </item> - <item> - <key> <string>actbox_name</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>actbox_url</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>after_script_name</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>guard</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>cancel</string> </value> - </item> - <item> - <key> <string>new_state_id</string> </key> - <value> <string>cancelled</string> </value> - </item> - <item> - <key> <string>script_name</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string>Cancel</string> </value> - </item> - <item> - <key> <string>trigger_type</string> </key> - <value> <int>2</int> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/change_to_error.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/change_to_error.xml deleted file mode 100644 index 260781d0b50c5bc8a4bf8ccb439aedda4e69cb4e..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/change_to_error.xml +++ /dev/null @@ -1,62 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>actbox_category</string> </key> - <value> <string>workflow</string> </value> - </item> - <item> - <key> <string>actbox_icon</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>actbox_name</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>actbox_url</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>after_script_name</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>guard</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>change_to_error</string> </value> - </item> - <item> - <key> <string>new_state_id</string> </key> - <value> <string>error</string> </value> - </item> - <item> - <key> <string>script_name</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string>Change To Error</string> </value> - </item> - <item> - <key> <string>trigger_type</string> </key> - <value> <int>2</int> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/confirm.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/confirm.xml deleted file mode 100644 index 0f6d1c24a46d02e8a4c2a8eb59c89d441a04283a..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/confirm.xml +++ /dev/null @@ -1,58 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>actbox_category</string> </key> - <value> <string>workflow</string> </value> - </item> - <item> - <key> <string>actbox_name</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>actbox_url</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>after_script_name</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>guard</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>confirm</string> </value> - </item> - <item> - <key> <string>new_state_id</string> </key> - <value> <string>confirmed</string> </value> - </item> - <item> - <key> <string>script_name</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string>Confirm</string> </value> - </item> - <item> - <key> <string>trigger_type</string> </key> - <value> <int>2</int> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/create_ticket_action.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/create_ticket_action.xml deleted file mode 100644 index 687d076b2b87db3974df954ff31b70160ee1f901..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/create_ticket_action.xml +++ /dev/null @@ -1,102 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>actbox_category</string> </key> - <value> <string>workflow</string> </value> - </item> - <item> - <key> <string>actbox_icon</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>actbox_name</string> </key> - <value> <string>Create Follow-up Ticket</string> </value> - </item> - <item> - <key> <string>actbox_url</string> </key> - <value> <string>%(content_url)s/Event_viewCreateTicketWorkflowActionDialog?workflow_action=create_ticket_action</string> </value> - </item> - <item> - <key> <string>after_script_name</string> </key> - <value> <string>create_ticket</string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> <string>Disabled action.</string> </value> - </item> - <item> - <key> <string>guard</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> - </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>create_ticket_action</string> </value> - </item> - <item> - <key> <string>new_state_id</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>script_name</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string>Create Follow-up Ticket Action</string> </value> - </item> - <item> - <key> <string>trigger_type</string> </key> - <value> <int>1</int> </value> - </item> - <item> - <key> <string>var_exprs</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> - </value> - </item> - </dictionary> - </pickle> - </record> - <record id="2" aka="AAAAAAAAAAI="> - <pickle> - <global name="Guard" module="Products.DCWorkflow.Guard"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>roles</string> </key> - <value> - <tuple> - <string>Assignee</string> - <string>Assignor</string> - <string>Associate</string> - </tuple> - </value> - </item> - </dictionary> - </pickle> - </record> - <record id="3" aka="AAAAAAAAAAM="> - <pickle> - <global name="PersistentMapping" module="Persistence.mapping"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>data</string> </key> - <value> - <dictionary/> - </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/delete.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/delete.xml deleted file mode 100644 index 486dd708017f21f87edcf4cb5de81a8225abd09f..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/delete.xml +++ /dev/null @@ -1,58 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>actbox_category</string> </key> - <value> <string>workflow</string> </value> - </item> - <item> - <key> <string>actbox_name</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>actbox_url</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>after_script_name</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>guard</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>delete</string> </value> - </item> - <item> - <key> <string>new_state_id</string> </key> - <value> <string>deleted</string> </value> - </item> - <item> - <key> <string>script_name</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string>Delete</string> </value> - </item> - <item> - <key> <string>trigger_type</string> </key> - <value> <int>2</int> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/deliver.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/deliver.xml deleted file mode 100644 index a4864f9b46bbe735e424676343246ee309d8b08c..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/deliver.xml +++ /dev/null @@ -1,58 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>actbox_category</string> </key> - <value> <string>workflow</string> </value> - </item> - <item> - <key> <string>actbox_name</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>actbox_url</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>after_script_name</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>guard</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>deliver</string> </value> - </item> - <item> - <key> <string>new_state_id</string> </key> - <value> <string>delivered</string> </value> - </item> - <item> - <key> <string>script_name</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string>Deliver</string> </value> - </item> - <item> - <key> <string>trigger_type</string> </key> - <value> <int>2</int> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/deliver_action.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/deliver_action.xml deleted file mode 100644 index 738ff243500ecbfe254cef375b662a9c21665c0d..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/deliver_action.xml +++ /dev/null @@ -1,98 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>actbox_category</string> </key> - <value> <string>workflow</string> </value> - </item> - <item> - <key> <string>actbox_name</string> </key> - <value> <string>Deliver</string> </value> - </item> - <item> - <key> <string>actbox_url</string> </key> - <value> <string>%(content_url)s/Base_viewWorkflowActionDialog?workflow_action=deliver_action</string> </value> - </item> - <item> - <key> <string>after_script_name</string> </key> - <value> <string>deliver</string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>guard</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> - </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>deliver_action</string> </value> - </item> - <item> - <key> <string>new_state_id</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>script_name</string> </key> - <value> <string>Event_checkConsistency</string> </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string>Deliver Action</string> </value> - </item> - <item> - <key> <string>trigger_type</string> </key> - <value> <int>1</int> </value> - </item> - <item> - <key> <string>var_exprs</string> </key> - <value> - <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> - </value> - </item> - </dictionary> - </pickle> - </record> - <record id="2" aka="AAAAAAAAAAI="> - <pickle> - <global name="Guard" module="Products.DCWorkflow.Guard"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>roles</string> </key> - <value> - <tuple> - <string>Assignor</string> - <string>Assignee</string> - <string>Associate</string> - </tuple> - </value> - </item> - </dictionary> - </pickle> - </record> - <record id="3" aka="AAAAAAAAAAM="> - <pickle> - <global name="PersistentMapping" module="Persistence.mapping"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>data</string> </key> - <value> - <dictionary/> - </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/plan.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/plan.xml deleted file mode 100644 index e3cb330eb6e7e6990d8a71214af30a296c266757..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/plan.xml +++ /dev/null @@ -1,58 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>actbox_category</string> </key> - <value> <string>workflow</string> </value> - </item> - <item> - <key> <string>actbox_name</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>actbox_url</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>after_script_name</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>guard</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>plan</string> </value> - </item> - <item> - <key> <string>new_state_id</string> </key> - <value> <string>planned</string> </value> - </item> - <item> - <key> <string>script_name</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string>Plan</string> </value> - </item> - <item> - <key> <string>trigger_type</string> </key> - <value> <int>2</int> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/start.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/start.xml deleted file mode 100644 index 418bcd10a9cc33ff9588622deec5501ef6046c93..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/start.xml +++ /dev/null @@ -1,62 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>actbox_category</string> </key> - <value> <string>workflow</string> </value> - </item> - <item> - <key> <string>actbox_icon</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>actbox_name</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>actbox_url</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>after_script_name</string> </key> - <value> <string>Event_send</string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>guard</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>start</string> </value> - </item> - <item> - <key> <string>new_state_id</string> </key> - <value> <string>started</string> </value> - </item> - <item> - <key> <string>script_name</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string>Send</string> </value> - </item> - <item> - <key> <string>trigger_type</string> </key> - <value> <int>2</int> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/stop.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/stop.xml deleted file mode 100644 index b62d15fc93054917b961675e89bf467865aad167..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/stop.xml +++ /dev/null @@ -1,58 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>actbox_category</string> </key> - <value> <string>workflow</string> </value> - </item> - <item> - <key> <string>actbox_name</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>actbox_url</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>after_script_name</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>guard</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>stop</string> </value> - </item> - <item> - <key> <string>new_state_id</string> </key> - <value> <string>stopped</string> </value> - </item> - <item> - <key> <string>script_name</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string>Declare as Received</string> </value> - </item> - <item> - <key> <string>trigger_type</string> </key> - <value> <int>2</int> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/answer_portal_type.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/answer_portal_type.xml deleted file mode 100644 index 0c0b22fa8a864b786b4da9cc64225da52809a6fb..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/answer_portal_type.xml +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="VariableDefinition" module="Products.DCWorkflow.Variables"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>default_expr</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>default_value</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>for_catalog</string> </key> - <value> <int>0</int> </value> - </item> - <item> - <key> <string>for_status</string> </key> - <value> <int>1</int> </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>answer_portal_type</string> </value> - </item> - <item> - <key> <string>info_guard</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>update_always</string> </key> - <value> <int>1</int> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/answer_template.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/answer_template.xml deleted file mode 100644 index 5a88d139a3b74134eb5072d7dce30149a8115473..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/answer_template.xml +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="VariableDefinition" module="Products.DCWorkflow.Variables"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>default_expr</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>default_value</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>for_catalog</string> </key> - <value> <int>0</int> </value> - </item> - <item> - <key> <string>for_status</string> </key> - <value> <int>1</int> </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>answer_template</string> </value> - </item> - <item> - <key> <string>info_guard</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>update_always</string> </key> - <value> <int>1</int> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/error_message.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/error_message.xml deleted file mode 100644 index 535863de2a26221cff2a356674852ea83bcee061..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/error_message.xml +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="VariableDefinition" module="Products.DCWorkflow.Variables"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>default_expr</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>default_value</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> <string>Error message if validation failed</string> </value> - </item> - <item> - <key> <string>for_catalog</string> </key> - <value> <int>0</int> </value> - </item> - <item> - <key> <string>for_status</string> </key> - <value> <int>1</int> </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>error_message</string> </value> - </item> - <item> - <key> <string>info_guard</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>update_always</string> </key> - <value> <int>1</int> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/portal_type.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/portal_type.xml deleted file mode 100644 index 318e098ff6e2a7ca5451e5459837ca9dab622f28..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/portal_type.xml +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="VariableDefinition" module="Products.DCWorkflow.Variables"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>default_expr</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>default_value</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> <string>portal type (use as filter for worklists)</string> </value> - </item> - <item> - <key> <string>for_catalog</string> </key> - <value> <int>1</int> </value> - </item> - <item> - <key> <string>for_status</string> </key> - <value> <int>0</int> </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>portal_type</string> </value> - </item> - <item> - <key> <string>info_guard</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>update_always</string> </key> - <value> <int>0</int> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/respond_event_portal_type.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/respond_event_portal_type.xml deleted file mode 100644 index 1c47466b84b0c020b67eda8a6b00182c9b36bf7a..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/respond_event_portal_type.xml +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="VariableDefinition" module="Products.DCWorkflow.Variables"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>default_expr</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>default_value</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> <string>Stores the portal type of the event which is automatically created when the event is responded</string> </value> - </item> - <item> - <key> <string>for_catalog</string> </key> - <value> <int>0</int> </value> - </item> - <item> - <key> <string>for_status</string> </key> - <value> <int>1</int> </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>respond_event_portal_type</string> </value> - </item> - <item> - <key> <string>info_guard</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>update_always</string> </key> - <value> <int>0</int> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/respond_event_resource.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/respond_event_resource.xml deleted file mode 100644 index 93afb470d06a66bca9987bcff73bf57fbe980fd2..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/respond_event_resource.xml +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="VariableDefinition" module="Products.DCWorkflow.Variables"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>default_expr</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>default_value</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> <string>Stores the nature of the event which is automatically created when the event is responded</string> </value> - </item> - <item> - <key> <string>for_catalog</string> </key> - <value> <int>0</int> </value> - </item> - <item> - <key> <string>for_status</string> </key> - <value> <int>1</int> </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>respond_event_resource</string> </value> - </item> - <item> - <key> <string>info_guard</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>update_always</string> </key> - <value> <int>0</int> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/respond_event_text_content.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/respond_event_text_content.xml deleted file mode 100644 index f605e94e19e98b00443029fd73574d5921b93dbe..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/respond_event_text_content.xml +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="VariableDefinition" module="Products.DCWorkflow.Variables"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>default_expr</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>default_value</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> <string>Stores the text content of the event which is automatically created when the event is responded</string> </value> - </item> - <item> - <key> <string>for_catalog</string> </key> - <value> <int>0</int> </value> - </item> - <item> - <key> <string>for_status</string> </key> - <value> <int>1</int> </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>respond_event_text_content</string> </value> - </item> - <item> - <key> <string>info_guard</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>update_always</string> </key> - <value> <int>0</int> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/respond_event_title.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/respond_event_title.xml deleted file mode 100644 index f0042a1726558dfa84d7d66d251cc42015faa917..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/respond_event_title.xml +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="VariableDefinition" module="Products.DCWorkflow.Variables"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>default_expr</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>default_value</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>description</string> </key> - <value> <string>Stores the title of the event which is automatically created when the event is responded </string> </value> - </item> - <item> - <key> <string>for_catalog</string> </key> - <value> <int>0</int> </value> - </item> - <item> - <key> <string>for_status</string> </key> - <value> <int>1</int> </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>respond_event_title</string> </value> - </item> - <item> - <key> <string>info_guard</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>update_always</string> </key> - <value> <int>0</int> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/interactions/copyDocIdToTitle.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/interactions/copyDocIdToTitle.xml deleted file mode 100644 index edb8803d1abb6aa2d07fe92ed2c6af08de300df5..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/interactions/copyDocIdToTitle.xml +++ /dev/null @@ -1,100 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="InteractionDefinition" module="Products.ERP5.Interaction"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>actbox_category</string> </key> - <value> <string>workflow</string> </value> - </item> - <item> - <key> <string>actbox_name</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>actbox_url</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>activate_script_name</string> </key> - <value> - <tuple/> - </value> - </item> - <item> - <key> <string>after_script_name</string> </key> - <value> - <list> - <string>Base_copyDocIdToTitle</string> - </list> - </value> - </item> - <item> - <key> <string>before_commit_script_name</string> </key> - <value> - <tuple/> - </value> - </item> - <item> - <key> <string>description</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>guard</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>copyDocIdToTitle</string> </value> - </item> - <item> - <key> <string>method_id</string> </key> - <value> - <list> - <string>_setDocId</string> - </list> - </value> - </item> - <item> - <key> <string>once_per_transaction</string> </key> - <value> <int>0</int> </value> - </item> - <item> - <key> <string>portal_type_filter</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>portal_type_group_filter</string> </key> - <value> - <none/> - </value> - </item> - <item> - <key> <string>script_name</string> </key> - <value> - <tuple/> - </value> - </item> - <item> - <key> <string>temporary_document_disallowed</string> </key> - <value> <int>0</int> </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string></string> </value> - </item> - <item> - <key> <string>trigger_type</string> </key> - <value> <int>2</int> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts/Base_copyDocIdToTitle.py b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts/Base_copyDocIdToTitle.py deleted file mode 100644 index 4924b0ebeca544eed9607cf77c14f3681db4ea62..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts/Base_copyDocIdToTitle.py +++ /dev/null @@ -1,2 +0,0 @@ -document = state_change['object'] -document.setTitle(document.getDocId()) diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts/Base_copyDocIdToTitle.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts/Base_copyDocIdToTitle.xml deleted file mode 100644 index c975d80ab3da406e0e01bd8921a98a62845007d1..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts/Base_copyDocIdToTitle.xml +++ /dev/null @@ -1,70 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>Script_magic</string> </key> - <value> <int>3</int> </value> - </item> - <item> - <key> <string>_bind_names</string> </key> - <value> - <object> - <klass> - <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> - </klass> - <tuple/> - <state> - <dictionary> - <item> - <key> <string>_asgns</string> </key> - <value> - <dictionary> - <item> - <key> <string>name_container</string> </key> - <value> <string>container</string> </value> - </item> - <item> - <key> <string>name_context</string> </key> - <value> <string>context</string> </value> - </item> - <item> - <key> <string>name_m_self</string> </key> - <value> <string>script</string> </value> - </item> - <item> - <key> <string>name_subpath</string> </key> - <value> <string>traverse_subpath</string> </value> - </item> - </dictionary> - </value> - </item> - </dictionary> - </state> - </object> - </value> - </item> - <item> - <key> <string>_params</string> </key> - <value> <string>state_change</string> </value> - </item> - <item> - <key> <string>_proxy_roles</string> </key> - <value> - <tuple> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>Base_copyDocIdToTitle</string> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts/Base_updateLocalRole.py b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts/Base_updateLocalRole.py deleted file mode 100644 index 361ddd24b1e6cfa3727144efdffcf83797854907..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts/Base_updateLocalRole.py +++ /dev/null @@ -1,3 +0,0 @@ -document = state_change['object'] - -document.updateLocalRolesOnSecurityGroups() diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts/Base_updateLocalRole.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts/Base_updateLocalRole.xml deleted file mode 100644 index 8818f301a703d15e4a245273b43feef9137b2a6b..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts/Base_updateLocalRole.xml +++ /dev/null @@ -1,70 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>Script_magic</string> </key> - <value> <int>3</int> </value> - </item> - <item> - <key> <string>_bind_names</string> </key> - <value> - <object> - <klass> - <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> - </klass> - <tuple/> - <state> - <dictionary> - <item> - <key> <string>_asgns</string> </key> - <value> - <dictionary> - <item> - <key> <string>name_container</string> </key> - <value> <string>container</string> </value> - </item> - <item> - <key> <string>name_context</string> </key> - <value> <string>context</string> </value> - </item> - <item> - <key> <string>name_m_self</string> </key> - <value> <string>script</string> </value> - </item> - <item> - <key> <string>name_subpath</string> </key> - <value> <string>traverse_subpath</string> </value> - </item> - </dictionary> - </value> - </item> - </dictionary> - </state> - </object> - </value> - </item> - <item> - <key> <string>_params</string> </key> - <value> <string>state_change</string> </value> - </item> - <item> - <key> <string>_proxy_roles</string> </key> - <value> - <tuple> - <string>Manager</string> - </tuple> - </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>Base_updateLocalRole</string> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_travel_expense/bt/change_log b/bt5/erp5_travel_expense/bt/change_log index 840ecdf7c4b6ebb8cdba76a6ce3861a15eaafa31..c2f839d6bde947ce6b3e3b8dbbb7b7d9d4f08aa6 100644 --- a/bt5/erp5_travel_expense/bt/change_log +++ b/bt5/erp5_travel_expense/bt/change_log @@ -1,2 +1,5 @@ 2016-9-1 yusei -* Initial version. \ No newline at end of file +* Initial version. +2016-12-14 Cédric LN +* Use Generic Record Mechanism +* Remove hardcoded elements \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/dependency_list b/bt5/erp5_travel_expense/bt/dependency_list index e7a0846b5dba6a1ffe6fea753d39d8ce3b0a7276..a887e95d5bf4365857de4b7356e939460da6bc25 100644 --- a/bt5/erp5_travel_expense/bt/dependency_list +++ b/bt5/erp5_travel_expense/bt/dependency_list @@ -1,3 +1,4 @@ erp5_accounting erp5_crm -erp5_web_renderjs_ui \ No newline at end of file +erp5_web_renderjs_ui +erp5_officejs \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/template_action_path_list b/bt5/erp5_travel_expense/bt/template_action_path_list index a432fe5c01297a5595d9b84f720f09e9b7bed12e..8c9fe95d70a752ee94023426d9e465cf84ac3829 100644 --- a/bt5/erp5_travel_expense/bt/template_action_path_list +++ b/bt5/erp5_travel_expense/bt/template_action_path_list @@ -5,4 +5,14 @@ Expense Record Module | view Expense Record | jio_view Expense Record | view Expense Validation Item Module | view -Expense Validation Item | view \ No newline at end of file +Expense Validation Item | view +Expense Validation Request Module | view +Expense Validation Request | view +Leave Request Record | jio_view +Leave Request Record | view +Record Module | view +Travel Request Module | view +Travel Request Record | jio_view +Travel Request Record | view +Travel Request Record | view_as_jio +Travel Request | view \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/template_keep_last_workflow_history_only_path_list b/bt5/erp5_travel_expense/bt/template_keep_last_workflow_history_only_path_list index 9db94f56c5072e3242aee1135664c3fb0b3bf920..486f99be3dc5292c57ddc8b95e6e98e1ebc845be 100644 --- a/bt5/erp5_travel_expense/bt/template_keep_last_workflow_history_only_path_list +++ b/bt5/erp5_travel_expense/bt/template_keep_last_workflow_history_only_path_list @@ -1,34 +1,4 @@ -web_page_module/gadget_travel_expense_jio.html -web_page_module/gadget_travel_expense_jio.js -web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.html -web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.js -web_page_module/gadget_travel_expense_jio_expense_record_module_view.html -web_page_module/gadget_travel_expense_jio_expense_record_module_view.js -web_page_module/gadget_travel_expense_jio_expense_record_view.html -web_page_module/gadget_travel_expense_jio_expense_record_view.js -web_page_module/gadget_travel_expense_page_login.html -web_page_module/gadget_travel_expense_page_login.js -web_page_module/gadget_travel_expense_page_setting.html -web_page_module/gadget_travel_expense_page_setting.js -web_page_module/gadget_travel_expense_page_sync.html -web_page_module/gadget_travel_expense_page_sync.js -web_page_module/gadget_travel_expense_page_report.html -web_page_module/gadget_travel_expense_page_report.js -web_page_module/gadget_travel_expense_record_application.appcache -web_page_module/gadget_travel_expense_record_application.html -web_page_module/gadget_travel_expense_record_application.js -web_page_module/gadget_travel_expense_standalone_jio.html -web_page_module/gadget_travel_expense_standalone_jio.js -web_page_module/gadget_travel_expense_translation.html -web_page_module/gadget_travel_expense_translation.js -web_page_module/gadget_travel_expense_translation_data.js -web_page_module/gadget_travel_expense_widget_listbox.html -web_page_module/gadget_travel_expense_widget_listbox.js -web_page_module/megapix-image.js -web_page_module/travel_expense_app.css -web_page_module/travel_expense_jiodev_renderjs_storage.js -web_page_module/travel_expense_js_cookie.js -web_page_module/travel_expense_renderjs.js -web_page_module/travel_expense_utility.js -web_site_module/travel_expense_app -web_site_module/travel_expense_app/** \ No newline at end of file +portal_alarms/alarm_process_draft_records +web_page_module/gadget_hr_* +web_site_module/officejs_hr_psa +web_site_module/officejs_hr_psa/** \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/template_module_id_list b/bt5/erp5_travel_expense/bt/template_module_id_list index d45056b7e82603bfc102d12c412325e821f82136..a473e655478aa2bc843b4e176b7020f2d118cd43 100644 --- a/bt5/erp5_travel_expense/bt/template_module_id_list +++ b/bt5/erp5_travel_expense/bt/template_module_id_list @@ -1,2 +1,4 @@ expense_record_module -expense_validation_item_module \ No newline at end of file +expense_validation_request_module +record_module +travel_request_module \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/template_path_list b/bt5/erp5_travel_expense/bt/template_path_list index 9ad703f4297b72911e614455f6b5f73f90736548..17c9cbfa91319369d6268cf65944e0834421b592 100644 --- a/bt5/erp5_travel_expense/bt/template_path_list +++ b/bt5/erp5_travel_expense/bt/template_path_list @@ -1,36 +1,4 @@ -portal_alarms/travel_expense_create_validation_item -web_page_module/gadget_travel_expense_jio.html -web_page_module/gadget_travel_expense_jio.js -web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.html -web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.js -web_page_module/gadget_travel_expense_jio_expense_record_module_view.html -web_page_module/gadget_travel_expense_jio_expense_record_module_view.js -web_page_module/gadget_travel_expense_jio_expense_record_view.html -web_page_module/gadget_travel_expense_jio_expense_record_view.js -web_page_module/gadget_travel_expense_page_login.html -web_page_module/gadget_travel_expense_page_login.js -web_page_module/gadget_travel_expense_page_report.html -web_page_module/gadget_travel_expense_page_report.js -web_page_module/gadget_travel_expense_page_setting.html -web_page_module/gadget_travel_expense_page_setting.js -web_page_module/gadget_travel_expense_page_sync.html -web_page_module/gadget_travel_expense_page_sync.js -web_page_module/gadget_travel_expense_record_application.appcache -web_page_module/gadget_travel_expense_record_application.html -web_page_module/gadget_travel_expense_record_application.js -web_page_module/gadget_travel_expense_standalone_jio.html -web_page_module/gadget_travel_expense_standalone_jio.js -web_page_module/gadget_travel_expense_translation.html -web_page_module/gadget_travel_expense_translation.js -web_page_module/gadget_travel_expense_translation_data.js -web_page_module/gadget_travel_expense_widget_listbox.html -web_page_module/gadget_travel_expense_widget_listbox.js -web_page_module/travel_expense_app.css -web_page_module/travel_expense_excellentexport.min.js -web_page_module/travel_expense_jiodev_renderjs_storage.js -web_page_module/travel_expense_js_cookie.js -web_page_module/travel_expense_megapix_image.js -web_page_module/travel_expense_renderjs.js -web_page_module/travel_expense_utility.js -web_site_module/travel_expense_app -web_site_module/travel_expense_app/** \ No newline at end of file +portal_alarms/alarm_process_draft_records +web_page_module/gadget_hr_* +web_site_module/officejs_hr +web_site_module/officejs_hr/** \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/template_portal_type_allowed_content_type_list b/bt5/erp5_travel_expense/bt/template_portal_type_allowed_content_type_list index 34c7dbc7f75b5e15227b64ce45a98de3e2fea1d8..4fd7776c5f7eed2aee9aea02dde481c82a6c9480 100644 --- a/bt5/erp5_travel_expense/bt/template_portal_type_allowed_content_type_list +++ b/bt5/erp5_travel_expense/bt/template_portal_type_allowed_content_type_list @@ -1,2 +1,6 @@ Expense Record Module | Expense Record -Expense Validation Item Module | Expense Validation Item \ No newline at end of file +Expense Validation Item Module | Expense Validation Item +Expense Validation Request Module | Expense Validation Request +Record Module | Leave Request Record +Record Module | Travel Request Record +Travel Request Module | Travel Request \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/template_portal_type_base_category_list b/bt5/erp5_travel_expense/bt/template_portal_type_base_category_list index 7b3fc8e180f757a55ed95cf072760444f5dc95bb..de9bf58ba3017ace278a3acb046b4b98da72aeab 100644 --- a/bt5/erp5_travel_expense/bt/template_portal_type_base_category_list +++ b/bt5/erp5_travel_expense/bt/template_portal_type_base_category_list @@ -1,2 +1,5 @@ Expense Record Module | business_application -Expense Validation Item Module | business_application \ No newline at end of file +Expense Validation Item Module | business_application +Expense Validation Request Module | business_application +Record Module | business_application +Travel Request Module | business_application \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/template_portal_type_hidden_content_type_list b/bt5/erp5_travel_expense/bt/template_portal_type_hidden_content_type_list deleted file mode 100644 index e260de4d3c2cfe62e85076e8a561e26ab455747a..0000000000000000000000000000000000000000 --- a/bt5/erp5_travel_expense/bt/template_portal_type_hidden_content_type_list +++ /dev/null @@ -1 +0,0 @@ -Expense Record Module | Expense Record \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/template_portal_type_id_list b/bt5/erp5_travel_expense/bt/template_portal_type_id_list index 5cd8c5d5870ae79ccb2a61a9a6d456a9df99598b..5a7e88f299db50dbbf346f3a89a051949eb181d0 100644 --- a/bt5/erp5_travel_expense/bt/template_portal_type_id_list +++ b/bt5/erp5_travel_expense/bt/template_portal_type_id_list @@ -1,4 +1,9 @@ Expense Record Expense Record Module -Expense Validation Item -Expense Validation Item Module \ No newline at end of file +Expense Validation Request +Expense Validation Request Module +Leave Request Record +Record Module +Travel Request +Travel Request Module +Travel Request Record \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/template_portal_type_property_sheet_list b/bt5/erp5_travel_expense/bt/template_portal_type_property_sheet_list index 6ddcad7f11cc06b2c47092f933eabbfa69a9b5ab..00124ee2826f6cadd30b63f4cd03fd6194db45d4 100644 --- a/bt5/erp5_travel_expense/bt/template_portal_type_property_sheet_list +++ b/bt5/erp5_travel_expense/bt/template_portal_type_property_sheet_list @@ -1 +1,6 @@ -Expense Record | ExpenseRecord \ No newline at end of file +Expense Record | ExpenseRecord +Expense Validation Request | ExpenseValidationRequest +Expense Validation Request | ExpenseValidationRequest +Leave Request Record | LeaveRequestRecord +Travel Request Record | TravelRequestRecord +Travel Request | TravelRequest \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/template_portal_type_workflow_chain_list b/bt5/erp5_travel_expense/bt/template_portal_type_workflow_chain_list index 2ff03c64c21f76aaf7576e0e3f2ebe49232c2180..a02d41b6393715abf1697a5174257f25ec97b2f8 100644 --- a/bt5/erp5_travel_expense/bt/template_portal_type_workflow_chain_list +++ b/bt5/erp5_travel_expense/bt/template_portal_type_workflow_chain_list @@ -1,11 +1,29 @@ Expense Record | document_conversion_interaction_workflow Expense Record | edit_workflow Expense Record | event_interaction_workflow +Expense Record | event_simulation_workflow +Expense Record | event_simulation_workflow Expense Record | pricing_interaction_workflow -Expense Record | travel_expense_event_simulation_workflow -Expense Record | travel_expense_jio_interaction_workflow -Expense Validation Item | edit_workflow -Expense Validation Item | pricing_interaction_workflow -Expense Validation Item | ticket_interaction_workflow -Expense Validation Item | ticket_workflow -Expense Validation Item | travel_expense_jio_interaction_workflow \ No newline at end of file +Expense Validation Request | edit_workflow +Expense Validation Request | pricing_interaction_workflow +Expense Validation Request | ticket_acceptance_simulation_workflow +Expense Validation Request | ticket_interaction_workflow +Expense Validation Request | ticket_record_interaction_workflow +Leave Request Record | document_conversion_interaction_workflow +Leave Request Record | edit_workflow +Leave Request Record | event_interaction_workflow +Leave Request Record | event_simulation_workflow +Leave Request Record | pricing_interaction_workflow +Leave Request Record | validation_workflow +Record Module | edit_workflow +Record Module | validation_workflow +Travel Request Record | document_conversion_interaction_workflow +Travel Request Record | edit_workflow +Travel Request Record | event_interaction_workflow +Travel Request Record | event_simulation_workflow +Travel Request Record | pricing_interaction_workflow +Travel Request | edit_workflow +Travel Request | pricing_interaction_workflow +Travel Request | ticket_acceptance_simulation_workflow +Travel Request | ticket_interaction_workflow +Travel Request | ticket_record_interaction_workflow \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/template_property_sheet_id_list b/bt5/erp5_travel_expense/bt/template_property_sheet_id_list index ba7742faac7b9c925108252d8c4ab35625843426..129724833b954bdcdc4e6d0f171fb75e8e784ae2 100644 --- a/bt5/erp5_travel_expense/bt/template_property_sheet_id_list +++ b/bt5/erp5_travel_expense/bt/template_property_sheet_id_list @@ -1 +1,4 @@ -ExpenseRecord \ No newline at end of file +ExpenseRecord +LeaveRequestRecord +TravelRequestRecord +TravelRequest \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/template_skin_id_list b/bt5/erp5_travel_expense/bt/template_skin_id_list index 7c96cdb67044782bd48ee12649bfde213759db7f..d228b65a3c4181b8368d15a7dfb3ce0735145cba 100644 --- a/bt5/erp5_travel_expense/bt/template_skin_id_list +++ b/bt5/erp5_travel_expense/bt/template_skin_id_list @@ -1 +1,2 @@ -erp5_travel_expense \ No newline at end of file +erp5_hr_record +erp5_hr_request \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/template_workflow_id_list b/bt5/erp5_travel_expense/bt/template_workflow_id_list index c8216f52b3c88c7fc89c9945d1085f6b069981f9..ff32fbc6d4099854b928af803356490d95ca26f4 100644 --- a/bt5/erp5_travel_expense/bt/template_workflow_id_list +++ b/bt5/erp5_travel_expense/bt/template_workflow_id_list @@ -1,2 +1,2 @@ -travel_expense_event_simulation_workflow -travel_expense_jio_interaction_workflow \ No newline at end of file +ticket_acceptance_simulation_workflow +ticket_record_interaction_workflow \ No newline at end of file