Merge branch 'master' into currency
@@ -1,30 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="32px" y="32px" height="32px" width="32px"
|
||||
viewBox="0 0 30.2 40" enable-background="new 0 0 30.2 40" xml:space="preserve">
|
||||
<g id="Layer_1_1_">
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#C1122B" d="M15.1,39.5c-0.1,0-0.2,0-0.3-0.1C14.2,38.9,0.5,27.2,0.5,15.1C0.5,7.1,7,0.5,15.1,0.5
|
||||
s14.6,6.6,14.6,14.6c0,12.3-13.7,23.8-14.3,24.3C15.3,39.5,15.2,39.5,15.1,39.5z"/>
|
||||
<path fill="#E5E5E5" d="M15.1,1c8,0,14.1,6.5,14.1,14.1C29.2,27.4,15.1,39,15.1,39S1,27.1,1,15.1C1,7.5,7.1,1,15.1,1 M15.1,0
|
||||
C6.8,0,0,6.8,0,15.1c0,12.3,13.9,24.1,14.5,24.6c0.2,0.2,0.4,0.2,0.6,0.2c0.2,0,0.5-0.1,0.6-0.2c0.6-0.5,14.5-12.1,14.5-24.6
|
||||
C30.2,6.8,23.4,0,15.1,0L15.1,0z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#0B8C61" d="M15.1,32.5c-0.1,0-0.2,0-0.3-0.1c-0.4-0.3-9.1-7.7-9.1-15.5c0-5.2,4.2-9.4,9.4-9.4s9.4,4.2,9.4,9.4
|
||||
c0,7.9-8.7,15.2-9.1,15.5C15.3,32.5,15.2,32.5,15.1,32.5z"/>
|
||||
<path fill="#E5E5E5" d="M15.1,8c5.1,0,8.9,4.1,8.9,8.9c0,7.7-8.9,15.1-8.9,15.1s-8.9-7.5-8.9-15.1C6.2,12.1,10,8,15.1,8 M15.1,7
|
||||
c-5.5,0-9.9,4.5-9.9,9.9c0,8,8.9,15.5,9.3,15.8c0.2,0.2,0.4,0.2,0.6,0.2c0.2,0,0.5-0.1,0.6-0.2C16.1,32.5,25,25,25,16.9
|
||||
C25,11.5,20.6,7,15.1,7L15.1,7z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g id="source_files" display="none">
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,28 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="32px" y="32px" height="32px" width="32px"
|
||||
viewBox="0 0 30.2 40" enable-background="new 0 0 30.2 40" xml:space="preserve">
|
||||
<g id="Layer_1_1_">
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#C1122B" d="M15.1,39.5c-0.1,0-0.2,0-0.3-0.1C14.2,38.9,0.5,27.2,0.5,15.1C0.5,7.1,7,0.5,15.1,0.5
|
||||
s14.6,6.6,14.6,14.6c0,12.3-13.7,23.8-14.3,24.3C15.3,39.5,15.2,39.5,15.1,39.5z"/>
|
||||
<path fill="#E5E5E5" d="M15.1,1c8,0,14.1,6.5,14.1,14.1C29.2,27.4,15.1,39,15.1,39S1,27.1,1,15.1C1,7.5,7.1,1,15.1,1 M15.1,0
|
||||
C6.8,0,0,6.8,0,15.1c0,12.3,13.9,24.1,14.5,24.6c0.2,0.2,0.4,0.2,0.6,0.2c0.2,0,0.5-0.1,0.6-0.2c0.6-0.5,14.5-12.1,14.5-24.6
|
||||
C30.2,6.8,23.4,0,15.1,0L15.1,0z"/>
|
||||
</g>
|
||||
</g>
|
||||
<path fill="#FFFFFF" d="M16.9,21.7c1.9-3.2,3.9-7.3,3.9-9.5c0-3.2-2.6-5.7-5.7-5.7S9.4,9,9.4,12.2c0,2.2,2.1,6.3,3.9,9.5
|
||||
c-2.1,0.3-3.5,1.2-3.5,2.3c0,1.4,2.3,2.5,5.3,2.5s5.3-1.1,5.3-2.5C20.4,22.9,19,22.1,16.9,21.7z M12.2,12.2c0-1.6,1.3-2.9,2.9-2.9
|
||||
c1.6,0,2.9,1.3,2.9,2.9c0,1.6-1.3,2.9-2.9,2.9C13.5,15.1,12.2,13.8,12.2,12.2z M15.1,25.7c-2.7,0-4.6-0.9-4.6-1.7
|
||||
c0-0.6,1.2-1.4,3.2-1.6c0.1,0.2,0.2,0.3,0.3,0.4c0,0.1,0.1,0.2,0.1,0.2c0.1,0.2,0.2,0.3,0.3,0.5c0,0,0.1,0.1,0.1,0.1
|
||||
c0.1,0.2,0.2,0.3,0.2,0.4c0,0,0,0,0,0c0.1,0.1,0.1,0.1,0.1,0.1l0.3,0.5l0.3-0.5c0,0,0,0,0.1-0.1c0,0,0-0.1,0-0.1
|
||||
c0.1-0.1,0.1-0.2,0.2-0.3c0,0,0-0.1,0.1-0.1c0.1-0.2,0.2-0.3,0.3-0.5c0-0.1,0.1-0.1,0.1-0.2c0.1-0.1,0.2-0.3,0.3-0.5
|
||||
c2,0.3,3.2,1,3.2,1.6C19.7,24.8,17.8,25.7,15.1,25.7z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="source_files" display="none">
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.8 KiB |
@@ -1,31 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="32px" y="32px" height="32px" width="32px"
|
||||
viewBox="0 0 30.2 40" enable-background="new 0 0 30.2 40" xml:space="preserve">
|
||||
<g id="Layer_1_1_">
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#0B8C61" d="M15.1,39.5c-0.1,0-0.2,0-0.3-0.1C14.2,38.9,0.5,27.2,0.5,15.1C0.5,7.1,7,0.5,15.1,0.5
|
||||
s14.6,6.6,14.6,14.6c0,12.3-13.7,23.8-14.3,24.3C15.3,39.5,15.2,39.5,15.1,39.5z"/>
|
||||
<path fill="#E5E5E5" d="M15.1,1c8,0,14.1,6.5,14.1,14.1C29.2,27.4,15.1,39,15.1,39S1,27.1,1,15.1C1,7.5,7.1,1,15.1,1 M15.1,0
|
||||
C6.8,0,0,6.8,0,15.1c0,12.3,13.9,24.1,14.5,24.6c0.2,0.2,0.4,0.2,0.6,0.2c0.2,0,0.5-0.1,0.6-0.2c0.6-0.5,14.5-12.1,14.5-24.6
|
||||
C30.2,6.8,23.4,0,15.1,0L15.1,0z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M8.3,15.3c2.9-0.8,5.8,1.2,6.1,4.2c0,0.1,0,0.2,0.1,0.4c0.1,0,0.2,0,0.4,0c2.4-0.1,4.8-0.1,7.2-0.2
|
||||
c-1,0.3-1.7,1.2-1.7,2.3c0,1.3,1.1,2.4,2.4,2.4c1.3,0,2.4-1.1,2.4-2.4c0-1.2-0.9-2.2-2-2.3c1.8-0.1,1.4-0.1,1.7-1.7
|
||||
c0.1-0.8,0.2-1.6,0.3-2.3c0.1-0.7-0.1-0.9-0.8-0.9c-1.1,0-2-0.1-3.1-0.1c0,0-0.1,0-0.1-0.1c0-0.8,0-2.7,0-2.7s-0.4-0.3-0.9,0
|
||||
c0,0.9,0,1.8,0,2.8c0,0-1.3,0-3.1-0.1c-0.1,0-0.3-0.1-0.4-0.4c-0.3-0.8-0.9-2.3-1.7-4.6c0,0-0.4-1-1.5-1c-0.9,0-5.2,0-5.2,0v5.7
|
||||
c0,0-0.4,0.2-0.7,0.2C7.4,15.3,7.5,15.5,8.3,15.3z M23.9,22c0,0.7-0.6,1.2-1.2,1.2s-1.2-0.6-1.2-1.2c0-0.7,0.6-1.2,1.2-1.2
|
||||
C23.4,20.8,23.9,21.3,23.9,22z M9.6,11.3l0-1.1l4.4,0l1.4,4.2l0,0c-1.9,0-4,0-5.8,0.1L9.6,11.3z"/>
|
||||
<path fill="#FFFFFF" d="M9.4,15.8c-2.4,0-4.3,1.9-4.3,4.3s1.9,4.3,4.3,4.3c2.4,0,4.3-1.9,4.3-4.3C13.7,17.7,11.8,15.8,9.4,15.8z
|
||||
M9.4,22.5c-1.3,0-2.4-1.1-2.4-2.4c0-1.3,1.1-2.4,2.4-2.4c1.3,0,2.4,1.1,2.4,2.4S10.7,22.5,9.4,22.5z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g id="source_files" display="none">
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.0 KiB |
63
app/assets/images/map_001-producer-only.svg
Normal file
@@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
|
||||
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
|
||||
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
|
||||
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
|
||||
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
|
||||
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
|
||||
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
|
||||
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
|
||||
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
|
||||
]>
|
||||
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="35px" height="40px"
|
||||
viewBox="0 0 35 40" enable-background="new 0 0 35 40" xml:space="preserve">
|
||||
<metadata>
|
||||
<sfw xmlns="&ns_sfw;">
|
||||
<slices></slices>
|
||||
<sliceSourceBounds width="16383" height="103" y="-88.5" x="-8112" bottomLeftOrigin="true"></sliceSourceBounds>
|
||||
</sfw>
|
||||
</metadata>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M17.5,0C7.85,0,0,8.396,0,16.666C0,29.092,16.415,39.377,17.114,39.88C17.225,39.96,17.363,40,17.5,40
|
||||
c0.134,0,0.271-0.039,0.381-0.117C18.58,39.389,35,29.313,35,16.666C35,8.396,27.15,0,17.5,0z"/>
|
||||
<g>
|
||||
<path fill="#0B8C61" d="M11.824,11.058l-0.002,0.59l-0.003,2.996c1.373-0.042,2.874-0.065,4.297-0.065
|
||||
c0.251,0,0.502,0.001,0.75,0.002l-1.169-3.53L11.824,11.058z"/>
|
||||
<circle fill="#0B8C61" cx="10.91" cy="21.818" r="1.962"/>
|
||||
<path fill="#0B8C61" d="M15.494,21.413c-0.018-0.133-0.034-0.249-0.046-0.353c-0.058-0.477-0.206-0.926-0.406-1.344
|
||||
c-0.061-0.121-0.122-0.242-0.193-0.356c-0.047-0.079-0.098-0.155-0.149-0.23c-0.643-0.904-1.597-1.564-2.707-1.83
|
||||
c-0.252-0.05-0.511-0.076-0.774-0.076c-0.369,0-0.739,0.051-1.101,0.153c-0.345,0.097-0.609,0.14-0.856,0.14
|
||||
c-0.034,0-0.059-0.01-0.092-0.012c-1.708,0.692-2.919,2.361-2.919,4.314c0,2.569,2.09,4.658,4.66,4.658
|
||||
c2.544,0,4.611-2.053,4.649-4.589l-0.051-0.37L15.494,21.413z M10.91,24.404c-1.427,0-2.587-1.16-2.587-2.586
|
||||
s1.16-2.587,2.587-2.587c1.426,0,2.587,1.161,2.587,2.587S12.336,24.404,10.91,24.404z"/>
|
||||
<circle fill="#0B8C61" cx="26.032" cy="23.767" r="1.258"/>
|
||||
<path fill="#0B8C61" d="M28.399,19.248c0.163-0.87,0.265-1.754,0.338-2.635c0.069-0.824-0.14-1.017-0.947-1.049
|
||||
c-1.201-0.043-2.309-0.088-3.511-0.136c-0.037-0.001-0.096-0.027-0.096-0.075c0-0.905,0.046-3.106,0.046-3.106
|
||||
s-0.235-0.172-0.566-0.172c-0.145,0-0.309,0.033-0.479,0.128c0,1.026,0,2.067,0,3.158c0,0-1.465-0.039-3.555-0.082
|
||||
c-0.093-0.002-0.351-0.16-0.472-0.49c-0.314-0.867-1-2.557-1.901-5.157c0,0-0.466-1.11-1.645-1.11c-0.976,0-5.849,0-5.849,0v6.499
|
||||
c0,0-0.441,0.185-0.811,0.222c-0.097,0.59-0.083,0.889,0.143,0.98c0.575-0.187,1.177-0.314,1.814-0.314
|
||||
c0.486,0,0.951,0.076,1.403,0.187c1.399,0.297,2.627,1.154,3.435,2.349c0.042,0.06,0.08,0.122,0.12,0.184
|
||||
c0.117,0.189,0.224,0.383,0.319,0.587c0.103,0.209,0.192,0.422,0.271,0.644c0.005,0.015,0.009,0.03,0.014,0.046
|
||||
c0.159,0.46,0.258,0.942,0.298,1.444c0.126,0.017,0.245,0.045,0.361,0.045c0.008,0,0.016,0,0.025,0
|
||||
c2.72-0.07,5.444-0.075,8.161-0.211c-1.133,0.314-1.969,1.352-1.969,2.583c0,1.481,1.203,2.684,2.685,2.684
|
||||
c1.48,0,2.684-1.203,2.684-2.684c0-1.338-0.988-2.448-2.27-2.648C28.451,20.992,28.063,21.053,28.399,19.248z M16.116,15.204
|
||||
c-1.679,0-3.412,0.031-4.923,0.086l0.004-3.644l0.005-1.212l4.946-0.008l1.579,4.767l0.056,0.023
|
||||
C17.241,15.208,16.682,15.204,16.116,15.204z M27.602,23.767c0,0.867-0.705,1.572-1.57,1.572c-0.865,0-1.57-0.705-1.57-1.572
|
||||
c0-0.865,0.705-1.569,1.57-1.569C26.897,22.197,27.602,22.902,27.602,23.767z"/>
|
||||
<path fill="#0B8C61" d="M17.5,0C7.85,0,0,8.396,0,16.666C0,29.092,16.415,39.377,17.114,39.88C17.225,39.96,17.363,40,17.5,40
|
||||
c0.134,0,0.271-0.039,0.381-0.117C18.58,39.389,35,29.313,35,16.666C35,8.396,27.15,0,17.5,0z M29.966,23.767
|
||||
c0,2.169-1.765,3.934-3.934,3.934c-2.17,0-3.935-1.765-3.935-3.934c0-0.424,0.069-0.837,0.198-1.226
|
||||
c-0.816,0.02-1.626,0.034-2.425,0.048c-0.895,0.016-1.789,0.032-2.671,0.054l-0.046,0.001h-0.022
|
||||
c-0.128,0-0.259-0.018-0.393-0.038c-0.39,2.883-2.84,5.12-5.827,5.12c-3.259,0-5.91-2.651-5.91-5.908
|
||||
c0-2.156,1.174-4.027,2.904-5.059c-0.347-0.579-0.262-1.252-0.185-1.718l0.156-0.946l0.638-0.064V8.523v-1.25h1.25h5.849
|
||||
c1.586,0,2.504,1.179,2.797,1.876l0.016,0.037l0.013,0.038c0.621,1.794,1.131,3.129,1.504,4.103
|
||||
c0.104,0.271,0.195,0.51,0.272,0.715c0.664,0.014,1.248,0.028,1.721,0.039v-1.877v-0.733l0.64-0.358
|
||||
c0.341-0.191,0.708-0.288,1.09-0.288c0.687,0,1.173,0.317,1.306,0.415l0.524,0.384l-0.014,0.65c0,0.001-0.021,1.019-0.035,1.95
|
||||
c0.793,0.032,1.571,0.062,2.394,0.092c0.346,0.013,1.156,0.045,1.697,0.656c0.48,0.542,0.491,1.217,0.447,1.745
|
||||
c-0.088,1.06-0.201,1.937-0.355,2.76c-0.05,0.27-0.083,0.496-0.111,0.684c-0.078,0.531-0.197,0.928-0.365,1.226
|
||||
C29.664,22.055,29.966,22.885,29.966,23.767z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.0 KiB |
65
app/assets/images/map_002-producer-only-profile.svg
Normal file
@@ -0,0 +1,65 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
|
||||
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
|
||||
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
|
||||
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
|
||||
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
|
||||
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
|
||||
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
|
||||
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
|
||||
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
|
||||
]>
|
||||
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="35px" height="40px"
|
||||
viewBox="0 0 35 40" enable-background="new 0 0 35 40" xml:space="preserve">
|
||||
<metadata>
|
||||
<sfw xmlns="&ns_sfw;">
|
||||
<slices></slices>
|
||||
<sliceSourceBounds width="16383" height="103" y="-88.5" x="-8112" bottomLeftOrigin="true"></sliceSourceBounds>
|
||||
</sfw>
|
||||
</metadata>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M17.5,0C7.85,0,0,8.396,0,16.666C0,29.092,16.415,39.377,17.114,39.88C17.225,39.96,17.363,40,17.5,40
|
||||
c0.134,0,0.271-0.039,0.381-0.117C18.58,39.389,35,29.313,35,16.666C35,8.396,27.15,0,17.5,0z"/>
|
||||
<g>
|
||||
<path fill="#0B8C61" d="M17.5,0C7.85,0,0,8.396,0,16.666C0,29.092,16.415,39.377,17.114,39.88C17.225,39.96,17.363,40,17.5,40
|
||||
c0.134,0,0.271-0.039,0.381-0.117C18.58,39.389,35,29.313,35,16.666C35,8.396,27.15,0,17.5,0z M17.503,38.635
|
||||
C13.582,36.007,1.25,26.916,1.25,16.666C1.25,9.389,8.199,1.25,17.5,1.25c9.301,0,16.25,8.139,16.25,15.416
|
||||
C33.75,27.102,21.425,36.054,17.503,38.635z"/>
|
||||
<path fill="#0B8C61" d="M29.628,19.477c0.154-0.823,0.267-1.7,0.355-2.76c0.044-0.528,0.033-1.203-0.447-1.745
|
||||
c-0.541-0.611-1.351-0.643-1.697-0.656c-0.824-0.029-1.601-0.06-2.394-0.092c0.014-0.931,0.035-1.95,0.035-1.95l0.014-0.65
|
||||
l-0.524-0.384c-0.133-0.097-0.619-0.415-1.306-0.415c-0.382,0-0.749,0.097-1.09,0.288l-0.64,0.358v0.733v1.877
|
||||
c-0.472-0.011-1.057-0.024-1.721-0.039c-0.077-0.205-0.168-0.444-0.272-0.715c-0.372-0.974-0.882-2.309-1.504-4.103l-0.013-0.038
|
||||
l-0.016-0.037c-0.293-0.697-1.211-1.876-2.797-1.876H9.763h-1.25v1.25v5.508l-0.638,0.064l-0.156,0.946
|
||||
c-0.077,0.466-0.162,1.139,0.185,1.718C6.174,17.791,5,19.662,5,21.818c0,3.258,2.651,5.908,5.91,5.908
|
||||
c2.987,0,5.437-2.237,5.827-5.12c0.134,0.02,0.265,0.038,0.393,0.038h0.022l0.047-0.001c0.882-0.023,1.777-0.038,2.671-0.054
|
||||
c0.799-0.014,1.61-0.029,2.425-0.048c-0.129,0.388-0.198,0.801-0.198,1.226c0,2.169,1.765,3.934,3.935,3.934
|
||||
c2.169,0,3.934-1.765,3.934-3.934c0-0.882-0.303-1.712-0.814-2.379c0.168-0.298,0.288-0.695,0.365-1.226
|
||||
C29.545,19.973,29.578,19.747,29.628,19.477z M10.91,26.477c-2.57,0-4.66-2.09-4.66-4.658c0-1.953,1.211-3.622,2.919-4.314
|
||||
c0.033,0.002,0.058,0.012,0.092,0.012c0.247,0,0.511-0.043,0.856-0.14c0.362-0.101,0.732-0.153,1.101-0.153
|
||||
c0.263,0,0.521,0.026,0.774,0.076c1.11,0.267,2.065,0.926,2.708,1.83c0.052,0.076,0.102,0.152,0.149,0.23
|
||||
c0.071,0.114,0.132,0.235,0.193,0.356c0.201,0.418,0.348,0.867,0.406,1.344c0.012,0.104,0.028,0.22,0.046,0.354l0.014,0.103
|
||||
l0.051,0.37C15.521,24.424,13.453,26.477,10.91,26.477z M28.717,23.767c0,1.481-1.204,2.684-2.684,2.684
|
||||
c-1.483,0-2.685-1.203-2.685-2.684c0-1.231,0.836-2.269,1.969-2.583c-2.718,0.136-5.442,0.141-8.161,0.211
|
||||
c-0.008,0-0.016,0-0.024,0c-0.115,0-0.235-0.027-0.361-0.045c-0.04-0.502-0.139-0.985-0.298-1.444
|
||||
c-0.005-0.015-0.009-0.03-0.014-0.046c-0.079-0.222-0.168-0.435-0.271-0.644c-0.095-0.204-0.201-0.397-0.319-0.586
|
||||
c-0.04-0.062-0.078-0.124-0.12-0.184c-0.808-1.195-2.035-2.052-3.435-2.349c-0.452-0.111-0.917-0.187-1.403-0.187
|
||||
c-0.637,0-1.239,0.127-1.814,0.314c-0.226-0.091-0.24-0.39-0.143-0.98c0.37-0.037,0.811-0.222,0.811-0.222V8.523
|
||||
c0,0,4.873,0,5.849,0c1.178,0,1.645,1.11,1.645,1.11c0.901,2.601,1.587,4.29,1.901,5.157c0.122,0.33,0.379,0.488,0.472,0.49
|
||||
c2.09,0.043,3.555,0.082,3.555,0.082c0-1.091,0-2.132,0-3.158c0.17-0.095,0.334-0.128,0.479-0.128
|
||||
c0.331,0,0.566,0.172,0.566,0.172s-0.046,2.201-0.046,3.106c0,0.048,0.06,0.074,0.096,0.075c1.201,0.048,2.309,0.094,3.511,0.136
|
||||
c0.807,0.031,1.016,0.224,0.947,1.049c-0.073,0.881-0.175,1.765-0.338,2.635c-0.336,1.804,0.052,1.744-1.953,1.87
|
||||
C27.728,21.319,28.717,22.428,28.717,23.767z"/>
|
||||
<path fill="#0B8C61" d="M24.462,23.767c0,0.867,0.705,1.572,1.57,1.572c0.865,0,1.57-0.705,1.57-1.572
|
||||
c0-0.865-0.705-1.569-1.57-1.569C25.168,22.197,24.462,22.902,24.462,23.767z M27.29,23.767c0,0.694-0.564,1.259-1.258,1.259
|
||||
c-0.693,0-1.257-0.565-1.257-1.259c0-0.693,0.564-1.257,1.257-1.257C26.726,22.51,27.29,23.074,27.29,23.767z"/>
|
||||
<path fill="#0B8C61" d="M16.148,10.426l-4.946,0.008l-0.005,1.212l-0.004,3.644c1.512-0.055,3.244-0.086,4.923-0.086
|
||||
c0.565,0,1.124,0.004,1.667,0.011l-0.056-0.023L16.148,10.426z M16.117,14.579c-1.423,0-2.924,0.023-4.297,0.065l0.003-2.996
|
||||
l0.002-0.59l3.873-0.006l1.169,3.53C16.618,14.58,16.368,14.579,16.117,14.579z"/>
|
||||
<path fill="#0B8C61" d="M10.91,19.231c-1.427,0-2.587,1.161-2.587,2.587s1.16,2.586,2.587,2.586c1.426,0,2.587-1.16,2.587-2.586
|
||||
S12.336,19.231,10.91,19.231z M10.91,23.779c-1.082,0-1.962-0.88-1.962-1.961c0-1.082,0.88-1.962,1.962-1.962
|
||||
c1.082,0,1.962,0.88,1.962,1.962C12.871,22.9,11.991,23.779,10.91,23.779z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.4 KiB |
63
app/assets/images/map_003-producer-shop.svg
Normal file
@@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
|
||||
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
|
||||
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
|
||||
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
|
||||
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
|
||||
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
|
||||
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
|
||||
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
|
||||
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
|
||||
]>
|
||||
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="35px" height="40px"
|
||||
viewBox="0 0 35 40" enable-background="new 0 0 35 40" xml:space="preserve">
|
||||
<metadata>
|
||||
<sfw xmlns="&ns_sfw;">
|
||||
<slices></slices>
|
||||
<sliceSourceBounds width="16383" height="103" y="-88.5" x="-8112" bottomLeftOrigin="true"></sliceSourceBounds>
|
||||
</sfw>
|
||||
</metadata>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M17.5,0C7.85,0,0,8.396,0,16.666C0,29.092,16.415,39.377,17.114,39.88C17.225,39.96,17.363,40,17.5,40
|
||||
c0.134,0,0.271-0.039,0.381-0.117C18.58,39.389,35,29.313,35,16.666C35,8.396,27.15,0,17.5,0z"/>
|
||||
<g>
|
||||
<path fill="#C1122B" d="M11.824,11.058l-0.002,0.59l-0.003,2.996c1.373-0.042,2.874-0.065,4.297-0.065
|
||||
c0.251,0,0.502,0.001,0.75,0.002l-1.169-3.53L11.824,11.058z"/>
|
||||
<circle fill="#C1122B" cx="10.91" cy="21.818" r="1.962"/>
|
||||
<path fill="#C1122B" d="M15.494,21.413c-0.018-0.133-0.034-0.249-0.046-0.353c-0.058-0.477-0.206-0.926-0.406-1.344
|
||||
c-0.061-0.121-0.122-0.242-0.193-0.356c-0.047-0.079-0.098-0.155-0.149-0.23c-0.643-0.904-1.597-1.564-2.707-1.83
|
||||
c-0.252-0.05-0.511-0.076-0.774-0.076c-0.369,0-0.739,0.051-1.101,0.153c-0.345,0.097-0.609,0.14-0.856,0.14
|
||||
c-0.034,0-0.059-0.01-0.092-0.012c-1.708,0.692-2.919,2.361-2.919,4.314c0,2.569,2.09,4.658,4.66,4.658
|
||||
c2.544,0,4.611-2.053,4.649-4.589l-0.051-0.37L15.494,21.413z M10.91,24.404c-1.427,0-2.587-1.16-2.587-2.586
|
||||
s1.16-2.587,2.587-2.587c1.426,0,2.587,1.161,2.587,2.587S12.336,24.404,10.91,24.404z"/>
|
||||
<circle fill="#C1122B" cx="26.032" cy="23.767" r="1.258"/>
|
||||
<path fill="#C1122B" d="M28.399,19.248c0.163-0.87,0.265-1.754,0.338-2.635c0.069-0.824-0.14-1.017-0.947-1.049
|
||||
c-1.201-0.043-2.309-0.088-3.511-0.136c-0.037-0.001-0.096-0.027-0.096-0.075c0-0.905,0.046-3.106,0.046-3.106
|
||||
s-0.235-0.172-0.566-0.172c-0.145,0-0.309,0.033-0.479,0.128c0,1.026,0,2.067,0,3.158c0,0-1.465-0.039-3.555-0.082
|
||||
c-0.093-0.002-0.351-0.16-0.472-0.49c-0.314-0.867-1-2.557-1.901-5.157c0,0-0.466-1.11-1.645-1.11c-0.976,0-5.849,0-5.849,0v6.499
|
||||
c0,0-0.441,0.185-0.811,0.222c-0.097,0.59-0.083,0.889,0.143,0.98c0.575-0.187,1.177-0.314,1.814-0.314
|
||||
c0.486,0,0.951,0.076,1.403,0.187c1.399,0.297,2.627,1.154,3.435,2.349c0.042,0.06,0.08,0.122,0.12,0.184
|
||||
c0.117,0.189,0.224,0.383,0.319,0.587c0.103,0.209,0.192,0.422,0.271,0.644c0.005,0.015,0.009,0.03,0.014,0.046
|
||||
c0.159,0.46,0.258,0.942,0.298,1.444c0.126,0.017,0.245,0.045,0.361,0.045c0.008,0,0.016,0,0.025,0
|
||||
c2.72-0.07,5.444-0.075,8.161-0.211c-1.133,0.314-1.969,1.352-1.969,2.583c0,1.481,1.203,2.684,2.685,2.684
|
||||
c1.48,0,2.684-1.203,2.684-2.684c0-1.338-0.988-2.448-2.27-2.648C28.451,20.992,28.063,21.053,28.399,19.248z M16.116,15.204
|
||||
c-1.679,0-3.412,0.031-4.923,0.086l0.004-3.644l0.005-1.212l4.946-0.008l1.579,4.767l0.056,0.023
|
||||
C17.241,15.208,16.682,15.204,16.116,15.204z M27.602,23.767c0,0.867-0.705,1.572-1.57,1.572c-0.865,0-1.57-0.705-1.57-1.572
|
||||
c0-0.865,0.705-1.569,1.57-1.569C26.897,22.197,27.602,22.902,27.602,23.767z"/>
|
||||
<path fill="#C1122B" d="M17.5,0C7.85,0,0,8.396,0,16.666C0,29.092,16.415,39.377,17.114,39.88C17.225,39.96,17.363,40,17.5,40
|
||||
c0.134,0,0.271-0.039,0.381-0.117C18.58,39.389,35,29.313,35,16.666C35,8.396,27.15,0,17.5,0z M29.966,23.767
|
||||
c0,2.169-1.765,3.934-3.934,3.934c-2.17,0-3.935-1.765-3.935-3.934c0-0.424,0.069-0.837,0.198-1.226
|
||||
c-0.816,0.02-1.626,0.034-2.425,0.048c-0.895,0.016-1.789,0.032-2.671,0.054l-0.046,0.001h-0.022
|
||||
c-0.128,0-0.259-0.018-0.393-0.038c-0.39,2.883-2.84,5.12-5.827,5.12c-3.259,0-5.91-2.651-5.91-5.908
|
||||
c0-2.156,1.174-4.027,2.904-5.059c-0.347-0.579-0.262-1.252-0.185-1.718l0.156-0.946l0.638-0.064V8.523v-1.25h1.25h5.849
|
||||
c1.586,0,2.504,1.179,2.797,1.876l0.016,0.037l0.013,0.038c0.621,1.794,1.131,3.129,1.504,4.103
|
||||
c0.104,0.271,0.195,0.51,0.272,0.715c0.664,0.014,1.248,0.028,1.721,0.039v-1.877v-0.733l0.64-0.358
|
||||
c0.341-0.191,0.708-0.288,1.09-0.288c0.687,0,1.173,0.317,1.306,0.415l0.524,0.384l-0.014,0.65c0,0.001-0.021,1.019-0.035,1.95
|
||||
c0.793,0.032,1.571,0.062,2.394,0.092c0.346,0.013,1.156,0.045,1.697,0.656c0.48,0.542,0.491,1.217,0.447,1.745
|
||||
c-0.088,1.06-0.201,1.937-0.355,2.76c-0.05,0.27-0.083,0.496-0.111,0.684c-0.078,0.531-0.197,0.928-0.365,1.226
|
||||
C29.664,22.055,29.966,22.885,29.966,23.767z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.0 KiB |
65
app/assets/images/map_004-producer-shop-profile.svg
Normal file
@@ -0,0 +1,65 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
|
||||
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
|
||||
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
|
||||
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
|
||||
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
|
||||
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
|
||||
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
|
||||
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
|
||||
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
|
||||
]>
|
||||
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="35px" height="40px"
|
||||
viewBox="0 0 35 40" enable-background="new 0 0 35 40" xml:space="preserve">
|
||||
<metadata>
|
||||
<sfw xmlns="&ns_sfw;">
|
||||
<slices></slices>
|
||||
<sliceSourceBounds width="16383" height="103" y="-88.5" x="-8112" bottomLeftOrigin="true"></sliceSourceBounds>
|
||||
</sfw>
|
||||
</metadata>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M17.5,0C7.85,0,0,8.396,0,16.666C0,29.092,16.415,39.377,17.114,39.88C17.225,39.96,17.363,40,17.5,40
|
||||
c0.134,0,0.271-0.039,0.381-0.117C18.58,39.389,35,29.313,35,16.666C35,8.396,27.15,0,17.5,0z"/>
|
||||
<g>
|
||||
<path fill="#C1122B" d="M17.5,0C7.85,0,0,8.396,0,16.666C0,29.092,16.415,39.377,17.114,39.88C17.225,39.96,17.363,40,17.5,40
|
||||
c0.134,0,0.271-0.039,0.381-0.117C18.58,39.389,35,29.313,35,16.666C35,8.396,27.15,0,17.5,0z M17.503,38.635
|
||||
C13.582,36.007,1.25,26.916,1.25,16.666C1.25,9.389,8.199,1.25,17.5,1.25c9.301,0,16.25,8.139,16.25,15.416
|
||||
C33.75,27.102,21.425,36.054,17.503,38.635z"/>
|
||||
<path fill="#C1122B" d="M29.628,19.477c0.154-0.823,0.267-1.7,0.355-2.76c0.044-0.528,0.033-1.203-0.447-1.745
|
||||
c-0.541-0.611-1.351-0.643-1.697-0.656c-0.824-0.029-1.601-0.06-2.394-0.092c0.014-0.931,0.035-1.95,0.035-1.95l0.014-0.65
|
||||
l-0.524-0.384c-0.133-0.097-0.619-0.415-1.306-0.415c-0.382,0-0.749,0.097-1.09,0.288l-0.64,0.358v0.733v1.877
|
||||
c-0.472-0.011-1.057-0.024-1.721-0.039c-0.077-0.205-0.168-0.444-0.272-0.715c-0.372-0.974-0.882-2.309-1.504-4.103l-0.013-0.038
|
||||
l-0.016-0.037c-0.293-0.697-1.211-1.876-2.797-1.876H9.763h-1.25v1.25v5.508l-0.638,0.064l-0.156,0.946
|
||||
c-0.077,0.466-0.162,1.139,0.185,1.718C6.174,17.791,5,19.662,5,21.818c0,3.258,2.651,5.908,5.91,5.908
|
||||
c2.987,0,5.437-2.237,5.827-5.12c0.134,0.02,0.265,0.038,0.393,0.038h0.022l0.047-0.001c0.882-0.023,1.777-0.038,2.671-0.054
|
||||
c0.799-0.014,1.61-0.029,2.425-0.048c-0.129,0.388-0.198,0.801-0.198,1.226c0,2.169,1.765,3.934,3.935,3.934
|
||||
c2.169,0,3.934-1.765,3.934-3.934c0-0.882-0.303-1.712-0.814-2.379c0.168-0.298,0.288-0.695,0.365-1.226
|
||||
C29.545,19.973,29.578,19.747,29.628,19.477z M10.91,26.477c-2.57,0-4.66-2.09-4.66-4.658c0-1.953,1.211-3.622,2.919-4.314
|
||||
c0.033,0.002,0.058,0.012,0.092,0.012c0.247,0,0.511-0.043,0.856-0.14c0.362-0.101,0.732-0.153,1.101-0.153
|
||||
c0.263,0,0.521,0.026,0.774,0.076c1.11,0.267,2.065,0.926,2.708,1.83c0.052,0.076,0.102,0.152,0.149,0.23
|
||||
c0.071,0.114,0.132,0.235,0.193,0.356c0.201,0.418,0.348,0.867,0.406,1.344c0.012,0.104,0.028,0.22,0.046,0.354l0.014,0.103
|
||||
l0.051,0.37C15.521,24.424,13.453,26.477,10.91,26.477z M28.717,23.767c0,1.481-1.204,2.684-2.684,2.684
|
||||
c-1.483,0-2.685-1.203-2.685-2.684c0-1.231,0.836-2.269,1.969-2.583c-2.718,0.136-5.442,0.141-8.161,0.211
|
||||
c-0.008,0-0.016,0-0.024,0c-0.115,0-0.235-0.027-0.361-0.045c-0.04-0.502-0.139-0.985-0.298-1.444
|
||||
c-0.005-0.015-0.009-0.03-0.014-0.046c-0.079-0.222-0.168-0.435-0.271-0.644c-0.095-0.204-0.201-0.397-0.319-0.586
|
||||
c-0.04-0.062-0.078-0.124-0.12-0.184c-0.808-1.195-2.035-2.052-3.435-2.349c-0.452-0.111-0.917-0.187-1.403-0.187
|
||||
c-0.637,0-1.239,0.127-1.814,0.314c-0.226-0.091-0.24-0.39-0.143-0.98c0.37-0.037,0.811-0.222,0.811-0.222V8.523
|
||||
c0,0,4.873,0,5.849,0c1.178,0,1.645,1.11,1.645,1.11c0.901,2.601,1.587,4.29,1.901,5.157c0.122,0.33,0.379,0.488,0.472,0.49
|
||||
c2.09,0.043,3.555,0.082,3.555,0.082c0-1.091,0-2.132,0-3.158c0.17-0.095,0.334-0.128,0.479-0.128
|
||||
c0.331,0,0.566,0.172,0.566,0.172s-0.046,2.201-0.046,3.106c0,0.048,0.06,0.074,0.096,0.075c1.201,0.048,2.309,0.094,3.511,0.136
|
||||
c0.807,0.031,1.016,0.224,0.947,1.049c-0.073,0.881-0.175,1.765-0.338,2.635c-0.336,1.804,0.052,1.744-1.953,1.87
|
||||
C27.728,21.319,28.717,22.428,28.717,23.767z"/>
|
||||
<path fill="#C1122B" d="M24.462,23.767c0,0.867,0.705,1.572,1.57,1.572c0.865,0,1.57-0.705,1.57-1.572
|
||||
c0-0.865-0.705-1.569-1.57-1.569C25.168,22.197,24.462,22.902,24.462,23.767z M27.29,23.767c0,0.694-0.564,1.259-1.258,1.259
|
||||
c-0.693,0-1.257-0.565-1.257-1.259c0-0.693,0.564-1.257,1.257-1.257C26.726,22.51,27.29,23.074,27.29,23.767z"/>
|
||||
<path fill="#C1122B" d="M16.148,10.426l-4.946,0.008l-0.005,1.212l-0.004,3.644c1.512-0.055,3.244-0.086,4.923-0.086
|
||||
c0.565,0,1.124,0.004,1.667,0.011l-0.056-0.023L16.148,10.426z M16.117,14.579c-1.423,0-2.924,0.023-4.297,0.065l0.003-2.996
|
||||
l0.002-0.59l3.873-0.006l1.169,3.53C16.618,14.58,16.368,14.579,16.117,14.579z"/>
|
||||
<path fill="#C1122B" d="M10.91,19.231c-1.427,0-2.587,1.161-2.587,2.587s1.16,2.586,2.587,2.586c1.426,0,2.587-1.16,2.587-2.586
|
||||
S12.336,19.231,10.91,19.231z M10.91,23.779c-1.082,0-1.962-0.88-1.962-1.961c0-1.082,0.88-1.962,1.962-1.962
|
||||
c1.082,0,1.962,0.88,1.962,1.962C12.871,22.9,11.991,23.779,10.91,23.779z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.4 KiB |
46
app/assets/images/map_005-hub.svg
Normal file
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
|
||||
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
|
||||
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
|
||||
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
|
||||
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
|
||||
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
|
||||
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
|
||||
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
|
||||
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
|
||||
]>
|
||||
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="35px" height="40px"
|
||||
viewBox="0 0 35 40" enable-background="new 0 0 35 40" xml:space="preserve">
|
||||
<metadata>
|
||||
<sfw xmlns="&ns_sfw;">
|
||||
<slices></slices>
|
||||
<sliceSourceBounds width="16383" height="103" y="-88.5" x="-8112" bottomLeftOrigin="true"></sliceSourceBounds>
|
||||
</sfw>
|
||||
</metadata>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M17.5,0C7.85,0,0,8.396,0,16.666C0,29.092,16.415,39.377,17.114,39.88C17.225,39.96,17.363,40,17.5,40
|
||||
c0.134,0,0.271-0.039,0.381-0.117C18.58,39.389,35,29.313,35,16.666C35,8.396,27.15,0,17.5,0z"/>
|
||||
<g>
|
||||
<path fill="#C1122B" d="M17.499,10.683c-1.55,0-2.812,1.261-2.812,2.811c0,1.553,1.261,2.816,2.812,2.816
|
||||
c1.551,0,2.813-1.263,2.813-2.816C20.312,11.944,19.051,10.683,17.499,10.683z"/>
|
||||
<path fill="#C1122B" d="M17.499,7.935c-3.066,0-5.56,2.494-5.56,5.56c0,1.074,0.585,3.889,4.502,10.677l0.484,0.839l0.167,0.282
|
||||
l0.112,0.188l0.054,0.09l0.107,0.18l0.135,0.222l0.13-0.215l0.046-0.077l0.11-0.187l0.04-0.067l0.238-0.399l0.494-0.857
|
||||
c3.917-6.8,4.502-9.608,4.502-10.677C23.06,10.429,20.565,7.935,17.499,7.935z M17.499,17.247c-2.067,0-3.749-1.684-3.749-3.753
|
||||
c0-2.068,1.682-3.748,3.749-3.748c2.068,0,3.751,1.681,3.751,3.748C21.25,15.563,19.568,17.247,17.499,17.247z"/>
|
||||
<path fill="#C1122B" d="M17.5,0C7.85,0,0,8.396,0,16.666C0,29.092,16.415,39.377,17.114,39.88C17.225,39.96,17.363,40,17.5,40
|
||||
c0.134,0,0.271-0.039,0.381-0.117C18.58,39.389,35,29.313,35,16.666C35,8.396,27.15,0,17.5,0z M24.17,27.526
|
||||
c-0.003,2.16-3.358,3.29-6.671,3.29c-3.315,0-6.671-1.131-6.671-3.293c0-1.448,1.69-2.623,4.331-3.078
|
||||
c-2.151-3.762-4.471-8.402-4.471-10.95c0-3.755,3.055-6.81,6.81-6.81s6.81,3.055,6.812,6.809c0,2.546-2.323,7.187-4.472,10.952
|
||||
C22.48,24.9,24.17,26.076,24.17,27.526z"/>
|
||||
<path fill="#C1122B" d="M18.968,25.953c-0.036,0.06-0.074,0.125-0.11,0.185c-0.05,0.086-0.105,0.177-0.151,0.255
|
||||
c-0.139,0.23-0.258,0.424-0.366,0.603c-0.026,0.038-0.052,0.083-0.076,0.12c-0.101,0.166-0.177,0.289-0.242,0.391
|
||||
c-0.019,0.031-0.04,0.068-0.056,0.091c-0.065,0.102-0.1,0.157-0.1,0.157l-0.369,0.578l-0.366-0.578c0,0-0.039-0.061-0.106-0.167
|
||||
c-0.007-0.011-0.017-0.028-0.024-0.037c-0.067-0.108-0.153-0.247-0.265-0.431c-0.031-0.048-0.065-0.107-0.099-0.159
|
||||
c-0.103-0.17-0.213-0.348-0.342-0.561c-0.052-0.09-0.112-0.188-0.167-0.281c-0.032-0.055-0.066-0.112-0.098-0.165l-0.476,0.076
|
||||
c-2.161,0.347-3.096,1.157-3.096,1.494c0,0.215,0.336,0.601,1.074,0.943c1,0.463,2.408,0.718,3.965,0.718
|
||||
c3.26,0,5.039-1.098,5.039-1.662c0-0.337-0.935-1.147-3.095-1.493L18.968,25.953z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.4 KiB |
48
app/assets/images/map_006-hub-profile.svg
Normal file
@@ -0,0 +1,48 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
|
||||
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
|
||||
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
|
||||
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
|
||||
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
|
||||
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
|
||||
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
|
||||
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
|
||||
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
|
||||
]>
|
||||
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="35px" height="40px"
|
||||
viewBox="0 0 35 40" enable-background="new 0 0 35 40" xml:space="preserve">
|
||||
<metadata>
|
||||
<sfw xmlns="&ns_sfw;">
|
||||
<slices></slices>
|
||||
<sliceSourceBounds width="16383" height="103" y="-88.5" x="-8112" bottomLeftOrigin="true"></sliceSourceBounds>
|
||||
</sfw>
|
||||
</metadata>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M17.5,0C7.85,0,0,8.396,0,16.666C0,29.092,16.415,39.377,17.114,39.88C17.225,39.96,17.363,40,17.5,40
|
||||
c0.134,0,0.271-0.039,0.381-0.117C18.58,39.389,35,29.313,35,16.666C35,8.396,27.15,0,17.5,0z"/>
|
||||
<g>
|
||||
<path fill="#C1122B" d="M17.5,0C7.85,0,0,8.396,0,16.666C0,29.092,16.415,39.377,17.114,39.88C17.225,39.96,17.363,40,17.5,40
|
||||
c0.134,0,0.271-0.039,0.381-0.117C18.58,39.389,35,29.313,35,16.666C35,8.396,27.15,0,17.5,0z M17.503,38.635
|
||||
C13.582,36.007,1.25,26.916,1.25,16.666C1.25,9.389,8.199,1.25,17.5,1.25s16.25,8.139,16.25,15.416
|
||||
C33.75,27.103,21.425,36.054,17.503,38.635z"/>
|
||||
<path fill="#C1122B" d="M17.499,9.745c-2.067,0-3.749,1.68-3.749,3.748c0,2.07,1.682,3.753,3.749,3.753
|
||||
c2.068,0,3.751-1.684,3.751-3.753C21.25,11.426,19.568,9.745,17.499,9.745z M17.499,16.309c-1.551,0-2.812-1.263-2.812-2.816
|
||||
c0-1.55,1.261-2.811,2.812-2.811c1.551,0,2.813,1.261,2.813,2.811C20.312,15.046,19.051,16.309,17.499,16.309z"/>
|
||||
<path fill="#C1122B" d="M17.499,6.685c-3.755,0-6.81,3.055-6.81,6.81c0,2.549,2.32,7.188,4.471,10.95
|
||||
c-2.641,0.454-4.331,1.63-4.331,3.078c0,2.162,3.356,3.293,6.671,3.293c3.313,0,6.668-1.13,6.671-3.29
|
||||
c0-1.45-1.69-2.626-4.332-3.079c2.149-3.765,4.472-8.407,4.472-10.952C24.31,9.74,21.254,6.685,17.499,6.685z M22.538,27.523
|
||||
c0,0.564-1.779,1.662-5.039,1.662c-1.557,0-2.965-0.255-3.965-0.718c-0.738-0.342-1.074-0.728-1.074-0.943
|
||||
c0-0.337,0.935-1.147,3.096-1.494l0.476-0.076c0.032,0.053,0.066,0.11,0.098,0.165c0.056,0.094,0.115,0.191,0.167,0.281
|
||||
c0.129,0.213,0.239,0.391,0.342,0.561c0.033,0.052,0.068,0.112,0.099,0.159c0.112,0.184,0.198,0.323,0.265,0.431
|
||||
c0.007,0.008,0.017,0.026,0.024,0.037c0.066,0.107,0.106,0.167,0.106,0.167l0.366,0.578l0.369-0.578c0,0,0.034-0.055,0.1-0.157
|
||||
c0.015-0.024,0.037-0.061,0.056-0.091c0.065-0.102,0.141-0.224,0.242-0.391c0.024-0.037,0.05-0.082,0.076-0.12
|
||||
c0.108-0.179,0.227-0.373,0.366-0.603c0.046-0.078,0.101-0.17,0.151-0.255c0.036-0.06,0.075-0.126,0.11-0.185l0.475,0.076
|
||||
C21.604,26.376,22.538,27.186,22.538,27.523z M18.559,24.171l-0.495,0.86l-0.236,0.396l-0.041,0.067l-0.111,0.188l-0.045,0.075
|
||||
l-0.13,0.215l-0.135-0.222l-0.107-0.18l-0.054-0.09l-0.112-0.188l-0.168-0.283l-0.483-0.837
|
||||
c-3.917-6.787-4.502-9.603-4.502-10.677c0-3.066,2.494-5.56,5.56-5.56c3.066,0,5.561,2.494,5.562,5.559
|
||||
C23.061,14.563,22.476,17.372,18.559,24.171z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.5 KiB |
47
app/assets/images/map_007-shop.svg
Normal file
@@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
|
||||
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
|
||||
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
|
||||
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
|
||||
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
|
||||
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
|
||||
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
|
||||
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
|
||||
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
|
||||
]>
|
||||
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="35px" height="40px"
|
||||
viewBox="0 0 35 40" enable-background="new 0 0 35 40" xml:space="preserve">
|
||||
<metadata>
|
||||
<sfw xmlns="&ns_sfw;">
|
||||
<slices></slices>
|
||||
<sliceSourceBounds width="16383" height="103" y="-88.5" x="-8112" bottomLeftOrigin="true"></sliceSourceBounds>
|
||||
</sfw>
|
||||
</metadata>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M17.5,0C7.85,0,0,8.396,0,16.666C0,29.092,16.415,39.377,17.114,39.88C17.225,39.96,17.363,40,17.5,40
|
||||
c0.134,0,0.271-0.039,0.381-0.117C18.58,39.389,35,29.313,35,16.666C35,8.396,27.15,0,17.5,0z"/>
|
||||
<g>
|
||||
<path fill="#C1122B" d="M26.94,12.852h-4.093l-2.103-3.386c-0.206-0.359-0.667-0.48-1-0.284c-0.168,0.098-0.287,0.251-0.337,0.437
|
||||
c-0.051,0.192-0.023,0.394,0.078,0.571l1.699,2.661h-7.888l1.724-2.701c0.083-0.143,0.109-0.338,0.057-0.526
|
||||
c-0.05-0.188-0.17-0.344-0.338-0.441c-0.332-0.195-0.8-0.066-0.984,0.253l-2.122,3.417H8.06c-0.653,0-1.185,0.532-1.185,1.185
|
||||
v1.034c0,0.615,0.454,1.212,0.991,1.301l0.131,0.022h18.945l0.149-0.02c0.551-0.072,1.034-0.681,1.034-1.304v-1.034
|
||||
C28.125,13.385,27.593,12.852,26.94,12.852z"/>
|
||||
<path fill="#C1122B" d="M10.071,25.025c0.009,0.277,0.153,0.421,0.328,0.421h14.207c0.177,0,0.321-0.144,0.321-0.32l0.009-0.125
|
||||
l1.213-7.357H8.853L10.071,25.025z M21.395,20.092c0-0.372,0.275-0.674,0.647-0.674c0.371,0,0.645,0.302,0.645,0.674v2.521
|
||||
c0,0.372-0.274,0.674-0.645,0.674c-0.372,0-0.647-0.301-0.647-0.674V20.092z M18.367,20.092c0-0.372,0.274-0.674,0.646-0.674
|
||||
s0.646,0.302,0.646,0.674v2.521c0,0.372-0.274,0.674-0.646,0.674s-0.646-0.301-0.646-0.674V20.092z M15.34,20.092
|
||||
c0-0.372,0.274-0.674,0.646-0.674c0.371,0,0.646,0.302,0.646,0.674v2.521c0,0.372-0.275,0.674-0.646,0.674
|
||||
c-0.373,0-0.646-0.301-0.646-0.674V20.092z M12.313,20.092c0-0.372,0.274-0.674,0.646-0.674c0.371,0,0.645,0.302,0.645,0.674
|
||||
v2.521c0,0.372-0.274,0.674-0.645,0.674c-0.372,0-0.646-0.301-0.646-0.674V20.092z"/>
|
||||
<path fill="#C1122B" d="M17.5,0C7.85,0,0,8.396,0,16.666C0,29.092,16.415,39.377,17.114,39.88C17.225,39.96,17.363,40,17.5,40
|
||||
c0.134,0,0.271-0.039,0.381-0.117C18.58,39.389,35,29.313,35,16.666C35,8.396,27.15,0,17.5,0z M29.375,15.072
|
||||
c0,1.079-0.709,2.076-1.656,2.428l-1.282,7.361c-0.018,1.219-1.111,2.289-2.426,2.289H10.93c-1.315,0-2.406-1.069-2.434-2.383
|
||||
l-1.281-7.285c-0.92-0.367-1.591-1.344-1.591-2.41v-1.034c0-1.343,1.093-2.435,2.435-2.435h2.877l1.746-2.809
|
||||
c0.5-0.873,1.771-1.222,2.681-0.693c0.944,0.543,1.268,1.754,0.725,2.699l-0.513,0.802h3.328l-0.487-0.763
|
||||
c-0.283-0.488-0.355-1.029-0.217-1.544c0.137-0.508,0.463-0.931,0.918-1.194c0.895-0.521,2.174-0.186,2.699,0.724l1.726,2.778
|
||||
h3.397c1.343,0,2.435,1.093,2.435,2.435V15.072z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.5 KiB |
68
app/assets/images/map_008-shop-profile.svg
Normal file
@@ -0,0 +1,68 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
|
||||
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
|
||||
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
|
||||
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
|
||||
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
|
||||
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
|
||||
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
|
||||
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
|
||||
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
|
||||
]>
|
||||
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="35px" height="40px"
|
||||
viewBox="0 0 35 40" enable-background="new 0 0 35 40" xml:space="preserve">
|
||||
<metadata>
|
||||
<sfw xmlns="&ns_sfw;">
|
||||
<slices></slices>
|
||||
<sliceSourceBounds width="16383" height="103" y="-88.5" x="-8112" bottomLeftOrigin="true"></sliceSourceBounds>
|
||||
</sfw>
|
||||
</metadata>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M17.5,0C7.85,0,0,8.396,0,16.666C0,29.092,16.415,39.377,17.114,39.88C17.225,39.96,17.363,40,17.5,40
|
||||
c0.134,0,0.271-0.039,0.381-0.117C18.58,39.389,35,29.313,35,16.666C35,8.396,27.15,0,17.5,0z"/>
|
||||
<path fill="#C1122B" d="M17.5,0C7.85,0,0,8.396,0,16.666C0,29.092,16.415,39.377,17.114,39.88C17.225,39.96,17.363,40,17.5,40
|
||||
c0.134,0,0.271-0.039,0.381-0.117C18.58,39.389,35,29.313,35,16.666C35,8.396,27.15,0,17.5,0z M17.503,38.635
|
||||
C13.582,36.007,1.25,26.916,1.25,16.666C1.25,9.389,8.199,1.25,17.5,1.25s16.25,8.139,16.25,15.416
|
||||
C33.75,27.103,21.425,36.054,17.503,38.635z"/>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#C1122B" d="M24.322,27.957H10.617c-1.342,0-2.456-1.091-2.485-2.432l-1.349-7.679
|
||||
c-0.958-0.364-1.659-1.374-1.659-2.477v-1.083c0-1.371,1.115-2.486,2.485-2.486h3.051l1.848-2.974
|
||||
c0.51-0.886,1.798-1.237,2.721-0.703c0.463,0.267,0.794,0.699,0.933,1.217c0.138,0.517,0.068,1.058-0.2,1.52l-0.599,0.939h3.725
|
||||
L18.516,10.9c-0.287-0.494-0.36-1.042-0.221-1.564c0.138-0.516,0.468-0.947,0.931-1.213c0.914-0.535,2.208-0.189,2.738,0.735
|
||||
l1.829,2.942h3.597c1.37,0,2.485,1.115,2.485,2.486v1.083c0,1.118-0.742,2.149-1.728,2.495l-1.35,7.748
|
||||
C26.779,26.865,25.665,27.957,24.322,27.957z M7.61,12.978c-0.721,0-1.306,0.587-1.306,1.308v1.083
|
||||
c0,0.676,0.501,1.329,1.092,1.428l0.412,0.069l1.494,8.545c0.024,0.794,0.61,1.367,1.316,1.367h13.705
|
||||
c0.707,0,1.293-0.574,1.306-1.279l1.499-8.644l0.43-0.056c0.618-0.079,1.139-0.735,1.139-1.431v-1.083
|
||||
c0-0.721-0.586-1.308-1.306-1.308h-4.253l-2.185-3.516c-0.232-0.405-0.756-0.541-1.136-0.32c-0.191,0.11-0.327,0.287-0.383,0.497
|
||||
c-0.058,0.219-0.026,0.448,0.09,0.648l1.716,2.69h-8.025l1.741-2.729c0.097-0.168,0.125-0.391,0.069-0.604
|
||||
c-0.058-0.213-0.195-0.391-0.386-0.501c-0.38-0.223-0.912-0.076-1.119,0.288l-2.204,3.547H7.61z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#C1122B" d="M24.944,27.482H10.061c-0.871,0-1.58-0.708-1.58-1.579L6.972,16.82h21.056l-1.505,9.103
|
||||
C26.525,26.774,25.816,27.482,24.944,27.482z M8.362,17.999l1.289,7.808c0.008,0.317,0.189,0.496,0.41,0.496h14.883
|
||||
c0.221,0,0.402-0.18,0.402-0.401l0.007-0.121l1.286-7.783H8.362z"/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#C1122B" d="M22.258,23.976c0.389,0,0.676-0.316,0.676-0.706v-2.642c0-0.39-0.287-0.706-0.676-0.706
|
||||
c-0.39,0-0.678,0.316-0.678,0.706v2.642C21.58,23.661,21.868,23.976,22.258,23.976z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#C1122B" d="M19.086,23.976c0.39,0,0.677-0.316,0.677-0.706v-2.642c0-0.39-0.287-0.706-0.677-0.706
|
||||
s-0.677,0.316-0.677,0.706v2.642C18.409,23.661,18.696,23.976,19.086,23.976z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#C1122B" d="M15.914,23.976c0.389,0,0.677-0.316,0.677-0.706v-2.642c0-0.39-0.288-0.706-0.677-0.706
|
||||
c-0.39,0-0.677,0.316-0.677,0.706v2.642C15.237,23.661,15.524,23.976,15.914,23.976z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#C1122B" d="M12.742,23.976c0.389,0,0.676-0.316,0.676-0.706v-2.642c0-0.39-0.287-0.706-0.676-0.706
|
||||
c-0.39,0-0.677,0.316-0.677,0.706v2.642C12.065,23.661,12.353,23.976,12.742,23.976z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.2 KiB |
@@ -24,5 +24,5 @@ angular.module("ofn.admin").factory 'EnterpriseRelationships', ($http, enterpris
|
||||
|
||||
permission_presentation: (permission) ->
|
||||
switch permission
|
||||
when "add_to_order_cycle" then "can add to order cycle"
|
||||
when "manage_products" then "can manage the products of"
|
||||
when "add_to_order_cycle" then "to add to order cycle"
|
||||
when "manage_products" then "to manage products"
|
||||
|
||||
@@ -6,9 +6,9 @@ Darkswarm.controller "CheckoutCtrl", ($scope, storage, Checkout, CurrentUser, Cu
|
||||
prefix = "order_#{Checkout.order.id}#{CurrentUser?.id}#{CurrentHub.hub.id}"
|
||||
|
||||
for field in $scope.fieldsToBind
|
||||
storage.bind $scope, "Checkout.order.#{field}",
|
||||
storage.bind $scope, "Checkout.order.#{field}",
|
||||
storeName: "#{prefix}_#{field}"
|
||||
storage.bind $scope, "Checkout.ship_address_same_as_billing",
|
||||
storage.bind $scope, "Checkout.ship_address_same_as_billing",
|
||||
storeName: "#{prefix}_sameasbilling"
|
||||
defaultValue: true
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ Darkswarm.factory 'Checkout', (CurrentOrder, ShippingMethods, PaymentMethods, $h
|
||||
Loading.clear()
|
||||
@errors = response.errors
|
||||
RailsFlashLoader.loadFlash(response.flash)
|
||||
|
||||
|
||||
# Rails wants our Spree::Address data to be provided with _attributes
|
||||
preprocess: ->
|
||||
munged_order = {}
|
||||
@@ -25,7 +25,7 @@ Darkswarm.factory 'Checkout', (CurrentOrder, ShippingMethods, PaymentMethods, $h
|
||||
munged_order["ship_address_attributes"] = value
|
||||
when "payment_method_id"
|
||||
munged_order["payments_attributes"] = [{payment_method_id: value}]
|
||||
when "shipping_method_id", "payment_method_id", "email"
|
||||
when "shipping_method_id", "payment_method_id", "email", "special_instructions"
|
||||
munged_order[name] = value
|
||||
else
|
||||
# Ignore everything else
|
||||
@@ -58,7 +58,7 @@ Darkswarm.factory 'Checkout', (CurrentOrder, ShippingMethods, PaymentMethods, $h
|
||||
|
||||
shippingPrice: ->
|
||||
@shippingMethod()?.price || 0.0
|
||||
|
||||
|
||||
paymentMethod: ->
|
||||
PaymentMethods.payment_methods_by_id[@order.payment_method_id]
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ Darkswarm.factory 'Hubs', ($filter, Enterprises, visibleFilter) ->
|
||||
new class Hubs
|
||||
constructor: ->
|
||||
@hubs = @order Enterprises.enterprises.filter (hub)->
|
||||
hub.is_distributor
|
||||
hub.is_distributor && hub.has_shopfront
|
||||
@visible = visibleFilter @hubs
|
||||
|
||||
order: (hubs)->
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
.row.pad-top{bindonce: true, "ng-if" => "enterprise.hubs.length > 0"}
|
||||
.row.pad-top{bindonce: true, "ng-if" => "enterprise.hubs.length > 0 && enterprise.has_shopfront"}
|
||||
.cta-container.small-12.columns
|
||||
%label
|
||||
Shop for
|
||||
%strong {{enterprise.name}}
|
||||
products at:
|
||||
%a.button.hub{"ng-repeat" => "hub in enterprise.hubs",
|
||||
%a.cta-hub{"ng-repeat" => "hub in enterprise.hubs",
|
||||
"bo-href" => "hub.path",
|
||||
"bo-class" => "{primary: hub.active, secondary: !hub.active}",
|
||||
"ofn-empties-cart" => "hub"}
|
||||
%i.ofn-i_033-open-sign{"bo-if" => "hub.active"}
|
||||
%i.ofn-i_032-closed-sign{"bo-if" => "!hub.active"}
|
||||
{{hub.name}}
|
||||
.hub-name {{hub.name}}
|
||||
.button-address {{ hub.address.city }} , {{hub.address.state_name}}
|
||||
%i.ofn-i_007-caret-right
|
||||
/ %i.ofn-i_007-caret-right
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
.row.pad-top{bindonce: true}
|
||||
.row.pad-top{bindonce: true, ng: { if: 'enterprise.has_shopfront' } }
|
||||
.cta-container.small-12.columns
|
||||
.row
|
||||
.small-4.columns
|
||||
%label{"active-table-hub-link" => "enterprise", change: "Change hub to:", shop: "Shop now at:"}
|
||||
%label{"active-table-hub-link" => "enterprise", change: "Change shop to:", shop: "Shop now at:"}
|
||||
.small-8.columns.right
|
||||
%label.right{"bo-if" => "enterprise.pickup || enterprise.delivery"}
|
||||
Delivery options:
|
||||
@@ -14,11 +14,11 @@
|
||||
Delivery
|
||||
.row
|
||||
.columns.small-12
|
||||
%a.button.hub.expand{"bo-href" => "enterprise.path",
|
||||
%a.cta-hub{"bo-href" => "enterprise.path",
|
||||
"ng-class" => "{primary: enterprise.active, secondary: !enterprise.active}",
|
||||
"ofn-empties-cart" => "enterprise"}
|
||||
%i.ofn-i_033-open-sign{"bo-if" => "enterprise.active"}
|
||||
%i.ofn-i_032-closed-sign{"bo-if" => "!enterprise.active"}
|
||||
{{enterprise.name}}
|
||||
.hub-name {{enterprise.name}}
|
||||
.button-address {{ enterprise.address.city }} , {{enterprise.address.state_name}}
|
||||
%i.ofn-i_007-caret-right
|
||||
/ %i.ofn-i_007-caret-right
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
padding: 1rem 0
|
||||
|
||||
.active_table .active_table_node
|
||||
margin-top: 0.25rem
|
||||
display: block
|
||||
border: 0
|
||||
|
||||
@@ -28,11 +29,17 @@
|
||||
span
|
||||
text-decoration: underline
|
||||
|
||||
span.margin-top
|
||||
margin-top: 0.5rem
|
||||
display: inline-block
|
||||
|
||||
// Generic text resize
|
||||
@media all and (max-width: 640px)
|
||||
font-size: 0.875rem
|
||||
&, & *
|
||||
font-size: 0.875rem
|
||||
fat > div label
|
||||
&, & *
|
||||
font-size: 0.75rem
|
||||
|
||||
|
||||
.active_table_row // Inherits from active_table
|
||||
@@ -68,7 +75,7 @@
|
||||
|
||||
//Open row sections
|
||||
.fat > div
|
||||
border-top: 1px solid $disabled-bright
|
||||
border-top: 1px solid #aaa
|
||||
|
||||
ul, ol
|
||||
font-size: 0.875rem
|
||||
@@ -81,7 +88,7 @@
|
||||
font-size: 0.75rem
|
||||
margin-top: 0.25rem
|
||||
margin-bottom: 0.25rem
|
||||
color: $disabled-dark
|
||||
color: #777
|
||||
|
||||
p.trans-sentence
|
||||
text-transform: capitalize
|
||||
|
||||
3
app/assets/stylesheets/darkswarm/angular.css.sass
Normal file
@@ -0,0 +1,3 @@
|
||||
// https://docs.angularjs.org/api/ng/directive/ngCloak
|
||||
[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak
|
||||
display: none !important
|
||||
@@ -10,23 +10,30 @@
|
||||
overflow-x: hidden
|
||||
overflow-y: visible
|
||||
|
||||
//Hub icon styline
|
||||
i.ofn-i_040-hub
|
||||
@include border-radius(99999rem)
|
||||
font-size: 1.15rem
|
||||
display: inline-block
|
||||
padding: 0.2rem
|
||||
margin-top: 0.1rem
|
||||
margin-bottom: 0.1rem
|
||||
background-color: transparent
|
||||
@media all and (max-width: 768px)
|
||||
font-size: 1rem
|
||||
|
||||
//Generic text link style
|
||||
a:hover, a:active, a:focus
|
||||
color: $clr-brick-bright
|
||||
|
||||
@media all and (max-width: 640px)
|
||||
//Hub and Producer icons
|
||||
// i.ofn-i_040-hub
|
||||
i.ofn-i_063-hub, i.ofn-i_064-hub-reversed, i.ofn-i_059-producer, i.ofn-i_060-producer-reversed
|
||||
font-size: 2rem
|
||||
display: inline-block
|
||||
margin-right: 0.25rem
|
||||
float: left
|
||||
|
||||
//Closed & Open column
|
||||
.open_closed
|
||||
i
|
||||
font-size: 2rem
|
||||
float: right
|
||||
margin-left: 0.5rem
|
||||
|
||||
//Hub Name
|
||||
span.hub-name-listing
|
||||
font-weight: 700
|
||||
|
||||
@media all and (max-width: 640px)
|
||||
&.closed, &.open
|
||||
.active_table_row:first-child .skinny-head
|
||||
background-color: $clr-brick-light
|
||||
@@ -38,38 +45,35 @@
|
||||
&.closed, &.open
|
||||
.active_table_row:first-child .skinny-head
|
||||
background-color: white
|
||||
|
||||
&.current
|
||||
&.closed, &.open
|
||||
.active_table_row:first-child .skinny-head
|
||||
background-color: $clr-brick-bright
|
||||
&.current
|
||||
&.inactive
|
||||
&.closed, &.open
|
||||
.active_table_row:first-child .skinny-head
|
||||
background-color: #555
|
||||
|
||||
//Inactive row
|
||||
&.inactive, &.inactive strong
|
||||
color: $disabled-dark
|
||||
|
||||
&, & *
|
||||
color: $disabled-dark
|
||||
|
||||
a i.ofn-i_040-hub
|
||||
color: $disabled-dark
|
||||
|
||||
&.current
|
||||
&.current
|
||||
&.inactive
|
||||
&.closed, &.open
|
||||
|
||||
a, a strong, a span, a i
|
||||
color: $disabled-dark
|
||||
&:hover, &:focus, &:active
|
||||
color: $disabled-dark
|
||||
|
||||
a i.ofn-i_040-hub
|
||||
color: white
|
||||
.active_table_row:first-child
|
||||
background-color: $disabled-dark
|
||||
a:hover, a:focus, a:active
|
||||
color: $disabled-dark
|
||||
i.ofn-i_040-hub
|
||||
background-color: $disabled-dark
|
||||
|
||||
&, & *
|
||||
color: white
|
||||
&.closed
|
||||
&:hover, &:active, &:focus
|
||||
border: none
|
||||
color: $disabled-dark
|
||||
|
||||
&.open
|
||||
.active_table_row:first-child
|
||||
color: $disabled-dark
|
||||
@@ -82,31 +86,27 @@
|
||||
.active_table_row:nth-child(2)
|
||||
background-color: rgba(255, 255, 255, 0)
|
||||
|
||||
//Open row
|
||||
//Padding second row
|
||||
&.open
|
||||
.active_table_row:nth-child(2)
|
||||
padding-bottom: 0.75rem
|
||||
|
||||
|
||||
//Current selected row
|
||||
&.current
|
||||
//overwrites active_table
|
||||
&.closed
|
||||
a, a i, a span, a strong
|
||||
color: $clr-brick
|
||||
|
||||
&.closed, &.open
|
||||
a i.ofn-i_040-hub
|
||||
color: white
|
||||
.active_table_row:first-child
|
||||
background-color: $clr-brick
|
||||
|
||||
|
||||
a:hover, a:focus, a:active
|
||||
strong, span
|
||||
color: $clr-brick-bright
|
||||
i.ofn-i_040-hub
|
||||
background-color: $clr-brick-bright
|
||||
|
||||
|
||||
|
||||
|
||||
opacity: 1
|
||||
&:hover, &:focus, &:active
|
||||
opacity: 0.9
|
||||
&, & *
|
||||
color: white
|
||||
&.open, &.closed
|
||||
.active_table_row
|
||||
border-color: $clr-brick
|
||||
&.inactive
|
||||
&.open, &.closed
|
||||
.active_table_row
|
||||
border-color: $disabled-dark
|
||||
|
||||
|
||||
@@ -2,6 +2,23 @@
|
||||
@import mixins
|
||||
|
||||
|
||||
// Generic styles for use
|
||||
|
||||
.modal-centered
|
||||
text-align: center
|
||||
p
|
||||
margin-bottom: 0
|
||||
|
||||
.modal-header, p.modal-header
|
||||
text-align: center
|
||||
text-transform: uppercase
|
||||
font-size: 1rem
|
||||
font-weight: 400
|
||||
color: $disabled-dark
|
||||
border-bottom: 1px solid $disabled-dark
|
||||
margin-top: 0.75rem
|
||||
margin-bottom: 0.5rem
|
||||
|
||||
// Enterprise promo image and text
|
||||
|
||||
.highlight
|
||||
@@ -53,7 +70,7 @@
|
||||
// FOLLOW Enterprise
|
||||
|
||||
.follow-icons
|
||||
text-align: center
|
||||
// text-align: center
|
||||
span
|
||||
display: inline-block
|
||||
margin: 0 0.25rem 0.75rem 0.25rem
|
||||
@@ -74,7 +91,7 @@
|
||||
label
|
||||
text-transform: uppercase
|
||||
font-size: 0.875rem
|
||||
margin-bottom: 0
|
||||
margin-bottom: 0.75rem
|
||||
5rem
|
||||
color: $dark-grey
|
||||
|
||||
@@ -82,51 +99,53 @@
|
||||
color: $disabled-dark
|
||||
span
|
||||
text-transform: capitalize
|
||||
|
||||
.cta-hub
|
||||
margin-right: 2rem
|
||||
margin-top: 0rem
|
||||
margin-bottom: 0.75rem
|
||||
display: inline-block
|
||||
|
||||
.button.secondary
|
||||
background-color: #999
|
||||
.button.hub
|
||||
margin-right: 1rem
|
||||
margin-top: 0.25rem
|
||||
margin-bottom: 1rem
|
||||
padding-left: 1rem
|
||||
padding-right: 1rem
|
||||
font-weight: bold
|
||||
&.secondary
|
||||
color: $disabled-dark
|
||||
|
||||
&.primary
|
||||
color: $clr-brick
|
||||
|
||||
i.ofn-i_033-open-sign, i.ofn-i_032-closed-sign
|
||||
margin-right: 0.15rem
|
||||
font-size: 1.25rem
|
||||
i.ofn-i_007-caret-right
|
||||
margin-left: 1rem
|
||||
margin-right: 0.1rem
|
||||
font-size: 2rem
|
||||
padding: 0.15rem 0.25rem 0.35rem 0.25rem
|
||||
float: left
|
||||
|
||||
.hub-name
|
||||
margin-top: 0.75rem
|
||||
margin-bottom: 0.2rem
|
||||
font-weight: 400
|
||||
display: inline-block
|
||||
border-bottom: 1px solid transparent
|
||||
.button-address
|
||||
margin-top: 0.5rem
|
||||
margin-bottom: 0.2rem
|
||||
margin-left: 0.1rem
|
||||
text-transform: uppercase
|
||||
font-weight: 300
|
||||
font-style: italic
|
||||
font-size: 0.75rem
|
||||
display: inline
|
||||
display: inline-block
|
||||
border-bottom: 1px solid transparent
|
||||
@media all and (max-width: 640px)
|
||||
display: none
|
||||
.button.hub.expand
|
||||
text-align: left
|
||||
i.ofn-i_007-caret-right
|
||||
float: right
|
||||
i.ofn-i_033-open-sign, i.ofn-i_032-closed-sign
|
||||
float: left
|
||||
margin-right: 0.5rem
|
||||
|
||||
&:hover, &:focus, &:active
|
||||
&.secondary
|
||||
color: #666
|
||||
.hub-name, .button-address
|
||||
border-bottom: 1px solid #999
|
||||
&.primary
|
||||
color: $clr-brick-bright
|
||||
.hub-name, .button-address
|
||||
border-bottom: 1px solid $clr-brick-bright
|
||||
|
||||
|
||||
// Generic styles for use
|
||||
|
||||
.modal-centered
|
||||
text-align: center
|
||||
p
|
||||
margin-bottom: 0
|
||||
|
||||
.modal-header, p.modal-header
|
||||
text-align: center
|
||||
text-transform: uppercase
|
||||
font-size: 1rem
|
||||
font-weight: 400
|
||||
color: $disabled-dark
|
||||
border-bottom: 1px solid $disabled-dark
|
||||
margin-top: 0.75rem
|
||||
margin-bottom: 0.5rem
|
||||
|
||||
|
||||
@@ -11,6 +11,42 @@
|
||||
margin-bottom: 1rem
|
||||
padding-top: 1rem
|
||||
padding-bottom: 1rem
|
||||
.follow-icons
|
||||
&, & *
|
||||
font-size: 1.5rem
|
||||
|
||||
// Producer icons
|
||||
i.ofn-i_059-producer, i.ofn-i_060-producer-reversed
|
||||
font-size: 2rem
|
||||
display: inline-block
|
||||
margin-right: 0.25rem
|
||||
float: left
|
||||
color: $clr-turquoise
|
||||
|
||||
a
|
||||
&:hover, &:active, &:focus
|
||||
color: $clr-turquoise-bright
|
||||
span
|
||||
text-decoration: underline
|
||||
|
||||
a.cta-hub
|
||||
&:hover, &:focus, &:active
|
||||
&.secondary
|
||||
color: #666
|
||||
.hub-name, .button-address
|
||||
border-bottom: 1px solid #999
|
||||
&.primary
|
||||
color: $clr-brick-bright
|
||||
.hub-name, .button-address
|
||||
border-bottom: 1px solid $clr-brick-bright
|
||||
|
||||
p.word-wrap
|
||||
margin-bottom: 0
|
||||
&:last-child
|
||||
margin-bottom: 1rem
|
||||
|
||||
.fat-taxons
|
||||
background-color: $clr-turquoise-light
|
||||
|
||||
//Open row
|
||||
&.open
|
||||
@@ -18,13 +54,17 @@
|
||||
.active_table_row
|
||||
border-left: 1px solid $clr-turquoise-bright
|
||||
border-right: 1px solid $clr-turquoise-bright
|
||||
background-color: rgba(255,255,255,0.4)
|
||||
background-color: rgba(206,239,228,0.4)
|
||||
.cta-container
|
||||
background: none
|
||||
.columns img
|
||||
padding: 1rem 0
|
||||
max-height: 160px
|
||||
width: auto
|
||||
&.left
|
||||
padding: 0.25rem 1rem 0.25rem 0
|
||||
&.right
|
||||
padding: 0.25rem 0.5rem 0.25rem 2rem
|
||||
|
||||
.active_table_row:first-child
|
||||
border-top: 1px solid $clr-turquoise-bright
|
||||
@@ -37,4 +77,7 @@
|
||||
&.closed
|
||||
&:hover, &:active, &:focus
|
||||
.active_table_row.closed
|
||||
border: 1px solid $clr-turquoise
|
||||
border: 1px solid $clr-turquoise
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
@font-face {
|
||||
font-family: 'OFN';
|
||||
src:url('/OFN.eot?-4w617y');
|
||||
src:url('/OFN.eot?#iefix-4w617y') format('embedded-opentype'),
|
||||
url('/OFN.woff?-4w617y') format('woff'),
|
||||
url('/OFN.ttf?-4w617y') format('truetype'),
|
||||
url('/OFN.svg?-4w617y#OFN') format('svg');
|
||||
src:url('/OFN.eot?eslsji');
|
||||
src:url('/OFN.eot?#iefixeslsji') format('embedded-opentype'),
|
||||
url('/OFN.woff?eslsji') format('woff'),
|
||||
url('/OFN.ttf?eslsji') format('truetype'),
|
||||
url('/OFN.svg?eslsji#OFN') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
@@ -194,6 +194,42 @@
|
||||
.ofn-i_057-expand:before {
|
||||
content: "\e638";
|
||||
}
|
||||
.ofn-i-058-graph:before {
|
||||
.ofn-i_058-graph:before {
|
||||
content: "\e639";
|
||||
}
|
||||
.ofn-i_059-producer:before {
|
||||
content: "\e63a";
|
||||
}
|
||||
.ofn-i_060-producer-reversed:before {
|
||||
content: "\e63b";
|
||||
}
|
||||
.ofn-i_061-producer-map:before {
|
||||
content: "\e63c";
|
||||
}
|
||||
.ofn-i_062-producer-map-reversed:before {
|
||||
content: "\e63d";
|
||||
}
|
||||
.ofn-i_063-hub:before {
|
||||
content: "\e63e";
|
||||
}
|
||||
.ofn-i_064-hub-reversed:before {
|
||||
content: "\e63f";
|
||||
}
|
||||
.ofn-i_065-hub-map:before {
|
||||
content: "\e640";
|
||||
}
|
||||
.ofn-i_066-hub-map-reversed:before {
|
||||
content: "\e641";
|
||||
}
|
||||
.ofn-i_067-shop:before {
|
||||
content: "\e642";
|
||||
}
|
||||
.ofn-i_068-shop-reversed:before {
|
||||
content: "\e643";
|
||||
}
|
||||
.ofn-i_069-shop-map:before {
|
||||
content: "\e644";
|
||||
}
|
||||
.ofn-i_070-shop-map-reversed:before {
|
||||
content: "\e645";
|
||||
}
|
||||
|
||||
@@ -63,6 +63,20 @@ button.success, .button.success
|
||||
.button.success:hover, .button.success:active, .button.success:focus, button.success:hover, button.success:active, button.success:focus
|
||||
background: #14b6cc
|
||||
|
||||
.button.help-btn
|
||||
@include border-radius(999999px)
|
||||
&.tiny
|
||||
padding: 0rem
|
||||
margin: 0
|
||||
float: right
|
||||
i
|
||||
font-size: 1.25rem
|
||||
|
||||
.profile-checkbox
|
||||
display: inline-block
|
||||
input[type="checkbox"] + label
|
||||
margin: 0 0.2rem
|
||||
|
||||
// Responsive
|
||||
@media screen and (min-width: 768px)
|
||||
[role="main"]
|
||||
|
||||
@@ -4,6 +4,8 @@ module Admin
|
||||
before_filter :load_countries, :except => :index
|
||||
before_filter :load_methods_and_fees, :only => [:new, :edit, :update, :create]
|
||||
create.after :grant_management
|
||||
before_filter :check_type, only: :update
|
||||
before_filter :check_bulk_type, only: :bulk_update
|
||||
|
||||
helper 'spree/products'
|
||||
include OrderCyclesHelper
|
||||
@@ -67,6 +69,18 @@ module Admin
|
||||
@enterprise_fees = EnterpriseFee.managed_by(spree_current_user).for_enterprise(@enterprise).order(:fee_type, :name).all
|
||||
end
|
||||
|
||||
def check_bulk_type
|
||||
unless spree_current_user.admin?
|
||||
params[:enterprise_set][:collection_attributes].each do |i, enterprise_params|
|
||||
enterprise_params.delete :type
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def check_type
|
||||
params[:enterprise].delete :type unless spree_current_user.admin?
|
||||
end
|
||||
|
||||
# Overriding method on Spree's resource controller
|
||||
def location_after_save
|
||||
if params[:enterprise].key? :producer_properties_attributes
|
||||
|
||||
@@ -9,7 +9,7 @@ class CheckoutController < Spree::CheckoutController
|
||||
|
||||
include OrderCyclesHelper
|
||||
include EnterprisesHelper
|
||||
|
||||
|
||||
def edit
|
||||
# Because this controller doesn't inherit from our BaseController
|
||||
# We need to duplicate the code here
|
||||
@@ -56,7 +56,7 @@ class CheckoutController < Spree::CheckoutController
|
||||
|
||||
|
||||
private
|
||||
|
||||
|
||||
# Copied and modified from spree. Remove check for order state, since the state machine is
|
||||
# progressed all the way in one go with the one page checkout.
|
||||
def object_params
|
||||
@@ -94,7 +94,7 @@ class CheckoutController < Spree::CheckoutController
|
||||
def skip_state_validation?
|
||||
true
|
||||
end
|
||||
|
||||
|
||||
def load_order
|
||||
@order = current_order
|
||||
redirect_to main_app.shop_path and return unless @order and @order.checkout_allowed?
|
||||
@@ -112,6 +112,14 @@ class CheckoutController < Spree::CheckoutController
|
||||
@order.ship_address ||= preferred_ship_address || last_used_ship_address || Spree::Address.default
|
||||
end
|
||||
|
||||
def after_payment
|
||||
# object_params sets the payment amount to the order total, but it does this before
|
||||
# the shipping method is set. This results in the customer not being charged for their
|
||||
# order's shipping. To fix this, we refresh the payment amount here.
|
||||
@order.update_totals
|
||||
@order.payments.first.update_attribute :amount, @order.total
|
||||
end
|
||||
|
||||
# Overriding Spree's methods
|
||||
def raise_insufficient_quantity
|
||||
flash[:error] = t(:spree_inventory_error_flash_for_insufficient_quantity)
|
||||
|
||||
@@ -8,6 +8,7 @@ module Spree
|
||||
klass = klass_for_without_sym_fallback(name)
|
||||
klass ||= name.singularize.to_sym
|
||||
klass = :overview if klass == :dashboard
|
||||
klass = Spree::Order if klass == :bulk_order_management
|
||||
klass
|
||||
end
|
||||
alias_method_chain :klass_for, :sym_fallback
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
class EnterpriseRelationship < ActiveRecord::Base
|
||||
belongs_to :parent, class_name: 'Enterprise', touch: true
|
||||
belongs_to :child, class_name: 'Enterprise', touch: true
|
||||
has_many :permissions, class_name: 'EnterpriseRelationshipPermission'
|
||||
has_many :permissions, class_name: 'EnterpriseRelationshipPermission', dependent: :destroy
|
||||
|
||||
validates_presence_of :parent_id, :child_id
|
||||
validates_uniqueness_of :child_id, scope: :parent_id, message: "^That relationship is already established."
|
||||
|
||||
@@ -59,12 +59,12 @@ class AbilityDecorator
|
||||
|
||||
# Enterprise User can only access orders that they are a distributor for
|
||||
can [:index, :create], Spree::Order
|
||||
can [:read, :update, :bulk_management, :fire, :resend], Spree::Order do |order|
|
||||
can [:read, :update, :fire, :resend], Spree::Order do |order|
|
||||
# We allow editing orders with a nil distributor as this state occurs
|
||||
# during the order creation process from the admin backend
|
||||
order.distributor.nil? || user.enterprises.include?(order.distributor)
|
||||
end
|
||||
can [:admin], Spree::Order if user.admin? || user.enterprises.any?(&:is_distributor?)
|
||||
can [:admin, :bulk_management], Spree::Order if user.admin? || user.enterprises.any?(&:is_distributor?)
|
||||
can [:admin, :create], Spree::LineItem
|
||||
|
||||
can [:admin, :index, :read, :create, :edit, :update, :fire], Spree::Payment
|
||||
|
||||
@@ -17,6 +17,9 @@ end
|
||||
class Api::UncachedEnterpriseSerializer < ActiveModel::Serializer
|
||||
attributes :orders_close_at, :active
|
||||
|
||||
#TODO: Remove these later
|
||||
attributes :icon, :has_shopfront, :can_aggregate
|
||||
|
||||
def orders_close_at
|
||||
OrderCycle.first_closing_for(object).andand.orders_close_at
|
||||
end
|
||||
@@ -24,16 +27,52 @@ class Api::UncachedEnterpriseSerializer < ActiveModel::Serializer
|
||||
def active
|
||||
@options[:active_distributors].andand.include? object
|
||||
end
|
||||
|
||||
# TODO: Move this back to uncached section when relavant properties are defined on the Enterprise model
|
||||
def icon
|
||||
# TODO: Replace with object.has_shopfront when this property exists
|
||||
if has_shopfront
|
||||
if can_aggregate
|
||||
"/assets/map_005-hub.svg"
|
||||
else
|
||||
if object.is_distributor
|
||||
"/assets/map_003-producer-shop.svg"
|
||||
else
|
||||
"/assets/map_001-producer-only.svg"
|
||||
end
|
||||
end
|
||||
else
|
||||
if can_aggregate
|
||||
"/assets/map_006-hub-profile.svg"
|
||||
else
|
||||
if object.is_distributor
|
||||
"/assets/map_004-producer-shop-profile.svg"
|
||||
else
|
||||
"/assets/map_002-producer-only-profile.svg"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# TODO: Remove this when flags on enterprises are switched over
|
||||
def has_shopfront
|
||||
object.type != 'profile'
|
||||
end
|
||||
|
||||
# TODO: Remove this when flags on enterprises are switched over
|
||||
def can_aggregate
|
||||
object.is_distributor && object.suppliers != [object]
|
||||
end
|
||||
end
|
||||
|
||||
class Api::CachedEnterpriseSerializer < ActiveModel::Serializer
|
||||
cached
|
||||
delegate :cache_key, to: :object
|
||||
|
||||
attributes :name, :id, :description, :latitude, :longitude,
|
||||
:long_description, :website, :instagram, :linkedin, :twitter,
|
||||
attributes :name, :id, :description, :latitude, :longitude,
|
||||
:long_description, :website, :instagram, :linkedin, :twitter,
|
||||
:facebook, :is_primary_producer, :is_distributor, :phone, :visible,
|
||||
:email, :hash, :logo, :promo_image, :icon, :path,
|
||||
:email, :hash, :logo, :promo_image, :path,
|
||||
:pickup, :delivery
|
||||
|
||||
has_many :distributed_taxons, key: :taxons, serializer: Api::IdSerializer
|
||||
@@ -67,16 +106,6 @@ class Api::CachedEnterpriseSerializer < ActiveModel::Serializer
|
||||
object.promo_image(:large) if object.promo_image.exists?
|
||||
end
|
||||
|
||||
def icon
|
||||
if object.is_primary_producer? and object.is_distributor?
|
||||
"/assets/map-icon-both.svg"
|
||||
elsif object.is_primary_producer?
|
||||
"/assets/map-icon-producer.svg"
|
||||
else
|
||||
"/assets/map-icon-hub.svg"
|
||||
end
|
||||
end
|
||||
|
||||
# TODO when ActiveSerializers supports URL helpers
|
||||
# Then refactor. See readme https://github.com/rails-api/active_model_serializers
|
||||
def path
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
%td {{ enterprise_relationship.child_name }}
|
||||
%td
|
||||
%ul
|
||||
%li{"ng-repeat" => "permission in enterprise_relationship.permissions"}
|
||||
{{ EnterpriseRelationships.permission_presentation(permission.name) }}
|
||||
%td {{ enterprise_relationship.parent_name }}
|
||||
%td.actions
|
||||
%a.delete-enterprise-relationship.icon-trash.no-text{'ng-click' => 'delete(enterprise_relationship)'}
|
||||
%tr{"ng-repeat" => "enterprise_relationship in EnterpriseRelationships.enterprise_relationships | filter:query"}
|
||||
%td {{ enterprise_relationship.parent_name }}
|
||||
%td permits
|
||||
%td {{ enterprise_relationship.child_name }}
|
||||
%td
|
||||
%ul
|
||||
%li{"ng-repeat" => "permission in enterprise_relationship.permissions"}
|
||||
{{ EnterpriseRelationships.permission_presentation(permission.name) }}
|
||||
%td.actions
|
||||
%a.delete-enterprise-relationship.icon-trash.no-text{'ng-click' => 'delete(enterprise_relationship)'}
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
%tr
|
||||
%td
|
||||
%select{name: "enterprise_relationship_parent_id", "ng-model" => "parent_id", "ng-options" => "e.id as e.name for e in Enterprises.my_enterprises"}
|
||||
|
||||
%td
|
||||
permits
|
||||
%td
|
||||
%select{name: "enterprise_relationship_child_id", "ng-model" => "child_id", "ng-options" => "e.id as e.name for e in Enterprises.all_enterprises"}
|
||||
%td
|
||||
@@ -6,8 +11,6 @@
|
||||
%label
|
||||
%input{type: "checkbox", "ng-model" => "permissions[permission]"}
|
||||
{{ EnterpriseRelationships.permission_presentation(permission) }}
|
||||
%td
|
||||
%select{name: "enterprise_relationship_parent_id", "ng-model" => "parent_id", "ng-options" => "e.id as e.name for e in Enterprises.my_enterprises"}
|
||||
%td.actions
|
||||
%input{type: "button", value: "Create", "ng-click" => "create()"}
|
||||
.errors {{ EnterpriseRelationships.create_errors }}
|
||||
|
||||
@@ -11,5 +11,4 @@
|
||||
%table#enterprise-relationships
|
||||
%tbody
|
||||
= render 'form'
|
||||
%tr{"ng-repeat" => "enterprise_relationship in EnterpriseRelationships.enterprise_relationships | filter:query"}
|
||||
= render 'enterprise_relationship'
|
||||
= render 'enterprise_relationship'
|
||||
|
||||
@@ -36,24 +36,25 @@
|
||||
= f.check_box :is_primary_producer, 'ng-model' => 'Enterprise.is_primary_producer'
|
||||
|
||||
= f.label :is_primary_producer, 'Producer'
|
||||
.row
|
||||
.alpha.eleven.columns
|
||||
.three.columns.alpha
|
||||
= f.label :type, 'Profile type'
|
||||
.with-tip{'data-powertip' => "Full - enterprise may have products and relationships.<br />Single - enterprise may have products but no relationships.<br />Profile - enterprise has a profile but no products or relationships.<br />"}
|
||||
%a What's this?
|
||||
.two.columns
|
||||
= f.radio_button :type, "full"
|
||||
|
||||
= f.label :type, "Full", value: "full"
|
||||
.two.columns
|
||||
= f.radio_button :type, "single"
|
||||
|
||||
= f.label :type, "Single", value: "single"
|
||||
.four.columns.omega
|
||||
= f.radio_button :type, "profile"
|
||||
|
||||
= f.label :type, "Profile", value: "profile"
|
||||
- if spree_current_user.admin?
|
||||
.row
|
||||
.alpha.eleven.columns
|
||||
.three.columns.alpha
|
||||
= f.label :type, 'Profile type'
|
||||
.with-tip{'data-powertip' => "Full - enterprise may have products and relationships.<br />Single - enterprise may have products but no relationships.<br />Profile - enterprise has a profile but no products or relationships.<br />"}
|
||||
%a What's this?
|
||||
.two.columns
|
||||
= f.radio_button :type, "full"
|
||||
|
||||
= f.label :type, "Full", value: "full"
|
||||
.two.columns
|
||||
= f.radio_button :type, "single"
|
||||
|
||||
= f.label :type, "Single", value: "single"
|
||||
.four.columns.omega
|
||||
= f.radio_button :type, "profile"
|
||||
|
||||
= f.label :type, "Profile", value: "profile"
|
||||
.row
|
||||
.three.columns.alpha
|
||||
%label Visible in search?
|
||||
|
||||
@@ -10,17 +10,17 @@
|
||||
= form_for @enterprise_set, :url => main_app.bulk_update_admin_enterprises_path do |f|
|
||||
%table#listing_enterprises.index
|
||||
%colgroup
|
||||
%col{style: "width: 20%;"}/
|
||||
%col{style: "width: 25%;"}/
|
||||
%col{style: "width: 10%;"}/
|
||||
%col{style: "width: 5%;"}/
|
||||
%col/
|
||||
%col{style: "width: 10%;"}/
|
||||
%col{style: "width: 20%;"}/
|
||||
%thead
|
||||
%tr{"data-hook" => "enterprises_header"}
|
||||
%th Name
|
||||
%th Role
|
||||
%th Visible?
|
||||
%th Description
|
||||
%th Type
|
||||
%th
|
||||
%tbody
|
||||
= f.fields_for :collection do |enterprise_form|
|
||||
@@ -28,16 +28,13 @@
|
||||
%tr{class: "enterprise-#{enterprise.id}"}
|
||||
%td= link_to enterprise.name, main_app.edit_admin_enterprise_path(enterprise)
|
||||
%td
|
||||
- if enterprise.is_primary_producer && enterprise.is_distributor
|
||||
Producer & Distributor
|
||||
- elsif enterprise.is_distributor
|
||||
Distributor
|
||||
- elsif enterprise.is_primary_producer
|
||||
Producer
|
||||
- else
|
||||
%h1.icon-exclamation-sign.with-tip{"data-powertip" => "This enterprise does not have any roles", style: "text-align: center;color: #DA5354"}
|
||||
= enterprise_form.check_box :is_primary_producer
|
||||
Producer
|
||||
%br/
|
||||
= enterprise_form.check_box :is_distributor
|
||||
Hub
|
||||
%td= enterprise_form.check_box :visible
|
||||
%td= enterprise.description
|
||||
%td= enterprise_form.select :type, Enterprise::TYPES, {}, class: 'select2 fullwidth'
|
||||
%td{"data-hook" => "admin_users_index_row_actions"}
|
||||
= render 'actions', enterprise: enterprise
|
||||
- if @enterprises.empty?
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
= f_form_for current_order, url: main_app.update_checkout_path,
|
||||
= f_form_for current_order,
|
||||
html: {name: "checkout",
|
||||
id: "checkout_form",
|
||||
novalidate: true,
|
||||
name: "checkout"} do |f|
|
||||
"ng-submit" => "purchase($event)"} do |f|
|
||||
|
||||
= inject_available_shipping_methods
|
||||
= inject_available_payment_methods
|
||||
@@ -20,7 +20,6 @@
|
||||
= render partial: "checkout/payment", locals: {f: f}
|
||||
%p
|
||||
%button.button.primary{type: :submit,
|
||||
"ng-click" => "purchase($event)",
|
||||
"ng-disabled" => "checkout.$invalid"}
|
||||
Place order now
|
||||
/ {{ checkout.$valid }}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
%span.fat-taxons{"ng-repeat" => "taxon in hub.taxons"}
|
||||
%render-svg{path: "{{taxon.icon}}"}
|
||||
{{taxon.name}}
|
||||
%div{"bo-if" => "!hub.taxons"}
|
||||
%div.show-for-medium-up{"bo-if" => "hub.taxons.length==0"}
|
||||
|
||||
.columns.small-12.medium-3.large-2.fat
|
||||
%div{"bo-if" => "hub.pickup || hub.delivery"}
|
||||
@@ -27,5 +27,5 @@
|
||||
%i.ofn-i_036-producers
|
||||
%span
|
||||
{{ enterprise.name }}
|
||||
%div{"bo-if" => "!hub.producers"}
|
||||
%div.show-for-medium-up{"bo-if" => "hub.producers.length==0"}
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#hubs.hubs{"ng-controller" => "HubsCtrl"}
|
||||
.row
|
||||
.small-12.columns
|
||||
%h1 Find hubs in your area...
|
||||
%h1 Shop your local area
|
||||
/ %div
|
||||
/ Shop a
|
||||
/ %ofn-modal{title: "food hub"}
|
||||
@@ -14,7 +14,7 @@
|
||||
/ %i.ofn-i_020-search
|
||||
%input{type: :text,
|
||||
"ng-model" => "query",
|
||||
placeholder: "Search by Hub or Suburb name",
|
||||
placeholder: "Search by Shop or Suburb...",
|
||||
"ng-debounce" => "150",
|
||||
"ofn-disable-enter" => true}
|
||||
|
||||
|
||||
@@ -1,23 +1,26 @@
|
||||
.row.active_table_row{"ng-click" => "toggle()", "ng-class" => "{'closed' : !open()}", bindonce: true}
|
||||
.columns.small-12.medium-6.large-5.skinny-head
|
||||
%a.hub{"bo-href" => "hub.path", "ng-class" => "{primary: hub.active, secondary: !hub.active}", "ofn-empties-cart" => "hub"}
|
||||
%i.ofn-i_040-hub
|
||||
%span
|
||||
%strong {{ hub.name | truncate:40}}
|
||||
%i{ ng: { class: "{ 'ofn-i_063-hub': hub.can_aggregate && hub.has_shopfront,
|
||||
'ofn-i_059-producer': !hub.can_aggregate && hub.has_shopfront,
|
||||
'ofn-i_060-producer-reversed': !hub.can_aggregate && !hub.has_shopfront,
|
||||
'ofn-i_064-hub-reversed': hub.can_aggregate && !hub.has_shopfront }" } }
|
||||
/ %i.ofn-i_063-hub
|
||||
%span.margin-top.hub-name-listing {{ hub.name | truncate:40}}
|
||||
.columns.small-4.medium-2.large-2
|
||||
{{ hub.address.city }}
|
||||
%span.margin-top {{ hub.address.city }}
|
||||
.columns.small-2.medium-1.large-1
|
||||
{{ hub.address.state_name | uppercase }}
|
||||
%span.margin-top {{ hub.address.state_name | uppercase }}
|
||||
|
||||
.columns.small-6.medium-3.large-4.text-right{"bo-if" => "hub.active"}
|
||||
%a.hub{"bo-href" => "hub.path", "ng-class" => "{primary: hub.active, secondary: !hub.active}", "ofn-empties-cart" => "hub"}
|
||||
%a.hub.open_closed{"bo-href" => "hub.path", "ng-class" => "{primary: hub.active, secondary: !hub.active}", "ofn-empties-cart" => "hub"}
|
||||
%i.ofn-i_033-open-sign
|
||||
%span {{ hub.orders_close_at | sensible_timeframe }}
|
||||
%span.margin-top {{ hub.orders_close_at | sensible_timeframe }}
|
||||
|
||||
.columns.small-6.medium-3.large-4.text-right{"bo-if" => "!hub.active"}
|
||||
%a.hub{"bo-href" => "hub.path", "ng-class" => "{primary: hub.active, secondary: !hub.active}", "ofn-empties-cart" => "hub"}
|
||||
%a.hub.open_closed{"bo-href" => "hub.path", "ng-class" => "{primary: hub.active, secondary: !hub.active}", "ofn-empties-cart" => "hub"}
|
||||
%i.ofn-i_032-closed-sign
|
||||
%span Orders closed
|
||||
%span.margin-top Orders closed
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -4,16 +4,17 @@
|
||||
%h1= image_tag "ofn_logo_beta.png", title: "Open Food Network (beta)"
|
||||
%h2 An open marketplace that makes it easy to find, buy, sell and move sustainable local food.
|
||||
|
||||
%ofn-modal{title: "Learn more"}
|
||||
%ofn-modal{title: "Learn more", "ng-cloak" => true}
|
||||
= render partial: "modals/learn_more"
|
||||
|
||||
= render partial: "home/hubs"
|
||||
.ng-cloak
|
||||
= render partial: "home/hubs"
|
||||
|
||||
/ = render partial: "home/map"
|
||||
/ = render partial: "home/map"
|
||||
|
||||
/ = render partial: "home/producers"
|
||||
/ = render partial: "home/producers"
|
||||
|
||||
/ = render partial: "home/groups"
|
||||
/ = render partial: "home/groups"
|
||||
|
||||
= render partial: "home/beta"
|
||||
|
||||
|
||||
@@ -22,10 +22,10 @@ end
|
||||
|
||||
node :icon do |e|
|
||||
if e.is_primary_producer? and e.is_distributor?
|
||||
image_path "map-icon-both.svg"
|
||||
image_path "map_003-producer-shop.svg"
|
||||
elsif e.is_primary_producer?
|
||||
image_path "map-icon-producer.svg"
|
||||
image_path "map_001-producer-only.svg"
|
||||
else
|
||||
image_path "map-icon-hub.svg"
|
||||
image_path "map_005-hub.svg"
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,23 +1,61 @@
|
||||
.row.active_table_row{"ng-show" => "open()", "ng-click" => "toggle()", "ng-class" => "{'open' : !ofn-i_032-closed-sign()}"}
|
||||
.columns.small-12.medium-4.large-4.fat
|
||||
|
||||
.columns.small-12.medium-7.large-7.fat
|
||||
/ No long description available because it spits out HTML formatting producer.long_description
|
||||
%div{"bo-if" => "producer.long_description"}
|
||||
%label About us
|
||||
%img.right.show-for-medium-up{src: "{{ producer.logo }}" }
|
||||
%p.text-small
|
||||
{{ producer.long_description }}
|
||||
%div.show-for-medium-up{"bo-if" => "producer.long_description.length==0"}
|
||||
%label
|
||||
|
||||
.columns.small-12.medium-5.large-5.fat
|
||||
|
||||
%div{"ng-if" => "producer.supplied_taxons"}
|
||||
%label Shop for
|
||||
%p.trans-sentence
|
||||
%span.fat-taxons{"ng-repeat" => "taxon in producer.supplied_taxons"}
|
||||
%render-svg{path: "{{taxon.icon}}"}
|
||||
{{taxon.name}}
|
||||
|
||||
%div.show-for-medium-up{"ng-if" => "producer.supplied_taxons.length==0"}
|
||||
|
||||
|
||||
.columns.small-12.medium-3.large-3.fat
|
||||
%div{"bo-if" => "producer.logo"}
|
||||
%img{src: "{{ producer.logo }}" }
|
||||
%div{"ng-if" => "producer.email || producer.website || producer.phone"}
|
||||
%label Contact
|
||||
|
||||
%p.word-wrap{"ng-if" => "producer.phone"}
|
||||
Call {{ producer.phone }}
|
||||
|
||||
.columns.small-12.medium-5.large-5.fat
|
||||
%div{"bo-if" => "producer.description"}
|
||||
%label About us
|
||||
%p.text-small
|
||||
{{ producer.description }}
|
||||
%p.word-wrap{"ng-if" => "producer.email"}
|
||||
%a{"ng-href" => "{{producer.email | stripUrl}}", target: "_blank", mailto: true}
|
||||
%span.email {{ producer.email | stripUrl }}
|
||||
|
||||
.row.active_table_row{"ng-show" => "open()", "bo-if" => "producer.hubs"}
|
||||
%p.word-wrap{"ng-if" => "producer.website"}
|
||||
%a{"ng-href" => "http://{{producer.website | stripUrl}}", target: "_blank" }
|
||||
%span {{ producer.website | stripUrl }}
|
||||
|
||||
%div{"ng-if" => "producer.twitter || producer.facebook || producer.linkedin || producer.instagram"}
|
||||
%label Follow
|
||||
.follow-icons{bindonce: true}
|
||||
%span{"ng-if" => "producer.twitter"}
|
||||
%a{"ng-href" => "http://twitter.com/{{producer.twitter}}", target: "_blank"}
|
||||
%i.ofn-i_041-twitter
|
||||
|
||||
%span{"ng-if" => "producer.facebook"}
|
||||
%a{"ng-href" => "http://{{producer.facebook | stripUrl}}", target: "_blank"}
|
||||
%i.ofn-i_044-facebook
|
||||
|
||||
%span{"ng-if" => "producer.linkedin"}
|
||||
%a{"ng-href" => "http://{{producer.linkedin | stripUrl}}", target: "_blank"}
|
||||
%i.ofn-i_042-linkedin
|
||||
|
||||
%span{"ng-if" => "producer.instagram"}
|
||||
%a{"ng-href" => "http://instagram.com/{{producer.instagram}}", target: "_blank"}
|
||||
%i.ofn-i_043-instagram
|
||||
|
||||
.row.active_table_row.pad-top{"ng-show" => "open()", "bo-if" => "producer.hubs"}
|
||||
.columns.small-12
|
||||
.row
|
||||
.columns.small-12.fat
|
||||
@@ -26,13 +64,15 @@
|
||||
Shop for
|
||||
%span.turquoise {{ producer.name }}
|
||||
products at:
|
||||
%div.show-for-medium-up{"bo-if" => "!producer.name"}
|
||||
|
||||
.row.cta-container
|
||||
.columns.small-12
|
||||
%a.button.hub{"ng-repeat" => "hub in producer.hubs | orderBy:'-active'",
|
||||
%a.cta-hub{"ng-repeat" => "hub in producer.hubs | orderBy:'-active'",
|
||||
"bo-href" => "hub.path", "ofn-empties-cart" => "hub",
|
||||
"bo-class" => "{primary: hub.active, secondary: !hub.active}"}
|
||||
%i.ofn-i_033-open-sign{"bo-if" => "hub.active"}
|
||||
%i.ofn-i_032-closed-sign{"bo-if" => "!hub.active"}
|
||||
{{hub.name}}
|
||||
.hub-name {{hub.name}}
|
||||
.button-address {{ [hub.address.city, hub.address.state_name] | printArray }}
|
||||
%i.ofn-i_007-caret-right
|
||||
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
.row.active_table_row{"ng-click" => "toggle()", "ng-class" => "{'closed' : !open()}"}
|
||||
.columns.small-12.medium-4.large-4.skinny-head
|
||||
%i.ofn-i_036-producers
|
||||
%strong {{ producer.name }}
|
||||
/ This needs logic to show profile only icon when available %i.ofn-i_060-producer-reversed
|
||||
%i.ofn-i_059-producer
|
||||
%span.margin-top
|
||||
%strong {{ producer.name }}
|
||||
.columns.small-6.medium-3.large-3
|
||||
{{ producer.address.city }}
|
||||
%span.margin-top {{ producer.address.city }}
|
||||
.columns.small-4.medium-3.large-4
|
||||
{{ producer.address.state_name | uppercase }}
|
||||
%span.margin-top {{ producer.address.state_name | uppercase }}
|
||||
.columns.small-2.medium-2.large-1.text-right
|
||||
/ This forces line-height to be triggered
|
||||
%span
|
||||
%i{"ng-class" => "{'ofn-i_005-caret-down' : !open(), 'ofn-i_006-caret-up' : open()}"}
|
||||
%span.margin-top
|
||||
%i{"ng-class" => "{'ofn-i_005-caret-down' : !open(), 'ofn-i_006-caret-up' : open()}"}
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
.small-12.columns
|
||||
%input.animate-show{type: :text,
|
||||
"ng-model" => "query",
|
||||
placeholder: "Search by Producer or Suburb name",
|
||||
placeholder: "Search by Producer or Suburb...",
|
||||
"ng-debounce" => "150",
|
||||
"ofn-disable-enter" => true}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
.row
|
||||
.small-12.columns
|
||||
.small-12.medium-6.columns
|
||||
%a.button.success.tiny.filterbtn{"ng-click" => "filtersActive = !filtersActive",
|
||||
"ng-show" => "FilterSelectorsService.selectors.length > 0"}
|
||||
{{ filterText(filtersActive) }}
|
||||
@@ -8,3 +8,12 @@
|
||||
|
||||
%a.button.secondary.tiny.filterbtn.disabled{"ng-show" => "FilterSelectorsService.selectors.length == 0"}
|
||||
No filters
|
||||
.small-12.medium-6.columns.text-right
|
||||
.profile-checkbox
|
||||
|
||||
/ Hide until we're ready to work on this:
|
||||
|
||||
/ %input{type: "checkbox", name: "profile"}><
|
||||
/ %label Show profiles
|
||||
/ %button.button.secondary.tiny.help-btn.ng-scope{:popover => "Profiles do not have a shopfront on the Open Food Network, but they may have their own physical or online shop elsewhere", "popover-placement" => "left"}><
|
||||
/ %i.ofn-i_013-help
|
||||
|
||||
@@ -32,10 +32,10 @@
|
||||
- else
|
||||
= render 'shared/signed_in'
|
||||
%li.divider
|
||||
%li.current_hub{"ng-controller" => "CurrentHubCtrl", "ng-show" => "CurrentHub.hub.id"}
|
||||
%li.current_hub{"ng-controller" => "CurrentHubCtrl", "ng-show" => "CurrentHub.hub.id", "ng-cloak" => true}
|
||||
%a{href: main_app.shop_path}
|
||||
%em Shopping @
|
||||
%span.nav-primary.nav-branded {{ CurrentHub.hub.name }}
|
||||
%li.divider
|
||||
%li.cart
|
||||
%li.cart{"ng-cloak" => true}
|
||||
= render partial: "shared/menu/cart"
|
||||
|
||||
@@ -563,9 +563,9 @@ ActiveRecord::Schema.define(:version => 20140826043521) do
|
||||
t.string "email"
|
||||
t.text "special_instructions"
|
||||
t.integer "distributor_id"
|
||||
t.integer "order_cycle_id"
|
||||
t.string "currency"
|
||||
t.string "last_ip_address"
|
||||
t.integer "order_cycle_id"
|
||||
t.integer "cart_id"
|
||||
end
|
||||
|
||||
|
||||
BIN
public/OFN.eot
130
public/OFN.svg
|
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 118 KiB |
BIN
public/OFN.ttf
BIN
public/OFN.woff
@@ -7,7 +7,7 @@ feature %q{
|
||||
}, skip: true do
|
||||
include AuthenticationWorkflow
|
||||
include WebHelper
|
||||
|
||||
|
||||
|
||||
background do
|
||||
set_feature_toggle :order_cycles, true
|
||||
@@ -24,8 +24,8 @@ feature %q{
|
||||
:state => Spree::State.find_by_name('Victoria'),
|
||||
:country => Spree::Country.find_by_name('Australia')),
|
||||
:pickup_times => 'Tuesday, 4 PM')
|
||||
|
||||
|
||||
|
||||
|
||||
@distributor_alternative = create(:distributor_enterprise, :name => 'Alternative Distributor',
|
||||
:address => create(:address,
|
||||
:address1 => '1600 Rathdowne St',
|
||||
@@ -33,7 +33,7 @@ feature %q{
|
||||
:zipcode => 3054,
|
||||
:state => Spree::State.find_by_name('Victoria'),
|
||||
:country => Spree::Country.find_by_name('Australia')),
|
||||
:pickup_times => 'Tuesday, 4 PM')
|
||||
:pickup_times => 'Tuesday, 4 PM')
|
||||
|
||||
@enterprise_fee_1 = create(:enterprise_fee, :name => 'Enterprise Fee One', :calculator => Spree::Calculator::PerItem.new)
|
||||
@enterprise_fee_1.calculator.set_preference :amount, 1
|
||||
@@ -347,16 +347,16 @@ feature %q{
|
||||
|
||||
login_to_consumer_section
|
||||
click_link 'FruitAndVeg'
|
||||
visit enterprise_path @distributor1
|
||||
visit enterprise_path @distributor1
|
||||
|
||||
click_link 'Bananas'
|
||||
click_button 'Add To Cart'
|
||||
visit enterprise_path @distributor1
|
||||
visit enterprise_path @distributor1
|
||||
|
||||
click_link 'Zucchini'
|
||||
click_button 'Add To Cart'
|
||||
find('#checkout-link').click
|
||||
|
||||
|
||||
# And manually visit the old checkout
|
||||
visit "/checkout"
|
||||
|
||||
@@ -389,7 +389,7 @@ feature %q{
|
||||
# -- Checkout: Delivery
|
||||
page.should have_content "DELIVERY METHOD"
|
||||
order_charges = page.all("tbody#summary-order-charges tr").map {|row| row.all('td').map(&:text)}.take(2)
|
||||
order_charges.should == [["Distribution:", "$51.00"]]
|
||||
order_charges.should == [["Distribution:", "$51.00"]]
|
||||
|
||||
click_checkout_continue_button
|
||||
|
||||
@@ -403,7 +403,7 @@ feature %q{
|
||||
# -- Checkout: Order complete
|
||||
page.should have_content 'Your order has been processed successfully'
|
||||
page.should have_content @payment_method_distributor_oc.description
|
||||
page.should have_content @distributor_oc.name
|
||||
page.should have_content @distributor_oc.name
|
||||
|
||||
page.should have_selector 'tfoot#order-charges tr.total td', text: 'Distribution'
|
||||
page.should have_selector 'tfoot#order-charges tr.total td', text: '51.00'
|
||||
|
||||
@@ -36,5 +36,67 @@ module Admin
|
||||
admin_user.enterprise_roles.where(enterprise_id: enterprise).should be_empty
|
||||
end
|
||||
end
|
||||
|
||||
describe "updating an enterprise" do
|
||||
let(:profile_enterprise) { create(:enterprise, type: 'profile') }
|
||||
|
||||
context "as manager" do
|
||||
it "does not allow 'type' to be changed" do
|
||||
profile_enterprise.enterprise_roles.build(user: user).save
|
||||
controller.stub spree_current_user: user
|
||||
enterprise_params = { id: profile_enterprise.id, enterprise: { type: 'full' } }
|
||||
|
||||
spree_put :update, enterprise_params
|
||||
profile_enterprise.reload
|
||||
expect(profile_enterprise.type).to eq 'profile'
|
||||
end
|
||||
end
|
||||
|
||||
context "as super admin" do
|
||||
it "allows 'type' to be changed" do
|
||||
controller.stub spree_current_user: admin_user
|
||||
enterprise_params = { id: profile_enterprise.id, enterprise: { type: 'full' } }
|
||||
|
||||
spree_put :update, enterprise_params
|
||||
profile_enterprise.reload
|
||||
expect(profile_enterprise.type).to eq 'full'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "bulk updating enterprises" do
|
||||
let(:profile_enterprise1) { create(:enterprise, type: 'profile') }
|
||||
let(:profile_enterprise2) { create(:enterprise, type: 'profile') }
|
||||
|
||||
context "as manager" do
|
||||
it "does not allow 'type' to be changed" do
|
||||
profile_enterprise1.enterprise_roles.build(user: user).save
|
||||
profile_enterprise2.enterprise_roles.build(user: user).save
|
||||
controller.stub spree_current_user: user
|
||||
bulk_enterprise_params = { enterprise_set: { collection_attributes: { '0' => { id: profile_enterprise1.id, type: 'full' }, '1' => { id: profile_enterprise2.id, type: 'full' } } } }
|
||||
|
||||
spree_put :bulk_update, bulk_enterprise_params
|
||||
profile_enterprise1.reload
|
||||
profile_enterprise2.reload
|
||||
expect(profile_enterprise1.type).to eq 'profile'
|
||||
expect(profile_enterprise2.type).to eq 'profile'
|
||||
end
|
||||
end
|
||||
|
||||
context "as super admin" do
|
||||
it "allows 'type' to be changed" do
|
||||
profile_enterprise1.enterprise_roles.build(user: user).save
|
||||
profile_enterprise2.enterprise_roles.build(user: user).save
|
||||
controller.stub spree_current_user: admin_user
|
||||
bulk_enterprise_params = { enterprise_set: { collection_attributes: { '0' => { id: profile_enterprise1.id, type: 'full' }, '1' => { id: profile_enterprise2.id, type: 'full' } } } }
|
||||
|
||||
spree_put :bulk_update, bulk_enterprise_params
|
||||
profile_enterprise1.reload
|
||||
profile_enterprise2.reload
|
||||
expect(profile_enterprise1.type).to eq 'full'
|
||||
expect(profile_enterprise2.type).to eq 'full'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -15,13 +15,6 @@ feature %q{
|
||||
admin_user = quick_login_as_admin
|
||||
end
|
||||
|
||||
it "displays a Bulk Management Tab under the Orders item" do
|
||||
visit '/admin/orders'
|
||||
page.should have_link "Bulk Order Management"
|
||||
click_link "Bulk Order Management"
|
||||
page.should have_selector "h1.page-title", text: "Bulk Order Management"
|
||||
end
|
||||
|
||||
it "displays a message when number of line items is zero" do
|
||||
visit '/admin/orders/bulk_management'
|
||||
page.should have_text "No orders found."
|
||||
@@ -586,6 +579,13 @@ feature %q{
|
||||
quick_login_as @enterprise_user
|
||||
end
|
||||
|
||||
it "displays a Bulk Management Tab under the Orders item" do
|
||||
visit '/admin/orders'
|
||||
page.should have_link "Bulk Order Management"
|
||||
click_link "Bulk Order Management"
|
||||
page.should have_selector "h1.page-title", text: "Bulk Order Management"
|
||||
end
|
||||
|
||||
it "shows only line item from orders that I distribute, and not those that I supply" do
|
||||
visit '/admin/orders/bulk_management'
|
||||
|
||||
|
||||
@@ -24,10 +24,10 @@ feature %q{
|
||||
|
||||
# Then I should see the relationships
|
||||
within('table#enterprise-relationships') do
|
||||
page.should have_relationship e1, e2, ['can add to order cycle']
|
||||
page.should have_relationship e2, e3, ['can manage the products of']
|
||||
page.should have_relationship e1, e2, ['to add to order cycle']
|
||||
page.should have_relationship e2, e3, ['to manage products']
|
||||
page.should have_relationship e3, e4,
|
||||
['can add to order cycle', 'can manage the products of']
|
||||
['to add to order cycle', 'to manage products']
|
||||
end
|
||||
end
|
||||
|
||||
@@ -39,13 +39,13 @@ feature %q{
|
||||
visit admin_enterprise_relationships_path
|
||||
select 'One', from: 'enterprise_relationship_parent_id'
|
||||
|
||||
check 'can add to order cycle'
|
||||
check 'can manage the products of'
|
||||
uncheck 'can manage the products of'
|
||||
check 'to add to order cycle'
|
||||
check 'to manage products'
|
||||
uncheck 'to manage products'
|
||||
select 'Two', from: 'enterprise_relationship_child_id'
|
||||
click_button 'Create'
|
||||
|
||||
page.should have_relationship e1, e2, ['can add to order cycle']
|
||||
page.should have_relationship e1, e2, ['to add to order cycle']
|
||||
er = EnterpriseRelationship.where(parent_id: e1, child_id: e2).first
|
||||
er.should be_present
|
||||
er.permissions.map(&:name).should == ['add_to_order_cycle']
|
||||
@@ -69,14 +69,13 @@ feature %q{
|
||||
end.to change(EnterpriseRelationship, :count).by(0)
|
||||
end
|
||||
|
||||
|
||||
scenario "deleting a relationship" do
|
||||
e1 = create(:enterprise, name: 'One')
|
||||
e2 = create(:enterprise, name: 'Two')
|
||||
er = create(:enterprise_relationship, parent: e1, child: e2)
|
||||
er = create(:enterprise_relationship, parent: e1, child: e2, permissions_list: [:add_to_order_cycle])
|
||||
|
||||
visit admin_enterprise_relationships_path
|
||||
page.should have_relationship e1, e2
|
||||
page.should have_relationship e1, e2, ['to add to order cycle']
|
||||
|
||||
first("a.delete-enterprise-relationship").click
|
||||
|
||||
@@ -118,8 +117,8 @@ feature %q{
|
||||
private
|
||||
|
||||
def have_relationship(parent, child, perms=[])
|
||||
perms = perms.join(' ') || 'permits'
|
||||
perms = perms.join(' ')
|
||||
|
||||
have_table_row [child.name, perms, parent.name, '']
|
||||
have_table_row [parent.name, 'permits', child.name, perms, '']
|
||||
end
|
||||
end
|
||||
|
||||
@@ -15,39 +15,43 @@ feature %q{
|
||||
click_link 'Enterprises'
|
||||
|
||||
within("tr.enterprise-#{s.id}") do
|
||||
page.should have_content s.name
|
||||
page.should have_content "Edit Profile"
|
||||
page.should have_content "Delete"
|
||||
page.should_not have_content "Payment Methods"
|
||||
page.should_not have_content "Shipping Methods"
|
||||
page.should have_content "Enterprise Fees"
|
||||
expect(page).to have_content s.name
|
||||
expect(page).to have_select "enterprise_set_collection_attributes_1_type"
|
||||
expect(page).to have_content "Edit Profile"
|
||||
expect(page).to have_content "Delete"
|
||||
expect(page).to_not have_content "Payment Methods"
|
||||
expect(page).to_not have_content "Shipping Methods"
|
||||
expect(page).to have_content "Enterprise Fees"
|
||||
end
|
||||
|
||||
within("tr.enterprise-#{d.id}") do
|
||||
page.should have_content d.name
|
||||
page.should have_content "Edit Profile"
|
||||
page.should have_content "Delete"
|
||||
page.should have_content "Payment Methods"
|
||||
page.should have_content "Shipping Methods"
|
||||
page.should have_content "Enterprise Fees"
|
||||
expect(page).to have_content d.name
|
||||
expect(page).to have_select "enterprise_set_collection_attributes_0_type"
|
||||
expect(page).to have_content "Edit Profile"
|
||||
expect(page).to have_content "Delete"
|
||||
expect(page).to have_content "Payment Methods"
|
||||
expect(page).to have_content "Shipping Methods"
|
||||
expect(page).to have_content "Enterprise Fees"
|
||||
end
|
||||
end
|
||||
|
||||
scenario "editing enterprises in bulk" do
|
||||
s = create(:supplier_enterprise)
|
||||
d = create(:distributor_enterprise)
|
||||
d = create(:distributor_enterprise, type: 'profile')
|
||||
|
||||
login_to_admin_section
|
||||
click_link 'Enterprises'
|
||||
|
||||
within("tr.enterprise-#{d.id}") do
|
||||
page.should have_checked_field "enterprise_set_collection_attributes_0_visible"
|
||||
expect(page).to have_checked_field "enterprise_set_collection_attributes_0_visible"
|
||||
uncheck "enterprise_set_collection_attributes_0_visible"
|
||||
select 'full', from: "enterprise_set_collection_attributes_0_type"
|
||||
end
|
||||
click_button "Update"
|
||||
flash_message.should == 'Enterprises updated successfully'
|
||||
distributor = Enterprise.find(d.id)
|
||||
distributor.visible.should == false
|
||||
expect(distributor.visible).to eq false
|
||||
expect(distributor.type).to eq 'full'
|
||||
end
|
||||
|
||||
scenario "viewing an enterprise" do
|
||||
@@ -127,7 +131,7 @@ feature %q{
|
||||
choose 'Single'
|
||||
fill_in 'enterprise_description', :with => 'Connecting farmers and eaters'
|
||||
fill_in 'enterprise_long_description', :with => 'Zombie ipsum reversus ab viral inferno, nam rick grimes malum cerebro.'
|
||||
|
||||
|
||||
# Check Angularjs switching of sidebar elements
|
||||
uncheck 'enterprise_is_primary_producer'
|
||||
uncheck 'enterprise_is_distributor'
|
||||
@@ -259,10 +263,22 @@ feature %q{
|
||||
|
||||
click_link "Enterprises"
|
||||
|
||||
page.should have_content supplier1.name
|
||||
page.should have_content distributor1.name
|
||||
page.should_not have_content supplier2.name
|
||||
page.should_not have_content distributor2.name
|
||||
within("tr.enterprise-#{distributor1.id}") do
|
||||
expect(page).to have_content distributor1.name
|
||||
expect(page).to have_checked_field "enterprise_set_collection_attributes_0_is_distributor"
|
||||
expect(page).to have_unchecked_field "enterprise_set_collection_attributes_0_is_primary_producer"
|
||||
expect(page).to have_select "enterprise_set_collection_attributes_0_type"
|
||||
end
|
||||
|
||||
within("tr.enterprise-#{supplier1.id}") do
|
||||
expect(page).to have_content supplier1.name
|
||||
expect(page).to have_unchecked_field "enterprise_set_collection_attributes_1_is_distributor"
|
||||
expect(page).to have_checked_field "enterprise_set_collection_attributes_1_is_primary_producer"
|
||||
expect(page).to have_select "enterprise_set_collection_attributes_1_type"
|
||||
end
|
||||
|
||||
expect(page).to_not have_content "supplier2.name"
|
||||
expect(page).to_not have_content "distributor2.name"
|
||||
end
|
||||
|
||||
scenario "creating an enterprise" do
|
||||
|
||||
@@ -94,10 +94,6 @@ feature "As a consumer I want to check out my cart", js: true do
|
||||
|
||||
describe "purchasing" do
|
||||
it "takes us to the order confirmation page when we submit a complete form" do
|
||||
toggle_shipping
|
||||
choose sm2.name
|
||||
toggle_payment
|
||||
choose pm1.name
|
||||
toggle_details
|
||||
within "#details" do
|
||||
fill_in "First Name", with: "Will"
|
||||
@@ -112,14 +108,25 @@ feature "As a consumer I want to check out my cart", js: true do
|
||||
select "Victoria", from: "State"
|
||||
fill_in "City", with: "Melbourne"
|
||||
fill_in "Postcode", with: "3066"
|
||||
|
||||
end
|
||||
toggle_shipping
|
||||
within "#shipping" do
|
||||
choose sm2.name
|
||||
fill_in 'Any notes or custom delivery instructions?', with: "SpEcIaL NoTeS"
|
||||
end
|
||||
toggle_payment
|
||||
within "#payment" do
|
||||
choose pm1.name
|
||||
end
|
||||
|
||||
place_order
|
||||
page.should have_content "Your order has been processed successfully"
|
||||
ActionMailer::Base.deliveries.length.should == 2
|
||||
email = ActionMailer::Base.deliveries.last
|
||||
site_name = Spree::Config[:site_name]
|
||||
email.subject.should include "#{site_name} Order Confirmation"
|
||||
o = Spree::Order.complete.first
|
||||
expect(o.special_instructions).to eq "SpEcIaL NoTeS"
|
||||
end
|
||||
|
||||
context "with basic details filled" do
|
||||
@@ -152,6 +159,20 @@ feature "As a consumer I want to check out my cart", js: true do
|
||||
page.should have_content "Your order has been processed successfully"
|
||||
end
|
||||
|
||||
context "when we are charged a shipping fee" do
|
||||
before { choose sm2.name }
|
||||
|
||||
it "creates a payment for the full amount inclusive of shipping" do
|
||||
place_order
|
||||
page.should have_content "Your order has been processed successfully"
|
||||
|
||||
# There are two orders - our order and our new cart
|
||||
o = Spree::Order.complete.first
|
||||
o.adjustments.shipping.first.amount.should == 4.56
|
||||
o.payments.first.amount.should == 10 + 1.23 + 4.56 # items + fees + shipping
|
||||
end
|
||||
end
|
||||
|
||||
context "with a credit card payment method" do
|
||||
let!(:pm1) { create(:payment_method, distributors: [distributor], name: "Roger rabbit", type: "Spree::Gateway::Bogus") }
|
||||
|
||||
@@ -167,7 +188,7 @@ feature "As a consumer I want to check out my cart", js: true do
|
||||
|
||||
# Order should have a payment with the correct amount
|
||||
o = Spree::Order.complete.first
|
||||
o.payments.first.amount.should == 11.23
|
||||
o.payments.first.amount.should == 15.79
|
||||
end
|
||||
|
||||
it "shows the payment processing failed message when submitted with an invalid credit card" do
|
||||
|
||||
@@ -15,6 +15,10 @@ module Spree
|
||||
it "returns :overview for the dashboard" do
|
||||
helper.klass_for('dashboard').should == :overview
|
||||
end
|
||||
|
||||
it "returns Spree::Order for bulk_order_management" do
|
||||
helper.klass_for('bulk_order_management').should == Spree::Order
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -4,7 +4,9 @@ describe Spree::ProductFilters do
|
||||
context "distributor filter" do
|
||||
it "provides filtering for all distributors" do
|
||||
3.times { create(:distributor_enterprise) }
|
||||
Spree::ProductFilters.distributor_filter[:labels].should == Enterprise.is_distributor.sort.map { |d| [d.name, d.name] }
|
||||
Enterprise.is_distributor.sort.map { |d| [d.name, d.name] }.each do |distributor|
|
||||
expect(Spree::ProductFilters.distributor_filter[:labels]).to include distributor
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -16,6 +16,6 @@ describe Api::EnterpriseSerializer do
|
||||
|
||||
it "will render urls" do
|
||||
serializer = Api::EnterpriseSerializer.new enterprise
|
||||
serializer.to_json.should match "map-icon-hub.svg"
|
||||
serializer.to_json.should match "map_005-hub.svg"
|
||||
end
|
||||
end
|
||||
|
||||