From 1e1b76d4c230aa7005ef07b2065323ac415cb70a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Tue, 28 Oct 2014 14:35:06 +0100 Subject: [PATCH] add a mobile template, with minimalistic theme (#5751) --- data/themes/default/mobile.css | 0 data/themes/default/template.mobile.ezt | 61 ++++ wcs/qommon/static/css/mobile.css | 309 ++++++++++++++++++ wcs/qommon/static/images/categories/README | 5 + .../static/images/categories/generate.py | 50 +++ .../categories/icon_businessperson_1673.png | Bin 0 -> 1119 bytes .../categories/icon_crosswalk_23557.png | Bin 0 -> 932 bytes .../images/categories/icon_culture_13644.png | Bin 0 -> 1256 bytes .../images/categories/icon_document_14004.png | Bin 0 -> 1080 bytes .../images/categories/icon_document_32231.png | Bin 0 -> 863 bytes .../images/categories/icon_email_12513.png | Bin 0 -> 1413 bytes .../images/categories/icon_event_49638.png | Bin 0 -> 739 bytes .../categories/icon_fireworks_62444.png | Bin 0 -> 1447 bytes .../categories/icon_mobile-alarm_6412.png | Bin 0 -> 1266 bytes .../images/categories/icon_park_12581.png | Bin 0 -> 1029 bytes .../images/categories/icon_people_39826.png | Bin 0 -> 1023 bytes .../categories/icon_placeholder_58303.png | Bin 0 -> 731 bytes .../categories/icon_polling-place_14292.png | Bin 0 -> 813 bytes .../categories/icon_sanitation_4335.png | Bin 0 -> 771 bytes .../categories/icon_shopping-cart_38588.png | Bin 0 -> 1004 bytes .../images/categories/icon_tools_39567.png | Bin 0 -> 939 bytes .../images/categories/icon_trash_207.png | Bin 0 -> 1150 bytes .../categories/icon_triathlon_10860.png | Bin 0 -> 1759 bytes .../categories/src/icon_10860/icon_10860.svg | 10 + .../categories/src/icon_10860/license.txt | 3 + .../categories/src/icon_11723/icon_11723.svg | 9 + .../categories/src/icon_11723/license.txt | 8 + .../categories/src/icon_12513/icon_12513.svg | 6 + .../categories/src/icon_12513/license.txt | 8 + .../categories/src/icon_12581/icon_12581.svg | 47 +++ .../categories/src/icon_12581/license.txt | 3 + .../categories/src/icon_13644/icon_13644.svg | 5 + .../categories/src/icon_13644/license.txt | 8 + .../categories/src/icon_14004/icon_14004.svg | 17 + .../categories/src/icon_14004/license.txt | 8 + .../categories/src/icon_14292/icon_14292.svg | 7 + .../categories/src/icon_14292/license.txt | 3 + .../categories/src/icon_14847/icon_14847.svg | 7 + .../categories/src/icon_14847/license.txt | 8 + .../categories/src/icon_1673/icon_1673.svg | 24 ++ .../categories/src/icon_1673/license.txt | 3 + .../categories/src/icon_207/icon_207.svg | 21 ++ .../categories/src/icon_207/license.txt | 3 + .../categories/src/icon_23557/icon_23557.svg | 15 + .../categories/src/icon_23557/license.txt | 8 + .../categories/src/icon_26169/icon_26169.svg | 8 + .../categories/src/icon_26169/license.txt | 8 + .../categories/src/icon_29996/icon_29996.svg | 13 + .../categories/src/icon_29996/license.txt | 8 + .../categories/src/icon_32231/icon_32231.svg | 24 ++ .../categories/src/icon_32231/license.txt | 8 + .../categories/src/icon_38588/icon_38588.svg | 3 + .../categories/src/icon_38588/license.txt | 8 + .../categories/src/icon_39567/icon_39567.svg | 7 + .../categories/src/icon_39567/license.txt | 8 + .../categories/src/icon_39826/icon_39826.svg | 14 + .../categories/src/icon_39826/license.txt | 8 + .../categories/src/icon_41964/icon_41964.svg | 8 + .../categories/src/icon_41964/license.txt | 8 + .../categories/src/icon_4335/icon_4335.svg | 5 + .../categories/src/icon_4335/license.txt | 3 + .../categories/src/icon_43460/icon_43460.svg | 8 + .../categories/src/icon_43460/license.txt | 8 + .../categories/src/icon_47225/icon_47225.svg | 6 + .../categories/src/icon_47225/license.txt | 8 + .../categories/src/icon_49638/icon_49638.svg | 3 + .../categories/src/icon_49638/license.txt | 8 + .../categories/src/icon_50770/icon_50770.svg | 4 + .../categories/src/icon_50770/license.txt | 8 + .../categories/src/icon_52531/icon_52531.svg | 15 + .../categories/src/icon_52531/license.txt | 8 + .../categories/src/icon_54809/icon_54809.svg | 11 + .../categories/src/icon_54809/license.txt | 8 + .../categories/src/icon_58303/icon_58303.svg | 12 + .../categories/src/icon_58303/license.txt | 8 + .../categories/src/icon_607/icon_607.svg | 10 + .../categories/src/icon_607/license.txt | 3 + .../categories/src/icon_62444/icon_62444.svg | 39 +++ .../categories/src/icon_62444/license.txt | 8 + .../categories/src/icon_6412/icon_6412.svg | 6 + .../categories/src/icon_6412/license.txt | 8 + .../categories/src/icon_66954/icon_66954.svg | 47 +++ .../categories/src/icon_66954/license.txt | 8 + wcs/qommon/static/images/mobile/gear.png | Bin 0 -> 1679 bytes wcs/qommon/static/images/mobile/menu.png | Bin 0 -> 347 bytes wcs/qommon/static/js/wcs.mobile.js | 37 +++ 86 files changed, 1078 insertions(+) create mode 100644 data/themes/default/mobile.css create mode 100644 data/themes/default/template.mobile.ezt create mode 100644 wcs/qommon/static/css/mobile.css create mode 100644 wcs/qommon/static/images/categories/README create mode 100644 wcs/qommon/static/images/categories/generate.py create mode 100644 wcs/qommon/static/images/categories/icon_businessperson_1673.png create mode 100644 wcs/qommon/static/images/categories/icon_crosswalk_23557.png create mode 100644 wcs/qommon/static/images/categories/icon_culture_13644.png create mode 100644 wcs/qommon/static/images/categories/icon_document_14004.png create mode 100644 wcs/qommon/static/images/categories/icon_document_32231.png create mode 100644 wcs/qommon/static/images/categories/icon_email_12513.png create mode 100644 wcs/qommon/static/images/categories/icon_event_49638.png create mode 100644 wcs/qommon/static/images/categories/icon_fireworks_62444.png create mode 100644 wcs/qommon/static/images/categories/icon_mobile-alarm_6412.png create mode 100644 wcs/qommon/static/images/categories/icon_park_12581.png create mode 100644 wcs/qommon/static/images/categories/icon_people_39826.png create mode 100644 wcs/qommon/static/images/categories/icon_placeholder_58303.png create mode 100644 wcs/qommon/static/images/categories/icon_polling-place_14292.png create mode 100644 wcs/qommon/static/images/categories/icon_sanitation_4335.png create mode 100644 wcs/qommon/static/images/categories/icon_shopping-cart_38588.png create mode 100644 wcs/qommon/static/images/categories/icon_tools_39567.png create mode 100644 wcs/qommon/static/images/categories/icon_trash_207.png create mode 100644 wcs/qommon/static/images/categories/icon_triathlon_10860.png create mode 100644 wcs/qommon/static/images/categories/src/icon_10860/icon_10860.svg create mode 100644 wcs/qommon/static/images/categories/src/icon_10860/license.txt create mode 100644 wcs/qommon/static/images/categories/src/icon_11723/icon_11723.svg create mode 100644 wcs/qommon/static/images/categories/src/icon_11723/license.txt create mode 100644 wcs/qommon/static/images/categories/src/icon_12513/icon_12513.svg create mode 100644 wcs/qommon/static/images/categories/src/icon_12513/license.txt create mode 100644 wcs/qommon/static/images/categories/src/icon_12581/icon_12581.svg create mode 100644 wcs/qommon/static/images/categories/src/icon_12581/license.txt create mode 100644 wcs/qommon/static/images/categories/src/icon_13644/icon_13644.svg create mode 100644 wcs/qommon/static/images/categories/src/icon_13644/license.txt create mode 100644 wcs/qommon/static/images/categories/src/icon_14004/icon_14004.svg create mode 100644 wcs/qommon/static/images/categories/src/icon_14004/license.txt create mode 100644 wcs/qommon/static/images/categories/src/icon_14292/icon_14292.svg create mode 100644 wcs/qommon/static/images/categories/src/icon_14292/license.txt create mode 100644 wcs/qommon/static/images/categories/src/icon_14847/icon_14847.svg create mode 100644 wcs/qommon/static/images/categories/src/icon_14847/license.txt create mode 100644 wcs/qommon/static/images/categories/src/icon_1673/icon_1673.svg create mode 100644 wcs/qommon/static/images/categories/src/icon_1673/license.txt create mode 100644 wcs/qommon/static/images/categories/src/icon_207/icon_207.svg create mode 100644 wcs/qommon/static/images/categories/src/icon_207/license.txt create mode 100644 wcs/qommon/static/images/categories/src/icon_23557/icon_23557.svg create mode 100644 wcs/qommon/static/images/categories/src/icon_23557/license.txt create mode 100644 wcs/qommon/static/images/categories/src/icon_26169/icon_26169.svg create mode 100644 wcs/qommon/static/images/categories/src/icon_26169/license.txt create mode 100644 wcs/qommon/static/images/categories/src/icon_29996/icon_29996.svg create mode 100644 wcs/qommon/static/images/categories/src/icon_29996/license.txt create mode 100644 wcs/qommon/static/images/categories/src/icon_32231/icon_32231.svg create mode 100644 wcs/qommon/static/images/categories/src/icon_32231/license.txt create mode 100644 wcs/qommon/static/images/categories/src/icon_38588/icon_38588.svg create mode 100644 wcs/qommon/static/images/categories/src/icon_38588/license.txt create mode 100644 wcs/qommon/static/images/categories/src/icon_39567/icon_39567.svg create mode 100644 wcs/qommon/static/images/categories/src/icon_39567/license.txt create mode 100644 wcs/qommon/static/images/categories/src/icon_39826/icon_39826.svg create mode 100644 wcs/qommon/static/images/categories/src/icon_39826/license.txt create mode 100644 wcs/qommon/static/images/categories/src/icon_41964/icon_41964.svg create mode 100644 wcs/qommon/static/images/categories/src/icon_41964/license.txt create mode 100644 wcs/qommon/static/images/categories/src/icon_4335/icon_4335.svg create mode 100644 wcs/qommon/static/images/categories/src/icon_4335/license.txt create mode 100644 wcs/qommon/static/images/categories/src/icon_43460/icon_43460.svg create mode 100644 wcs/qommon/static/images/categories/src/icon_43460/license.txt create mode 100644 wcs/qommon/static/images/categories/src/icon_47225/icon_47225.svg create mode 100644 wcs/qommon/static/images/categories/src/icon_47225/license.txt create mode 100644 wcs/qommon/static/images/categories/src/icon_49638/icon_49638.svg create mode 100644 wcs/qommon/static/images/categories/src/icon_49638/license.txt create mode 100644 wcs/qommon/static/images/categories/src/icon_50770/icon_50770.svg create mode 100644 wcs/qommon/static/images/categories/src/icon_50770/license.txt create mode 100644 wcs/qommon/static/images/categories/src/icon_52531/icon_52531.svg create mode 100644 wcs/qommon/static/images/categories/src/icon_52531/license.txt create mode 100644 wcs/qommon/static/images/categories/src/icon_54809/icon_54809.svg create mode 100644 wcs/qommon/static/images/categories/src/icon_54809/license.txt create mode 100644 wcs/qommon/static/images/categories/src/icon_58303/icon_58303.svg create mode 100644 wcs/qommon/static/images/categories/src/icon_58303/license.txt create mode 100644 wcs/qommon/static/images/categories/src/icon_607/icon_607.svg create mode 100644 wcs/qommon/static/images/categories/src/icon_607/license.txt create mode 100644 wcs/qommon/static/images/categories/src/icon_62444/icon_62444.svg create mode 100644 wcs/qommon/static/images/categories/src/icon_62444/license.txt create mode 100644 wcs/qommon/static/images/categories/src/icon_6412/icon_6412.svg create mode 100644 wcs/qommon/static/images/categories/src/icon_6412/license.txt create mode 100644 wcs/qommon/static/images/categories/src/icon_66954/icon_66954.svg create mode 100644 wcs/qommon/static/images/categories/src/icon_66954/license.txt create mode 100644 wcs/qommon/static/images/mobile/gear.png create mode 100644 wcs/qommon/static/images/mobile/menu.png create mode 100644 wcs/qommon/static/js/wcs.mobile.js diff --git a/data/themes/default/mobile.css b/data/themes/default/mobile.css new file mode 100644 index 000000000..e69de29bb diff --git a/data/themes/default/template.mobile.ezt b/data/themes/default/template.mobile.ezt new file mode 100644 index 000000000..90c6a62dd --- /dev/null +++ b/data/themes/default/template.mobile.ezt @@ -0,0 +1,61 @@ + + + + [page_title] + + + [script] + + + + + + +
+ + [if-any links] + + [end] + + +
+ +
+ [if-any title]

[title]

[end] + [body] +
+ +
+ +
+ + +
+ + diff --git a/wcs/qommon/static/css/mobile.css b/wcs/qommon/static/css/mobile.css new file mode 100644 index 000000000..ae3836583 --- /dev/null +++ b/wcs/qommon/static/css/mobile.css @@ -0,0 +1,309 @@ +@import url(qommon.css); + +html { + background: white; + color: black; +} + +html, body, ul, li { + margin: 0; + padding: 0; + list-style: none; + font-family: sans-serif; + font-size: 15px; +} + +div#top { + position: relative; + height: 50px; + border-bottom: 1px solid #777; + background: #222; + background: linear-gradient(to bottom, #666, #222); +} + +div#top h1 { + font-size: 20px; +} + +a#menu { + position: absolute; + top: 0; + left: 0; +} + +a#gear { + position: absolute; + top: 0; + right: 0; +} + +#top h1 { + margin: 0; + text-align: center; + line-height: 50px; +} + +#top h1 a { + text-decoration: none; + color: white; +} + +#nav-site h3 { display: none; } + +ul.catforms li a, +#nav-site li a, +#nav-user li a { + padding: 2ex; + display: block; + border-bottom: 1px solid #888; + text-decoration: none; +} + +#nav-site li a:hover, +#nav-user li a:hover { + background: #eee; +} + +ul#categories { + margin-top: 1ex; +} + +ul#categories li { + width: 50%; + float: left; + height: 100px; + text-align: center; + vertical-align: bottom; + display: table; + background: url(mobile/58303-42.png) center center no-repeat; +} + +ul#categories li a { + padding: 1ex; +} + +ul#categories li a { + display: table-cell; + vertical-align: bottom; +} + +div#main-content { + padding: 0 10px; +} + +div#login form { + text-align: center; +} + +div#login form input { + width: 80%; +} + +form div.buttons { + clear: both; + margin-top: 1em; +} + +form div.buttons input { + padding: 1ex; + font-family: sans-serif; /* makes sure buttons all go through the same code path in firefox */ + width: 45%; +} + +form div.buttons div.savedraft-button input { + width: 93%; +} + +div.back-home-button a { + width: 90%; + display: block; + padding: 1ex; + text-align: center; +} + +div.TextWidget textarea, +div.RankedItemsWidget input, +div.StringWidget input, +div.IntWidget input, +div.DateWidget input, +div.WcsExtraStringWidget input, +div.RegexStringWidget input, +div.EmailWidget input, +div.PasswordWidget input, +div.PrefillSelectionWidget input[type=text] { + width: 90%; +} + +div.category h3 { + font-size: 150%; +} + +#content > h2, div.category h3 { + margin: 0 -10px 1em -10px; + border-bottom: 1px solid black; + padding: 1ex; + text-align: center; +} + +div.error { + text-align: left; +} + +div#services h3 { + display: none; +} + +div#services > ul > li { + width: 50%; + float: left; + height: 100px; + background: white; + text-align: center; + vertical-align: bottom; + display: table; + transition: all .2s ease-in-out; + -moz-transition: all .2s ease-in-out; + -webkit-transition: all .2s ease-in-out; +} + +@media screen and (min-width: 361px) { + div#services > ul > li { + width: 33%; + } +} + +@media screen and (min-width: 960px) { + div#services > ul > li { + width: 25%; + } +} + + +div#services > ul > li.active { + width: 100%; + position: absolute; + height: 100%; + left: 0; +} + +div#services > ul strong a { + text-decoration: none; + color: black; +} + +div#services > ul strong a:focus { + outline: none; +} + +div#services > ul > li:active { + -moz-transform: scale(1.3); + -webkit-transform: scale(1.3); +} + +div#services > ul > li.active:active { + -moz-transform: none; + -webkit-transform: none; +} + +div#services > ul > li.active > strong { + display: block; + height: 50px; + line-height: 50px; +} + +div#services > ul > li.active > ul { + text-align: center; + background: white; + display: block; +} + +div#services > ul > li.active > ul a { + padding: 1ex; + display: block; + text-decoration: none; + border-bottom: 1px solid #aaa; +} + +div#services ul li.active strong { + background-position: 1ex 50%; +} + +div#services ul p, div#services ul ul { + display: none; +} + +div#droite { + display: none; +} + +li.required-authentication span { + display: none; +} + +ul#categories { + margin: 0 -1ex; +} + + +div#services > ul > li, +ul#categories li { + background-color: #eee; +} + +div#services > ul strong { + cursor: pointer; +} + +div#services > ul strong a { + color: #008; +} + +div#services ul strong { + display: table-cell; + vertical-align: bottom; + padding-bottom: 1ex; + border: 1px solid white; + background: url(../images/categories/icon_placeholder_58303.png) center center no-repeat; +} + +div#services #category-emploi strong, +div#services #category-formalites-pour-les-entreprises strong { + background-image: url(../images/categories/icon_businessperson_1673.png); +} + +div#services #category-eau-et-assainissement strong, +div#services #category-hygiene-salubrite-environnement strong { + background-image: url(../images/categories/icon_sanitation_4335.png); +} + +div#services #category-vie-pratique strong { + background-image: url(../images/categories/icon_crosswalk_23557.png); +} + +div#services #category-culture strong { + background-image: url(../images/categories/icon_culture_13644.png); +} + +div#services #category-etat-civil strong { + background-image: url(../images/categories/icon_document_14004.png); +} + +div#services #category-formalites-administratives strong { + background-image: url(../images/categories/icon_document_32231.png); +} + +div#services #category-vos-enfants strong { + background-image: url(../images/categories/icon_people_39826.png); +} + +div#services #category-sport strong { + background-image: url(../images/categories/icon_triathlon_10860.png); +} + +div#services #category-telealarme strong { + background-image: url(../images/categories/icon_mobile-alarm_6412.png); +} + +div#services #category-collecte-des-dechets-menagers strong { + background-image: url(../images/categories/icon_trash_207.png); +} diff --git a/wcs/qommon/static/images/categories/README b/wcs/qommon/static/images/categories/README new file mode 100644 index 000000000..c25c4db56 --- /dev/null +++ b/wcs/qommon/static/images/categories/README @@ -0,0 +1,5 @@ +This directory holds icons downloaded from thenounproject.com; individual +license files are available in src/*/license.txt. + +generate.py is a small script using Inkscape to convert the source SVG files +into PNG files of appropriate size. diff --git a/wcs/qommon/static/images/categories/generate.py b/wcs/qommon/static/images/categories/generate.py new file mode 100644 index 000000000..0b5a871b8 --- /dev/null +++ b/wcs/qommon/static/images/categories/generate.py @@ -0,0 +1,50 @@ +#! /usr/bin/env python + +from optparse import OptionParser +import subprocess +import tempfile +import xml.etree.ElementTree as ET + +mapping = { + '207': 'trash', + '1673': 'businessperson', + '4335': 'sanitation', + '6412': 'mobile-alarm', + '10860': 'triathlon', + '12513': 'email', + '12581': 'park', + '13644': 'culture', + '14004': 'document', + '14292': 'polling-place', + '23557': 'crosswalk', + '32231': 'document', + '38588': 'shopping-cart', + '39826': 'people', + '39567': 'tools', + '49638': 'event', + '58303': 'placeholder', + '62444': 'fireworks', +} + +parser = OptionParser() +parser.add_option('-c', '--colour', dest='colour', metavar='COLOUR') +(options, args) = parser.parse_args() + +for icon_id, icon_name in mapping.items(): + svg_path = 'src/icon_%s/icon_%s.svg' % (icon_id, icon_id) + if options.colour: + tree = ET.fromstring(file(svg_path).read().replace('#000000', '#%s' % options.colour)) + for elem in tree.findall('*'): + if not elem.attrib.get('style'): + elem.attrib['style'] = 'fill:#%s' % options.colour + f = tempfile.NamedTemporaryFile(suffix='.svg', delete=False) + f.write(ET.tostring(tree)) + f.close() + svg_path = f.name + output_filename = 'icon_%s_%s_%s.png' % (icon_name, icon_id, options.colour) + else: + output_filename = 'icon_%s_%s.png' % (icon_name, icon_id) + subprocess.call(['inkscape', '--without-gui', + '--file', svg_path, + '--export-png', output_filename, + '--export-width', '42']) diff --git a/wcs/qommon/static/images/categories/icon_businessperson_1673.png b/wcs/qommon/static/images/categories/icon_businessperson_1673.png new file mode 100644 index 0000000000000000000000000000000000000000..0727df44995d7ed41839586f80fef073e5fbee64 GIT binary patch literal 1119 zcmV-l1fctgP)F7&ajyY5aG^Gwcr zJZIiBbC&H74=*$GeEiRIW}cZjuNY&f3K3}sb^&XFHNX6%0Y}Vl>}G~ z3;`w}CxDJhaVnDB1B^Ez>Et)yxfv%4bOZmCBRoI!jfWL^Vp#wnc|FPHa1jb5|`~~Qp z@x9(7`z&y&3CSbCBUR#v2CD=SX$7`p3wfVTi$UNU;DRycV&xdqL3Aci<@7Y8n3ZBA zB5l}%#a!+B(-?DEM79BM>)2J`6JyL*BC-~H7?}VDjWK^j2aQ-X8-PRDd(d4P7t0Oc zVc=Az|1j_vaNFyf#LnN(fZDXJdSIRsoFcrk4*-t>*R_2ad$2yz#O@fdpb}B+3ck@K zkdrB3BT&=!W|gw{sTV_B3Kx@zbOQar(!k7VFaZ_;PiXro&2Skk0#1p@vLc0CqPkd4 zV(;fMsB{0U*#rC(VcP-pi^$x(!J>@r#(qqQMIC!P1xvJ!of2iy3%rv%k~1$`xW6D` z6=*9nM>hd0BeLKytiLX!D|Bm(dHn#Lz?N)h9?>@=9Xr%TWFfYk z0n7%LW8Y3Jwq`r>h(4fH68`*j=pl`0P2a|UXdo>AJ$*j-heIJH)PhhXufTzayK` z)NF#Cqtlg9$js9$(a`+-7}yWoDHt!x=uPZ}&c`V5k;+7Yzs96_Woa?R`}y~(^EhxX zXM9A*&u99FGbPKHE*(2p5YqtNdF5#fb{ovY8U1}7Xw4aK6OlgPJ#4nnhkjQ?mSeZm zENc3Dx*(?GWZ`A>bl}N0sLs)V&Q0u=yA^wsdmme>1`G7hsL!5&&+`qZCtwc6A7$@g zv)BUs9&l=~-|goCuc-c)0o_rcUE|jabS8lLKGC-V4v(wOx+Wx@^ef4IC3I`*`_q8V z4xi{30mYrFv$rHsLwJGsa!`H07SK87E})@TIteUP#qT1BmX)8?cN@iDT}IHm-Ae&S zm()=w&95S<@{Gnf8PIvTh460V%F-JYm#(TPU8X{RX06euJ>m6Dc{1tAJx?Y)8TaI_ lCu1tEOg)LMJYzXB_%CAZbg3&|ITio_002ovPDHLkV1hVu0)_wp literal 0 HcmV?d00001 diff --git a/wcs/qommon/static/images/categories/icon_crosswalk_23557.png b/wcs/qommon/static/images/categories/icon_crosswalk_23557.png new file mode 100644 index 0000000000000000000000000000000000000000..551c7d20d12ad2a7a3c48f1917504eb9ea68ee46 GIT binary patch literal 932 zcmV;V16%xwP)_N0v|$yB6_Jn0tume)Js8vM0BGJAEXP2QAlAIgR}xg#8wZp4sEB&BIi({ z3pTU&|L^tBe`e3j+WUyA@;}6&zir@mW58(a7%&<;`nORL87U%5MIG6`q~ zZUN6kWL6B_bd2aWV2qt-18ZW4ro(8Xcl|boXl4u%FD?R8fwjO5RXra=RMJuFMPw8( zLRH_#(v14(MI=K+jsR`I3lS-bCa$Vc4q!ZR6VSx*1(*^=Ka$A>z$?#W>bUSP8GUZ1 z&iuseDPa6xH3|#^z5><2a?ju~;IW;z0=xgTpBRfN2M{wl*W)g!>U>}ka23e^(@tXS zqcg3o26lN|3xKLV1RnOKlNclV4yaJo2ELchRP2bL?;^%xO3c>^+siLJ5`Y4Y%8z!KaRq_~xS)=cK&wyG}UN`cXqlhkN3?NuIry;q|^iI-4oc(I4K z14Dt?xL3O;z)9nBfjK}Wt{Oc8_5v#{r`^*kwmxb-yd-E8$V-e)>R5qWa19<_V>yR_ zE5P9dHyc-0KbXln;3ZIQIW?YEgY~h(!#jbz9!7yI+(%jR#{0$P)Oria-YTKXLsU;)#PA`y5ItlUv@}D-5;8NbOtZ{D%qH(TyN7+I_8iVP zGv}Lch-ks$JA19Q*Z!Y<)>?a=^Mx3rx)ef~fXP@LV?0q~-eouxW87SO(HLVb#!MVR z#9l1H9CTFJ4#!n^0Y4RUx^Z*ebwk}94I#XUyDL-&u?;(M6q9fPPOGq88DpGXXWh11 zC=+!wkdMTSf}8cxkcQQr@Nd!o3TPL$x4=)IG+3a^aE?@}?r31M9P=>^_h4gFD>YG` zUX{vB#FUb5Q>Ke}8*L?%d?cOx0$oI&*@CI&@YHeHL_f%YhNAX3;*Yd#v?ct*p zvW7+h%p`W?KF}lA6{xfy7nPlp#TiT6vIDipNA!~**xl6MRIwF;+M*3Y?*)y&UG{(4A>N`mpy()z8dj+qmm_BQu;}F6~ zsYyqJ7!4tGU<%HY;%EJoU@GuTHu-#Y@qs?>S>PG9^k&c#$IZig1ARPU-5%J~({ z!&fEwAH^eTD}M7Q(Q=^qS^Ou~>V0;9pM}QM22MVgnve0AjVm#&m~&SPKpukC#oz!Y z7tZHpMn9sxkWbI#+odKrkKY*;b@bX60R5JKitd)o`IwU7`*;Xjit$PeFKm})cE8}f z63`1vzUJcO0q~k^&T{y!7-yw z5|ay$58zSkkz#V3)I686zc|LYspP+1 zsVwC|fLcC;t!590Dd z)`9iv?dbGY?r0Uz{1n-TccjLo4#?M939=E;cBu(yCV3)$z~~_dnkCOd?5YX!Q;cmj z$c8{Oz{7E!bO0Rd1K`)v3t!t%fQ+%m-!~zI(bC^B=NBA{#M>5QZ0;*^4f+d4smFRI S`Q&*300001J@fhlJb;tVo|*q;fp0S7bXZE@cZ zzqxb1@0@dI=IR57GxxmjdCv2_=bSt5Iag*z2$B{9Jwan0E(7Px?CP9Y%xp#hmH{6F z{{S{m{f3$KXET(dxyH#Z11qck`cMHL z0mhxbFS~z<>`^D0m`{;S{I5FyHQ?Ut_ACFA^)f%{`q-!`JaBruv7A-F!ZIk*QHlC;sx zesAej^JWS~v{6QZyKa`v)DG)_ZzbItGTux=0UieqN}8oBwnpb0KLP6l?Mr~CfH#3{ z!1KUYGd${CqX}#HT_68M)~=WI9MG2#soiFFD#0&?uYq@f^^!Wx>{`Q+@_IU%Fu=Sd zFJ?9>X%e^_xEB~}*kVFY1BVjE=#tdsfB$V}=PD^JFx}uJLufDXQRYCOkhWa15EFU; z_&k&I-)d6YBPR4|;N@IWN$t#oX7*VwXH4iN;E!C=2&SrZiV6J%IA4Vr_|43w<8En) z34MwD&D6jX!10QGXCWr^Q_@~fAzY}~FL-{B34ILM-t>IR%s!|nAQiiSFUyT}CnZss z*)d5EQ;KX`p=LG&3@xOv7UP~Rx81OOR8qI3jgq=k{A(2|X_2J2B~4HyJU;@Hk|w;p z^$gdQj{+-!5$7KSUIU)-deGZPXmLYROGG7gQoQDRfMj7`?0S>wUOw`*uvCp6T+JST0lWqLMfJ}$)4)S5BD<3!^Ph6xDSzJCZboK( yzG*8DS0000MvlJqd>{?M!R1`u5S(h*fq)T3e zj?u|Z5fL4duu~KUoy zTr3cmeCB8yi!2{TcU1L8I;3d%q<%fn;_$poji2-h4*yKt;68J792ocT&-j426nn21kxmiOj7wkK z_&%wB2R!ib$I)n9qfhFGfT2V<8R);f%{vC1$~gW*RlN|$=rc!G0FB9b7F2y)qt6`e z1$qm|uLSm(`X--`(zzG&uhf$kTPWyJ^_q2|Rp%jWN! pc|Rs&7@)9_mr_db>T)XF@f#7PHYB6tA0z+(002ovPDHLkV1hjieX9Tf literal 0 HcmV?d00001 diff --git a/wcs/qommon/static/images/categories/icon_email_12513.png b/wcs/qommon/static/images/categories/icon_email_12513.png new file mode 100644 index 0000000000000000000000000000000000000000..fd31743abd2f93575318e99d30ff8ee6beacd8b4 GIT binary patch literal 1413 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 literal 0 HcmV?d00001 diff --git a/wcs/qommon/static/images/categories/icon_placeholder_58303.png b/wcs/qommon/static/images/categories/icon_placeholder_58303.png new file mode 100644 index 0000000000000000000000000000000000000000..399a85d02d0d528f8521bd75cf3ad71268907145 GIT binary patch literal 731 zcmV<10wn#3P)Jx3_%pfKW`b95E2nT5>67AmFz)ci4X}l4jX@g zi^M^~O*nFt5Lb>kh;Zk^!H*+H#EJv6g!s8KOLo5w{btopck7dX3wqz{V`g^HB8>uP-Tt8GWS#0F>hJO|+CK*E zSHP-D1d~5+0Ox_vKFJht9auMr<0+QrNt&MxB*@G*10N*KEPPE<-yt&6yi7@Y-&3j_ zs?A+r8_+^a-;K;{1uzaA0v-XkR3wqf8}$Vv_cYOE5hgNIz=ggYPX!>)_{)9+w}InC zxxp{DUn(861M+akvpvAiEZDw+5(Vcuf5{)(H0cAx!`zVw2CN0P0V~}$0i2L@FLSWjF5n`t*G<#FOW+HzkKksCd9+}e z0iFOSfn^0&WDK}Nv=ZUG|MlqZE<8F5dIG>P$*% zbA>K~_FA!|#LPC90g|Pp?5UYxD_tSzTPpa)x!ssMo~o|e1XFE5{{r~@k>Frw#Df3; N002ovPDHLkV1m%MI@SOH literal 0 HcmV?d00001 diff --git a/wcs/qommon/static/images/categories/icon_polling-place_14292.png b/wcs/qommon/static/images/categories/icon_polling-place_14292.png new file mode 100644 index 0000000000000000000000000000000000000000..37ae8ac37166dcdf62674b6be61ce671a3926df1 GIT binary patch literal 813 zcmV+|1JeA7P)#JtOT*p#wv~AAFv1r!B~q}S*S@YEJUy}m0NZ_%`qkcn<81&3^$#flt6=N!QHGw|A3KLj+4C7Y^@%ZA7V!&p!cn z0mHzOn=3Uu^(jKH0H*z=%!)9l#-= z6Sxkndbqhp^deCNzX9igooVsO>O6Gybf!w4vN~=^J=zGgu24x6lFVaMp%#`jm9ox6 zs!&PYM8`_r7;{=SusNdRK-a(1<3$&dmJP_AjYw(-=1DHgW`GyK2WKDa6mkGK=_rgDXbFC;%~2q%xtC{{%Pt@XQOPoob_I!<|=PN zK3fBN+kqRvkSFZTfHuHH)PSW`I?aG(QA5d<2U@o%X;y3;_|1+2fTU+YU(Q;5m^ZW2 r00000NkvXXu0mjfD;r{L literal 0 HcmV?d00001 diff --git a/wcs/qommon/static/images/categories/icon_sanitation_4335.png b/wcs/qommon/static/images/categories/icon_sanitation_4335.png new file mode 100644 index 0000000000000000000000000000000000000000..05098435006427373aec6902d81dad757a0f5b42 GIT binary patch literal 771 zcmV+e1N{7nP)NQ_n<% zLF-V?JBeZZjG59}PGb{};{QVXc6@>#I*nY73_(QPz>Q)@O6eK0V`d}bVe6lXN9> z*bx!8JM;-wbnI^gM>_V2?m=PW0DKz4iJHC%d{b)s9hdXxkMZ3gpem&7iK95Dj^dKN<8PT^+Qo4!z5wX9)n0?sLqj~!z$2M6J zy~JpbV@_#$^K}6FeZk?$9_&vyhHMKeJHj3p9R4FuryBb+eL;2rx~szJ<{I0{z9BmR z9m2zc!#g#0=UPE_l%ogm2X0|+MgN7?kVGfPQ(y{(c9a%03gzw%4$}r@0$IjxPgP)T{V9*W-Cai~X-;H`I!r=WhVI zvjJ!^_sVUL@I~X4Yq<4iG1~`l$o^2L@KHYn`WoN=9ZfT(^63Bo002ovPDHLkV1k_Q BU>5)Y literal 0 HcmV?d00001 diff --git a/wcs/qommon/static/images/categories/icon_shopping-cart_38588.png b/wcs/qommon/static/images/categories/icon_shopping-cart_38588.png new file mode 100644 index 0000000000000000000000000000000000000000..890daa1adf437d54cd27140d8be6b587c5685c05 GIT binary patch literal 1004 zcmVTF6Sd zP;T72kc;I?Zm8A54PwOwF1*A_Nr+i;Gqbcb;$q&Km*#PCe!q2ozn$Ov|G)oy>#5&4 z=Q-zm_dMr$p7TEwRpo!cB)cIZD@5d+h+Gtrb(JFJg7_8{kvd=isJ6z}tLmdl5DUY$ z=mCNx0rrn0msr?D-#Eq>iHM9BnOLYQp8F>Q-GGMVEZz~Rqy!r<71#|N28JdQ+0kGM zLqt{scY#@6*E8T1&=0)zMO8nP+|4dNad}ikRsxSPmX5+OA@WwcUsZpUov2542&gTv z$47$XZF#S%e=9-sCs0MGki_6O@Q$&b@Q>A(QO(3?3kH=-o&yJgWthw{16T(f0X`?p zO_Bj%$C#+kL9`v17BO!+@T(wE1+J?qQ&PIfh105f)NhE$Twtwd)h9p`<`@)3ACTLk zUx7MHXS+l1hhttIX)WUV6V~{w2%S>N$~>;W4V=Uze;-qToetd&pdsV>VT=H;{Y|o9 z7#L91?^a(m;Hpl4@^K5GS5<#PcA{H=1;84s?=-N%p*trZw*Y!ZzcQZD3#o5A?weRv zIp(jI)uPKqPwq7UX7{e<%sxt=Y2E-(N93NrLzin zX^js84-1m~iggDrQbOAtx^sYq-ghk~z2qhOD6n?HT7LzY5i_@^0MT}Pt=M1^k(rpw zMHKb`%S7ZFroKPL)b~bA5vY$_KLI^~R)RHKC{K{2k&QN&qzmq@-1aDjVc><`5$Spn znFegNy1Fs9@p5AXxU8z*?9R9|x(TSU+O4YE6Qx{kj3Fu_n}N;1Hmkd@TqM2ywg8JU z9(xFMYWPQ=6*#kj>$negFR&nOolkier~$4gg6mGjJ(|-u=-pD++HDe_kGxIO?NPlP}MKDpz`%2i%F6^a5xo zG0{5UR>XeYK%=c6c+K

-SPQM#Wrm2fU@Fs6%>NO(fR6BfiO-G` a1^)oCu#~rOq%Yn80000)v>~mNTOp&rdjQ!NYqS4q3Q5u>+Lx6_Wj#c2j;Ll zzxmB)XWn}|^F%4dd?*?J2N79Z%E3jXN<G zD}$hwz+A&|M)ra-9Cxg{zV*d73V15}4VDxfwrG!7Ox8vs?nYhb-Eey;^N1(ZjE z`mp1Lu==tILi+0q;De*>LEz0)0J|#)8xdKk?vD-Cm_5M6j9;BD@(I4b?^sZc+6Qz3 z6-7XP1D5BF7Z+N@<$i}{Z!wpUS>Oz?#5PVD35tlc;_Wk|mPbGb-o|+Z7zW-erKX)d zW??2ffU?Nr%?D&G=xiV(L(@P4b-+1bK~bP-%_RRf)3`}EyYYe2i6*}Pe6SXY_VrDccT3o5_`jiE$VX;ScLa?nZq_( zu&a#kuG_FC@?=^_1N&IVeX(HsE!b-&)}L?_-Wv>sw{yRsmtw+!D~L>pZFfPR>VO`6 zTPkMx0LPLd1F#JSb`bBShr)YPQen<$k8ZqbN&Yqsq=C&{YM*`BAI5}?q7Qif&PR3Q z1aKbjxwjSXhDr@-V4wN0&A>wgYCqQl_bu0AuHH!t>6lrw4g>Wrr~t?Dj;py2{a9|W z6tNjSW>$|kiT5aL@W+V`o>4@k2AEb#jambWP()-UFr+MpJSTLnmA|Ul7Mr^WGfe;h N002ovPDHLkV1mPlmLdQE literal 0 HcmV?d00001 diff --git a/wcs/qommon/static/images/categories/icon_trash_207.png b/wcs/qommon/static/images/categories/icon_trash_207.png new file mode 100644 index 0000000000000000000000000000000000000000..2783b7148d5181c2739e59e7f2ab8d7002fae554 GIT binary patch literal 1150 zcmV-^1cCdBP)Dv?G9paqh6ZJ1l7eP=$@{Dx_L8aV}r5rf)Owe-8Rft1qdl+u`X z`j+r0#@CQ9uch3Up?DozQcCUiCwsIOCZ&`{4HmZip_J0|Sd5;C=xw!s2|Fs}-$%rm zA<`D}>LK*v#SY}?C~Pw@KaXI}c}*tVj1$<1)S(I0jmNMKD>1c7Hx(V~BBeA9-{3dQ zjffM?#I_FKRk#~B;o=%9XYn&Wi-;f5*rT|t==3`#VJ5CP4=+A|Q-+qMTI~#$Hw?WT zn$Phst}kSt6d!sQ_hGUoQvvtlT$4tY+q_1^Yl<+;E1oA7&t;N7u>sdM;2MWN+AuQk zMLptY3Z-Qw*%K8+e`9n5LszwE+^LfH|EVHfP$;b$B;Q^^+S9!MXX7|Fp{pdHR)_SCI!0b37xzBhh4`>lL%WrbQksIz_yvn%;GgGVwXqM|Qc7cS zyP@Ugwqo$`K}5WlQd(TWRf&E>Q%d6sBVm3-92=xNp@QQb`B%J4_5Yh(IUeu(T&srm zg{P}9@)%}Ugm5&L%H^s&^JmEe-m5x{$M9f@>!Uilbwj@b_u&4B_^x6=r?D1mQ%V!% z8hSJ$c0x*Nx*YmZ1$l4j`a?wQYuSq>^cnh^{1-?mr3Fp)Jx~}}OFtrFa}9ah=q^|f zr<7*kl@9TS`b)@`bF@s>dV*IYI>?3gSNM%^J`3tH`UgBx9&PqpJNvE|O6Zs3>l*SN zEW*O!3jN*|_1~9QRs#?bCnMtRh}bh+9^KGEE)3sfdaJ?v3!*&jh=|=C;_An682V<1 zcm|-;p+6_DrW#?yL%%g5_IH412+9lRH{`whczNq^D=u%5Z&<<(gV&ssaGmVk30SZB z&Dejqq{(gb$AkKgms4iIdbHf93sOqAq?CTbet8>mNM7hJ#_A@=yeT4%w(YSdFcT-$ z_R^CWE1!}y^62~)PD|SI=*#kk>>!q4uAHmn_32r8>rfAe@M+twY69JuQ{1nPi1m52cO(jnD?s QYXATM07*qoM6N<$f;)yEHvj+t literal 0 HcmV?d00001 diff --git a/wcs/qommon/static/images/categories/icon_triathlon_10860.png b/wcs/qommon/static/images/categories/icon_triathlon_10860.png new file mode 100644 index 0000000000000000000000000000000000000000..dbd29f9f855c9e14de31df030a4c5895a2b5c7db GIT binary patch literal 1759 zcmV<51|a!~P)Rz`@Ym*Q4<-9Kn<5 zPbnQ3v8+ykM#LYzlTLbMMDxoq(*&|8@cTKTO9&JYUBChVzD*I~@m` zxk0nQ*@dMe0a>LrX5clI~ z0W=j?;hECE7z?p7rL?ORzru4FK8GEcl2Td$)hHjRJa5OHm^j3W8<>GtSNhX2zS6(E z(vQ*~QloOc@DT36gfg~M$pV8!Td<-waXI$N!O>M2f2UJXd>ntovC=<*KQ-z9yV8HK zCTBtc_cL5kdv_zYoHTtz{0>*AlwPcvVGKSg2gFS&rH3QpD!fnL^QT}Q{$3U}8S`b+ z?~{v?`Emud2d^zwxH%$5;bR5Nms3hVY2pTB@kmN(9?Vur&O?}G67Iu~aOp@>SB2lZ z@CY_&vCre11*4nrfi?v!zyQ8F=${<|yaW&8TZY+EYjfUTFzUnn4ul0hR7|~E8|e(M z!fkSpzNN#(EkIvGuFU^h_m5#(mmEOvz#FhLBCc*m7`d%10QaVpu1zWJ??4tDDj4nU zaD{is5xlnadt|G8PtJRTbc^r{eBSWI$SQoXh0Fu+>kfgg#?x3*8($&^$d~Y4c_WzI zf>*<-RCe(&bbGq+ay$Buhz9P#MVOsZdan9DrL-#|dhsJPo_F znSXc~@h>;z;Ap39l(l(1ei{+u>I5kt><-GO&t~mY@+PrKPV`&l#b4e+c52{wNxnn2 zh?s+$OZQ&P!2=P|)j~kMHE=f`!0XG{i`WnmQ-_d!o?LzD)7qDQEc?;VWeY5qU1nty z+Lg`5Yc!jjs;<`Kupy2-WkG!n`Ep=h3r##*{&!$8{wbSmMnv?qqsoegdhnUj-6xxW zKQ>3iKoiZ*#gh&6V`&Ti2j%FzP4?5*$hmZPO6gE1K;@!lOnJU5rF2}rC)h04wa?V( zm!iKbrF0-7W=2G#1OteO+4AY|CE1U@F4vYHE`S%~+H!NUJ*Bj}O`xwR|NC%vL`=r5 zDW!YrgeB9=Oeq~`l(9$U1U*QwQBLGvk&EdWIA7j2N8!_Q75O&!&i&OQQmWgZS?QzQ{`$R+>i-;xiabjm#(VU{$RYijn@o~8ddMc%Kq7qCG%O}Vesw#*aI#LfKa~rothmv^OHY5E0#S%34;&kL26Nj@nal z?NHU`I_xdVeF0GjyRjQnI}vs^ zKr3^n7TIT9=?tc)s)mmiEp3a4X`R|}q^-!>hBXDlY3&T4C|I zkj*bXT9~3+&U>qr`~Gujdbz+^Rb&i%k=swtueh(kKtwD)d;R5BcnuWZ*EKVD z9Zb89-Xnh?*oJFVZcp0PsC+QIrts+KW5d~ezF90+RsHw_o=z$Kr<^*al + + + + + + + + + \ No newline at end of file diff --git a/wcs/qommon/static/images/categories/src/icon_10860/license.txt b/wcs/qommon/static/images/categories/src/icon_10860/license.txt new file mode 100644 index 000000000..ab423ff0e --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_10860/license.txt @@ -0,0 +1,3 @@ +Thank you for using The Noun Project. This icon is in the Public Domain and +can be used for any project, including commercial, without any attribution +requirements. diff --git a/wcs/qommon/static/images/categories/src/icon_11723/icon_11723.svg b/wcs/qommon/static/images/categories/src/icon_11723/icon_11723.svg new file mode 100644 index 000000000..cd7b894dc --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_11723/icon_11723.svg @@ -0,0 +1,9 @@ +image/svg+xml + + + + + + + + \ No newline at end of file diff --git a/wcs/qommon/static/images/categories/src/icon_11723/license.txt b/wcs/qommon/static/images/categories/src/icon_11723/license.txt new file mode 100644 index 000000000..e75016191 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_11723/license.txt @@ -0,0 +1,8 @@ +Thank you for using The Noun Project. This icon is licensed under Creative +Commons Attribution and must be attributed as: + + Running by Kevin Laity from The Noun Project + +If you have a Premium Account or have purchased a license for this icon, you +don't need to worry about attribution! We will share the profits from your +purchase with this icon's designer. diff --git a/wcs/qommon/static/images/categories/src/icon_12513/icon_12513.svg b/wcs/qommon/static/images/categories/src/icon_12513/icon_12513.svg new file mode 100644 index 000000000..12b1998f9 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_12513/icon_12513.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/wcs/qommon/static/images/categories/src/icon_12513/license.txt b/wcs/qommon/static/images/categories/src/icon_12513/license.txt new file mode 100644 index 000000000..9d49ddc86 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_12513/license.txt @@ -0,0 +1,8 @@ +Thank you for using The Noun Project. This icon is licensed under Creative +Commons Attribution and must be attributed as: + + Email by Adam Mullin from The Noun Project + +If you have a Premium Account or have purchased a license for this icon, you +don't need to worry about attribution! We will share the profits from your +purchase with this icon's designer. diff --git a/wcs/qommon/static/images/categories/src/icon_12581/icon_12581.svg b/wcs/qommon/static/images/categories/src/icon_12581/icon_12581.svg new file mode 100644 index 000000000..2c3fe48a5 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_12581/icon_12581.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + diff --git a/wcs/qommon/static/images/categories/src/icon_12581/license.txt b/wcs/qommon/static/images/categories/src/icon_12581/license.txt new file mode 100644 index 000000000..ab423ff0e --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_12581/license.txt @@ -0,0 +1,3 @@ +Thank you for using The Noun Project. This icon is in the Public Domain and +can be used for any project, including commercial, without any attribution +requirements. diff --git a/wcs/qommon/static/images/categories/src/icon_13644/icon_13644.svg b/wcs/qommon/static/images/categories/src/icon_13644/icon_13644.svg new file mode 100644 index 000000000..0c7d8abe2 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_13644/icon_13644.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/wcs/qommon/static/images/categories/src/icon_13644/license.txt b/wcs/qommon/static/images/categories/src/icon_13644/license.txt new file mode 100644 index 000000000..e1ea8e676 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_13644/license.txt @@ -0,0 +1,8 @@ +Thank you for using The Noun Project. This icon is licensed under Creative +Commons Attribution and must be attributed as: + + Arts and Culture by Pete Fecteau from The Noun Project + +If you have a Premium Account or have purchased a license for this icon, you +don't need to worry about attribution! We will share the profits from your +purchase with this icon's designer. diff --git a/wcs/qommon/static/images/categories/src/icon_14004/icon_14004.svg b/wcs/qommon/static/images/categories/src/icon_14004/icon_14004.svg new file mode 100644 index 000000000..361726ef0 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_14004/icon_14004.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/wcs/qommon/static/images/categories/src/icon_14004/license.txt b/wcs/qommon/static/images/categories/src/icon_14004/license.txt new file mode 100644 index 000000000..cdbeac420 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_14004/license.txt @@ -0,0 +1,8 @@ +Thank you for using The Noun Project. This icon is licensed under Creative +Commons Attribution and must be attributed as: + + Document by Ilsur Aptukov from The Noun Project + +If you have a Premium Account or have purchased a license for this icon, you +don't need to worry about attribution! We will share the profits from your +purchase with this icon's designer. diff --git a/wcs/qommon/static/images/categories/src/icon_14292/icon_14292.svg b/wcs/qommon/static/images/categories/src/icon_14292/icon_14292.svg new file mode 100644 index 000000000..eebcd52c4 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_14292/icon_14292.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/wcs/qommon/static/images/categories/src/icon_14292/license.txt b/wcs/qommon/static/images/categories/src/icon_14292/license.txt new file mode 100644 index 000000000..ab423ff0e --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_14292/license.txt @@ -0,0 +1,3 @@ +Thank you for using The Noun Project. This icon is in the Public Domain and +can be used for any project, including commercial, without any attribution +requirements. diff --git a/wcs/qommon/static/images/categories/src/icon_14847/icon_14847.svg b/wcs/qommon/static/images/categories/src/icon_14847/icon_14847.svg new file mode 100644 index 000000000..6a619db48 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_14847/icon_14847.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/wcs/qommon/static/images/categories/src/icon_14847/license.txt b/wcs/qommon/static/images/categories/src/icon_14847/license.txt new file mode 100644 index 000000000..d63aaa5bc --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_14847/license.txt @@ -0,0 +1,8 @@ +Thank you for using The Noun Project. This icon is licensed under Creative +Commons Attribution and must be attributed as: + + Running by Eli Kleppe from The Noun Project + +If you have a Premium Account or have purchased a license for this icon, you +don't need to worry about attribution! We will share the profits from your +purchase with this icon's designer. diff --git a/wcs/qommon/static/images/categories/src/icon_1673/icon_1673.svg b/wcs/qommon/static/images/categories/src/icon_1673/icon_1673.svg new file mode 100644 index 000000000..e7d7326d5 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_1673/icon_1673.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + diff --git a/wcs/qommon/static/images/categories/src/icon_1673/license.txt b/wcs/qommon/static/images/categories/src/icon_1673/license.txt new file mode 100644 index 000000000..ab423ff0e --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_1673/license.txt @@ -0,0 +1,3 @@ +Thank you for using The Noun Project. This icon is in the Public Domain and +can be used for any project, including commercial, without any attribution +requirements. diff --git a/wcs/qommon/static/images/categories/src/icon_207/icon_207.svg b/wcs/qommon/static/images/categories/src/icon_207/icon_207.svg new file mode 100644 index 000000000..6e41ae425 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_207/icon_207.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + diff --git a/wcs/qommon/static/images/categories/src/icon_207/license.txt b/wcs/qommon/static/images/categories/src/icon_207/license.txt new file mode 100644 index 000000000..ab423ff0e --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_207/license.txt @@ -0,0 +1,3 @@ +Thank you for using The Noun Project. This icon is in the Public Domain and +can be used for any project, including commercial, without any attribution +requirements. diff --git a/wcs/qommon/static/images/categories/src/icon_23557/icon_23557.svg b/wcs/qommon/static/images/categories/src/icon_23557/icon_23557.svg new file mode 100644 index 000000000..5ad5d7eab --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_23557/icon_23557.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/wcs/qommon/static/images/categories/src/icon_23557/license.txt b/wcs/qommon/static/images/categories/src/icon_23557/license.txt new file mode 100644 index 000000000..a11f73bcb --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_23557/license.txt @@ -0,0 +1,8 @@ +Thank you for using The Noun Project. This icon is licensed under Creative +Commons Attribution and must be attributed as: + + Crosswalk by Juan Pablo Bravo from The Noun Project + +If you have a Premium Account or have purchased a license for this icon, you +don't need to worry about attribution! We will share the profits from your +purchase with this icon's designer. diff --git a/wcs/qommon/static/images/categories/src/icon_26169/icon_26169.svg b/wcs/qommon/static/images/categories/src/icon_26169/icon_26169.svg new file mode 100644 index 000000000..33d7f80d6 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_26169/icon_26169.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/wcs/qommon/static/images/categories/src/icon_26169/license.txt b/wcs/qommon/static/images/categories/src/icon_26169/license.txt new file mode 100644 index 000000000..b9b071d93 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_26169/license.txt @@ -0,0 +1,8 @@ +Thank you for using The Noun Project. This icon is licensed under Creative +Commons Attribution and must be attributed as: + + Euro by Pathfinders from The Noun Project + +If you have a Premium Account or have purchased a license for this icon, you +don't need to worry about attribution! We will share the profits from your +purchase with this icon's designer. diff --git a/wcs/qommon/static/images/categories/src/icon_29996/icon_29996.svg b/wcs/qommon/static/images/categories/src/icon_29996/icon_29996.svg new file mode 100644 index 000000000..3d27271a7 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_29996/icon_29996.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/wcs/qommon/static/images/categories/src/icon_29996/license.txt b/wcs/qommon/static/images/categories/src/icon_29996/license.txt new file mode 100644 index 000000000..94204b6ef --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_29996/license.txt @@ -0,0 +1,8 @@ +Thank you for using The Noun Project. This icon is licensed under Creative +Commons Attribution and must be attributed as: + + Asterisk by Lisa Staudinger from The Noun Project + +If you have a Premium Account or have purchased a license for this icon, you +don't need to worry about attribution! We will share the profits from your +purchase with this icon's designer. diff --git a/wcs/qommon/static/images/categories/src/icon_32231/icon_32231.svg b/wcs/qommon/static/images/categories/src/icon_32231/icon_32231.svg new file mode 100644 index 000000000..1ee999c87 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_32231/icon_32231.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/wcs/qommon/static/images/categories/src/icon_32231/license.txt b/wcs/qommon/static/images/categories/src/icon_32231/license.txt new file mode 100644 index 000000000..1227c68cd --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_32231/license.txt @@ -0,0 +1,8 @@ +Thank you for using The Noun Project. This icon is licensed under Creative +Commons Attribution and must be attributed as: + + Document by Simple Icons from The Noun Project + +If you have a Premium Account or have purchased a license for this icon, you +don't need to worry about attribution! We will share the profits from your +purchase with this icon's designer. diff --git a/wcs/qommon/static/images/categories/src/icon_38588/icon_38588.svg b/wcs/qommon/static/images/categories/src/icon_38588/icon_38588.svg new file mode 100644 index 000000000..0a76e4e7e --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_38588/icon_38588.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/wcs/qommon/static/images/categories/src/icon_38588/license.txt b/wcs/qommon/static/images/categories/src/icon_38588/license.txt new file mode 100644 index 000000000..49bd76d16 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_38588/license.txt @@ -0,0 +1,8 @@ +Thank you for using The Noun Project. This icon is licensed under Creative +Commons Attribution and must be attributed as: + + Shopping Cart by José Manuel de Laá from The Noun Project + +If you have a Premium Account or have purchased a license for this icon, you +don't need to worry about attribution! We will share the profits from your +purchase with this icon's designer. diff --git a/wcs/qommon/static/images/categories/src/icon_39567/icon_39567.svg b/wcs/qommon/static/images/categories/src/icon_39567/icon_39567.svg new file mode 100644 index 000000000..7cf5f4396 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_39567/icon_39567.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/wcs/qommon/static/images/categories/src/icon_39567/license.txt b/wcs/qommon/static/images/categories/src/icon_39567/license.txt new file mode 100644 index 000000000..36da0d43f --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_39567/license.txt @@ -0,0 +1,8 @@ +Thank you for using The Noun Project. This icon is licensed under Creative +Commons Attribution and must be attributed as: + + Tools by Matthew Hawdon from The Noun Project + +If you have a Premium Account or have purchased a license for this icon, you +don't need to worry about attribution! We will share the profits from your +purchase with this icon's designer. diff --git a/wcs/qommon/static/images/categories/src/icon_39826/icon_39826.svg b/wcs/qommon/static/images/categories/src/icon_39826/icon_39826.svg new file mode 100644 index 000000000..5699a84fd --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_39826/icon_39826.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/wcs/qommon/static/images/categories/src/icon_39826/license.txt b/wcs/qommon/static/images/categories/src/icon_39826/license.txt new file mode 100644 index 000000000..6b3a43388 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_39826/license.txt @@ -0,0 +1,8 @@ +Thank you for using The Noun Project. This icon is licensed under Creative +Commons Attribution and must be attributed as: + + People by Ahmed Trochilidae from The Noun Project + +If you have a Premium Account or have purchased a license for this icon, you +don't need to worry about attribution! We will share the profits from your +purchase with this icon's designer. diff --git a/wcs/qommon/static/images/categories/src/icon_41964/icon_41964.svg b/wcs/qommon/static/images/categories/src/icon_41964/icon_41964.svg new file mode 100644 index 000000000..c2dae02c8 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_41964/icon_41964.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/wcs/qommon/static/images/categories/src/icon_41964/license.txt b/wcs/qommon/static/images/categories/src/icon_41964/license.txt new file mode 100644 index 000000000..bcd871fcb --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_41964/license.txt @@ -0,0 +1,8 @@ +Thank you for using The Noun Project. This icon is licensed under Creative +Commons Attribution and must be attributed as: + + Businessman by hunotika from The Noun Project + +If you have a Premium Account or have purchased a license for this icon, you +don't need to worry about attribution! We will share the profits from your +purchase with this icon's designer. diff --git a/wcs/qommon/static/images/categories/src/icon_4335/icon_4335.svg b/wcs/qommon/static/images/categories/src/icon_4335/icon_4335.svg new file mode 100644 index 000000000..caca9015d --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_4335/icon_4335.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/wcs/qommon/static/images/categories/src/icon_4335/license.txt b/wcs/qommon/static/images/categories/src/icon_4335/license.txt new file mode 100644 index 000000000..ab423ff0e --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_4335/license.txt @@ -0,0 +1,3 @@ +Thank you for using The Noun Project. This icon is in the Public Domain and +can be used for any project, including commercial, without any attribution +requirements. diff --git a/wcs/qommon/static/images/categories/src/icon_43460/icon_43460.svg b/wcs/qommon/static/images/categories/src/icon_43460/icon_43460.svg new file mode 100644 index 000000000..bf426df7a --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_43460/icon_43460.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/wcs/qommon/static/images/categories/src/icon_43460/license.txt b/wcs/qommon/static/images/categories/src/icon_43460/license.txt new file mode 100644 index 000000000..4fd15d1e7 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_43460/license.txt @@ -0,0 +1,8 @@ +Thank you for using The Noun Project. This icon is licensed under Creative +Commons Attribution and must be attributed as: + + Architect by Yazmin Alanis from The Noun Project + +If you have a Premium Account or have purchased a license for this icon, you +don't need to worry about attribution! We will share the profits from your +purchase with this icon's designer. diff --git a/wcs/qommon/static/images/categories/src/icon_47225/icon_47225.svg b/wcs/qommon/static/images/categories/src/icon_47225/icon_47225.svg new file mode 100644 index 000000000..aa7532ccc --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_47225/icon_47225.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/wcs/qommon/static/images/categories/src/icon_47225/license.txt b/wcs/qommon/static/images/categories/src/icon_47225/license.txt new file mode 100644 index 000000000..930790c18 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_47225/license.txt @@ -0,0 +1,8 @@ +Thank you for using The Noun Project. This icon is licensed under Creative +Commons Attribution and must be attributed as: + + Document by Stefan Parnarov from The Noun Project + +If you have a Premium Account or have purchased a license for this icon, you +don't need to worry about attribution! We will share the profits from your +purchase with this icon's designer. diff --git a/wcs/qommon/static/images/categories/src/icon_49638/icon_49638.svg b/wcs/qommon/static/images/categories/src/icon_49638/icon_49638.svg new file mode 100644 index 000000000..40160d990 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_49638/icon_49638.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/wcs/qommon/static/images/categories/src/icon_49638/license.txt b/wcs/qommon/static/images/categories/src/icon_49638/license.txt new file mode 100644 index 000000000..37f67e652 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_49638/license.txt @@ -0,0 +1,8 @@ +Thank you for using The Noun Project. This icon is licensed under Creative +Commons Attribution and must be attributed as: + + Event by Tommy Lau from The Noun Project + +If you have a Premium Account or have purchased a license for this icon, you +don't need to worry about attribution! We will share the profits from your +purchase with this icon's designer. diff --git a/wcs/qommon/static/images/categories/src/icon_50770/icon_50770.svg b/wcs/qommon/static/images/categories/src/icon_50770/icon_50770.svg new file mode 100644 index 000000000..2ada57635 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_50770/icon_50770.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/wcs/qommon/static/images/categories/src/icon_50770/license.txt b/wcs/qommon/static/images/categories/src/icon_50770/license.txt new file mode 100644 index 000000000..392fb4ae6 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_50770/license.txt @@ -0,0 +1,8 @@ +Thank you for using The Noun Project. This icon is licensed under Creative +Commons Attribution and must be attributed as: + + Email by Christopher Holm-Hansen from The Noun Project + +If you have a Premium Account or have purchased a license for this icon, you +don't need to worry about attribution! We will share the profits from your +purchase with this icon's designer. diff --git a/wcs/qommon/static/images/categories/src/icon_52531/icon_52531.svg b/wcs/qommon/static/images/categories/src/icon_52531/icon_52531.svg new file mode 100644 index 000000000..e25889afd --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_52531/icon_52531.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/wcs/qommon/static/images/categories/src/icon_52531/license.txt b/wcs/qommon/static/images/categories/src/icon_52531/license.txt new file mode 100644 index 000000000..6df03eff8 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_52531/license.txt @@ -0,0 +1,8 @@ +Thank you for using The Noun Project. This icon is licensed under Creative +Commons Attribution and must be attributed as: + + Open email by Marcus Michaels from The Noun Project + +If you have a Premium Account or have purchased a license for this icon, you +don't need to worry about attribution! We will share the profits from your +purchase with this icon's designer. diff --git a/wcs/qommon/static/images/categories/src/icon_54809/icon_54809.svg b/wcs/qommon/static/images/categories/src/icon_54809/icon_54809.svg new file mode 100644 index 000000000..ccae6ff0a --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_54809/icon_54809.svg @@ -0,0 +1,11 @@ +image/svg+xml + + + + + + + + + + \ No newline at end of file diff --git a/wcs/qommon/static/images/categories/src/icon_54809/license.txt b/wcs/qommon/static/images/categories/src/icon_54809/license.txt new file mode 100644 index 000000000..e3a796047 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_54809/license.txt @@ -0,0 +1,8 @@ +Thank you for using The Noun Project. This icon is licensed under Creative +Commons Attribution and must be attributed as: + + confirm-date by Muneer A.Safiah from The Noun Project + +If you have a Premium Account or have purchased a license for this icon, you +don't need to worry about attribution! We will share the profits from your +purchase with this icon's designer. diff --git a/wcs/qommon/static/images/categories/src/icon_58303/icon_58303.svg b/wcs/qommon/static/images/categories/src/icon_58303/icon_58303.svg new file mode 100644 index 000000000..c19068330 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_58303/icon_58303.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/wcs/qommon/static/images/categories/src/icon_58303/license.txt b/wcs/qommon/static/images/categories/src/icon_58303/license.txt new file mode 100644 index 000000000..c57188446 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_58303/license.txt @@ -0,0 +1,8 @@ +Thank you for using The Noun Project. This icon is licensed under Creative +Commons Attribution and must be attributed as: + + Image by Nono Martínez Alonso from The Noun Project + +If you have a Premium Account or have purchased a license for this icon, you +don't need to worry about attribution! We will share the profits from your +purchase with this icon's designer. diff --git a/wcs/qommon/static/images/categories/src/icon_607/icon_607.svg b/wcs/qommon/static/images/categories/src/icon_607/icon_607.svg new file mode 100644 index 000000000..696c62524 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_607/icon_607.svg @@ -0,0 +1,10 @@ + + + + + + + diff --git a/wcs/qommon/static/images/categories/src/icon_607/license.txt b/wcs/qommon/static/images/categories/src/icon_607/license.txt new file mode 100644 index 000000000..ab423ff0e --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_607/license.txt @@ -0,0 +1,3 @@ +Thank you for using The Noun Project. This icon is in the Public Domain and +can be used for any project, including commercial, without any attribution +requirements. diff --git a/wcs/qommon/static/images/categories/src/icon_62444/icon_62444.svg b/wcs/qommon/static/images/categories/src/icon_62444/icon_62444.svg new file mode 100644 index 000000000..77e4b23a6 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_62444/icon_62444.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/wcs/qommon/static/images/categories/src/icon_62444/license.txt b/wcs/qommon/static/images/categories/src/icon_62444/license.txt new file mode 100644 index 000000000..e43605b81 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_62444/license.txt @@ -0,0 +1,8 @@ +Thank you for using The Noun Project. This icon is licensed under Creative +Commons Attribution and must be attributed as: + + Firework by Yazmin Alanis from The Noun Project + +If you have a Premium Account or have purchased a license for this icon, you +don't need to worry about attribution! We will share the profits from your +purchase with this icon's designer. diff --git a/wcs/qommon/static/images/categories/src/icon_6412/icon_6412.svg b/wcs/qommon/static/images/categories/src/icon_6412/icon_6412.svg new file mode 100644 index 000000000..aa67e1347 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_6412/icon_6412.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/wcs/qommon/static/images/categories/src/icon_6412/license.txt b/wcs/qommon/static/images/categories/src/icon_6412/license.txt new file mode 100644 index 000000000..486c34a95 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_6412/license.txt @@ -0,0 +1,8 @@ +Thank you for using The Noun Project. This icon is licensed under Creative +Commons Attribution and must be attributed as: + + Mobile Alarm by Mateo Zlatar from The Noun Project + +If you have a Premium Account or have purchased a license for this icon, you +don't need to worry about attribution! We will share the profits from your +purchase with this icon's designer. diff --git a/wcs/qommon/static/images/categories/src/icon_66954/icon_66954.svg b/wcs/qommon/static/images/categories/src/icon_66954/icon_66954.svg new file mode 100644 index 000000000..b0fc38cc5 --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_66954/icon_66954.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/wcs/qommon/static/images/categories/src/icon_66954/license.txt b/wcs/qommon/static/images/categories/src/icon_66954/license.txt new file mode 100644 index 000000000..b7ed77d5b --- /dev/null +++ b/wcs/qommon/static/images/categories/src/icon_66954/license.txt @@ -0,0 +1,8 @@ +Thank you for using The Noun Project. This icon is licensed under Creative +Commons Attribution and must be attributed as: + + business man by gilbert bages from The Noun Project + +If you have a Premium Account or have purchased a license for this icon, you +don't need to worry about attribution! We will share the profits from your +purchase with this icon's designer. diff --git a/wcs/qommon/static/images/mobile/gear.png b/wcs/qommon/static/images/mobile/gear.png new file mode 100644 index 0000000000000000000000000000000000000000..4e7f56e3f78d7cda8b371ad589702a2f2269746e GIT binary patch literal 1679 zcmV;A25|X_P)QY_(NFESO@X3I*}fv?Z>y`}ZLyVKzIn zJ15yt^@Dww|N8yR`Op04EWN$qO+3l){oe$piYLARbvlB!Zrxs!&1P=^cvgu1_WS*H zhrT*6T<<_cNGF{uI?0!vEzDT=bpi%ce_8>F0096L#dZnkTh zc6n>Kb-tS&GZ&F{l8s?&xOKj!X_pP%Y(H`AB*}2{TtG`?+nm0>zEech31F#ZSs8t^ zvCzqunP2rH0|0%qvCy)t41lFX)Y;e9cd8|_ZBE4tuq^8c5v{R_7AcC7F?6%uZf6>i zY9b0u^e3W#X+)~+GDA1(6-CJaSY)$XV_DXbiWk7lPC;vlC=)ST0ss&ShF=5F1?SyO z1<)mI5HVWoJ!j$m^H5A+W@!X<9#k#SZE_0RC|zuyrC2BHHVfJRrFX)zs7+1#nZwM-n$h4$qJ(U|(0~ zBWCWBNFOp@`@LfV0ee(XysCvjm+aN^iWI(P2e0%oqy z=kwQ6J&8X{7GUV+r$qFbczg)p27o~#`kk5IfP1q(VCL<~biB6&K^VHZiHHsWnB`(J zL`2^+^NRrL0n`Dg0sv;-olM6+w;LBNAtG95d#nQR5`fjr94SHmJTo_xBM$({bi9|D z8vvYlF{u@~R*T$KF5HR>Fm$sPK*^!Y0S}mYLoyw|<<%jXj^ASD4FDcU=2|8=j-#Le zB6XUeWaB z@DRZMY&Kh;NW}`4UeRvyb#KpI03RE=*)5v+eYkJ8XJtvd#Bkf0@&LXS%{$~|;JO_O zhYv%+@RtC71Tb@=4KrVq=j%DfzW`oOq+-98@-O=#69E(_-Pk@q6_kjflp_y31-BAq z3kU_nF9XOq=~Pv1oGO75F>)ezX@56`p_{eknplhnr@Rn#0}(A}W+&B50GC3+uv`;= zv}wy+zu&(LKp3{KpbJ(3*e%J~DTW(-06rk1^`T%mmd$4Oh+VS4U>u=fxXJJL4+7YM z^5ntHD-7M-G#S>w=v-80xEn(ifE|9ne=rmbH`x^h1u*j;0A|aOAff|?ZZ44V0RTfc z7l@%w2D1gnaTF9F*4ZV=ptFeRxJ(g({BgKXq;9x0u@{P(lbOG>Jw62R8-O!J6vgOa z+zCxY)bC|EiE+9gK$DBfkjQmL`J6!U&uH}e~Fp-FIk`Ij4f5b&bE#jMARmm z#4CuXZD(7@3>hD(0)~f&-vi)yp<5v=6gfP@a{B|c_ucTwMg`wr!VA>mU5W^R}H zufVgRrfKWod@p)iQ4}qaiq!#V6kDJpgsw4>iq$EKq5-(=V76G~@&wNX5Ya{l@eng> z(RlX&03=eep8>Q1upDeH0Byns(RlX&Giz{ob1u0Y;kf`+RW~y8X`ASJE|=4i>G+`C zE}o2zF!R7fe`X$tC!-^FSu!0T%;j<#fa^B9)2gagzJTuN!F$ck&1;#t1HctkRkift zq~k>|5nc8o1Az45EM~NJO+P zo{S!vY)m&y>PT5GQ7)G&8VH?aGBMpSEob8D>grzr+y#&ozq>+KaZG9nJx+M~ZzUdg Z{0Cg*Z}Ss)XCMFo002ovPDHLkV1jKI@<9Lq literal 0 HcmV?d00001 diff --git a/wcs/qommon/static/images/mobile/menu.png b/wcs/qommon/static/images/mobile/menu.png new file mode 100644 index 0000000000000000000000000000000000000000..44459fd1c88ef1a5d0e0c59671a2ef74053a0455 GIT binary patch literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCmSQK*5Dp-y;YjHK@;M7UB8wRq zG}}O!QR&V79-yFPiEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$Qb0xWAVndW zB{``K?s@sSsS3fBxk>psnaK*C$@zH-AsMN;seMZ{R|A!<^>lFz$!L6geIqARpn&T| z^CYDi(oyYF5nY|JD<(#DERE=n{d0mzq&)Sfjock!e*^JV9s=h zqoA9AM!)2)*!TRNzt8QiDYl6BJ0H)ym`P==%G%}cKhIwk#dG$Ey&}_{N6c=uM?y=d zYgTe~DWM4f`__B> literal 0 HcmV?d00001 diff --git a/wcs/qommon/static/js/wcs.mobile.js b/wcs/qommon/static/js/wcs.mobile.js new file mode 100644 index 000000000..f3704f70c --- /dev/null +++ b/wcs/qommon/static/js/wcs.mobile.js @@ -0,0 +1,37 @@ +$(function() { + $(window).on('popstate', function(event) { + var data = event.state; + $('#services ul > li.active').removeClass('active'); + }); + $(window).on('hashchange', function(event) { + if (location.hash && location.hash.length > 1) { + $('#services ul > li.active').removeClass('active'); + $(location.hash).addClass('active'); + } else { + $('#services ul > li.active').removeClass('active'); + } + }); + $(window).on('load', function(event) { + if (location.hash && location.hash.length > 1) { + $(window).trigger('hashchange'); + } + }); + + $('a#menu').click(function() { $('#nav-user').hide(); $('#nav-site').toggle('slide'); }); + $('a#gear').click(function() { $('#nav-site').hide(); $('#nav-user').toggle('slide'); }); + $('#services li').click(function() { + $(this).find('strong').click(); + }); + $('#services ul strong').click(function() { + var is_already_active = $(this).parent().hasClass('active'); + var title = $(this).text(); + $('#services ul > li.active').removeClass('active'); + if (is_already_active) { + history.pushState(document.title, document.title, '#'); + } else { + history.pushState(title, title, '#'+$(this).parent().attr('id')); + $(this).parent().addClass('active'); + } + return false; + }); +});