Commit f00b29e4 authored by Kristopher Ruzic's avatar Kristopher Ruzic

add appcache file, incude some basic files needed for emoji picker

this is by no means useable or ready. Also introduces issue with using appcache and self-signed cert. Chrome doesn't allow for it. Not sure of a work around (or if one even exists)
parent 0fb0c6ad
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Manifest" 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>gadget_jabberclient.appcache</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>jabber_gadget_jabberclient_appcache</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 Manifest</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content</string> </key>
<value> <string>CACHE MANIFEST\n
\n
CACHE:\n
gadget_global.js\n
gadget_jabberclient.js\n
gadget_jabberclient.html\n
gadget_jabberconnection.html\n
gadget_jabberconnection.js\n
gadget_jio.js\n
handlebars.js\n
jiodev.js\n
jquery.js\n
jquerymobile.css\n
jquerymobile.js\n
renderjs.js\n
rsvp.js\n
\n
NETWORK:\n
*\n
\n
FALLBACK:\n
/ offline.html</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>RenderJS Gadget Jabber Client AppCache</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>1441977297.98</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>945.44004.47120.53725</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>1441977927.57</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>1441976843.07</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
......@@ -110,7 +110,7 @@
<value> <string encoding="cdata"><![CDATA[
<!doctype html>\n
<html>\n
<html manifest="./gadget_jabberclient.appcache">\n
<head>\n
<meta charset="utf-8">\n
<meta name="viewport" content="width=device-width, initial-scale=1">\n
......@@ -123,6 +123,11 @@
\n
<!-- stylesheets for jabberclient -->\n
<link rel="stylesheet" type="text/css" href="gadget_jabberclient.css" />\n
\n
<!-- emoji -->\n
<link rel="stylesheet" type="text/css" href="gadget_jabberemoji.css">\n
<script type="text/javascript" src="gadget_jabberemoji.js"></script>\n
\n
\n
<script src="jquery.js"></script>\n
<script src="jquerymobile.js"></script>\n
......@@ -409,7 +414,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
<value> <string>normie</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -423,7 +428,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>945.43725.16450.38024</string> </value>
<value> <string>945.43993.56647.19438</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -441,7 +446,7 @@
</tuple>
<state>
<tuple>
<float>1441961206.73</float>
<float>1442218382.2</float>
<string>UTC</string>
</tuple>
</state>
......
<?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>default_reference</string> </key>
<value> <string>gadget_jabberemoji.css</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>jabber_gadget_jabberemoji_css</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 Style</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content</string> </key>
<value> <string encoding="cdata"><![CDATA[
.emoji-grinning_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128512;</text></svg>\');};\n
.emoji-grinning_face_with_smiling_eyes {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128513;</text></svg>\');};\n
.emoji-face_with_tears_of_joy {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128514;</text></svg>\');};\n
.emoji-smiling_face_with_open_mouth {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128515;</text></svg>\');};\n
.emoji-smiling_face_with_open_smiling_eyes {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128516;</text></svg>\');};\n
.emoji-smiling_face_with_open_mouth_sweat {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128517;</text></svg>\');};\n
.emoji-smiling_face_with_open_mouth_closed {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128518;</text></svg>\');};\n
.emoji-smiling_face_with_halo {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128519;</text></svg>\');};\n
.emoji-smiling_face_with_open_horns {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128520;</text></svg>\');};\n
.emoji-winking_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128521;</text></svg>\');};\n
.emoji-smiling_face_with_smiling_eyes {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128522;</text></svg>\');};\n
.emoji-smiling_face_delicious_food {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128523;</text></svg>\');};\n
.emoji-relieved_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128524;</text></svg>\');};\n
.emoji-smiling_face_heart_eyes {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128525;</text></svg>\');};\n
.emoji-smiling_face_sunglasses {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128526;</text></svg>\');};\n
.emoji-smirking_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128527;</text></svg>\');};\n
.emoji-neutral_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128528;</text></svg>\');};\n
.emoji-expressionless_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128529;</text></svg>\');};\n
.emoji-unamused_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128530;</text></svg>\');};\n
.emoji-face_sweat {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128531;</text></svg>\');};\n
.emoji-pensive_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128532;</text></svg>\');};\n
.emoji-confused_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128533;</text></svg>\');};\n
.emoji-confounded_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128534;</text></svg>\');};\n
.emoji-kissing_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128535;</text></svg>\');};\n
.emoji-face_throwing_kiss {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128536;</text></svg>\');};\n
.emoji-kissing_face_with_smiling_eyes {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128537;</text></svg>\');};\n
.emoji-kissing_face_with_closed_eyes {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128538;</text></svg>\');};\n
.emoji-face_with_tongue_out {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128539;</text></svg>\');};\n
.emoji-winking_face_with_tongue_out {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128540;</text></svg>\');};\n
.emoji-closed_eyes_face_with_tongue_out {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128541;</text></svg>\');};\n
.emoji-disappointed_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128542;</text></svg>\');};\n
.emoji-worried_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128543;</text></svg>\');};\n
.emoji-angry_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128544;</text></svg>\');};\n
.emoji-pouting_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128545;</text></svg>\');};\n
.emoji-crying_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128546;</text></svg>\');};\n
.emoji-persevering_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128547;</text></svg>\');};\n
.emoji-triumph_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128548;</text></svg>\');};\n
.emoji-disappointed_but_relieved_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128549;</text></svg>\');};\n
.emoji-frowning_open_mouth_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128550;</text></svg>\');};\n
.emoji-anguished_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128551;</text></svg>\');};\n
.emoji-fearful_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128552;</text></svg>\');};\n
.emoji-weary_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128553;</text></svg>\');};\n
.emoji-sleepy_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128554;</text></svg>\');};\n
.emoji-tired_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128555;</text></svg>\');};\n
.emoji-grimacing_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128556;</text></svg>\');};\n
.emoji-loudly_crying_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128557;</text></svg>\');};\n
.emoji-face_with_open_mouth {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128558;</text></svg>\');};\n
.emoji-hushed_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128559;</text></svg>\');};\n
.emoji-open_mouth_cold_sweat {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128560;</text></svg>\');};\n
.emoji-face_screaming_fear {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128561;</text></svg>\');};\n
.emoji-astonished_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128562;</text></svg>\');};\n
.emoji-flushed_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128563;</text></svg>\');};\n
.emoji-sleeping_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128564;</text></svg>\');};\n
.emoji-dizzy_face {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128565;</text></svg>\');};\n
.emoji-face_without_mouth {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128566;</text></svg>\');};\n
.emoji-face_with_medical_mask {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128567;</text></svg>\');};\n
.emoji-grinning_cat_with_smiling_eyes {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128568;</text></svg>\');};\n
.emoji-cat_with_tears_of_joy {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128569;</text></svg>\');};\n
.emoji-smiling_cat_with_open_mouth {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128570;</text></svg>\');};\n
.emoji-smiling_cat_with_heart_eyes {background-size:100%; background-image: url(\'data:image/svg+xml;utf8,<svg preserveAspectRatio="xMidYMin" style="width: 100%; height: 100%;" xmlns="http://www.w3.org/2000/svg"><text style="text-anchor: middle; pointer-events: auto;" font-size="3em" x="50%" y="50%" dy=".3em">&#128571;</text></svg>\');};\n
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>RenderJS Gadget JabberEmoji CSS</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>normie</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>1442218643.98</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>normie</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>945.48015.25579.41028</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>1442218526.49</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>normie</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>1442218463.28</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
<?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>gadget_jabberemoji.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>jabber_gadget_jabberemoji_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>text_content</string> </key>
<value> <string encoding="cdata"><![CDATA[
;(function($) {\n
\n
var pluginName = "emojiPicker",\n
defaults = {\n
width: \'200\',\n
height: \'350\',\n
position: \'right\',\n
fadeTime: 100,\n
iconColor: \'black\',\n
iconBackgroundColor: \'#eee\',\n
container: \'body\',\n
button: true\n
};\n
\n
var MIN_WIDTH = 200,\n
MAX_WIDTH = 600,\n
MIN_HEIGHT = 100,\n
MAX_HEIGHT = 350,\n
MAX_ICON_HEIGHT = 50;\n
\n
function Plugin( element, options ) {\n
\n
this.element = element;\n
this.$el = $(element);\n
\n
this.settings = $.extend( {}, defaults, options );\n
\n
this.$container = $(this.settings.container);\n
\n
// (type) Safety first\n
this.settings.width = parseInt(this.settings.width);\n
this.settings.height = parseInt(this.settings.height);\n
\n
// Check for valid width/height\n
if(this.settings.width >= MAX_WIDTH) {\n
this.settings.width = MAX_WIDTH;\n
} else if (this.settings.width < MIN_WIDTH) {\n
this.settings.width = MIN_WIDTH;\n
}\n
if (this.settings.height >= MAX_HEIGHT) {\n
this.settings.height = MAX_HEIGHT;\n
} else if (this.settings.height < MIN_HEIGHT) {\n
this.settings.height = MIN_HEIGHT;\n
}\n
\n
var possiblePositions = [ \'left\',\n
\'right\'\n
/*,\'top\',\n
\'bottom\'*/];\n
if($.inArray(this.settings.position,possiblePositions) == -1) {\n
this.settings.position = defaults.position; //current default\n
}\n
\n
// Do not enable if on mobile device (emojis already present)\n
if(!/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {\n
this.init();\n
}\n
\n
}\n
\n
$.extend(Plugin.prototype, {\n
\n
init: function() {\n
this.active = false;\n
this.addPickerIcon();\n
this.createPicker();\n
this.listen();\n
},\n
\n
addPickerIcon: function() {\n
// The wrapper is not needed if they have chosen to not use a button\n
if (this.settings.button) {\n
var elementHeight = this.$el.outerHeight();\n
var iconHeight = elementHeight > MAX_ICON_HEIGHT ?\n
MAX_ICON_HEIGHT :\n
elementHeight;\n
\n
// This can cause issues if the element is not visible when it is initiated\n
var objectWidth = this.$el.width();\n
\n
this.$el.width(objectWidth);\n
\n
this.$wrapper = this.$el\n
.wrap("<div class=\'emojiPickerIconWrap\'></div>")\n
.parent();\n
\n
this.$icon = $(\'<div class="emojiPickerIcon"></div>\')\n
.height(iconHeight)\n
.width(iconHeight)\n
.addClass(this.settings.iconColor)\n
.css(\'backgroundColor\', this.settings.iconBackgroundColor);\n
this.$wrapper.append( this.$icon );\n
}\n
\n
},\n
\n
createPicker: function() {\n
\n
// Show template\n
this.$picker = $( getPickerHTML() )\n
.appendTo( this.$container )\n
.width(this.settings.width)\n
.height(this.settings.height)\n
.css(\'z-index\',10000);\n
\n
// Picker height\n
this.$picker.find(\'section\')\n
.height(parseInt(this.settings.height) - 40); // 40 is height of the tabs\n
\n
// Tab size based on width\n
if (this.settings.width < 240) {\n
this.$picker.find(\'.emoji\').css({\'width\':\'1em\', \'height\':\'1em\'});\n
}\n
\n
},\n
\n
listen: function() {\n
// If the button is being used, wrapper has not been set, \n
// and will not need a listener\n
if (this.settings.button){\n
// Clicking on the picker icon\n
this.$wrapper.find(\'.emojiPickerIcon\')\n
.click( $.proxy(this.iconClicked, this) );\n
}\n
\n
// Click event for emoji\n
this.$picker.find(\'section div\')\n
.click( $.proxy(this.emojiClicked, this) );\n
\n
// Click event for active tab\n
this.$picker.find(\'nav .tab\')\n
.click( $.proxy(this.emojiCategoryClicked, this) );\n
\n
this.$picker.click( $.proxy(this.pickerClicked, this) );\n
\n
$(document.body).click( $.proxy(this.clickOutside, this) );\n
\n
// Resize events forces a reposition, which may or may not actually be required\n
$(window).resize( $.proxy(this.updatePosition, this) );\n
},\n
\n
updatePosition: function() {\n
\n
/* Process:\n
1. Find the nearest positioned element by crawling up the ancestors, record it\'s offset \n
2. Find the bottom left or right of the input element, record this (Account for position setting of left or right)\n
3. Find the difference between the two, as this will become our new position\n
4. Magic.\n
\n
N.B. The removed code had a reference to top/bottom positioning, but I don\'t see the use case for this..\n
*/ \n
\n
// Step 1\n
// Luckily jquery already does this...\n
var positionedParent = this.$picker.offsetParent();\n
var parentOffset = positionedParent.offset(); // now have a top/left object\n
\n
// Step 2\n
var elOffset = this.$el.offset();\n
if(this.settings.position == \'right\'){\n
elOffset.left += this.$el.outerWidth() - this.settings.width;\n
}\n
elOffset.top += this.$el.outerHeight();\n
\n
// Step 3\n
var diffOffset = {\n
top: (elOffset.top - parentOffset.top),\n
left: (elOffset.left - parentOffset.top)\n
};\n
\n
this.$picker.css({\n
top: diffOffset.top,\n
left: diffOffset.left\n
});\n
\n
return this;\n
},\n
\n
hide: function() {\n
this.$picker.hide(this.settings.fadeTime, \'linear\', function() {\n
this.active = false;\n
}.bind(this));\n
},\n
\n
show: function() {\n
this.$el.focus();\n
this.updatePosition();\n
this.$picker.show(this.settings.fadeTime, \'linear\', function() {\n
this.active = true;\n
}.bind(this));\n
},\n
\n
/************\n
* EVENTS *\n
************/\n
\n
iconClicked : function(e) {\n
if ( this.$picker.is(\':hidden\') ) {\n
this.show();\n
} else {\n
this.hide();\n
}\n
},\n
\n
emojiClicked: function(e) {\n
var emojiShortcode = $(e.target).attr(\'class\').split(\'emoji-\')[1];\n
var emojiUnicode = toUnicode(findEmoji(emojiShortcode).unicode);\n
\n
insertAtCaret(this.element, emojiUnicode);\n
\n
// trigger change event on input\n
$(this.element).trigger("keyup");\n
},\n
\n
emojiCategoryClicked: function(e) {\n
var section = \'\';\n
\n
// Update tab\n
this.$picker.find(\'nav .tab\').removeClass(\'active\');\n
if ($(e.target).parent().hasClass(\'tab\')) {\n
section = $(e.target).parent().attr(\'data-tab\');\n
$(e.target).parent(\'.tab\').addClass(\'active\');\n
} else {\n
section = $(e.target).attr(\'data-tab\');\n
$(e.target).addClass(\'active\');\n
}\n
\n
// Update section\n
this.$picker.find(\'section\').addClass(\'hidden\');//.hide();\n
this.$picker.find(\'section.\' + section).removeClass(\'hidden\');//.show();\n
},\n
\n
pickerClicked: function(e) {\n
e.stopPropagation();\n
},\n
\n
clickOutside: function(e) {\n
if ( this.active ) {\n
this.hide();\n
}\n
}\n
\n
});\n
\n
$.fn[ pluginName ] = function ( options ) {\n
\n
// Calling a function\n
if (typeof options === \'string\') {\n
this.each(function() {\n
var plugin = $.data( this, pluginName );\n
switch(options) {\n
case \'toggle\':\n
plugin.iconClicked();\n
break;\n
}\n
});\n
return this;\n
}\n
\n
this.each(function() {\n
// Don\'t attach to the same element twice\n
if ( !$.data( this, pluginName ) ) {\n
$.data( this, pluginName, new Plugin( this, options ) );\n
}\n
});\n
return this;\n
};\n
\n
/* ---------------------------------------------------------------------- */\n
\n
function getPickerHTML() {\n
var nodes = [];\n
var categories = [\n
{ name: \'emotion\', symbol: \'grinning\' },\n
{ name: \'animal\', symbol: \'whale\' },\n
{ name: \'food\', symbol: \'hamburger\' },\n
{ name: \'folderol\', symbol: \'sunny\' },\n
{ name: \'thing\', symbol: \'kiss\' },\n
{ name: \'travel\', symbol: \'rocket\' }\n
];\n
var aliases = {\n
\'people\': \'emotion\',\n
\'symbol\': \'thing\',\n
\'undefined\': \'thing\'\n
}\n
var items = {};\n
\n
// Re-Sort Emoji table\n
$.each($.fn.emojiPicker.emojis, function(i, emoji) {\n
var category = aliases[ emoji.category ] || emoji.category;\n
items[ category ] = items[ category ] || [];\n
items[ category ].push( emoji );\n
});\n
\n
nodes.push(\'<div class="emojiPicker">\');\n
nodes.push(\'<nav>\');\n
for (var i in categories) {\n
nodes.push(\'<div class="tab\' +\n
( i == 0 ? \' active\' : \'\' ) +\n
\'" data-tab="\' +\n
categories[i].name +\n
\'"><div class="emoji emoji-\' +\n
categories[i].symbol +\n
\'"></div></div>\');\n
}\n
nodes.push(\'</nav>\');\n
for (var i in categories) {\n
nodes.push(\'<section class="\' +\n
categories[i].name +\n
( i == 0 ? \'\' : \' hidden\' ) +\n
\'">\');\n
for (var j in items[ categories[i].name ] ) {\n
var emoji = items[ categories[i].name ][ j ];\n
nodes.push(\'<div class="emoji emoji-\' + emoji.shortcode + \'"></div>\');\n
}\n
nodes.push(\'</section>\');\n
}\n
nodes.push(\'</div>\');\n
return nodes.join("\\n");\n
}\n
\n
function findEmoji(emojiShortcode) {\n
var emojis = $.fn.emojiPicker.emojis;\n
for (var i = 0; i < emojis.length; i++) {\n
if (emojis[i].shortcode == emojiShortcode) {\n
return emojis[i];\n
}\n
}\n
}\n
\n
function insertAtCaret(inputField, myValue) {\n
if (document.selection) {\n
//For browsers like Internet Explorer\n
inputField.focus();\n
var sel = document.selection.createRange();\n
sel.text = myValue;\n
inputField.focus();\n
}\n
else if (inputField.selectionStart || inputField.selectionStart == \'0\') {\n
//For browsers like Firefox and Webkit based\n
var startPos = inputField.selectionStart;\n
var endPos = inputField.selectionEnd;\n
var scrollTop = inputField.scrollTop;\n
inputField.value = inputField.value.substring(0, startPos)+myValue+inputField.value.substring(endPos,inputField.value.length);\n
inputField.focus();\n
inputField.selectionStart = startPos + myValue.length;\n
inputField.selectionEnd = startPos + myValue.length;\n
inputField.scrollTop = scrollTop;\n
} else {\n
inputField.focus();\n
inputField.value += myValue;\n
}\n
}\n
\n
function toUnicode(code) {\n
var codes = code.split(\'-\').map(function(value, index) {\n
return parseInt(value, 16);\n
});\n
return String.fromCodePoint.apply(null, codes);\n
}\n
\n
if (!String.fromCodePoint) {\n
// ES6 Unicode Shims 0.1 , © 2012 Steven Levithan http://slevithan.com/ , MIT License\n
String.fromCodePoint = function fromCodePoint () {\n
var chars = [], point, offset, units, i;\n
for (i = 0; i < arguments.length; ++i) {\n
point = arguments[i];\n
offset = point - 0x10000;\n
units = point > 0xFFFF ? [0xD800 + (offset >> 10), 0xDC00 + (offset & 0x3FF)] : [point];\n
chars.push(String.fromCharCode.apply(null, units));\n
}\n
return chars.join("");\n
}\n
}\n
\n
})(jQuery);
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>RenderJS Gadget JabberEmoji 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>normie</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>1442218770.38</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>normie</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>945.48009.36125.21742</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>1442218219.6</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>normie</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>1442218102.77</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment