diff --git a/extension/Resources/Public/Emoji/1f3b2.svg b/extension/Resources/Public/Emoji/1f3b2.svg index 6855089077022a0b69e2eb7317f9542232bea73a..5b0235384d9cfc4e010fba68c3e686ecee73dc73 100644 --- a/extension/Resources/Public/Emoji/1f3b2.svg +++ b/extension/Resources/Public/Emoji/1f3b2.svg @@ -1 +1 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 47.5 47.5" style="enable-background:new 0 0 47.5 47.5;" xml:space="preserve" version="1.1" id="svg2"><metadata id="metadata8"><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/></cc:Work></rdf:RDF></metadata><defs id="defs6"><clipPath id="clipPath16" clipPathUnits="userSpaceOnUse"><path id="path18" d="M 0,38 38,38 38,0 0,0 0,38 Z"/></clipPath></defs><g transform="matrix(1.25,0,0,-1.25,0,47.5)" id="g10"><g id="g12"><g clip-path="url(#clipPath16)" id="g14"><g transform="translate(5,26)" id="g20"><path id="path22" style="fill:#a0041e;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 0,-12.375 c 0,-2.042 1.093,-2.484 1.093,-2.484 0,0 9.752,-7.667 11.574,-9.099 1.821,-1.432 1.333,1.583 1.333,1.583 L 14,-11 0,0 Z"/></g><g transform="translate(33,26)" id="g24"><path id="path26" style="fill:#dd2e44;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 0,-12.375 c 0,-2.042 -1.063,-2.484 -1.063,-2.484 0,0 -9.767,-7.667 -11.588,-9.099 -1.823,-1.432 -1.349,1.583 -1.349,1.583 L -14,-11 0,0 Z"/></g><g transform="translate(20.2891,36.5)" id="g28"><path id="path30" style="fill:#ea596e;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c -0.753,0.61 -1.988,0.61 -2.742,0 l -11.982,-9.529 c -0.754,-0.61 -0.754,-1.607 0,-2.216 l 12.023,-9.647 c 0.755,-0.609 1.989,-0.609 2.743,0 l 12.104,9.731 c 0.753,0.609 0.753,1.606 0,2.216 L 0,0 Z"/></g><g transform="translate(22.416,26)" id="g32"><path id="path34" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c 0,-1.289 -1.306,-2.333 -2.916,-2.333 -1.611,0 -2.916,1.044 -2.916,2.333 0,1.289 1.305,2.333 2.916,2.333 C -1.306,2.333 0,1.289 0,0"/></g><g transform="translate(29.5439,16.4668)" id="g36"><path id="path38" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 0,0 C -0.872,0 -1.375,0.902 -1.123,2.017 -0.872,3.13 0.039,4.033 0.911,4.033 1.784,4.033 2.287,3.13 2.035,2.017 1.784,0.902 0.872,0 0,0"/></g><g transform="translate(26.4541,11.2578)" id="g40"><path id="path42" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c -0.883,0 -1.392,0.949 -1.138,2.121 0.255,1.172 1.179,2.121 2.062,2.121 0.884,0 1.392,-0.949 1.138,-2.121 C 1.808,0.949 0.884,0 0,0"/></g><g transform="translate(23.0195,6.0508)" id="g44"><path id="path46" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c -0.838,0 -1.322,0.921 -1.08,2.058 0.242,1.136 1.118,2.057 1.957,2.057 0.839,0 1.322,-0.921 1.081,-2.057 C 1.716,0.921 0.839,0 0,0"/></g><g transform="translate(8.188,18.999)" id="g48"><path id="path50" style="fill:#e1e8ed;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c -0.994,0 -1.567,-1.007 -1.28,-2.249 0.286,-1.243 1.325,-2.25 2.319,-2.25 0.994,0 1.567,1.007 1.28,2.25 C 2.033,-1.007 0.994,0 0,0"/></g><g transform="translate(13.7715,11.5)" id="g52"><path id="path54" style="fill:#e1e8ed;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c -0.994,0 -1.567,-1.007 -1.281,-2.25 0.287,-1.242 1.326,-2.25 2.32,-2.25 0.994,0 1.567,1.008 1.28,2.25 C 2.033,-1.007 0.994,0 0,0"/></g><g transform="translate(19,1.25)" id="g56"><path id="path58" style="fill:#ea596e;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c -0.552,0 -1,0.482 -1,1.078 l 0,12.927 c 0,0.596 0.448,1.078 1,1.078 0.553,0 1,-0.482 1,-1.078 L 1,1.078 C 1,0.482 0.553,0 0,0"/></g></g></g></g></svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 47.5 47.5" style="enable-background:new 0 0 47.5 47.5;" xml:space="preserve" version="1.1" id="svg2" height="32px" width="32px"><metadata id="metadata8"><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/></cc:Work></rdf:RDF></metadata><defs id="defs6"><clipPath id="clipPath16" clipPathUnits="userSpaceOnUse"><path id="path18" d="M 0,38 38,38 38,0 0,0 0,38 Z"/></clipPath></defs><g transform="matrix(1.25,0,0,-1.25,0,47.5)" id="g10"><g id="g12"><g clip-path="url(#clipPath16)" id="g14"><g transform="translate(5,26)" id="g20"><path id="path22" style="fill:#a0041e;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 0,-12.375 c 0,-2.042 1.093,-2.484 1.093,-2.484 0,0 9.752,-7.667 11.574,-9.099 1.821,-1.432 1.333,1.583 1.333,1.583 L 14,-11 0,0 Z"/></g><g transform="translate(33,26)" id="g24"><path id="path26" style="fill:#dd2e44;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 0,-12.375 c 0,-2.042 -1.063,-2.484 -1.063,-2.484 0,0 -9.767,-7.667 -11.588,-9.099 -1.823,-1.432 -1.349,1.583 -1.349,1.583 L -14,-11 0,0 Z"/></g><g transform="translate(20.2891,36.5)" id="g28"><path id="path30" style="fill:#ea596e;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c -0.753,0.61 -1.988,0.61 -2.742,0 l -11.982,-9.529 c -0.754,-0.61 -0.754,-1.607 0,-2.216 l 12.023,-9.647 c 0.755,-0.609 1.989,-0.609 2.743,0 l 12.104,9.731 c 0.753,0.609 0.753,1.606 0,2.216 L 0,0 Z"/></g><g transform="translate(22.416,26)" id="g32"><path id="path34" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c 0,-1.289 -1.306,-2.333 -2.916,-2.333 -1.611,0 -2.916,1.044 -2.916,2.333 0,1.289 1.305,2.333 2.916,2.333 C -1.306,2.333 0,1.289 0,0"/></g><g transform="translate(29.5439,16.4668)" id="g36"><path id="path38" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 0,0 C -0.872,0 -1.375,0.902 -1.123,2.017 -0.872,3.13 0.039,4.033 0.911,4.033 1.784,4.033 2.287,3.13 2.035,2.017 1.784,0.902 0.872,0 0,0"/></g><g transform="translate(26.4541,11.2578)" id="g40"><path id="path42" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c -0.883,0 -1.392,0.949 -1.138,2.121 0.255,1.172 1.179,2.121 2.062,2.121 0.884,0 1.392,-0.949 1.138,-2.121 C 1.808,0.949 0.884,0 0,0"/></g><g transform="translate(23.0195,6.0508)" id="g44"><path id="path46" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c -0.838,0 -1.322,0.921 -1.08,2.058 0.242,1.136 1.118,2.057 1.957,2.057 0.839,0 1.322,-0.921 1.081,-2.057 C 1.716,0.921 0.839,0 0,0"/></g><g transform="translate(8.188,18.999)" id="g48"><path id="path50" style="fill:#e1e8ed;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c -0.994,0 -1.567,-1.007 -1.28,-2.249 0.286,-1.243 1.325,-2.25 2.319,-2.25 0.994,0 1.567,1.007 1.28,2.25 C 2.033,-1.007 0.994,0 0,0"/></g><g transform="translate(13.7715,11.5)" id="g52"><path id="path54" style="fill:#e1e8ed;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c -0.994,0 -1.567,-1.007 -1.281,-2.25 0.287,-1.242 1.326,-2.25 2.32,-2.25 0.994,0 1.567,1.008 1.28,2.25 C 2.033,-1.007 0.994,0 0,0"/></g><g transform="translate(19,1.25)" id="g56"><path id="path58" style="fill:#ea596e;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c -0.552,0 -1,0.482 -1,1.078 l 0,12.927 c 0,0.596 0.448,1.078 1,1.078 0.553,0 1,-0.482 1,-1.078 L 1,1.078 C 1,0.482 0.553,0 0,0"/></g></g></g></g></svg> diff --git a/extension/Resources/Public/Emoji/1f3c6.svg b/extension/Resources/Public/Emoji/1f3c6.svg index 3823783a1d3d7db7a25db6bbddc9ac70ba086631..181442798576c18b641481f826a663a72d84c4a7 100644 --- a/extension/Resources/Public/Emoji/1f3c6.svg +++ b/extension/Resources/Public/Emoji/1f3c6.svg @@ -1 +1 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 47.5 47.5" style="enable-background:new 0 0 47.5 47.5;" xml:space="preserve" version="1.1" id="svg2"><metadata id="metadata8"><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/></cc:Work></rdf:RDF></metadata><defs id="defs6"><clipPath id="clipPath16" clipPathUnits="userSpaceOnUse"><path id="path18" d="M 0,38 38,38 38,0 0,0 0,38 Z"/></clipPath></defs><g transform="matrix(1.25,0,0,-1.25,0,47.5)" id="g10"><g id="g12"><g clip-path="url(#clipPath16)" id="g14"><g transform="translate(6,32)" id="g20"><path id="path22" style="fill:#ffac33;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 0,0 6,0 C 7.104,0 8,0.104 8,-1 L 8,1 C 8,2.104 7.104,3 6,3 l -8,0 c -2,0 -3.583,-2.125 -3,-5 0,0 1.791,-9.375 1.917,-9.958 C -2.75,-13.5 -0.958,-15 0.958,-15 l 6.959,0 C 9.021,-15 8,-13.104 8,-12 l 0,2 c 0,-1.104 -0.896,-2 -2,-2 l -4,0 c -1.104,0 -1.833,1.042 -2,2 -0.167,0.958 -1.583,7.333 -1.583,7.333 C -1.917,-0.75 -1.104,0 0,0"/></g><g transform="translate(31.8125,32)" id="g24"><path id="path26" style="fill:#ffac33;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 -6,0 c -1.104,0 -2.813,0.104 -2.813,-1 l 0,2 c 0,1.104 1.709,2 2.813,2 l 8,0 c 2,0 3.584,-2.125 3,-5 0,0 -1.633,-9.419 -1.771,-10 -0.354,-1.5 -2.042,-3 -4,-3 l -7.145,0 c -1.105,0 -0.897,1.896 -0.897,3 l 0,2 c 0,-1.104 1.709,-2 2.813,-2 l 4,0 c 1.104,0 1.834,1.042 2,2 0.166,0.958 1.584,7.333 1.584,7.333 C 1.916,-0.75 1.104,0 0,0"/></g><g transform="translate(21.709,15)" id="g28"><path id="path30" style="fill:#ffac33;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c 0,6.958 -2.709,0 -2.709,0 0,0 -3,6.958 -3,0 C -5.709,-6.958 -9,-10 -9,-10 l 6.291,0 6,0 C 3.291,-10 0,-6.958 0,0"/></g><g transform="translate(30,30.4233)" id="g32"><path id="path34" style="fill:#ffcc4d;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c 0,-6.775 -6.77,-18.192 -11,-18.192 -4.231,0 -11,11.417 -11,18.192 0,5.195 1,6.319 3,6.319 1.374,0 6.025,0.027 8,0.027 1.391,0 5.914,0.002 7,0.002 2.917,0 4,-0.685 4,-6.348"/></g><g transform="translate(28,4)" id="g36"><path id="path38" style="fill:#c1694f;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c 0,-1.104 0.104,-2 -1,-2 l -16,0 c -1.104,0 -1,0.896 -1,2 l 0,1 c 0,1.104 1.042,2 2.083,2 L -2,3 C -0.958,3 0,2.104 0,1 L 0,0 Z"/></g><g transform="translate(30,2.375)" id="g40"><path id="path42" style="fill:#c1694f;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c 0,-0.76 0.042,-1.375 -1.375,-1.375 l -19.25,0 C -21.917,-1.375 -22,-0.76 -22,0 l 0,0.25 c 0,0.76 0.616,1.375 1.375,1.375 l 19.25,0 C -0.615,1.625 0,1.01 0,0.25 L 0,0 Z"/></g></g></g></g></svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg width="32px" height="32px" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 47.5 47.5" style="enable-background:new 0 0 47.5 47.5;" xml:space="preserve" version="1.1" id="svg2"><metadata id="metadata8"><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/></cc:Work></rdf:RDF></metadata><defs id="defs6"><clipPath id="clipPath16" clipPathUnits="userSpaceOnUse"><path id="path18" d="M 0,38 38,38 38,0 0,0 0,38 Z"/></clipPath></defs><g transform="matrix(1.25,0,0,-1.25,0,47.5)" id="g10"><g id="g12"><g clip-path="url(#clipPath16)" id="g14"><g transform="translate(6,32)" id="g20"><path id="path22" style="fill:#ffac33;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 0,0 6,0 C 7.104,0 8,0.104 8,-1 L 8,1 C 8,2.104 7.104,3 6,3 l -8,0 c -2,0 -3.583,-2.125 -3,-5 0,0 1.791,-9.375 1.917,-9.958 C -2.75,-13.5 -0.958,-15 0.958,-15 l 6.959,0 C 9.021,-15 8,-13.104 8,-12 l 0,2 c 0,-1.104 -0.896,-2 -2,-2 l -4,0 c -1.104,0 -1.833,1.042 -2,2 -0.167,0.958 -1.583,7.333 -1.583,7.333 C -1.917,-0.75 -1.104,0 0,0"/></g><g transform="translate(31.8125,32)" id="g24"><path id="path26" style="fill:#ffac33;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 -6,0 c -1.104,0 -2.813,0.104 -2.813,-1 l 0,2 c 0,1.104 1.709,2 2.813,2 l 8,0 c 2,0 3.584,-2.125 3,-5 0,0 -1.633,-9.419 -1.771,-10 -0.354,-1.5 -2.042,-3 -4,-3 l -7.145,0 c -1.105,0 -0.897,1.896 -0.897,3 l 0,2 c 0,-1.104 1.709,-2 2.813,-2 l 4,0 c 1.104,0 1.834,1.042 2,2 0.166,0.958 1.584,7.333 1.584,7.333 C 1.916,-0.75 1.104,0 0,0"/></g><g transform="translate(21.709,15)" id="g28"><path id="path30" style="fill:#ffac33;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c 0,6.958 -2.709,0 -2.709,0 0,0 -3,6.958 -3,0 C -5.709,-6.958 -9,-10 -9,-10 l 6.291,0 6,0 C 3.291,-10 0,-6.958 0,0"/></g><g transform="translate(30,30.4233)" id="g32"><path id="path34" style="fill:#ffcc4d;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c 0,-6.775 -6.77,-18.192 -11,-18.192 -4.231,0 -11,11.417 -11,18.192 0,5.195 1,6.319 3,6.319 1.374,0 6.025,0.027 8,0.027 1.391,0 5.914,0.002 7,0.002 2.917,0 4,-0.685 4,-6.348"/></g><g transform="translate(28,4)" id="g36"><path id="path38" style="fill:#c1694f;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c 0,-1.104 0.104,-2 -1,-2 l -16,0 c -1.104,0 -1,0.896 -1,2 l 0,1 c 0,1.104 1.042,2 2.083,2 L -2,3 C -0.958,3 0,2.104 0,1 L 0,0 Z"/></g><g transform="translate(30,2.375)" id="g40"><path id="path42" style="fill:#c1694f;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c 0,-0.76 0.042,-1.375 -1.375,-1.375 l -19.25,0 C -21.917,-1.375 -22,-0.76 -22,0 l 0,0.25 c 0,0.76 0.616,1.375 1.375,1.375 l 19.25,0 C -0.615,1.625 0,1.01 0,0.25 L 0,0 Z"/></g></g></g></g></svg> diff --git a/javascript/src/DragAndDrop.js b/javascript/src/DragAndDrop.js index 8fc2d30fc1761a14ff25c12b6a0a66b14918a8ec..884e6be76e0e41effb124eff539488f188d53119 100644 --- a/javascript/src/DragAndDrop.js +++ b/javascript/src/DragAndDrop.js @@ -19,7 +19,7 @@ var QfqNS = QfqNS || {}; 'use strict'; /** - * Dragging and dropping area! + * */ n.DragAndDrop = function ($hook) { this.$container = $hook; @@ -266,5 +266,4 @@ var QfqNS = QfqNS || {}; } }; - })(QfqNS); \ No newline at end of file diff --git a/javascript/src/Droplet.js b/javascript/src/Droplet.js new file mode 100644 index 0000000000000000000000000000000000000000..90194388c90adb991e0e4eaf0b481ec5e2a6d175 --- /dev/null +++ b/javascript/src/Droplet.js @@ -0,0 +1,125 @@ +/** + * @author Benjamin Baer <benjamin.baer@math.uzh.ch> + */ + +/* global $ */ +/* global EventEmitter */ +/* @depend QfqEvents.js */ +/* @depend Alert.js */ +/* @depend Element/ElementBuilder.js */ + +/** + * Qfq Namespace + * + * @namespace QfqNS + */ +var QfqNS = QfqNS || {}; + +(function (n) { + + n.Droplet = function (url, color) { + this._$trigger = {}; + this.position = {}; + this._$container = {}; + this.visible = false; + this.eventEmitter = new EventEmitter(); + this.content = {}; + this.forms = []; + this.url = url; + this.color = color; + }; + + n.Droplet.prototype.on = n.EventEmitter.onMixin; + + n.Droplet.prototype.setTrigger = function($trigger) { + this._$trigger = $trigger; + var that = this; + this._$trigger.click(function() {that.toggleDroplet();}); + }; + + n.Droplet.prototype.setContainer = function($container) { + this._$container = $container; + }; + + n.Droplet.prototype.setPosition = function(left, top) { + this.position = { + left: left, + top: top + }; + }; + + n.Droplet.prototype.getContent = function() { + var that = this; + var response = jQuery.getJSON(this.url, function(data) { + that._processResponse(data); + }); + this._$container.text("Getting Data..."); + }; + + n.Droplet.prototype._processResponse = function(data) { + this._$container.text(''); + for(var i=0; i < data.elements.length; i++) { + var element = data.elements[i]; + var $element = new n.ElementBuilder(element); + this._$container.append($element.display()); + var that = this; + if (element.type === "form") this.forms.push($element); + } + + this.forms[0].on('form.submit.success', + function() { that.toggleDroplet(); }); + }; + + n.Droplet.prototype.createContainerBellowTrigger = function () { + this.setPosition( + this._$trigger.offset().left, + this._$trigger.offset().top + this._$trigger.outerHeight() + ); + var $container = $("<div />", { + class: "qfq-droplet-container qfq-droplet-" + this.color + }); + $container.css({ + position: 'absolute', + zIndex: '100', + top: this.position.top + 10 + "px", + left: this.position.left + "px" + }); + + $(document.body).append($container); + $container.addClass("qfq-droplet-container"); + $container.hide(); + return $container; + }; + + n.Droplet.prototype.getContainer = function() { + if (this._$container) { + console.error("No container has been created"); + } else { + return this._$container; + } + }; + + n.Droplet.prototype.toggleDroplet = function () { + if (this.visible) { + this._$container.hide(); + this.visible = false; + this.forms = []; + } else { + this.eventEmitter.emitEvent('droplet.toggle', + n.EventEmitter.makePayload(this, "toggle")); + this._$container.show(); + this.visible = true; + if (this.url) { + this.getContent(); + } + } + }; + + n.Droplet.prototype.hideDroplet = function() { + if (this.visible) { + this._$container.hide(); + this.visible = false; + } + }; + +})(QfqNS); diff --git a/javascript/src/DropletController.js b/javascript/src/DropletController.js new file mode 100644 index 0000000000000000000000000000000000000000..a99a45db76057db671e65685ec6637e575b9d619 --- /dev/null +++ b/javascript/src/DropletController.js @@ -0,0 +1,56 @@ +/** + * @author Benjamin Baer <benjamin.baer@math.uzh.ch> + */ +/* global $ */ +/* global EventEmitter */ +/* @depend QfqEvents.js */ +/* @depend Alert.js */ +/* @depend Droplet.js */ +/** + * Qfq Namespace + * + * @namespace QfqNS + */ +var QfqNS = QfqNS || {}; +(function (n) { + 'use strict'; + + n.DropletController = function() { + this.droplets = []; + this.eventEmitter = new EventEmitter(); + }; + + n.DropletController.prototype.setUpDroplets = function() { + var that = this; + + $(".qfq-droplet").each(function() { + var url = false; + var color = "grey"; + if ($(this).data("content")) { + url = $(this).data("content"); + } + if ($(this).data("color")) { + color = $(this).data("color"); + } + var droplet = new QfqNS.Droplet(url, color); + droplet.setTrigger($(this)); + droplet.setContainer(droplet.createContainerBellowTrigger()); + + that.droplets.push(droplet); + droplet.on('droplet.toggle', function() { that.hideDroplets(); }); + }); + }; + + n.DropletController.prototype.getDroplet = function(reference) { + if (reference < this.droplets.length && reference >= 0) { + return this.droplets[reference]; + } + }; + + n.DropletController.prototype.hideDroplets = function() { + for(var i=0; i < this.droplets.length; i++) { + this.droplets[i].hideDroplet(); + } + }; + +})(QfqNS); \ No newline at end of file diff --git a/javascript/src/Element/ElementBuilder.js b/javascript/src/Element/ElementBuilder.js new file mode 100644 index 0000000000000000000000000000000000000000..5b67761708f41e9df445e3d206f0d1368a33be9d --- /dev/null +++ b/javascript/src/Element/ElementBuilder.js @@ -0,0 +1,186 @@ +/** + * @author Benjamin Baer <benjamin.baer@math.uzh.ch> + */ + +/* global $ */ +/* global EventEmitter */ +/* @depend ../QfqEvents.js */ + + +/** + * Qfq Namespace + * + * @namespace QfqNS + */ +var QfqNS = QfqNS || {}; + +(function (n) { + 'use strict'; + + n.ElementBuilder = function(obj, parent) { + this.type = obj.type; + this.class = obj.class || false; + this.text = obj.text || false; + this.tooltip = obj.tooltip || false; + this.label = obj.label || false; + this.value = obj.value || false; + this.width = obj.width || false; + this.name = obj.name || false; + this.onClick = obj.onClick || false; + this.parent = parent || false; + this.submitTo = obj.submitTo || false; + this.checked = obj.checked || false; + this.$element = {}; + this.children = []; + this.eventEmitter = new EventEmitter(); + + + if (obj.children) { + for (var i = 0; i < obj.children.length; i++) { + var iparent = this; + if (this.type !== "form") { + iparent = this.parent; + } + var element = new n.ElementBuilder(obj.children[i], iparent); + + this.children.push(element); + } + } + + }; + + n.ElementBuilder.prototype.on = n.EventEmitter.onMixin; + + n.ElementBuilder.prototype.display = function() { + var $element = {}; + + if (this.type === "form") { + $element = this._buildForm(); + var that = this; + $element.submit(function(event) { + event.preventDefault(); + that.handleSubmit(); + }); + this.$form = $element; + } + + if (this.type === "row") $element = this._buildRow(); + if (this.type === "checkbox" || + this.type === "radio" || + this.type === "hidden") $element = this._buildInput(); + if (this.type === "label") $element = this._buildLabel(); + + if (this.children) { + for (var i = 0; i < this.children.length; i++) { + var $child = this.children[i].display(); + $element.append($child); + } + } + + this.$element = $element; + return $element; + }; + + n.ElementBuilder.prototype._buildRow = function() { + var options = { + class: "row" + this._getOption(this.class), + text: this._getOption(this.text) + }; + return $("<div />", options); + }; + + n.ElementBuilder.prototype._buildInput = function() { + var $block = {}; + if (this.type !== "hidden") { + $block = this._buildBlock(this.width); + } + + var options = { + class: this._getOption(this.class), + type: this._getOption(this.type), + name: this._getOption(this.name), + value: this._getOption(this.value) + }; + + if (this.type === "checkbox" || this.type === "radio") { + options.checked = this.checked; + } + + var $input = $("<input />", options); + + if (this.onClick === "submit") { + var that = this; + $input.on("click", function() { + that.submit(); + }); + } + + if (this.type !== "hidden") { + $block.append($input); + return $block; + } else { + return $input; + } + }; + + n.ElementBuilder.prototype._buildLabel = function() { + var $block = this._buildBlock(this.width, "qfq-label"); + var options = { + class: "control-label" + this._prepareClass(this.class, true), + text: this._getOption(this.text) + }; + var $label = $("<span />", options); + $block.append($label); + return $block; + }; + + n.ElementBuilder.prototype._buildBlock = function(size, cssClass) { + var options = { + class: "col-md-" + size + this._prepareClass(cssClass, true) + }; + return $("<div />", options); + }; + + n.ElementBuilder.prototype._prepareClass = function(value, isAddition) { + if (isAddition) return " " + value; + return "" + value; + }; + + n.ElementBuilder.prototype._buildForm = function() { + return $("<form />"); + }; + + n.ElementBuilder.prototype._getOption = function(o) { + if (o !== undefined && o) { + return o; + } else { + return ""; + } + }; + + n.ElementBuilder.prototype.submit = function() { + if (this.type !== "form") { + this.parent.$element.submit(); + } else { + this.$element.submit(); + } + }; + + n.ElementBuilder.prototype.handleSubmit = function() { + $.post(this.submitTo, this.$element.serialize()) + .done(this.submitSuccessHandler.bind(this)) + .fail(this.submitFailureHandler.bind(this)); + }; + + n.ElementBuilder.prototype.submitSuccessHandler = function(data, textStatus, jqXHR) { + var configuration = data['element-update']; + n.ElementUpdate.updateAll(configuration); + this.eventEmitter.emitEvent('form.submit.success', + n.EventEmitter.makePayload(this, "submit")); + }; + + n.ElementBuilder.prototype.submitFailureHandler = function (data, textStatus, jqXHR) { + console.error("Submit failed"); + }; + +})(QfqNS); diff --git a/javascript/src/Plugins/qfq.fabric.js b/javascript/src/Plugins/qfq.fabric.js index 295640aee89854b8ad27ddd8d38fc4219a1231dc..31b00f27fffff0443201ea3c959093a1214d3ad0 100644 --- a/javascript/src/Plugins/qfq.fabric.js +++ b/javascript/src/Plugins/qfq.fabric.js @@ -20,6 +20,7 @@ $(function (n) { this.parentElement = {}; this.rotation = 0; this.controlElement = $('<div>', { + class: 'qfq-fabric-bar', id: 'qfq-fabric-control' }); this.emojiContainer = {}; @@ -86,7 +87,7 @@ $(function (n) { ModeSettings.prototype.setUpButtons = function() { var $controlWrapper = this.qFabric.controlElement; - var $buttonGroup = $("<div>", {class: "btn-group"}); + var $buttonGroup = $("<div>", {class: "btn-group pull-left"}); var that = this; this.myModes.modes.forEach(function(o) { var $button = $("<button>", { @@ -112,7 +113,7 @@ $(function (n) { $controlWrapper.append($buttonGroup); - var $colorSelector = $("<div>", {class: "color-picker"}); + var $colorSelector = $("<div>", {class: "color-picker pull-right"}); $controlWrapper.append($colorSelector); if (this.myModes.colors instanceof Array) { this.myModes.colors.forEach(function (o) { @@ -235,6 +236,7 @@ $(function (n) { $emojiField.append($img); $img.on("dragstart", function() { that.qFabric.dragAndDrop = true; + //that.qFabric.parentElement.css('cursor', 'url("' + o.url + '"), auto'); that.qFabric.dndData = o.url; }); }) @@ -262,6 +264,7 @@ $(function (n) { this.outputField = $("#" + inputField); this.imageOutput = $("#" + imageOutput); this.getMeta(this.backgroundImage, function(width, height) { that.prepareImageEditor(width, height);}); + var jsonButtons = $fabricElement.data('buttons'); this.modeSettings.initialize(this, jsonButtons); } else { this.outputField = $("#" + inputField); diff --git a/less/qfq-bs.css.less b/less/qfq-bs.css.less index 80fde973aa1107148c0312197507e8d29ee9e1d9..a93cdce868c609ef35172a6fb35a2e0645626d69 100644 --- a/less/qfq-bs.css.less +++ b/less/qfq-bs.css.less @@ -209,6 +209,23 @@ select.qfq-locked:invalid { } // Fabric Plugin classes + +.qfq-fabric-bar { + position: -webkit-sticky; + position: sticky; + top: 0; + width: 100%; + min-height: 41px; + z-index: 100; + border: 1px solid #ccc; + background-color: #ededed; + padding: 5px; +} + +.qfq-fabric-bar .btn { + padding: 3px 8px; +} + .fabric-text { width: 100%; height: 80px; @@ -228,7 +245,7 @@ select.qfq-locked:invalid { } .color-picker { - margin-top: 5px; + margin-top: 2px; } .color-picker > button { @@ -669,4 +686,55 @@ select.qfq-locked:invalid { .qfqTargetDisplay { border: 1px dashed #25adf1; +} + +// Droplets + +.qfq-droplet-container { + position: absolute; + border-radius: 6px; + padding: 15px; +} + +.qfq-droplet-container:before { + content: ' '; + position: absolute; + left: 10px; + top: -10px; + border: 5px solid; +} + +.qfq-droplet-container:after { + content: ' '; + position: absolute; + left: 20px; + top: -10px; + border: 5px solid; +} + +.qfq-droplet-grey { + border: 2px solid #ccc; + background-image: linear-gradient(to bottom,#f0f0f0 0,#e0e0e0 100%); + box-shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075); +} + +.qfq-droplet-container.qfq-droplet-grey:after { + border-color: transparent transparent #ccc #ccc; +} + +.qfq-droplet-container.qfq-droplet-grey:before { + border-color: transparent #ccc #ccc transparent; +} + +.qfq-droplet-blue { + border: 2px solid #25adf1; + background-image: linear-gradient(to bottom,#d9edf7 0,#b9def0 100%); +} + +.qfq-droplet-container.qfq-droplet-blue:after { + border-color: transparent transparent #25adf1 #25adf1; +} + +.qfq-droplet-container.qfq-droplet-blue:before { + border-color: transparent #25adf1 #25adf1 transparent; } \ No newline at end of file diff --git a/mockup/api/droplet_submit_success.json b/mockup/api/droplet_submit_success.json new file mode 100644 index 0000000000000000000000000000000000000000..56c3979b80416cbaf867d5e43a94b068f8115b0f --- /dev/null +++ b/mockup/api/droplet_submit_success.json @@ -0,0 +1,7 @@ +{ + "status": "ok", + "message": "Success", + "element-update": { + "div": "bla" + } +} \ No newline at end of file diff --git a/mockup/droplet.html b/mockup/droplet.html new file mode 100644 index 0000000000000000000000000000000000000000..f105c7cd0580f41b9788d9cc29465c486cf51940 --- /dev/null +++ b/mockup/droplet.html @@ -0,0 +1,95 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + + <link rel="stylesheet" href="../css/bootstrap.min.css"> + <link rel="stylesheet" href="../css/bootstrap-theme.min.css"> + <link rel="stylesheet" href="../css/jqx.base.css"> + <link rel="stylesheet" href="../css/jqx.bootstrap.css"> + <link rel="stylesheet" href="../extension/Resources/Public/Css/qfq-bs.css"> + <title>Input Mode Switcher</title> +</head> +<body> +<div class="container-fluid"> + <div class="row"> + <div class="col-md-10 "> + <div class="btn-toolbar pull-right" role="toolbar"> + <div class="btn-group" role="group"> + <button id="save-button" type="button" class="btn btn-default navbar-btn"><span + class="glyphicon glyphicon-ok"></span></button> + <button id="close-button" type="button" class="btn btn-default navbar-btn"><span + class="glyphicon glyphicon-remove"></span></button> + </div> + <div class="btn-group" role="group"> + <button id="delete-button" type="button" class="btn btn-default navbar-btn"><span + class="glyphicon glyphicon-trash"></span></button> + </div> + <div class="btn-group" role="group"> + <a id="form-new-button" href="personmock.html?s=badcaffe1" class="btn btn-default navbar-btn"><span + class="glyphicon glyphicon-plus"></span></a> + </div> + </div> + </div> + </div> + + + <div class="row"> + <div class="col-md-4"> + + <!-- + Class qfq-droplet so that process starts + Color: grey, blue, green, orange, red + --> + <button + id="i343" + class="btn btn-primary qfq-droplet" + data-content="mockData/checkboxlist.json" + data-color="blue" + > + Test + </button> + <button + id="i344" + class="btn btn-default qfq-droplet" + style="position: relative; left: 30px; top: 90px;" + data-content="mockData/checkboxlist.json" + data-color="grey" + > + Test + </button> + + + </div> + </div> +</div> + +<script src="../js/jquery.min.js"></script> +<script src="../js/bootstrap.min.js"></script> +<script src="../js/fabric.min.js"></script> +<script src="../js/validator.min.js"></script> +<script src="../js/jqx-all.js"></script> +<script src="../js/EventEmitter.min.js"></script> +<script src="../js/qfq.debug.js"></script> + +<script type="text/javascript"> + $(function () { + var qfqPage = new QfqNS.QfqPage({ + tabsId: 'myTabs', + formId: 'myForm', + submitTo: 'api/' + $("#submitTo").val(), + deleteUrl: 'api/' + $("#deleteUrl").val(), + fileUploadTo: 'api/' + $("#uploadTo").val(), + fileDeleteUrl: 'api/' + $("#fileDeleteUrl").val() + }); + + QfqNS.Log.level = 0; + + var droplets = new QfqNS.DropletController(); + droplets.setUpDroplets(); + }); +</script> +</body> +</html> \ No newline at end of file diff --git a/mockup/fabric.html b/mockup/fabric.html index 7d2f82cbe4713b582b3c01e4ce034fce2055fe10..0f074e4c53b015e3463abe068debfb1d505383f0 100644 --- a/mockup/fabric.html +++ b/mockup/fabric.html @@ -36,13 +36,13 @@ </div> </div> </div> - <!-- remove this - <img src="mockData/Scan2a.jpeg" class="qfq-fabric-image" id="qfq-fabric-image-1"> </img> - --> + <div class="row"> <div class="col-md-4"> + + <div class="fabric" data-buttons="mockData/fabric.buttons.json" data-emojis="mockData/qfq.emoji.json" diff --git a/mockup/imageCutFabric.html b/mockup/imageCutFabric.html index a5fd4f084e0c09c8bb4721e20966feb657cf94df..0c4c446ea58dbca784a02b4990d160e6e91871b3 100644 --- a/mockup/imageCutFabric.html +++ b/mockup/imageCutFabric.html @@ -36,6 +36,7 @@ </div> </div> + <div class="row"> <div class="col-md-4"> <div class="fabric" diff --git a/mockup/mockData/checkboxlist.json b/mockup/mockData/checkboxlist.json new file mode 100644 index 0000000000000000000000000000000000000000..e42b831d2732a3fe44089315542b298927b2d141 --- /dev/null +++ b/mockup/mockData/checkboxlist.json @@ -0,0 +1,177 @@ +{ + "elements": [ + { + "type": "form", + "class": "", + "submitTo": "api/droplet_submit_success.json", + "children": [ + { + "type": "hidden", + "name": "sip", + "value": "55xewf2334" + }, + { + "type": "row", + "class": "", + "children": [ + { + "type": "checkbox", + "text": "", + "name": "option1", + "tooltip": "An option", + "onClick": "submit", + "width": 3, + "value": "option1", + "checked": true + }, + { + "type": "label", + "class": "", + "text": "Option 1", + "width": 9, + "tooltip": "An option" + } + ] + }, + { + "type": "row", + "class": "", + "children": [ + { + "type": "checkbox", + "text": "", + "name": "option2", + "onClick": "submit", + "tooltip": "An option", + "value": "option2", + "checked": true, + "width": 3 + }, + { + "type": "label", + "class": "", + "text": "Option 2", + "width": 9, + "tooltip": "An option" + } + ] + }, + { + "type": "row", + "class": "", + "children": [ + { + "type": "checkbox", + "text": "", + "onClick": "submit", + "name": "option3", + "tooltip": "An option", + "width": 3, + "value": "option3", + "checked": false + }, + { + "type": "label", + "class": "", + "text": "Option 3", + "width": 9, + "tooltip": "An option" + } + ] + }, + { + "type": "row", + "class": "", + "children": [ + { + "type": "checkbox", + "text": "", + "onClick": "submit", + "name": "option4", + "tooltip": "An option", + "width": 3, + "value": "option4", + "checked": false + }, + { + "type": "label", + "class": "", + "text": "Option 4", + "width": 9, + "tooltip": "An option" + } + ] + }, + { + "type": "row", + "class": "", + "children": [ + { + "type": "checkbox", + "text": "", + "onClick": "submit", + "name": "option5", + "tooltip": "An option", + "width": 3, + "value": "option5", + "checked": false + }, + { + "type": "label", + "class": "", + "text": "Option 5", + "width": 9, + "tooltip": "An option" + } + ] + }, + { + "type": "row", + "class": "", + "children": [ + { + "type": "checkbox", + "text": "", + "onClick": "submit", + "name": "option6", + "tooltip": "An option", + "width": 3, + "value": "option6", + "checked": true + }, + { + "type": "label", + "class": "", + "text": "Option 6", + "width": 9, + "tooltip": "An option" + } + ] + }, + { + "type": "row", + "class": "", + "children": [ + { + "type": "checkbox", + "text": "", + "onClick": "submit", + "name": "option7", + "tooltip": "An option", + "width": 3, + "value": "option7", + "checked": false + }, + { + "type": "label", + "class": "", + "text": "Option 7", + "width": 9, + "tooltip": "An option" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/mockup/mockData/qfq.emoji.back.json b/mockup/mockData/qfq.emoji.back.json new file mode 100644 index 0000000000000000000000000000000000000000..211c5949ca3c3f690dd52647e3973cb5a681b0ed --- /dev/null +++ b/mockup/mockData/qfq.emoji.back.json @@ -0,0 +1,361 @@ +{ + "emojis": [ + { + "name": "dice", + "code": ":dice:", + "class": "emoji emoji-dice", + "selector": "e-dice", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f3b2.svg" + }, + { + "name": "trophy", + "code": ":trophy:", + "class": "emoji emoji-trophy", + "selector": "e-trophy", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f3c6.svg" + }, + { + "name": "lightbulb", + "code": ":lighbulb:", + "class": "emoji emoji-lightbulb", + "selector": "e-lightbulb", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f4a1.svg" + }, + { + "name": "bomb", + "code": ":bomb:", + "class": "emoji emoji-bomb", + "selector": "e-bomb", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f4a3.svg" + }, + { + "name": "100p", + "code": ":100p:", + "class": "emoji emoji-onehundred", + "selector": "e-onehundred", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f4af.svg" + }, + { + "name": "forbidden", + "code": ":forbidden:", + "class": "emoji emoji-forbidden", + "selector": "e-forbidden", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f6ab.svg" + }, + { + "name": "star", + "code": ":star:", + "class": "emoji emoji-star", + "selector": "e-star", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f31f.svg" + }, + { + "name": "cookie", + "code": ":cookie:", + "class": "emoji emoji-cookie", + "selector": "e-cookie", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f36a.svg" + }, + { + "name": "blush", + "code": ":blush:", + "class": "emoji emoji-blush", + "selector": "e-blush", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f60a.svg" + }, + { + "name": "love", + "code": ":love:", + "class": "emoji emoji-love", + "selector": "e-love", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f60d.svg" + }, + { + "name": "cool", + "code": ":cool:", + "class": "emoji emoji-cool", + "selector": "e-cool", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f60e.svg" + }, + { + "name": "tongue", + "code": ":tongue:", + "class": "emoji emoji-tongue", + "selector": "e-tongue", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f61b.svg" + }, + { + "name": "ehh", + "code": ":ehh:", + "class": "emoji emoji-ehh", + "selector": "e-ehh", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f62c.svg" + }, + { + "name": "wow", + "code": ":wow:", + "class": "emoji emoji-wow", + "selector": "e-wow", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f62e.svg" + }, + { + "name": "educated", + "code": ":educated:", + "class": "emoji emoji-educated", + "selector": "e-educated", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f393.svg" + }, + { + "name": "heart", + "code": ":heart:", + "class": "emoji emoji-heart", + "selector": "e-heart", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f496.svg" + }, + { + "name": "lol", + "code": ":lol:", + "class": "emoji emoji-lol", + "selector": "e-lol", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f602.svg" + }, + { + "name": "biggrin", + "code": ":biggrin:", + "class": "emoji emoji-biggrin", + "selector": "e-biggrin", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f603.svg" + }, + { + "name": "laughing", + "code": ":laughing:", + "class": "emoji emoji-laughing", + "selector": "e-laughing", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f604.svg" + }, + { + "name": "oops", + "code": ":oops:", + "class": "emoji emoji-oops", + "selector": "e-oops", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f605.svg" + }, + { + "name": "innocent", + "code": ":innocent:", + "class": "emoji emoji-innocent", + "selector": "e-innocent", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f607.svg" + }, + { + "name": "evil", + "code": ":evil:", + "class": "emoji emoji-evil", + "selector": "e-evil", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f608.svg" + }, + { + "name": "shocked", + "code": ":shocked:", + "class": "emoji emoji-shocked", + "selector": "e-shocked", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f631.svg" + }, + { + "name": "myBad", + "code": ":mybad:", + "class": "emoji emoji-mybad", + "selector": "e-mybad", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f632.svg" + }, + { + "name": "noReaction", + "code": ":noreaction:", + "class": "emoji emoji-noreaction", + "selector": "e-evil", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f636.svg" + }, + { + "name": "sad", + "code": ":sad:", + "class": "emoji emoji-sad", + "selector": "e-sad", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f641.svg" + }, + { + "name": "happy", + "code": ":happy:", + "class": "emoji emoji-happy", + "selector": "e-happy", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f642.svg" + }, + { + "name": "correct", + "code": ":correct:", + "class": "emoji emoji-correct", + "selector": "e-correct", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/2b55.svg" + }, + { + "name": "warning", + "code": ":warning:", + "class": "emoji emoji-warning", + "selector": "e-warning", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/26a0.svg" + }, + { + "name": "error", + "code": ":error:", + "class": "emoji emoji-correct", + "selector": "e-correct", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/26a1.svg" + }, + { + "name": "zero", + "code": ":zero:", + "class": "emoji emoji-zero", + "selector": "e-zero", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/30-20e3.svg" + }, + { + "name": "one", + "code": ":one:", + "class": "emoji emoji-one", + "selector": "e-one", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/31-20e3.svg" + }, + { + "name": "two", + "code": ":two:", + "class": "emoji emoji-two", + "selector": "e-two", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/32-20e3.svg" + }, + { + "name": "three", + "code": ":three:", + "class": "emoji emoji-three", + "selector": "e-three", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/33-20e3.svg" + }, + { + "name": "four", + "code": ":four:", + "class": "emoji emoji-four", + "selector": "e-four", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/34-20e3.svg" + }, + { + "name": "five", + "code": ":five:", + "class": "emoji emoji-five", + "selector": "e-five", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/35-20e3.svg" + }, + { + "name": "six", + "code": ":six:", + "class": "emoji emoji-six", + "selector": "e-six", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/36-20e3.svg" + }, + { + "name": "seven", + "code": ":seven:", + "class": "emoji emoji-seven", + "selector": "e-seven", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/37-20e3.svg" + }, + { + "name": "eight", + "code": ":eight:", + "class": "emoji emoji-eight", + "selector": "e-eight", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/38-20e3.svg" + }, + { + "name": "nine", + "code": ":nine:", + "class": "emoji emoji-nine", + "selector": "e-nine", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/39-20e3.svg" + }, + { + "name": "hand", + "code": ":hand:", + "class": "emoji emoji-hand", + "selector": "e-hand", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/261d.svg" + }, + { + "name": "checked", + "code": ":checked:", + "class": "emoji emoji-checked", + "selector": "e-checked", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/2714.svg" + }, + { + "name": "wrong", + "code": ":wrong:", + "class": "emoji emoji-wrong", + "selector": "e-wrong", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/274c.svg" + }, + { + "name": "question", + "code": ":question:", + "class": "emoji emoji-question", + "selector": "e-question", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/2753.svg" + }, + { + "name": "exclamation", + "code": ":exclamation:", + "class": "emoji emoji-exclamation", + "selector": "e-excla", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/2757.svg" + }, + { + "name": "pencil", + "code": ":pencil:", + "class": "emoji emoji-pencil", + "selector": "e-pencil", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/270f.svg" + }, + { + "name": "coffee", + "code": ":coffee:", + "class": "emoji emoji-coffee", + "selector": "e-coffee", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/2615.svg" + }, + { + "name": "sun", + "code": ":sun:", + "class": "emoji emoji-sun", + "selector": "e-sun", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/2600.svg" + }, + { + "name": "rain", + "code": ":rain:", + "class": "emoji emoji-rain", + "selector": "e-rain", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/2614.svg" + }, + { + "name": "glitter", + "code": ":glitter:", + "class": "emoji emoji-glitter", + "selector": "e-glitter", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/2728.svg" + }, + { + "name": "recycle", + "code": ":recycle:", + "class": "emoji emoji-recycle", + "selector": "e-recycle", + "url": "typo3conf/ext/qfq/Resources/Public/Emoji/267b.svg" + } + ] +} \ No newline at end of file diff --git a/mockup/mockData/qfq.emoji.json b/mockup/mockData/qfq.emoji.json index 211c5949ca3c3f690dd52647e3973cb5a681b0ed..3a33b869ebfc7312ef32482e91d26366f3f41dea 100644 --- a/mockup/mockData/qfq.emoji.json +++ b/mockup/mockData/qfq.emoji.json @@ -5,357 +5,357 @@ "code": ":dice:", "class": "emoji emoji-dice", "selector": "e-dice", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f3b2.svg" + "url": "../extension/Resources/Public/Emoji/1f3b2.svg" }, { "name": "trophy", "code": ":trophy:", "class": "emoji emoji-trophy", "selector": "e-trophy", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f3c6.svg" + "url": "../extension/Resources/Public/Emoji/1f3c6.svg" }, { "name": "lightbulb", "code": ":lighbulb:", "class": "emoji emoji-lightbulb", "selector": "e-lightbulb", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f4a1.svg" + "url": "../extension/Resources/Public/Emoji/1f4a1.svg" }, { "name": "bomb", "code": ":bomb:", "class": "emoji emoji-bomb", "selector": "e-bomb", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f4a3.svg" + "url": "../extension/Resources/Public/Emoji/1f4a3.svg" }, { "name": "100p", "code": ":100p:", "class": "emoji emoji-onehundred", "selector": "e-onehundred", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f4af.svg" + "url": "../extension/Resources/Public/Emoji/1f4af.svg" }, { "name": "forbidden", "code": ":forbidden:", "class": "emoji emoji-forbidden", "selector": "e-forbidden", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f6ab.svg" + "url": "../extension/Resources/Public/Emoji/1f6ab.svg" }, { "name": "star", "code": ":star:", "class": "emoji emoji-star", "selector": "e-star", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f31f.svg" + "url": "../extension/Resources/Public/Emoji/1f31f.svg" }, { "name": "cookie", "code": ":cookie:", "class": "emoji emoji-cookie", "selector": "e-cookie", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f36a.svg" + "url": "../extension/Resources/Public/Emoji/1f36a.svg" }, { "name": "blush", "code": ":blush:", "class": "emoji emoji-blush", "selector": "e-blush", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f60a.svg" + "url": "../extension/Resources/Public/Emoji/1f60a.svg" }, { "name": "love", "code": ":love:", "class": "emoji emoji-love", "selector": "e-love", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f60d.svg" + "url": "../extension/Resources/Public/Emoji/1f60d.svg" }, { "name": "cool", "code": ":cool:", "class": "emoji emoji-cool", "selector": "e-cool", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f60e.svg" + "url": "../extension/Resources/Public/Emoji/1f60e.svg" }, { "name": "tongue", "code": ":tongue:", "class": "emoji emoji-tongue", "selector": "e-tongue", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f61b.svg" + "url": "../extension/Resources/Public/Emoji/1f61b.svg" }, { "name": "ehh", "code": ":ehh:", "class": "emoji emoji-ehh", "selector": "e-ehh", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f62c.svg" + "url": "../extension/Resources/Public/Emoji/1f62c.svg" }, { "name": "wow", "code": ":wow:", "class": "emoji emoji-wow", "selector": "e-wow", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f62e.svg" + "url": "../extension/Resources/Public/Emoji/1f62e.svg" }, { "name": "educated", "code": ":educated:", "class": "emoji emoji-educated", "selector": "e-educated", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f393.svg" + "url": "../extension/Resources/Public/Emoji/1f393.svg" }, { "name": "heart", "code": ":heart:", "class": "emoji emoji-heart", "selector": "e-heart", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f496.svg" + "url": "../extension/Resources/Public/Emoji/1f496.svg" }, { "name": "lol", "code": ":lol:", "class": "emoji emoji-lol", "selector": "e-lol", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f602.svg" + "url": "../extension/Resources/Public/Emoji/1f602.svg" }, { "name": "biggrin", "code": ":biggrin:", "class": "emoji emoji-biggrin", "selector": "e-biggrin", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f603.svg" + "url": "../extension/Resources/Public/Emoji/1f603.svg" }, { "name": "laughing", "code": ":laughing:", "class": "emoji emoji-laughing", "selector": "e-laughing", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f604.svg" + "url": "../extension/Resources/Public/Emoji/1f604.svg" }, { "name": "oops", "code": ":oops:", "class": "emoji emoji-oops", "selector": "e-oops", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f605.svg" + "url": "../extension/Resources/Public/Emoji/1f605.svg" }, { "name": "innocent", "code": ":innocent:", "class": "emoji emoji-innocent", "selector": "e-innocent", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f607.svg" + "url": "../extension/Resources/Public/Emoji/1f607.svg" }, { "name": "evil", "code": ":evil:", "class": "emoji emoji-evil", "selector": "e-evil", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f608.svg" + "url": "../extension/Resources/Public/Emoji/1f608.svg" }, { "name": "shocked", "code": ":shocked:", "class": "emoji emoji-shocked", "selector": "e-shocked", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f631.svg" + "url": "../extension/Resources/Public/Emoji/1f631.svg" }, { "name": "myBad", "code": ":mybad:", "class": "emoji emoji-mybad", "selector": "e-mybad", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f632.svg" + "url": "../extension/Resources/Public/Emoji/1f632.svg" }, { "name": "noReaction", "code": ":noreaction:", "class": "emoji emoji-noreaction", "selector": "e-evil", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f636.svg" + "url": "../extension/Resources/Public/Emoji/1f636.svg" }, { "name": "sad", "code": ":sad:", "class": "emoji emoji-sad", "selector": "e-sad", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f641.svg" + "url": "../extension/Resources/Public/Emoji/1f641.svg" }, { "name": "happy", "code": ":happy:", "class": "emoji emoji-happy", "selector": "e-happy", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/1f642.svg" + "url": "../extension/Resources/Public/Emoji/1f642.svg" }, { "name": "correct", "code": ":correct:", "class": "emoji emoji-correct", "selector": "e-correct", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/2b55.svg" + "url": "../extension/Resources/Public/Emoji/2b55.svg" }, { "name": "warning", "code": ":warning:", "class": "emoji emoji-warning", "selector": "e-warning", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/26a0.svg" + "url": "../extension/Resources/Public/Emoji/26a0.svg" }, { "name": "error", "code": ":error:", "class": "emoji emoji-correct", "selector": "e-correct", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/26a1.svg" + "url": "../extension/Resources/Public/Emoji/26a1.svg" }, { "name": "zero", "code": ":zero:", "class": "emoji emoji-zero", "selector": "e-zero", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/30-20e3.svg" + "url": "../extension/Resources/Public/Emoji/30-20e3.svg" }, { "name": "one", "code": ":one:", "class": "emoji emoji-one", "selector": "e-one", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/31-20e3.svg" + "url": "../extension/Resources/Public/Emoji/31-20e3.svg" }, { "name": "two", "code": ":two:", "class": "emoji emoji-two", "selector": "e-two", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/32-20e3.svg" + "url": "../extension/Resources/Public/Emoji/32-20e3.svg" }, { "name": "three", "code": ":three:", "class": "emoji emoji-three", "selector": "e-three", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/33-20e3.svg" + "url": "../extension/Resources/Public/Emoji/33-20e3.svg" }, { "name": "four", "code": ":four:", "class": "emoji emoji-four", "selector": "e-four", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/34-20e3.svg" + "url": "../extension/Resources/Public/Emoji/34-20e3.svg" }, { "name": "five", "code": ":five:", "class": "emoji emoji-five", "selector": "e-five", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/35-20e3.svg" + "url": "../extension/Resources/Public/Emoji/35-20e3.svg" }, { "name": "six", "code": ":six:", "class": "emoji emoji-six", "selector": "e-six", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/36-20e3.svg" + "url": "../extension/Resources/Public/Emoji/36-20e3.svg" }, { "name": "seven", "code": ":seven:", "class": "emoji emoji-seven", "selector": "e-seven", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/37-20e3.svg" + "url": "../extension/Resources/Public/Emoji/37-20e3.svg" }, { "name": "eight", "code": ":eight:", "class": "emoji emoji-eight", "selector": "e-eight", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/38-20e3.svg" + "url": "../extension/Resources/Public/Emoji/38-20e3.svg" }, { "name": "nine", "code": ":nine:", "class": "emoji emoji-nine", "selector": "e-nine", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/39-20e3.svg" + "url": "../extension/Resources/Public/Emoji/39-20e3.svg" }, { "name": "hand", "code": ":hand:", "class": "emoji emoji-hand", "selector": "e-hand", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/261d.svg" + "url": "../extension/Resources/Public/Emoji/261d.svg" }, { "name": "checked", "code": ":checked:", "class": "emoji emoji-checked", "selector": "e-checked", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/2714.svg" + "url": "../extension/Resources/Public/Emoji/2714.svg" }, { "name": "wrong", "code": ":wrong:", "class": "emoji emoji-wrong", "selector": "e-wrong", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/274c.svg" + "url": "../extension/Resources/Public/Emoji/274c.svg" }, { "name": "question", "code": ":question:", "class": "emoji emoji-question", "selector": "e-question", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/2753.svg" + "url": "../extension/Resources/Public/Emoji/2753.svg" }, { "name": "exclamation", "code": ":exclamation:", "class": "emoji emoji-exclamation", "selector": "e-excla", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/2757.svg" + "url": "../extension/Resources/Public/Emoji/2757.svg" }, { "name": "pencil", "code": ":pencil:", "class": "emoji emoji-pencil", "selector": "e-pencil", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/270f.svg" + "url": "../extension/Resources/Public/Emoji/270f.svg" }, { "name": "coffee", "code": ":coffee:", "class": "emoji emoji-coffee", "selector": "e-coffee", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/2615.svg" + "url": "../extension/Resources/Public/Emoji/2615.svg" }, { "name": "sun", "code": ":sun:", "class": "emoji emoji-sun", "selector": "e-sun", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/2600.svg" + "url": "../extension/Resources/Public/Emoji/2600.svg" }, { "name": "rain", "code": ":rain:", "class": "emoji emoji-rain", "selector": "e-rain", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/2614.svg" + "url": "../extension/Resources/Public/Emoji/2614.svg" }, { "name": "glitter", "code": ":glitter:", "class": "emoji emoji-glitter", "selector": "e-glitter", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/2728.svg" + "url": "../extension/Resources/Public/Emoji/2728.svg" }, { "name": "recycle", "code": ":recycle:", "class": "emoji emoji-recycle", "selector": "e-recycle", - "url": "typo3conf/ext/qfq/Resources/Public/Emoji/267b.svg" + "url": "../extension/Resources/Public/Emoji/267b.svg" } ] } \ No newline at end of file