Group plan landing page (#10222)
* Updated task page styles * Added initial page styles * Added login and payments * Updated more styles * Added white header * Added group plan overview modal * Updated copy * Fixed location * Style updates * Added analytics * More style updates * Added locales * Removed duplicate key
|
|
@ -9,7 +9,7 @@ div
|
|||
h2 {{$t('tipTitle', {tipNumber: currentTipNumber})}}
|
||||
p {{currentTip}}
|
||||
#app(:class='{"casting-spell": castingSpell}')
|
||||
amazon-payments-modal
|
||||
amazon-payments-modal(v-if='!isStaticPage')
|
||||
snackbars
|
||||
router-view(v-if="!isUserLoggedIn || isStaticPage")
|
||||
template(v-else)
|
||||
|
|
@ -111,6 +111,7 @@ div
|
|||
}
|
||||
|
||||
.modal-backdrop.show {
|
||||
opacity: .9 !important;
|
||||
background-color: $purple-100 !important;
|
||||
}
|
||||
|
||||
|
|
|
|||
BIN
website/client/assets/images/group-plans-static/big-gem@3x.png
Executable file
|
After Width: | Height: | Size: 11 KiB |
BIN
website/client/assets/images/group-plans-static/bot-left@3x.png
Executable file
|
After Width: | Height: | Size: 45 KiB |
BIN
website/client/assets/images/group-plans-static/bot-right@3x.png
Executable file
|
After Width: | Height: | Size: 45 KiB |
BIN
website/client/assets/images/group-plans-static/group-management@3x.png
Executable file
|
After Width: | Height: | Size: 82 KiB |
311
website/client/assets/images/group-plans-static/party.svg
Normal file
|
|
@ -0,0 +1,311 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="386" height="200" viewBox="0 0 386 200">
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<g fill="#34313A" opacity=".12">
|
||||
<path d="M10.811 125.405h86.486v10.811H10.811z"/>
|
||||
<path d="M21.622 114.595h64.865v10.811H21.622zM0 136.216h108.108v10.811H0z"/>
|
||||
<path d="M10.811 147.027h86.486v10.811H10.811zM21.622 157.838h64.865v10.811H21.622zM299.459 137.297h64.865v10.811h-64.865zM288.649 148.108h86.486v10.811h-86.486zM299.459 158.919h64.865v10.811h-64.865zM116.014 156.757h156.081v10.811H116.014zM127.162 145.946h133.784v10.811H127.162zM104.865 167.568h178.378v10.811H104.865z"/>
|
||||
<path d="M116.014 178.378h156.081v10.811H116.014zM138.311 189.189h111.486V200H138.311z"/>
|
||||
</g>
|
||||
<path fill="#260F10" d="M32.432 43.243h5.405v5.405h-5.405z"/>
|
||||
<path fill="#551717" d="M27.027 37.837h5.405v5.405h-5.405zM43.243 43.243h5.405v5.405h-5.405zM43.243 59.46h5.405v5.404h-5.405zM37.838 48.648h5.405V59.46h-5.405zM48.649 48.648H59.46v5.405H48.649zM48.649 64.864H59.46v5.405H48.649z"/>
|
||||
<path fill="#260F10" d="M37.838 37.837h5.405v5.405h-5.405z"/>
|
||||
<path fill="#D1B8CB" d="M43.243 37.837h5.405v5.405h-5.405z"/>
|
||||
<path fill="#EDE4ED" d="M48.649 37.837H59.46v5.405H48.649z"/>
|
||||
<path fill="#FFF" d="M48.649 43.243H59.46v5.405H48.649z"/>
|
||||
<path fill="#EDE4ED" d="M37.838 43.243h5.405v5.405h-5.405zM32.432 48.648h5.405v5.405h-5.405zM27.027 54.054h5.405v5.405h-5.405z"/>
|
||||
<path fill="#D1B8CB" d="M32.432 54.054h5.405v5.405h-5.405z"/>
|
||||
<path fill="#DFCEDD" d="M32.432 59.46h5.405v5.404h-5.405z"/>
|
||||
<path fill="#D1C4CE" d="M21.622 70.27h5.405v10.811h-5.405z"/>
|
||||
<path fill="#DFCEDD" d="M37.838 64.864h5.405v5.405h-5.405z"/>
|
||||
<path fill="#D1C4CE" d="M32.432 86.486h5.405v5.405h-5.405z"/>
|
||||
<path fill="#7D4327" d="M37.838 86.486h10.811v5.405H37.838zM43.243 91.891h21.622v5.405H43.243z"/>
|
||||
<path fill="#5A311D" d="M37.838 81.081h10.811v5.405H37.838zM48.649 86.486H59.46v5.405H48.649z"/>
|
||||
<path fill="#7D4327" d="M48.649 81.081H59.46v5.405H48.649z"/>
|
||||
<path fill="#D1C4CE" d="M37.838 91.891h5.405v5.405h-5.405zM32.432 97.297h5.405v5.405h-5.405zM37.838 102.702h5.405v5.405h-5.405z"/>
|
||||
<path fill="#EDE4ED" d="M48.649 108.108H59.46v5.405H48.649z"/>
|
||||
<path fill="#FFF" d="M32.432 118.918h5.405v5.405h-5.405zM21.622 118.918h5.405v5.405h-5.405zM16.216 113.513h5.405v5.405h-5.405z"/>
|
||||
<path fill="#F2E7FE" d="M43.243 113.513h5.405v5.405h-5.405z"/>
|
||||
<path fill="#EDE4ED" d="M16.216 124.324h-5.405v-5.405h10.81v5.405h16.217v5.406h-5.406v5.405h-5.405v-5.405h-10.81z"/>
|
||||
<path fill="#F2E7FE" d="M43.243 124.324h21.622v5.405H43.243z"/>
|
||||
<path fill="#515050" d="M48.649 118.918H59.46v5.405H48.649z"/>
|
||||
<path fill="#D1B8CB" d="M43.243 102.702h21.622v5.405H43.243z"/>
|
||||
<path fill="#400702" d="M32.432 91.891h5.405v5.405h-5.405z"/>
|
||||
<path fill="#5A311D" d="M27.027 113.513h5.405v5.405h-5.405z"/>
|
||||
<path fill="#400702" d="M37.838 108.108h5.405v5.405h-5.405z"/>
|
||||
<path fill="#7D4327" d="M27.027 102.703h5.405v5.405h5.406v5.406H27.027z"/>
|
||||
<path fill="#400702" d="M48.649 113.513H59.46v5.405H48.649z"/>
|
||||
<path fill="#260F10" d="M27.027 97.297h5.405v5.405h-5.405zM16.216 108.108h5.405v5.405h-5.405zM10.811 113.513h5.405v5.405h-5.405zM5.405 118.918h5.405v5.405H5.405zM10.811 140.54h5.405v5.405h-5.405zM21.622 140.54h5.405v5.405h-5.405zM27.027 145.946h5.405v5.405h-5.405zM48.649 145.946H59.46v5.405H48.649z"/>
|
||||
<path fill="#A21A16" d="M48.649 140.54H59.46v5.405H48.649zM27.027 140.54h5.405v5.405h-5.405zM10.811 135.135h5.405v5.405h-5.405zM5.405 124.324h5.405v5.405H5.405z"/>
|
||||
<path fill="#ED3838" d="M10.811 124.324h5.405v5.405h-5.405zM27.027 135.135h5.405v5.405h-5.405z"/>
|
||||
<path fill="#D82C34" d="M21.622 135.135h5.405v5.405h-5.405zM10.811 129.73h5.405v5.404h-5.405z"/>
|
||||
<path fill="#ED3838" d="M16.216 129.73h10.811v5.404H16.216z"/>
|
||||
<path fill="#594D66" d="M48.649 135.135H59.46v5.405H48.649z"/>
|
||||
<path fill="#D5B9F5" d="M48.649 129.73H59.46v5.404H48.649z"/>
|
||||
<path fill="#E2D0F6" d="M43.243 129.73h5.405v5.404h-5.405zM37.838 135.135h5.405v5.405h-5.405z"/>
|
||||
<path fill="#F2E7FE" d="M37.838 129.73h5.405v5.404h-5.405z"/>
|
||||
<path fill="#D5B9F5" d="M43.243 135.135h5.405v5.405h-5.405z"/>
|
||||
<path fill="#551717" d="M16.216 135.135h5.405v5.405h-5.405z"/>
|
||||
<path fill="#260F10" d="M0 124.324h5.405v5.405H0zM5.405 129.73h5.405v10.81H5.405z"/>
|
||||
<path fill="#373737" d="M27.027 118.918h5.405v5.405h-5.405zM32.432 129.73h5.406v10.81h10.81v5.406h-5.405v5.405h-5.405v-5.405h-5.406zM21.622 102.702h5.405v16.216h-5.405zM37.838 113.514h5.405v5.405h5.406v5.405h-5.406v5.406h-5.405v-10.811h-5.406v-5.405z"/>
|
||||
<path fill="#260F10" d="M32.432 102.702h5.405v5.405h-5.405zM43.243 108.108h5.405v5.405h-5.405z"/>
|
||||
<path fill="#400702" d="M37.838 97.297H70.27v5.405H37.838zM27.027 86.486h5.405v5.405h-5.405zM21.622 81.081h5.405v5.405h-5.405zM16.216 70.27h5.405v10.811h-5.405z"/>
|
||||
<path fill="#EDE4ED" d="M27.027 75.675h5.405v10.811h-5.405z"/>
|
||||
<path fill="#7D4327" d="M32.432 75.675h5.405v10.811h-5.405z"/>
|
||||
<path fill="#A21A16" d="M48.649 59.46H59.46v5.404H48.649z"/>
|
||||
<path fill="#ED3838" d="M48.649 54.054H59.46v5.405H48.649z"/>
|
||||
<path fill="#D82C34" d="M43.243 54.054h5.405v5.405h-5.405z"/>
|
||||
<path fill="#A21A16" d="M43.243 48.648h5.405v5.405h-5.405z"/>
|
||||
<path fill="#D1B8CB" d="M37.838 70.27h5.405v-5.405h5.406v10.811H37.838z"/>
|
||||
<path fill="#FFF" d="M37.838 59.46h5.405v5.404h-5.405z"/>
|
||||
<path fill="#D1B8CB" d="M21.622 59.46h10.81v5.405h5.406v5.405H27.027v-5.405h-5.405z"/>
|
||||
<path fill="#260F10" d="M21.622 54.054h5.405v5.405h-5.405zM27.027 70.27h10.811v5.405H27.027zM37.838 75.675H70.27v5.405H37.838zM16.216 59.46h5.406v5.405h5.405v5.405h-10.81z"/>
|
||||
<path fill="#551717" d="M16.216 48.648h5.405v5.405h-5.405z"/>
|
||||
<path fill="#260F10" d="M27.027 48.648h5.405v5.405h-5.405z"/>
|
||||
<path fill="#551717" d="M21.622 43.243h5.405v5.405h-5.405z"/>
|
||||
<path fill="#A21A16" d="M21.622 48.648h5.405v5.405h-5.405z"/>
|
||||
<path fill="#ED3838" d="M27.027 43.243h5.405v5.405h-5.405z"/>
|
||||
<path fill="#260F10" d="M75.676 43.243H70.27v5.405h5.405z"/>
|
||||
<path fill="#551717" d="M81.08 37.837h-5.404v5.405h5.405zM64.865 43.243H59.46v5.405h5.405zM64.865 59.46H59.46v5.404h5.405zM70.27 48.648h-5.405V59.46h5.405z"/>
|
||||
<path fill="#260F10" d="M70.27 37.837h-5.405v5.405h5.405z"/>
|
||||
<path fill="#D1B8CB" d="M64.865 37.837H59.46v5.405h5.405z"/>
|
||||
<path fill="#EDE4ED" d="M70.27 43.243h-5.405v5.405h5.405zM75.676 48.648H70.27v5.405h5.405zM81.08 54.054h-5.404v5.405h5.405z"/>
|
||||
<path fill="#D1B8CB" d="M75.676 54.054H70.27v5.405h5.405z"/>
|
||||
<path fill="#DFCEDD" d="M75.676 59.46H70.27v5.404h5.405z"/>
|
||||
<path fill="#D1C4CE" d="M86.487 70.27h-5.405v10.811h5.405z"/>
|
||||
<path fill="#DFCEDD" d="M70.27 64.864h-5.405v5.405h5.405z"/>
|
||||
<path fill="#D1C4CE" d="M75.676 86.486H70.27v5.405h5.405z"/>
|
||||
<path fill="#7D4327" d="M70.27 86.486H59.46v5.405h10.81z"/>
|
||||
<path fill="#5A311D" d="M70.27 81.081H59.46v5.405h10.81z"/>
|
||||
<path fill="#D1C4CE" d="M70.27 91.891h-5.405v5.405h5.405zM75.676 97.297H70.27v5.405h5.405zM70.27 102.702h-5.405v5.405h5.405z"/>
|
||||
<path fill="#FFF" d="M75.676 118.918H70.27v5.405h5.405zM86.487 118.918h-5.405v5.405h5.405zM91.892 113.513h-5.405v5.405h5.405z"/>
|
||||
<path fill="#F2E7FE" d="M64.865 113.513H59.46v5.405h5.405z"/>
|
||||
<path fill="#EDE4ED" d="M91.892 124.324h5.405v-5.405h-10.81v5.405H70.27v5.406h5.406v5.405h5.405v-5.405h10.81z"/>
|
||||
<path fill="#400702" d="M75.676 91.891H70.27v5.405h5.405z"/>
|
||||
<path fill="#5A311D" d="M81.08 113.513h-5.404v5.405h5.405z"/>
|
||||
<path fill="#400702" d="M70.27 108.108h-5.405v5.405h5.405z"/>
|
||||
<path fill="#7D4327" d="M81.081 102.703h-5.405v5.405H70.27v5.406h10.811z"/>
|
||||
<path fill="#260F10" d="M81.08 97.297h-5.404v5.405h5.405zM91.892 108.108h-5.405v5.405h5.405zM97.297 113.513h-5.405v5.405h5.405zM102.703 118.918h-5.405v5.405h5.405zM97.297 140.54h-5.405v5.405h5.405zM86.487 140.54h-5.405v5.405h5.405zM81.08 145.946h-5.404v5.405h5.405z"/>
|
||||
<path fill="#A21A16" d="M81.08 140.54h-5.404v5.405h5.405zM97.297 135.135h-5.405v5.405h5.405zM102.703 124.324h-5.405v5.405h5.405z"/>
|
||||
<path fill="#ED3838" d="M97.297 124.324h-5.405v5.405h5.405zM81.08 135.135h-5.404v5.405h5.405z"/>
|
||||
<path fill="#D82C34" d="M86.487 135.135h-5.405v5.405h5.405zM97.297 129.73h-5.405v5.404h5.405z"/>
|
||||
<path fill="#ED3838" d="M91.892 129.73H81.081v5.404h10.811z"/>
|
||||
<path fill="#E2D0F6" d="M64.865 129.73H59.46v5.404h5.405zM70.27 135.135h-5.405v5.405h5.405z"/>
|
||||
<path fill="#F2E7FE" d="M70.27 129.73h-5.405v5.404h5.405z"/>
|
||||
<path fill="#D5B9F5" d="M64.865 135.135H59.46v5.405h5.405z"/>
|
||||
<path fill="#551717" d="M91.892 135.135h-5.405v5.405h5.405z"/>
|
||||
<path fill="#260F10" d="M108.108 124.324h-5.405v5.405h5.405zM102.703 129.73h-5.405v10.81h5.405z"/>
|
||||
<path fill="#373737" d="M81.08 118.918h-5.404v5.405h5.405zM75.676 129.73H70.27v10.81H59.46v5.406h5.405v5.405h5.405v-5.405h5.406zM86.487 102.702h-5.405v16.216h5.405zM70.27 113.514h-5.405v5.405h-5.406v5.405h5.406v5.406h5.405v-10.811h5.406v-5.405z"/>
|
||||
<path fill="#260F10" d="M75.676 102.702H70.27v5.405h5.405zM64.865 108.108H59.46v5.405h5.405z"/>
|
||||
<path fill="#400702" d="M81.08 86.486h-5.404v5.405h5.405zM86.487 81.081h-5.405v5.405h5.405zM91.892 70.27h-5.405v10.811h5.405z"/>
|
||||
<path fill="#EDE4ED" d="M81.08 75.675h-5.404v10.811h5.405z"/>
|
||||
<path fill="#7D4327" d="M75.676 75.675H70.27v10.811h5.405z"/>
|
||||
<path fill="#DFCEDD" d="M59.46 70.27H48.647v5.405H59.46z"/>
|
||||
<path fill="#D82C34" d="M64.865 54.054H59.46v5.405h5.405z"/>
|
||||
<path fill="#A21A16" d="M64.865 48.648H59.46v5.405h5.405z"/>
|
||||
<path fill="#D1B8CB" d="M70.27 70.27h-5.405v-5.405h-5.406v10.811H70.27z"/>
|
||||
<path fill="#FFF" d="M70.27 59.46h-5.405v5.404h5.405z"/>
|
||||
<path fill="#D1B8CB" d="M86.486 59.46h-10.81v5.405H70.27v5.405h10.811v-5.405h5.405z"/>
|
||||
<path fill="#260F10" d="M86.487 54.054h-5.405v5.405h5.405zM81.081 70.27h-10.81v5.405h10.81zM91.892 59.46h-5.406v5.405h-5.405v5.405h10.81z"/>
|
||||
<path fill="#551717" d="M91.892 48.648h-5.405v5.405h5.405z"/>
|
||||
<path fill="#260F10" d="M81.08 48.648h-5.404v5.405h5.405z"/>
|
||||
<path fill="#551717" d="M86.487 43.243h-5.405v5.405h5.405z"/>
|
||||
<path fill="#A21A16" d="M86.487 48.648h-5.405v5.405h5.405z"/>
|
||||
<path fill="#ED3838" d="M81.08 43.243h-5.404v5.405h5.405z"/>
|
||||
<path fill="#260F10" d="M43.243 32.432h21.622v5.405H43.243z"/>
|
||||
<g>
|
||||
<path fill="#4F4001" d="M183.784 0h10.81v5.405h-10.81z"/>
|
||||
<path fill="#0E3A00" d="M183.784 5.405h10.81v5.405h-10.81zM178.379 10.811h5.405v16.216h-5.405zM194.595 10.811H200v16.216h-5.405z"/>
|
||||
<path fill="#2B2B2B" d="M172.973 5.405h10.81v5.405h-10.81zM167.568 10.811h5.405v5.405h-5.405zM162.163 48.649h5.405V59.46h-5.405zM210.81 48.649h5.406V59.46h-5.405z"/>
|
||||
<path fill="#2B2B2B" d="M162.163 48.649h5.405V59.46h-5.405zM145.946 54.054h5.405v10.811h-5.405zM227.028 54.054h5.405v10.811h-5.405zM221.622 48.649h5.405v5.405h-5.405zM221.622 64.865h5.405v5.405h-5.405z"/>
|
||||
<path fill="#373737" d="M221.622 70.27h5.405v5.405h-5.405zM205.406 81.081h5.405v5.405h-5.405zM216.217 75.676h5.405v10.811h-5.405zM210.81 86.486h5.406v10.811h-5.405z"/>
|
||||
<path fill="#2B2B2B" d="M194.595 108.108H200v10.81h-10.81v-5.404h5.405z"/>
|
||||
<path fill="#373737" d="M205.405 97.297h5.406v10.811h5.405v5.406h-10.811v5.405H200v-10.81h5.405zM200 86.486h5.405v10.811H200z"/>
|
||||
<path fill="#2B2B2B" d="M151.352 64.865h5.405v5.405h-5.405zM156.757 70.27h5.405v5.405h-5.405zM151.352 48.649h5.405v5.405h-5.405zM216.217 59.459h5.405v5.405h-5.405zM156.757 59.459h5.405v5.405h-5.405z"/>
|
||||
<path fill="#373737" d="M210.81 59.459h5.406v5.405h-5.405z"/>
|
||||
<path fill="#C6D3D6" d="M205.406 59.459h5.405v5.405h-5.405zM167.568 59.459h5.405v5.405h-5.405z"/>
|
||||
<path fill="#DAB700" d="M210.81 64.865h5.406v5.405h-5.405zM162.163 64.865h5.405v5.405h-5.405z"/>
|
||||
<path fill="#BE9501" d="M205.406 64.865h5.405v5.405h-5.405zM167.568 64.865h5.405v5.405h-5.405zM194.595 75.676H200v5.405h-5.405z"/>
|
||||
<path fill="#9D7A00" d="M194.595 81.081H200v5.405h-5.405z"/>
|
||||
<path fill="#403100" d="M194.595 86.486H200v5.405h-5.405zM156.757 64.865h5.405v5.405h-5.405zM162.163 70.27h10.81v5.405h-10.81zM205.405 70.27h10.811v-5.405h5.406v10.811h-16.217z"/>
|
||||
<path fill="#9D7A00" d="M189.19 86.486h5.405v5.405h-5.405z"/>
|
||||
<path fill="#F4CD00" d="M194.595 70.27H200v5.405h-5.405z"/>
|
||||
<path fill="#339100" d="M189.19 70.27h5.405v5.405h-5.405z"/>
|
||||
<path fill="#195D00" d="M189.19 75.676h5.405v5.405h-5.405z"/>
|
||||
<path fill="#BE9501" d="M189.19 81.081h5.405v5.405h-5.405z"/>
|
||||
<path fill="#9D7A00" d="M200 64.865h5.405v10.811H200z"/>
|
||||
<path fill="#403100" d="M200 75.676h5.405v10.811H200z"/>
|
||||
<path fill="#373737" d="M205.406 54.054h5.405v5.405h-5.405zM200 59.459h5.405v5.405H200zM172.973 59.459h5.405v5.405h-5.405z"/>
|
||||
<path fill="#40190F" d="M178.379 59.459h5.405v5.405h-5.405zM216.217 86.486h5.405v5.405h-5.405zM232.433 97.297h5.405v5.405h-5.405zM264.865 124.324h5.405v5.405h-5.405zM259.46 129.73h5.405v5.405h-5.405z"/>
|
||||
<path fill="#32130B" d="M227.028 135.135h5.405v5.405h-5.405zM189.19 140.541h5.405v5.405h-5.405zM194.595 124.324H200v5.405h-5.405zM183.784 145.946h5.405v5.405h-5.405zM162.163 167.568h5.405v5.405h-5.405zM135.136 162.162h5.405v5.405h-5.405z"/>
|
||||
<path fill="#5A3B26" d="M135.136 167.568h5.405v5.405h-5.405z"/>
|
||||
<path fill="#5A3D26" d="M162.163 172.973h5.405v5.405h-5.405zM210.81 167.568h5.406v5.405h-5.405zM227.028 156.757h5.405v5.405h-5.405z"/>
|
||||
<path fill="#A08163" d="M221.622 156.757h5.405v5.405h-5.405zM227.028 151.351h5.405v5.405h-5.405zM216.217 129.73h5.405v5.405h-5.405zM232.433 108.108h5.405v21.622h-5.405z"/>
|
||||
<path fill="#8A7053" d="M216.217 135.135h5.405v5.405h-5.405z"/>
|
||||
<path fill="#7C644A" d="M227.028 108.108h5.405v5.405h-5.405z"/>
|
||||
<path fill="#8A6F52" d="M232.433 129.73h5.405v5.405h-5.405zM237.838 140.541h5.405v10.811h-5.405zM243.244 151.351h5.405v5.405h-5.405z"/>
|
||||
<path fill="#7C6449" d="M232.433 135.135h5.405v5.405h-5.405zM237.838 151.351h5.405v5.405h-5.405z"/>
|
||||
<path fill="#C4DBDE" d="M259.46 145.946h5.405v-5.405h5.405v10.81h-5.405v5.406h-5.406v-5.406z"/>
|
||||
<path fill="#E6E6E6" d="M259.46 135.135h5.405v-5.405h5.405v10.811h-5.405v5.405h-5.406v5.405h-5.405v-10.81h5.405z"/>
|
||||
<path fill="#7C6449" d="M243.244 156.757h16.216v5.405h-16.216z"/>
|
||||
<path fill="#A08163" d="M237.838 135.135h5.405v5.405h-5.405zM243.244 145.946h5.405v5.405h-5.405zM248.649 151.351h10.81v5.405h-10.81z"/>
|
||||
<path fill="#B7A07C" d="M221.622 97.297h10.81v5.406h5.406v5.405h-10.811v32.433h5.405v10.81h-5.405v5.406h-5.405V129.73h-5.406v-5.406h-10.81v-10.81h10.81v-5.406h-5.405v-10.81h5.405v5.405h5.406z"/>
|
||||
<path fill="#8A7053" d="M200 124.324h5.405v5.405H200zM205.406 129.73h10.81v5.405h-10.81z"/>
|
||||
<path fill="#A08163" d="M200 118.919h5.405v5.405H200zM205.406 124.324h10.81v5.405h-10.81z"/>
|
||||
<path fill="#49301E" d="M200 156.757h5.405v5.405H200z"/>
|
||||
<path fill="#7C644A" d="M205.406 140.541h5.405v16.216h-5.405z"/>
|
||||
<path fill="#3A2618" d="M194.595 162.162h10.81v5.405h-10.81z"/>
|
||||
<path fill="#896F52" d="M145.946 145.946h5.405v5.405h-5.405z"/>
|
||||
<path fill="#B7A07C" d="M140.54 129.73h5.406v5.405h-5.405z"/>
|
||||
<path fill="#A08164" d="M140.54 124.324h5.406v5.405h-5.405z"/>
|
||||
<path fill="#A08163" d="M167.568 145.946h5.405v10.811h-5.405zM172.973 156.757h5.405v10.811h-5.405z"/>
|
||||
<path fill="#B7A07C" d="M172.973 124.324h5.405v-5.405h5.406v-5.405h5.405v5.405h5.406v16.216h-10.811v5.406h-5.406v16.216h-5.405v-10.811h-5.405v-5.405h-5.406v-5.406h5.406v-5.405h5.405z"/>
|
||||
<path fill="#A08164" d="M140.54 135.135h5.406v5.405h-5.405z"/>
|
||||
<path fill="#A08163" d="M178.379 140.541h5.405v5.405h-5.405z"/>
|
||||
<path fill="#A08164" d="M167.568 124.324h5.405v5.405h-5.405zM145.946 129.73h21.622v5.405h-21.622zM172.973 118.919h5.405v5.405h-5.405zM178.379 113.514h5.405v5.405h-5.405z"/>
|
||||
<path fill="#B7A07C" d="M216.217 91.892h5.405v5.405h-5.405zM237.838 124.324h5.405v10.811h-5.405zM243.243 135.135h5.406v5.406h5.405v10.81h-5.405v-5.405h-5.406z"/>
|
||||
<path fill="#896F52" d="M140.54 140.541h5.406v5.405h-5.405z"/>
|
||||
<path fill="#B7A07C" d="M145.946 135.135h5.405v10.811h-5.405z"/>
|
||||
<path fill="#49301E" d="M140.54 167.568h5.406v5.405h-5.405zM167.568 172.973h10.81v5.405h-10.81zM216.217 167.568h10.81v5.405h-10.81z"/>
|
||||
<path fill="#7C644A" d="M145.946 151.351h5.405v10.811h-5.405z"/>
|
||||
<path fill="#5A3B26" d="M140.54 162.162h10.812v5.405H140.54z"/>
|
||||
<path fill="#5A3D26" d="M167.568 167.568h10.81v5.405h-10.81zM216.217 162.162h10.81v5.405h-10.81z"/>
|
||||
<path fill="#32130B" d="M140.54 145.946h5.406v16.216h-5.405zM135.136 118.919h5.405v27.027h-5.405zM156.757 178.378v-5.405h5.405v5.405h16.216v5.406h-21.621zM129.73 172.973v-5.405h5.405v5.405h10.81v-5.405h5.406v10.81H129.73zM178.379 167.568h5.405v10.811h-5.405zM167.568 156.757h5.405v10.811h-5.405zM162.163 145.946h5.405v10.811h-5.405zM151.352 145.946h5.405v21.622h-5.405zM194.595 135.135h16.216v5.405h-16.216zM194.595 156.757H200v5.405h-5.405zM210.81 140.541h5.406v16.216h-5.405zM200 140.541h5.405v16.216H200zM210.81 172.973h16.217v5.405H210.81z"/>
|
||||
<path fill="#32130B" d="M189.19 167.568v-5.406h5.405v5.406h10.81v-10.811h5.406v5.405h5.405v5.406h-5.405v5.405h-21.622zM227.028 162.162h5.405v10.811h-5.405zM243.244 162.162h16.216v5.405h-16.216zM232.432 151.351h5.406v5.406h5.405v5.405h-10.81z"/>
|
||||
<path fill="#40190F" d="M248.649 135.135h10.81v5.405h-10.81zM259.46 156.757h5.405v-5.406h5.405v10.811h-10.81zM243.244 124.324h5.405v10.811h-5.405zM232.433 140.541h5.405v10.811h-5.405zM210.81 135.135h5.406v5.405h-5.405zM183.784 140.541h5.405v5.405h-5.405zM156.757 145.946h5.405v5.405h-5.405zM151.352 140.541h5.405v5.405h-5.405zM178.379 145.946h5.405v21.622h-5.405zM200 129.73h5.405v5.405H200zM194.595 118.919H200v5.405h-5.405zM216.217 140.541h5.405v21.622h-5.405zM270.27 129.73h5.406v21.622h-5.405zM227.028 113.514h5.405v21.622h-5.405zM237.838 102.703h5.405v21.622h-5.405zM221.622 91.892h10.81v5.405h-10.81z"/>
|
||||
<path fill="#1C0800" d="M172.973 64.865h5.405v5.405h-5.405zM135.136 64.865h5.405v5.405h-5.405zM135.136 113.514h5.405v5.405h-5.405zM140.54 118.919h5.406v5.405h-5.405zM167.568 118.919h5.405v5.405h-5.405zM172.973 113.514h5.405v5.405h-5.405z"/>
|
||||
<path fill="#1C0800" d="M178.378 108.108h5.406v-5.405h5.405v-5.406h5.406v5.406H200v5.405h-10.81v5.406h-10.812z"/>
|
||||
<path fill="#000" d="M151.352 118.919h10.81v5.405h-10.81z"/>
|
||||
<path fill="#1C0800" d="M145.946 124.324h21.622v5.405h-21.622z"/>
|
||||
<path fill="#000" d="M135.135 102.703v-5.406h5.406v5.406h5.405v5.405h-10.81zM178.378 102.703v-5.406h-5.405v5.406h-5.405v5.405h10.81z"/>
|
||||
<path fill="#5A3B26" d="M178.379 64.865h5.405v5.405h-5.405zM172.973 70.27h5.405v5.405h-5.405zM167.568 75.676h5.405v5.405h-5.405z"/>
|
||||
<path fill="#F6CCBE" d="M135.136 75.676h5.405v5.405h-5.405z"/>
|
||||
<path fill="#C0AC8D" d="M129.73 81.081h5.405v5.405h-5.405z"/>
|
||||
<path fill="#8A7053" d="M124.325 97.297h5.405v5.405h-5.405zM183.784 97.297h5.405v5.405h-5.405zM140.54 108.108h5.406v5.405h-5.405zM167.568 108.108h5.405v5.405h-5.405z"/>
|
||||
<path fill="#A08264" d="M162.162 97.297h5.406v-5.405h5.405v10.81h-5.405v16.217h-5.406zM151.351 97.297h-5.405v-5.405h-5.405v10.81h5.405v16.217h5.405z"/>
|
||||
<path fill="#C0AC8D" d="M178.379 81.081h5.405v5.405h-5.405z"/>
|
||||
<path fill="#F6CCBE" d="M172.973 75.676h5.405v5.405h-5.405z"/>
|
||||
<path fill="#F6BAA6" d="M129.73 75.676h5.405v5.405h-5.405zM178.379 75.676h5.405v5.405h-5.405z"/>
|
||||
<path fill="#E6E6E6" d="M129.73 70.27h5.405v5.405h-5.405zM178.379 70.27h5.405v5.405h-5.405zM162.163 81.081h5.405v5.405h-5.405zM145.946 81.081h5.405v5.405h-5.405zM135.136 108.108h5.405v5.405h-5.405zM140.54 113.514h5.406v5.405h-5.405zM167.568 113.514h5.405v5.405h-5.405zM162.163 140.541h5.405v5.405h-5.405zM151.352 135.135h10.81v5.405h-10.81zM183.784 135.135h10.81v5.405h-10.81zM172.973 108.108h5.405v5.405h-5.405z"/>
|
||||
<path fill="#C4DBDE" d="M129.73 102.703h5.405v5.405h-5.405zM145.946 118.919h5.405v5.405h-5.405zM162.163 118.919h5.405v5.405h-5.405zM156.757 140.541h5.405v5.405h-5.405zM194.595 129.73H200v5.405h-5.405zM216.217 97.297h5.405v5.405h-5.405zM210.81 156.757h5.406v5.405h-5.405zM178.379 102.703h5.405v5.405h-5.405z"/>
|
||||
<path fill="#E6E6E6" d="M151.352 86.486h10.81v5.405h-10.81z"/>
|
||||
<path fill="#B7A07C" d="M151.352 81.081h10.81v5.405h-10.81zM135.135 81.081h10.81v5.405h5.406v10.811h-5.405v-5.405h-5.405v5.405h-5.406v5.406h-5.405V86.486h5.405z"/>
|
||||
<path fill="#B7A07C" d="M178.378 81.081h-10.81v5.405h-5.406v10.811h5.406v-5.405h5.405v5.405h5.405v5.406h5.406V86.486h-5.406z"/>
|
||||
<path fill="#C4DBDE" d="M151.352 91.892h10.81v5.405h-10.81z"/>
|
||||
<path fill="#B7A07C" d="M151.352 97.297h10.81v21.622h-10.81z"/>
|
||||
<path fill="#5A3B26" d="M140.54 75.676h5.406v5.405h-5.405zM135.136 70.27h5.405v5.405h-5.405zM129.73 64.865h5.405v5.405h-5.405z"/>
|
||||
<path fill="#40190F" d="M145.946 75.676h21.622v5.405h-21.622z"/>
|
||||
<path fill="#1C0800" d="M183.784 64.865h5.405v32.432h-5.405zM124.325 64.865h5.405v32.432h-5.405zM118.919 97.297h5.405v5.406h5.406v5.405h5.405v5.406h-10.81v-5.406h-10.811v-5.405h5.405z"/>
|
||||
<path fill="#373737" d="M167.568 54.054h5.405v5.405h-5.405zM162.163 59.459h5.405v5.405h-5.405zM189.19 64.865H200v5.405h-10.81z"/>
|
||||
<path fill="#2B2B2B" d="M156.757 21.622h5.405v27.027h-5.405zM216.217 21.622h5.405v27.027h-5.405zM205.406 10.811h5.405v5.405h-5.405z"/>
|
||||
<path fill="#792E00" d="M200 10.811h5.405v5.405H200zM172.973 10.811h5.405v5.405h-5.405z"/>
|
||||
<path fill="#8D3B00" d="M172.973 16.216h5.405v5.405h-5.405zM200 16.216h5.405v5.405H200z"/>
|
||||
<path fill="#9D7A00" d="M205.406 16.216h5.405v5.405h-5.405zM200 21.622h5.405v5.405H200zM172.973 21.622h5.405v5.405h-5.405zM167.568 16.216h5.405v5.405h-5.405z"/>
|
||||
<path fill="#695500" d="M167.568 21.622h5.405v5.405h-5.405zM205.406 21.622h5.405v5.405h-5.405z"/>
|
||||
<path fill="#61D60A" d="M183.784 10.811h5.405v5.405h-5.405z"/>
|
||||
<path fill="#359200" d="M189.19 16.216h5.405v5.405h-5.405zM183.784 21.622h5.405v5.405h-5.405zM162.163 10.811h5.405v5.405h-5.405zM156.757 16.216h5.405v5.405h-5.405z"/>
|
||||
<path fill="#195C00" d="M189.19 21.622h5.405v5.405h-5.405zM162.163 16.216h5.405v5.405h-5.405z"/>
|
||||
<path fill="#622900" d="M162.163 21.622h5.405v5.405h-5.405z"/>
|
||||
<path fill="#672600" d="M178.379 27.027h5.405v5.405h-5.405zM172.973 32.432h5.405v5.405h-5.405zM205.406 37.838h5.405v5.405h-5.405z"/>
|
||||
<path fill="#682600" d="M210.81 43.243h5.406v5.405h-5.405zM216.217 48.649h5.405v5.405h-5.405z"/>
|
||||
<path fill="#622900" d="M210.81 32.432h5.406v10.811h-5.405z"/>
|
||||
<path fill="#772C00" d="M210.81 21.622h5.406v10.81h-5.405v5.406h-5.406v-5.406h-10.81v-5.405h16.216z"/>
|
||||
<path fill="#682600" d="M205.406 48.649h5.405v5.405h-5.405zM167.568 48.649h5.405v5.405h-5.405z"/>
|
||||
<path fill="#752E00" d="M216.217 48.649h5.405v5.405h-5.405z"/>
|
||||
<path fill="#A75A14" d="M210.81 81.081h5.406v5.405h-5.405z"/>
|
||||
<path fill="#D9F7D1" d="M205.406 86.486h5.405v5.405h-5.405zM200 97.297h5.405v5.405H200z"/>
|
||||
<path fill="#B9F0A7" d="M205.406 91.892h5.405v5.405h-5.405zM194.595 97.297H200v5.405h-5.405zM200 102.703h5.405v5.405H200z"/>
|
||||
<path fill="#707070" d="M189.19 108.108h5.405v5.405h-5.405z"/>
|
||||
<path fill="#D9F7D1" d="M205.406 75.676h10.81v5.405h-10.81zM189.19 91.892H200v5.405h-10.81z"/>
|
||||
<path fill="#752E00" d="M156.757 48.649h5.405v5.405h-5.405z"/>
|
||||
<path fill="#662700" d="M216.217 54.054h5.405v5.405h-5.405zM156.757 54.054h5.405v5.405h-5.405zM151.352 59.459h5.405v5.405h-5.405zM221.622 59.459h5.405v5.405h-5.405z"/>
|
||||
<path fill="#602C00" d="M221.622 54.054h5.405v5.405h-5.405zM151.352 54.054h5.405v5.405h-5.405z"/>
|
||||
<path fill="#A85B12" d="M178.379 32.432h10.81v5.405h-10.81z"/>
|
||||
<path fill="#682600" d="M189.19 32.432h16.216v5.405H189.19z"/>
|
||||
<path fill="#A85B12" d="M167.568 43.243h5.405v5.405h-5.405zM205.406 43.243h5.405v5.405h-5.405z"/>
|
||||
<path fill="#373737" d="M178.379 43.243h5.405v5.405h-5.405zM194.595 43.243H200v5.405h-5.405z"/>
|
||||
<path fill="#FFF" d="M194.595 37.838h10.81v10.811H200v-5.406h-5.405zM183.784 37.838h-10.811v10.811h5.405v-5.406h5.406z"/>
|
||||
<path fill="#A85B12" d="M172.973 48.649h10.81v5.405h-10.81zM194.595 48.649h10.81v5.405h-10.81z"/>
|
||||
<path fill="#9F550F" d="M183.784 54.054h10.81v5.405h-10.81z"/>
|
||||
<path fill="#CA7938" d="M172.973 54.054h10.81v5.405h-10.81zM183.784 59.46h10.81v-5.406h10.811v5.405H200v5.406h-16.216zM183.784 37.838h10.81v16.216h-10.81z"/>
|
||||
<path fill="#672600" d="M167.568 37.838h5.405v5.405h-5.405z"/>
|
||||
<path fill="#4E1E00" d="M162.163 43.243h5.405v5.405h-5.405z"/>
|
||||
<path fill="#622900" d="M162.163 32.432h5.405v10.811h-5.405z"/>
|
||||
<path fill="#792D00" d="M167.568 27.027h10.81v5.405h-5.405v5.406h-5.405v-5.406h-5.406v-5.405z"/>
|
||||
<path fill="#0E3A00" d="M162.163 5.405h5.405v5.405h-5.405zM156.757 10.811h5.405v5.405h-5.405zM151.352 16.216h5.405v5.405h-5.405z"/>
|
||||
<path fill="#359200" d="M216.216 10.81h-5.405v5.405h5.405zM221.622 16.216h-5.405v5.405h5.405z"/>
|
||||
<path fill="#195C00" d="M216.216 16.216h-5.405v5.405h5.405z"/>
|
||||
<path fill="#0E3A00" d="M216.216 5.405h-5.405v5.405h5.405zM221.622 10.81h-5.405v5.405h5.405zM227.027 16.216h-5.405v5.405h5.405z"/>
|
||||
<path fill="#45BC00" d="M183.784 16.216h5.405v5.405h-5.405zM189.19 10.811h5.405v5.405h-5.405z"/>
|
||||
<path fill="#2B2B2B" d="M194.595 5.405h10.81v5.405h-10.81z"/>
|
||||
<path fill="#0E3A00" d="M183.784 27.027h10.81v5.405h-10.81z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#212121" d="M299.46 57.297h5.405v5.405h-5.405z"/>
|
||||
<path fill="#0C2B68" d="M283.243 62.702h5.405v5.405h-5.405z"/>
|
||||
<path fill="#1E5CDA" d="M337.297 14.054h10.81v5.405h-10.81z"/>
|
||||
<path fill="#1A4DB6" d="M337.297 19.46h5.405v5.404h-5.405zM348.108 19.46h5.405v5.404h-5.405z"/>
|
||||
<path fill="#2366EE" d="M337.297 8.648h5.405v5.405h-5.405zM326.486 19.46h5.406v-5.406h5.405v27.027h5.406v10.81H321.08v-10.81h5.405z"/>
|
||||
<path fill="#1E5CDA" d="M310.27 51.892h5.406v-10.81h5.405v16.215h-10.81zM353.514 51.892h-5.406v-10.81h-5.405v16.215h10.81z"/>
|
||||
<path fill="#0C2B68" d="M294.054 68.108h5.405v5.405h-5.405zM299.46 62.702h5.405v5.405h-5.405zM304.865 57.297h5.405v5.405h-5.405z"/>
|
||||
<path fill="#1E5CDA" d="M321.08 30.27h5.406v10.811h-5.405zM337.297 30.27h5.405v10.811h-5.405z"/>
|
||||
<path fill="#0F347B" d="M310.27 57.297h43.243v5.405H310.27z"/>
|
||||
<path fill="#0E3074" d="M304.865 62.703h54.054v5.405h5.405v5.406h-16.216v-5.406h-32.432v5.406h-16.217v-5.406h5.406z"/>
|
||||
<path fill="#0C2B68" d="M299.46 73.513h10.81v5.405h-10.81z"/>
|
||||
<path fill="#1C4DB2" d="M315.676 68.108h32.432v5.405h-32.432zM321.08 51.892h21.623v5.405H321.08z"/>
|
||||
<path fill="#0C2B68" d="M380.54 62.702h-5.404v5.405h5.405zM369.73 68.108h-5.406v5.405h5.405zM364.324 62.702h-5.405v5.405h5.405zM358.919 57.297h-5.405v5.405h5.405zM364.324 73.513h-10.811v5.405h10.811z"/>
|
||||
<path fill="#212121" d="M283.243 51.892h10.811v5.405h-5.405v5.406h-5.406v5.405h-5.405v-10.81h5.405zM380.54 51.892h-10.81v5.405h5.405v5.406h5.406v5.405h5.405v-10.81h-5.405zM294.054 73.513h5.405v5.405h-5.405zM315.676 105.946h5.405v5.405h-5.405zM364.324 100.54h5.406v16.217h-5.406v10.81h-5.405v-16.216h5.405z"/>
|
||||
<path fill="#212121" d="M358.919 78.919h5.405v21.622h-10.81V89.73h5.405zM342.703 105.946h5.405v-5.405h5.406v5.405h5.405v5.405h-16.216zM321.08 111.351h21.623v5.405H321.08zM315.676 116.757h5.405v10.811h-5.405zM299.46 78.919h5.405v10.81h5.405v10.812h-10.81z"/>
|
||||
<path fill="#000" d="M267.027 73.513h5.405v5.405h-5.405zM283.243 89.73h5.405v5.404h-5.405zM272.433 78.92h5.405v5.404h-5.405zM288.649 95.135h5.405v5.405h-5.405zM277.838 84.324h5.405v5.405h-5.405z"/>
|
||||
<path fill="#61AEF2" d="M261.622 73.513h5.405v5.405h-5.405zM272.433 84.324h5.405v5.405h-5.405zM283.243 95.135h5.405v5.405h-5.405zM267.027 78.92h5.405v5.404h-5.405zM277.838 89.73h5.405v5.404h-5.405zM288.649 100.54h5.405v5.405h-5.405zM294.054 105.946h5.405v5.405h-5.405zM256.216 78.92h5.405v5.404h-5.405zM267.027 89.73h5.405v5.404h-5.405zM277.838 100.54h5.405v5.405h-5.405zM261.622 84.324h5.405v5.405h-5.405zM272.433 95.135h5.405v5.405h-5.405zM283.243 105.946h5.405v5.405h-5.405zM288.649 111.351h5.405v5.405h-5.405z"/>
|
||||
<path fill="#AED8FF" d="M294.054 111.351h5.405v5.405h-5.405z"/>
|
||||
<path fill="#F9D624" d="M288.649 122.162h5.405v5.405h-5.405zM294.054 116.757h5.405v5.405h-5.405zM299.46 111.351h5.405v5.405h-5.405zM304.865 105.946h5.405v5.405h-5.405z"/>
|
||||
<path fill="#B3B3B3" d="M310.27 73.513h5.405v5.405h-5.405zM304.865 78.92h5.405v5.404h-5.405z"/>
|
||||
<path fill="#B9B9B9" d="M348.108 73.513h5.405v5.405h-5.405zM353.514 84.324h5.405v5.405h-5.405z"/>
|
||||
<path fill="#B3B3B3" d="M337.297 95.135h10.81v5.405h-10.81zM315.676 95.135h10.81v5.405h-10.81z"/>
|
||||
<path fill="#FFF" d="M315.676 78.919h10.81v5.405h-5.405v5.406h-5.405zM348.108 78.919h-10.81v5.405h5.405v5.406h5.405z"/>
|
||||
<path fill="#D39062" d="M315.676 89.73h10.81v5.404h-10.81z"/>
|
||||
<path fill="#F1965C" d="M326.486 78.919h5.406v-5.405h5.405V89.73h-10.81z"/>
|
||||
<path fill="#D39062" d="M315.676 73.513h16.216v5.405h-16.216zM337.297 89.73h10.81v5.404h-10.81zM337.297 73.513h10.81v5.405h-10.81zM348.108 78.92h5.405v10.81h-5.405zM310.27 78.92h5.405v10.81h-5.405z"/>
|
||||
<path fill="#CACACA" d="M326.487 89.73h10.81v5.404h-10.81z"/>
|
||||
<path fill="#B46E3F" d="M326.487 95.135h10.81v5.405h-10.81z"/>
|
||||
<path fill="#E8E8E8" d="M326.487 105.946h10.81v5.405h-10.81z"/>
|
||||
<path fill="#CACACA" d="M321.08 100.54h21.623v5.405H321.08z"/>
|
||||
<path fill="#B9B9B9" d="M348.108 95.135h5.405v5.405h-5.405zM342.703 100.54h5.405v5.405h-5.405zM315.676 100.54h5.405v5.405h-5.405zM310.27 95.135h5.405v5.405h-5.405z"/>
|
||||
<path fill="#B3B3B3" d="M304.865 78.92h5.405v5.404h-5.405zM310.27 73.513h5.405v5.405h-5.405z"/>
|
||||
<path fill="#9F9F9F" d="M304.865 84.324h5.405v5.405h-5.405z"/>
|
||||
<path fill="#2366EE" d="M315.676 111.351h5.405v5.405h-5.405zM321.08 116.757h5.406v10.811h-5.405z"/>
|
||||
<path fill="#1E5CDA" d="M310.27 111.351h5.405v5.405h-5.405zM348.108 111.351h5.405v5.405h-5.405z"/>
|
||||
<path fill="#1C4DB2" d="M342.703 111.351h5.405v5.405h-5.405zM337.297 122.162h5.405v5.405h-5.405z"/>
|
||||
<path fill="#0F347B" d="M342.703 138.378h5.405v5.405h-5.405z"/>
|
||||
<path fill="#0C2B68" d="M348.108 143.784h5.405v5.405h-5.405z"/>
|
||||
<path fill="#0E3074" d="M353.514 111.351h5.405v5.405h-5.405zM348.108 116.757h5.405v5.405h-5.405zM331.892 132.973h5.405v10.81h10.811v5.406h-21.622v-5.405h5.406z"/>
|
||||
<path fill="#103886" d="M337.297 127.567h5.405v16.216h-5.405z"/>
|
||||
<path fill="#0E3074" d="M310.27 116.757h5.405v5.405h-5.405z"/>
|
||||
<path fill="#1C4DB2" d="M326.487 116.757h5.405v5.405h-5.405z"/>
|
||||
<path fill="#F1965C" d="M310.27 89.73h5.405v5.404h-5.405zM348.108 89.73h5.405v5.404h-5.405z"/>
|
||||
<path fill="#B3B3B3" d="M321.08 105.946h5.406v5.405h-5.405zM337.297 105.946h5.405v5.405h-5.405z"/>
|
||||
<path fill="#A8B4CC" d="M331.892 116.757h5.405v5.405h-5.405zM326.487 122.162h5.405v5.405h-5.405zM321.08 127.567h5.406v5.405h-5.405z"/>
|
||||
<path fill="#8A9AB9" d="M337.297 116.757h5.405v5.405h-5.405zM331.892 122.162h5.405v5.405h-5.405zM326.487 127.567h5.405v5.405h-5.405z"/>
|
||||
<path fill="#808EAB" d="M331.892 127.567h5.405v5.405h-5.405z"/>
|
||||
<path fill="#8A9AB9" d="M321.08 132.973h5.406v5.405h-5.405zM315.676 138.378h5.405v5.405h-5.405z"/>
|
||||
<path fill="#727E96" d="M310.27 143.784h5.405v5.405h-5.405z"/>
|
||||
<path fill="#808EAB" d="M315.676 143.784h5.405v-5.406h5.405v-5.405h5.406v10.81h-5.406v5.406h-10.81z"/>
|
||||
<path fill="#B9B9B9" d="M353.514 100.54h5.405v5.405h-5.405z"/>
|
||||
<path fill="#B3B3B3" d="M353.514 78.92h5.405v5.404h-5.405z"/>
|
||||
<path fill="#9F9F9F" d="M358.919 105.946h5.405v5.405h-5.405z"/>
|
||||
<path fill="#DEDEDE" d="M358.919 100.54h5.405v5.405h-5.405z"/>
|
||||
<path fill="#D3B100" d="M299.46 116.757h5.405v5.405h-5.405z"/>
|
||||
<path fill="#AED8FF" d="M283.243 100.54h5.405v5.405h-5.405zM272.433 89.73h5.405v5.404h-5.405zM261.622 78.92h5.405v5.404h-5.405zM288.649 105.946h5.405v5.405h-5.405zM277.838 95.135h5.405v5.405h-5.405zM267.027 84.324h5.405v5.405h-5.405zM256.216 73.513h5.405v5.405h-5.405z"/>
|
||||
<path fill="#000" d="M294.054 100.54h5.405v5.405h-5.405zM299.46 105.946h5.405v5.405h-5.405zM304.865 111.351h5.405v10.811h-5.405zM256.216 89.73h5.405v-5.405h-5.405zM272.433 105.946h5.405v-5.405h-5.405zM283.243 132.973h10.811v-5.405h-5.405v-5.406h-5.406z"/>
|
||||
<path fill="#000" d="M315.676 100.54h-10.811v5.406h5.405v5.405h5.406zM250.81 68.108h16.217v5.406h-10.81v10.81h-5.406zM261.622 95.136h5.405V89.73h-5.405zM277.838 111.351h5.405v-5.405h-5.405zM267.027 100.54h5.405v-5.405h-5.405zM283.243 116.757h5.405v-5.405h-5.405zM288.649 122.162h5.405v-5.405h-5.405zM310.27 127.567h5.405v-5.405h-5.405zM315.676 132.973h5.405v-5.405h-5.405zM304.865 132.973h5.405v-5.405h-5.405zM310.27 138.378h5.405v-5.405h-5.405z"/>
|
||||
<path fill="#000" d="M315.676 138.378h5.405v-5.405h-5.405zM294.054 127.567h10.81v-5.405h-10.81z"/>
|
||||
<path fill="#212121" d="M283.243 68.108h5.406v-5.405h10.81v5.405h-5.405v5.406h-10.81zM380.54 68.108h-5.405v-5.405h-10.81v5.405h5.405v5.406h10.81zM304.865 51.892h5.405v5.405h-5.405zM326.487 14.054h5.405v5.405h-5.405zM331.892 8.648h5.405v5.405h-5.405zM337.297 3.243h5.405v5.405h-5.405zM342.703 8.648h5.405v5.405h-5.405zM348.108 14.054h5.405v5.405h-5.405zM353.514 19.46h5.405v5.404h-5.405zM348.108 24.865h5.405v5.405h-5.405zM353.514 51.892h5.405v5.405h-5.405zM358.919 57.297h5.405v5.405h-5.405z"/>
|
||||
<path fill="#212121" d="M364.325 73.513h5.405v5.405h-5.405zM353.514 127.567h5.405v5.405h-5.405zM310.27 138.378h5.405v5.405h-5.405zM342.703 116.757h5.405v5.405h5.406v5.406h-5.406v5.405h5.406v10.81h-5.406v-5.405h-5.405zM304.865 143.784h5.405v5.405h43.244v-5.405h5.405v10.81h-54.054z"/>
|
||||
<path fill="#000" d="M337.297 84.324h5.405v5.405h-5.405zM321.08 84.324h5.406v5.405h-5.405z"/>
|
||||
<path fill="#212121" d="M342.703 19.46h5.405v5.404h-5.405zM337.297 24.865h5.405v5.405h-5.405zM342.703 30.27h5.405v10.811h-5.405zM348.108 41.081h5.405v10.811h-5.405zM310.27 41.081h5.405v10.811h-5.405zM315.676 30.27h5.405v10.811h-5.405zM321.08 19.46h5.406v10.81h-5.405z"/>
|
||||
<path fill="#603913" d="M310.27 127.567h5.405v5.405h-5.405z"/>
|
||||
<path fill="#B36E3F" d="M304.865 122.162h5.405v5.405h-5.405zM353.514 122.162h5.405v5.405h-5.405z"/>
|
||||
<path fill="#F1965C" d="M353.514 116.757h5.405v5.405h-5.405z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 35 KiB |
BIN
website/client/assets/images/group-plans-static/party@3x.png
Executable file
|
After Width: | Height: | Size: 78 KiB |
BIN
website/client/assets/images/group-plans-static/team-based@3x.png
Executable file
|
After Width: | Height: | Size: 110 KiB |
BIN
website/client/assets/images/group-plans-static/top-left@3x.png
Executable file
|
After Width: | Height: | Size: 55 KiB |
BIN
website/client/assets/images/group-plans-static/top-right@3x.png
Executable file
|
After Width: | Height: | Size: 55 KiB |
14
website/client/assets/images/group-plans-static/top.svg
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="1440" height="480" viewBox="0 0 1440 480">
|
||||
<g fill="none" fill-rule="nonzero">
|
||||
<path fill="#FEFEFE" d="M1002.873 423.48c98.309-13.08 200.935-19.32 301.582-11.64 46.05 3.42 91.473 9.96 135.545 20.04V480H681.054c104.245-19.92 207.59-40.86 312.645-55.32 3.058-.42 6.116-.78 9.174-1.2z"/>
|
||||
<path fill="#FDFDFD" d="M.9 0H1440v431.88c-44.072-10.08-89.494-16.68-135.545-20.1-100.647-7.62-203.273-1.44-301.582 11.64-3.058.42-6.116.84-9.174 1.2-105.054 14.4-208.4 35.4-312.645 55.32H.9V0z"/>
|
||||
<path fill="#FBFBFB" d="M1009.709 348.6c-2.878.48-5.756 1.02-8.545 1.5-176.47 31.5-349.611 80.1-533.816 105.96-156.682 21.96-314.354 17.52-466.449-6.12V0H1440v344.94c-47.04-10.56-95.79-16.62-144.9-18.54-96.51-3.96-193.019 6.12-285.391 22.2z"/>
|
||||
<path fill="#FAFAFA" d="M1440 0v257.64c-50.009-11.04-102.086-16.38-154.164-16.62-92.462-.48-182.765 13.62-269.201 32.7-2.699.6-5.307 1.2-8.005 1.8-165.137 37.2-328.925 87.66-505.844 115.26C334.86 417 164.327 411.42.989 383.22V0H1440z"/>
|
||||
<path fill="#F9F9F9" d="M1276.482 155.64c-88.325 3.6-172.602 21.12-253.012 43.26-2.518.66-4.947 1.38-7.465 2.04-153.804 42.96-308.237 95.1-477.871 124.62C359.325 356.64 175.3 350.04.899 316.68V0H1440v169.92c-53.067-11.76-108.472-16.5-163.518-14.28z"/>
|
||||
<path fill="#F7F6F7" d="M.9 0H1440v81.78c-56.035-12.54-114.858-16.5-172.872-11.52-84.187 7.26-162.348 28.62-236.822 53.76-2.338.78-4.587 1.56-6.926 2.34-142.47 48.66-287.55 102.54-449.988 133.92-189.332 36.6-387.478 29.4-572.583-9.96V0H.9z"/>
|
||||
<path fill="#F4F4F5" d="M1030.846 51.78C899.708 106.2 763.983 161.58 608.829 195c-187.622 40.44-387.927 36.48-573.75-3.18-11.514-2.46-22.847-5.04-34.27-7.74V0h1180.063c-50.369 12.78-97.769 30.36-143.64 49.2-2.159.84-4.228 1.74-6.386 2.58z"/>
|
||||
<path fill="#F2F1F2" d="M.9 0h991.18C885.856 51.48 773.067 98.7 644.177 129.72c-172.512 41.52-359.775 44.82-535.165 12.66A1201.872 1201.872 0 0 1 .809 117.36V0H.9z"/>
|
||||
<path fill="#EFEFF0" d="M183.036 92.88C140.582 86.52 98.848 77.7 58.374 66.6 38.856 61.26 19.698 55.32.899 48.9V0h860.403c-56.575 25.02-116.657 46.92-181.777 64.44-157.311 42.42-331.622 53.22-496.49 28.44z"/>
|
||||
<path fill="#EDECEE" d="M256.97 43.44C189.241 35.88 123.042 21.18 61.97 0h650.294C570.423 42.6 410.413 60.6 256.969 43.44z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
BIN
website/client/assets/images/group-plans/approval-requested@3x.png
Executable file
|
After Width: | Height: | Size: 90 KiB |
BIN
website/client/assets/images/group-plans/assign-task@3x.png
Executable file
|
After Width: | Height: | Size: 37 KiB |
BIN
website/client/assets/images/group-plans/promote-leader@3x.png
Executable file
|
After Width: | Height: | Size: 67 KiB |
BIN
website/client/assets/images/group-plans/requires-approval@3x.png
Executable file
|
After Width: | Height: | Size: 14 KiB |
|
|
@ -1,5 +1,5 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="158" height="52" viewBox="0 0 158 52">
|
||||
<g fill="none" fill-rule="evenodd" opacity=".64">
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<g fill="#A5A1AC">
|
||||
<path d="M79.337 48.628h-1.16l.898-2.216-1.787-4.509h1.226l1.122 3.069 1.132-3.069h1.226l-2.657 6.725zm-4.453-1.936c-.402 0-.815-.149-1.188-.44v.328h-1.197v-6.726h1.197v2.367c.373-.28.786-.43 1.188-.43 1.253 0 2.113 1.01 2.113 2.45 0 1.44-.86 2.451-2.113 2.451zm-.253-3.872c-.327 0-.655.14-.935.42v2.003c.28.28.608.42.935.42.674 0 1.141-.58 1.141-1.421 0-.842-.467-1.422-1.14-1.422zm-6.98 3.432c-.364.291-.775.44-1.187.44-1.244 0-2.114-1.01-2.114-2.45 0-1.441.87-2.45 2.114-2.45.412 0 .823.148 1.188.43v-2.368h1.207v6.726h-1.207v-.328zm0-3.011c-.27-.281-.598-.421-.925-.421-.683 0-1.15.58-1.15 1.422s.467 1.421 1.15 1.421c.327 0 .654-.14.926-.42V43.24zm-7.127 1.328c.074.711.636 1.197 1.42 1.197.432 0 .908-.159 1.395-.44v1.002a3.82 3.82 0 0 1-1.59.364c-1.413 0-2.404-1.029-2.404-2.488 0-1.412.972-2.413 2.31-2.413 1.226 0 2.058.964 2.058 2.338 0 .131 0 .28-.019.44h-3.17zm1.085-1.853c-.58 0-1.03.432-1.085 1.077h2.039c-.038-.637-.42-1.077-.954-1.077zm-4.238.74v3.124h-1.198v-4.677h1.198v.468c.337-.375.748-.58 1.15-.58.131 0 .262.009.393.046v1.067a1.573 1.573 0 0 0-.42-.056c-.394 0-.815.215-1.123.608zm-5.342 1.113c.075.711.636 1.197 1.422 1.197.43 0 .907-.159 1.393-.44v1.002a3.827 3.827 0 0 1-1.59.364c-1.412 0-2.403-1.029-2.403-2.488 0-1.412.972-2.413 2.31-2.413 1.225 0 2.058.964 2.058 2.338 0 .131 0 .28-.019.44h-3.17zm1.085-1.853c-.58 0-1.029.432-1.085 1.077h2.04c-.038-.637-.422-1.077-.955-1.077zm-5.267 3.864l-.955-3.18-.944 3.18h-1.076l-1.609-4.677h1.197l.945 3.18.945-3.18h1.085l.945 3.18.944-3.18h1.198l-1.6 4.677h-1.075zm-7.316.112c-1.413 0-2.414-1.02-2.414-2.45 0-1.441 1.001-2.45 2.414-2.45 1.412 0 2.404 1.009 2.404 2.45 0 1.43-.992 2.45-2.404 2.45zm0-3.9c-.702 0-1.188.59-1.188 1.45s.486 1.45 1.188 1.45c.692 0 1.178-.59 1.178-1.45s-.486-1.45-1.178-1.45zm-5.258 1.477h-1.076v2.311H33v-6.436h2.273c1.31 0 2.245.852 2.245 2.068 0 1.216-.935 2.057-2.245 2.057zm-.168-3.152h-.908v2.18h.908c.692 0 1.179-.44 1.179-1.085 0-.655-.487-1.095-1.18-1.095zM124.151 44.73h-4.941c.113 1.183.98 1.531 1.963 1.531 1.002 0 1.791-.211 2.48-.558v2.033c-.686.38-1.592.654-2.798.654-2.459 0-4.181-1.54-4.181-4.583 0-2.57 1.461-4.611 3.862-4.611 2.397 0 3.649 2.04 3.649 4.624 0 .245-.022.774-.034.91zm-3.631-3.477c-.631 0-1.332.477-1.332 1.614h2.61c0-1.136-.658-1.614-1.278-1.614zm-7.932 7.137c-.883 0-1.423-.372-1.785-.638l-.006 2.856-2.523.537-.001-11.781h2.222l.132.623a2.827 2.827 0 0 1 1.977-.791c1.772 0 3.441 1.596 3.441 4.535 0 3.207-1.651 4.66-3.457 4.66zM112 41.431c-.579 0-.942.212-1.205.5l.015 3.75c.245.267.598.48 1.19.48.933 0 1.56-1.016 1.56-2.375 0-1.32-.636-2.355-1.56-2.355zm-7.375-2.067h2.533v8.846h-2.533v-8.846zm0-2.825l2.533-.539v2.056l-2.533.539v-2.056zm-2.701 5.673v5.998H99.4v-8.846h2.182l.158.745c.591-1.086 1.771-.865 2.107-.745v2.32c-.32-.104-1.328-.255-1.924.528zm-5.41 2.895c0 1.487 1.593 1.024 1.915.895v2.054c-.336.185-.945.334-1.77.334-1.498 0-2.623-1.103-2.623-2.597l.012-8.097 2.464-.524.002 2.192h1.916v2.152h-1.916v3.59zm-3.146.43c0 1.817-1.446 2.853-3.545 2.853-.87 0-1.821-.169-2.76-.572v-2.41c.847.46 1.926.806 2.763.806.562 0 .968-.15.968-.618 0-1.204-3.837-.75-3.837-3.544 0-1.787 1.365-2.856 3.412-2.856.836 0 1.672.128 2.508.46v2.379c-.768-.415-1.743-.65-2.51-.65-.529 0-.858.153-.858.547 0 1.136 3.859.595 3.859 3.605z"/>
|
||||
</g>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
14
website/client/assets/svg/purple-logo.svg
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="28" viewBox="0 0 128 28">
|
||||
<defs>
|
||||
<path id="a" d="M0 27.796h127.813V0H0z"/>
|
||||
</defs>
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<path fill="#4F2A93" d="M24.052 26.3c-.832-.09-.841-.462-.832-5.421 0 0-.083-.312.395-.582.477-.27 1.93-2.679 1.037-4.734-.892-2.056-.248-1.952.125-1.744.374.208.554-.055.332-1.183-.457-2.325-1.17-3.113-2.851-4.162-1.104-.69-.704-1.94.866-1.848.766.045.766.046.862-.555.152-.947-.15-2.565-1.327-2.788-.81-.154-1.817.713-3.015.109-1.198-.604-3.178.904-3.988 1.254s-1.479.354-2.403.331c-.925-.022.49 1.531 1.906 1.881 1.216.3.743.516.674 1.51-.078 1.113.24 1.59-.279 1.707-.796.178-1.686-1.961-3.052-2.857C9.4 5.183 7.56 6.152 2.15.201 1.211-.83 1.592 2.36 2.17 4.063c1.543 4.55 4.532 5.153 5.942 5.29 1.18.116 1.984-.158 1.984.297 0 .33-1.391.48-1.93.482a9.469 9.469 0 0 1-1.762-.173c-1.073-.2.569 2.535 1.624 3.402 1.78 1.465 3.818 2.014 5.456 2.18.473.048 1.146.04 1.146.41 0 .352-.354.438-.773.441-2.294.017-3.612 1.849-3.986 3.967-.237 1.346-.06 2.868-.035 4.005l.09.812c.18 1.426-4.948 1.975-5.627-.322-.743-2.51 3.309-3.837 3.383-6.232.047-1.509-1.333-2.194-1.333-2.194V14.224H4.76v-1.587H3.174V11.05H1.587v4.761h1.587V17.4h2.613c.594 0 1.07.392 1.015 1.24-.137 2.093-4.589 3.379-3.365 6.716.884 2.41 4.696 2.441 8.513 2.441l7.118-.006c.222 0 .534-.107.08-1.255-.367-.927-1.632-.276-2.706-.276-1.137 0-1.176-.96-.446-1.973.446-.618 1.014-1.078 1.979-1.527 1.486-.693 2.617.198 3.174.963.8 1.099 1.054 2.355.348 2.552-.851.238-1.113.27-1.141 1.08-.022.581.256.422 1.595.422h4.445c.688 0 .637-.53-.055-1.45-.491-.653-1.028.11-2.289-.027z"/>
|
||||
<mask id="b" fill="#fff">
|
||||
<use xlink:href="#a"/>
|
||||
</mask>
|
||||
<path fill="#4F2A93" d="M0 10.827h1.587V9.24H0zM113.986 19.894a1.385 1.385 0 0 0-1.942.25c-.54.7-1.354 1.101-2.236 1.101a2.82 2.82 0 0 1-2.815-2.645 416.05 416.05 0 0 1-.005-1.947 2.824 2.824 0 0 1 2.82-2.821c.781 0 1.508.312 2.046.879a1.385 1.385 0 0 0 2.008-1.907 5.614 5.614 0 0 0-4.054-1.741 5.596 5.596 0 0 0-5.59 5.59c0 .019.001 1.937.009 2.078a5.589 5.589 0 0 0 5.581 5.283c1.747 0 3.361-.793 4.429-2.178a1.385 1.385 0 0 0-.251-1.942M122.223 21.245a2.819 2.819 0 0 1-2.815-2.644 419.52 419.52 0 0 1-.006-1.949 2.824 2.824 0 0 1 2.82-2.82 2.824 2.824 0 0 1 2.821 2.82c0 .2-.002 1.734-.005 1.946a2.818 2.818 0 0 1-2.815 2.647m4.205-10.422c-.645 0-1.183.444-1.336 1.04a5.55 5.55 0 0 0-2.87-.8 5.596 5.596 0 0 0-5.589 5.59c0 .019.001 1.936.008 2.078a5.589 5.589 0 0 0 8.517 4.447 1.384 1.384 0 0 0 2.655-.548V12.208c0-.765-.62-1.385-1.385-1.385M58.861 21.245a2.819 2.819 0 0 1-2.815-2.646c-.003-.213-.005-1.747-.005-1.947a2.824 2.824 0 0 1 2.82-2.82 2.824 2.824 0 0 1 2.82 2.82c0 .2-.001 1.734-.005 1.946a2.818 2.818 0 0 1-2.815 2.647m4.206-10.422c-.646 0-1.183.444-1.337 1.04a5.55 5.55 0 0 0-2.869-.8 5.596 5.596 0 0 0-5.59 5.59c0 .019.001 1.937.009 2.078a5.589 5.589 0 0 0 8.516 4.447 1.384 1.384 0 0 0 2.655-.548V12.208c0-.765-.62-1.385-1.384-1.385M83.451 10.823c-.764 0-1.384.62-1.384 1.385V22.63a1.385 1.385 0 0 0 2.769 0V12.208c0-.765-.62-1.385-1.385-1.385M99.759 10.823c-.765 0-1.385.62-1.385 1.385V22.63a1.385 1.385 0 0 0 2.77 0V12.208c0-.765-.62-1.385-1.385-1.385M76.266 18.6a2.82 2.82 0 0 1-2.815 2.645 2.82 2.82 0 0 1-2.815-2.647c-.004-.214-.005-1.746-.005-1.946a2.824 2.824 0 0 1 2.82-2.82 2.824 2.824 0 0 1 2.82 2.82c0 .193-.002 1.733-.005 1.949m-2.815-7.538c-1.03 0-1.991.284-2.82.772v-5.17a1.385 1.385 0 0 0-2.77 0V22.63a1.385 1.385 0 0 0 2.655.548c.856.529 1.86.836 2.935.836a5.59 5.59 0 0 0 5.582-5.288c.007-.137.008-2.054.008-2.074a5.596 5.596 0 0 0-5.59-5.59M45.664 11.063a5.58 5.58 0 0 0-2.674.677V6.665a1.385 1.385 0 0 0-2.77 0V22.63a1.385 1.385 0 1 0 2.77 0v-7.157c.106-.09.203-.191.281-.315a2.808 2.808 0 0 1 2.393-1.326 2.824 2.824 0 0 1 2.82 2.82c0 .254-.002 5.635-.006 5.944a1.385 1.385 0 0 0 2.767.104c.007-.137.008-5.989.008-6.048a5.596 5.596 0 0 0-5.59-5.59M94.503 10.823h-1.616V6.665a1.385 1.385 0 0 0-2.77 0v4.158h-1.614a1.385 1.385 0 0 0 0 2.77h1.615v9.037a1.385 1.385 0 0 0 2.77 0v-9.038h1.615a1.385 1.385 0 0 0 0-2.769" mask="url(#b)"/>
|
||||
<path fill="#FF6066" d="M84.785 6.665a1.385 1.385 0 1 1-2.77 0 1.385 1.385 0 0 1 2.77 0" mask="url(#b)"/>
|
||||
<path fill="#4FB5E8" d="M101.092 6.665a1.385 1.385 0 1 1-2.77 0 1.385 1.385 0 0 1 2.77 0" mask="url(#b)"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.3 KiB |
164
website/client/components/auth/authForm.vue
Normal file
|
|
@ -0,0 +1,164 @@
|
|||
<template lang="pug">
|
||||
.form
|
||||
.form-group.row.text-center
|
||||
.col-12.col-md-6
|
||||
.btn.btn-secondary.social-button(@click='socialAuth("facebook")')
|
||||
.svg-icon.social-icon(v-html="icons.facebookIcon")
|
||||
span {{registering ? $t('signUpWithSocial', {social: 'Facebook'}) : $t('loginWithSocial', {social: 'Facebook'})}}
|
||||
.col-12.col-md-6
|
||||
.btn.btn-secondary.social-button(@click='socialAuth("google")')
|
||||
.svg-icon.social-icon(v-html="icons.googleIcon")
|
||||
span {{registering ? $t('signUpWithSocial', {social: 'Google'}) : $t('loginWithSocial', {social: 'Google'})}}
|
||||
.form-group(v-if='registering')
|
||||
label(for='usernameInput', v-once) {{$t('username')}}
|
||||
input#usernameInput.form-control(type='text', :placeholder='$t("usernamePlaceholder")', v-model='username')
|
||||
.form-group(v-if='!registering')
|
||||
label(for='usernameInput', v-once) {{$t('emailOrUsername')}}
|
||||
input#usernameInput.form-control(type='text', :placeholder='$t("emailOrUsername")', v-model='username')
|
||||
.form-group(v-if='registering')
|
||||
label(for='emailInput', v-once) {{$t('email')}}
|
||||
input#emailInput.form-control(type='email', :placeholder='$t("emailPlaceholder")', v-model='email')
|
||||
.form-group
|
||||
label(for='passwordInput', v-once) {{$t('password')}}
|
||||
a.float-right.forgot-password(v-once, v-if='!registering', @click='forgotPassword = true') {{$t('forgotPassword')}}
|
||||
input#passwordInput.form-control(type='password', :placeholder='$t(registering ? "passwordPlaceholder" : "password")', v-model='password')
|
||||
.form-group(v-if='registering')
|
||||
label(for='confirmPasswordInput', v-once) {{$t('confirmPassword')}}
|
||||
input#confirmPasswordInput.form-control(type='password', :placeholder='$t("confirmPasswordPlaceholder")', v-model='passwordConfirm')
|
||||
small.form-text(v-once, v-html="$t('termsAndAgreement')")
|
||||
.text-center
|
||||
.btn.btn-info(@click='register()', v-if='registering', v-once) {{$t('joinHabitica')}}
|
||||
.btn.btn-info(@click='login()', v-if='!registering', v-once) {{$t('login')}}
|
||||
</template>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import '~client/assets/scss/colors.scss';
|
||||
|
||||
.form {
|
||||
margin: 0 auto;
|
||||
width: 100%;
|
||||
padding-top: 2em;
|
||||
padding-bottom: 4em;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
|
||||
.form-group {
|
||||
text-align: left;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.social-button {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
|
||||
.text {
|
||||
display: inline-block;
|
||||
min-height: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
.social-icon {
|
||||
margin-right: 1em;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
margin-top: .2em;
|
||||
}
|
||||
|
||||
small.form-text {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import * as Analytics from 'client/libs/analytics';
|
||||
import hello from 'hellojs';
|
||||
import { setUpAxios } from 'client/libs/auth';
|
||||
|
||||
import facebookSquareIcon from 'assets/svg/facebook-square.svg';
|
||||
import googleIcon from 'assets/svg/google.svg';
|
||||
|
||||
export default {
|
||||
name: 'AuthForm',
|
||||
data () {
|
||||
let data = {
|
||||
registering: true,
|
||||
username: '',
|
||||
email: '',
|
||||
password: '',
|
||||
passwordConfirm: '',
|
||||
};
|
||||
|
||||
data.icons = Object.freeze({
|
||||
facebookIcon: facebookSquareIcon,
|
||||
googleIcon,
|
||||
});
|
||||
|
||||
return data;
|
||||
},
|
||||
mounted () {
|
||||
hello.init({
|
||||
facebook: process.env.FACEBOOK_KEY, // eslint-disable-line
|
||||
// windows: WINDOWS_CLIENT_ID,
|
||||
google: process.env.GOOGLE_CLIENT_ID, // eslint-disable-line
|
||||
});
|
||||
|
||||
Analytics.track({
|
||||
hitType: 'event',
|
||||
eventCategory: 'group-plans-static',
|
||||
eventAction: 'view',
|
||||
eventLabel: 'view-auth-form',
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
async socialAuth (network) {
|
||||
let auth = await hello(network).login({
|
||||
scope: 'email',
|
||||
redirect_uri: '', // eslint-disable-line camelcase
|
||||
});
|
||||
|
||||
await this.$store.dispatch('auth:socialAuth', {
|
||||
auth,
|
||||
});
|
||||
|
||||
await this.finishAuth();
|
||||
},
|
||||
async register () {
|
||||
if (!this.email) {
|
||||
alert(this.$t('missingEmail'));
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.password !== this.passwordConfirm) {
|
||||
alert(this.$t('passwordConfirmationMatch'));
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
await this.$store.dispatch('auth:register', {
|
||||
username: this.username,
|
||||
email: this.email,
|
||||
password: this.password,
|
||||
passwordConfirm: this.passwordConfirm,
|
||||
});
|
||||
|
||||
await this.finishAuth();
|
||||
} catch (e) {
|
||||
if (e.response.data.data && e.response.data.data.errors) {
|
||||
const message = e.response.data.data.errors.map(error => `${error.message}\n`);
|
||||
alert(message);
|
||||
}
|
||||
}
|
||||
},
|
||||
async finishAuth () {
|
||||
setUpAxios();
|
||||
|
||||
await this.$store.dispatch('user:fetch', {forceLoad: true});
|
||||
|
||||
this.$emit('authenticate');
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
174
website/client/components/group-plans/createGroupModalPages.vue
Normal file
|
|
@ -0,0 +1,174 @@
|
|||
<template lang="pug">
|
||||
.create-group-modal-pages
|
||||
.col-12(v-if='activePage === PAGES.CREATE_GROUP')
|
||||
h2 {{ $t('nameYourGroup') }}
|
||||
.form-group
|
||||
label.control-label(for='new-group-name') {{ $t('name') }}
|
||||
input.form-control#new-group-name.input-medium.option-content(required, type='text', :placeholder="$t('exampleGroupName')", v-model='newGroup.name')
|
||||
.form-group
|
||||
label(for='new-group-description') {{ $t('description') }}
|
||||
textarea.form-control#new-group-description.option-content(cols='3', :placeholder="$t('exampleGroupDesc')", v-model='newGroup.description')
|
||||
.form-group.text-left(v-if='newGroup.type === "guild"')
|
||||
.custom-control.custom-radio
|
||||
input.custom-control-input(type='radio', name='new-group-privacy', value='private', v-model='newGroup.privacy')
|
||||
label.custom-control-label {{ $t('thisGroupInviteOnly') }}
|
||||
.form-group.text-left
|
||||
.custom-control.custom-checkbox
|
||||
input.custom-control-input(type='checkbox', v-model='newGroup.leaderOnly.challenges' id='create-group-leaderOnlyChallenges-checkbox')
|
||||
label.custom-control-label(for='create-group-leaderOnlyChallenges-checkbox') {{ $t('leaderOnlyChallenges') }}
|
||||
.form-group(v-if='newGroup.type === "party"')
|
||||
button.btn.btn-secondary.form-control(@click='createGroup()', :value="$t('createGroupPlan')")
|
||||
.form-group
|
||||
button.btn.btn-primary.btn-lg.btn-block(@click="createGroup()", :disabled="!newGroupIsReady") {{ $t('createGroupPlan') }}
|
||||
.col-12(v-if='activePage === PAGES.PAY')
|
||||
h2 {{ $t('choosePaymentMethod') }}
|
||||
.payment-providers
|
||||
.box.payment-button(@click='pay(PAYMENTS.STRIPE)')
|
||||
.svg-icon.credit-card-icon(v-html="icons.creditCard")
|
||||
.box.payment-button.amazon(@click='pay(PAYMENTS.AMAZON)')
|
||||
.svg-icon.amazon-pay-icon(v-html="icons.amazonpay")
|
||||
</template>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
h2 {
|
||||
font-family: 'Varela Round', sans-serif;
|
||||
font-weight: normal;
|
||||
font-size: 29px;
|
||||
color: #34313a;
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
.box {
|
||||
border-radius: 2px;
|
||||
background-color: #ffffff;
|
||||
box-shadow: 0 2px 2px 0 rgba(26, 24, 29, 0.16), 0 1px 4px 0 rgba(26, 24, 29, 0.12);
|
||||
padding: 2em;
|
||||
text-align: center;
|
||||
vertical-align: bottom;
|
||||
height: 100px;
|
||||
width: 306px;
|
||||
margin: 0 auto;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
.box .svg-icon {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.form-group {
|
||||
text-align: left;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.box:hover {
|
||||
cursor: pointer;
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
.amazon-pay-icon {
|
||||
width: 150px;
|
||||
}
|
||||
|
||||
.credit-card-icon {
|
||||
width: 150px;
|
||||
color: #4e4a57;
|
||||
}
|
||||
|
||||
.btn-block {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
.payment-button.amazon {
|
||||
margin-bottom: 2em;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import * as Analytics from 'client/libs/analytics';
|
||||
import { mapState } from 'client/libs/store';
|
||||
import paymentsMixin from '../../mixins/payments';
|
||||
|
||||
import amazonpay from 'assets/svg/amazonpay.svg';
|
||||
import creditCard from 'assets/svg/credit-card.svg';
|
||||
|
||||
export default {
|
||||
mixins: [paymentsMixin],
|
||||
data () {
|
||||
return {
|
||||
amazonPayments: {},
|
||||
icons: Object.freeze({
|
||||
amazonpay,
|
||||
creditCard,
|
||||
}),
|
||||
PAGES: {
|
||||
CREATE_GROUP: 'create-group',
|
||||
UPGRADE_GROUP: 'upgrade-group',
|
||||
PAY: 'pay',
|
||||
},
|
||||
PAYMENTS: {
|
||||
AMAZON: 'amazon',
|
||||
STRIPE: 'stripe',
|
||||
},
|
||||
activePage: 'create-group',
|
||||
newGroup: {
|
||||
type: 'guild',
|
||||
privacy: 'private',
|
||||
name: '',
|
||||
leaderOnly: {
|
||||
challenges: false,
|
||||
},
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapState({user: 'user.data'}),
|
||||
newGroupIsReady () {
|
||||
return Boolean(this.newGroup.name);
|
||||
},
|
||||
},
|
||||
mounted () {
|
||||
Analytics.track({
|
||||
hitType: 'event',
|
||||
eventCategory: 'group-plans-static',
|
||||
eventAction: 'view',
|
||||
eventLabel: 'create-group',
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
changePage (page) {
|
||||
Analytics.track({
|
||||
hitType: 'event',
|
||||
eventCategory: 'group-plans-static',
|
||||
eventAction: 'view',
|
||||
eventLabel: page,
|
||||
});
|
||||
this.activePage = page;
|
||||
window.scrollTo(0, 0);
|
||||
},
|
||||
createGroup () {
|
||||
this.changePage(this.PAGES.PAY);
|
||||
},
|
||||
pay (paymentMethod) {
|
||||
const subscriptionKey = 'group_monthly'; // @TODO: Get from content API?
|
||||
let paymentData = {
|
||||
subscription: subscriptionKey,
|
||||
coupon: null,
|
||||
};
|
||||
|
||||
if (this.upgradingGroup && this.upgradingGroup._id) {
|
||||
paymentData.groupId = this.upgradingGroup._id;
|
||||
} else {
|
||||
paymentData.groupToCreate = this.newGroup;
|
||||
}
|
||||
|
||||
this.paymentMethod = paymentMethod;
|
||||
if (this.paymentMethod === this.PAYMENTS.STRIPE) {
|
||||
this.showStripe(paymentData);
|
||||
} else if (this.paymentMethod === this.PAYMENTS.AMAZON) {
|
||||
paymentData.type = 'subscription';
|
||||
this.amazonPaymentsInit(paymentData);
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
235
website/client/components/group-plans/groupPlanOverviewModal.vue
Normal file
|
|
@ -0,0 +1,235 @@
|
|||
<template lang="pug">
|
||||
b-modal#group-plan-overview(title="Empty", size='lg', hide-footer=true, @shown='shown()')
|
||||
.header-wrap.text-center(slot="modal-header")
|
||||
h2(v-once) {{ $t('gettingStarted') }}
|
||||
p(v-once) {{ $t('congratsOnGroupPlan') }}
|
||||
.row
|
||||
.col-12
|
||||
.card(:class='{expanded: expandedQuestions.question1}')
|
||||
.question-head
|
||||
.q Q.
|
||||
.title {{ $t('whatsIncludedGroup') }}
|
||||
.arrow.float-right(@click='toggle("question1")')
|
||||
.svg-icon(v-html="icons.upIcon", v-if='expandedQuestions.question1')
|
||||
.svg-icon(v-html="icons.downIcon", v-else)
|
||||
.question-body(v-if='expandedQuestions.question1')
|
||||
p {{ $t('whatsIncludedGroupDesc') }}
|
||||
.col-12
|
||||
.card(:class='{expanded: expandedQuestions.question2}')
|
||||
.question-head
|
||||
.q Q.
|
||||
.title {{ $t('howDoesBillingWork') }}
|
||||
.arrow.float-right(@click='toggle("question2")')
|
||||
.svg-icon(v-html="icons.upIcon", v-if='expandedQuestions.question2')
|
||||
.svg-icon(v-html="icons.downIcon", v-else)
|
||||
.question-body(v-if='expandedQuestions.question2')
|
||||
p {{ $t('howDoesBillingWorkDesc') }}
|
||||
.col-12
|
||||
.card(:class='{expanded: expandedQuestions.question3}')
|
||||
.question-head
|
||||
.q Q.
|
||||
.title {{ $t('howToAssignTask') }}
|
||||
.arrow.float-right(@click='toggle("question3")')
|
||||
.svg-icon(v-html="icons.upIcon", v-if='expandedQuestions.question3')
|
||||
.svg-icon(v-html="icons.downIcon", v-else)
|
||||
.question-body(v-if='expandedQuestions.question3')
|
||||
p {{ $t('howToAssignTaskDesc') }}
|
||||
.assign-tasks.image-example
|
||||
.col-12
|
||||
.card(:class='{expanded: expandedQuestions.question4}')
|
||||
.question-head
|
||||
.q Q.
|
||||
.title {{ $t('howToRequireApproval') }}
|
||||
.arrow.float-right(@click='toggle("question4")')
|
||||
.svg-icon(v-html="icons.upIcon", v-if='expandedQuestions.question4')
|
||||
.svg-icon(v-html="icons.downIcon", v-else)
|
||||
.question-body(v-if='expandedQuestions.question4')
|
||||
p {{ $t('howToRequireApprovalDesc') }}
|
||||
.requires-approval.image-example
|
||||
p {{ $t('howToRequireApprovalDesc2') }}
|
||||
.approval-requested.image-example
|
||||
.col-12
|
||||
.card(:class='{expanded: expandedQuestions.question5}')
|
||||
.question-head
|
||||
.q Q.
|
||||
.title {{ $t('whatIsGroupManager') }}
|
||||
.arrow.float-right(@click='toggle("question5")')
|
||||
.svg-icon(v-html="icons.upIcon", v-if='expandedQuestions.question5')
|
||||
.svg-icon(v-html="icons.downIcon", v-else)
|
||||
.question-body(v-if='expandedQuestions.question5')
|
||||
p {{ $t('whatIsGroupManagerDesc') }}
|
||||
.promote-leader.image-example
|
||||
.col-12.text-center
|
||||
button.btn.btn-primary.close-button(@click='close()') {{ $t('goToTaskBoard') }}
|
||||
</template>
|
||||
|
||||
<style>
|
||||
#group-plan-overview___BV_modal_header_ {
|
||||
border-bottom: none;
|
||||
}
|
||||
</style>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import url('https://fonts.googleapis.com/css?family=Varela+Round');
|
||||
|
||||
.header-wrap {
|
||||
padding-left: 4em;
|
||||
padding-right: 4em;
|
||||
|
||||
h2 {
|
||||
font-size: 32px;
|
||||
font-weight: bold;
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
p {
|
||||
color: #878190;
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
.row {
|
||||
margin-bottom: 2em;
|
||||
|
||||
.col-12 {
|
||||
margin-bottom: .5em;
|
||||
}
|
||||
}
|
||||
|
||||
.card.expanded {
|
||||
padding-bottom: 1em;
|
||||
|
||||
.title {
|
||||
color: #4f2a93;
|
||||
}
|
||||
}
|
||||
|
||||
.card {
|
||||
min-height: 60px;
|
||||
border-radius: 4px;
|
||||
background-color: #ffffff;
|
||||
border: none;
|
||||
box-shadow: 0 2px 2px 0 rgba(26, 24, 29, 0.16), 0 1px 4px 0 rgba(26, 24, 29, 0.12);
|
||||
|
||||
.question-head {
|
||||
.q {
|
||||
font-family: 'Varela Round', sans-serif;
|
||||
font-size: 20px;
|
||||
color: #a5a1ac;
|
||||
margin: 1em;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
div {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.arrow {
|
||||
margin: 1em;
|
||||
padding-top: .9em;
|
||||
|
||||
.svg-icon {
|
||||
width: 26px;
|
||||
height: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
.arrow:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
.question-body {
|
||||
padding-left: 4.4em;
|
||||
padding-right: 4em;
|
||||
|
||||
p {
|
||||
color: #4e4a57;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.image-example {
|
||||
background-repeat: no-repeat;
|
||||
margin: 0 auto;
|
||||
background-position: center;
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.assign-tasks {
|
||||
background-image: url('~assets/images/group-plans/assign-task@3x.png');
|
||||
width: 400px;
|
||||
height: 150px;
|
||||
}
|
||||
|
||||
.requires-approval {
|
||||
background-image: url('~assets/images/group-plans/requires-approval@3x.png');
|
||||
width: 402px;
|
||||
height: 20px;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
.approval-requested {
|
||||
background-image: url('~assets/images/group-plans/approval-requested@3x.png');
|
||||
width: 471px;
|
||||
height: 204px;
|
||||
}
|
||||
|
||||
.promote-leader {
|
||||
background-image: url('~assets/images/group-plans/promote-leader@3x.png');
|
||||
width: 423px;
|
||||
height: 185px;
|
||||
}
|
||||
|
||||
.close-button {
|
||||
margin-top: 1em;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import * as Analytics from 'client/libs/analytics';
|
||||
import { mapState } from 'client/libs/store';
|
||||
|
||||
import upIcon from 'assets/svg/up.svg';
|
||||
import downIcon from 'assets/svg/down.svg';
|
||||
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
icons: Object.freeze({
|
||||
upIcon,
|
||||
downIcon,
|
||||
}),
|
||||
expandedQuestions: {
|
||||
question1: false,
|
||||
question2: false,
|
||||
question3: false,
|
||||
question4: false,
|
||||
question5: false,
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapState({user: 'user.data'}),
|
||||
},
|
||||
methods: {
|
||||
shown () {
|
||||
Analytics.track({
|
||||
hitType: 'event',
|
||||
eventCategory: 'button',
|
||||
eventAction: 'click',
|
||||
eventLabel: 'viewed-group-plan-overview',
|
||||
});
|
||||
},
|
||||
toggle (question) {
|
||||
this.expandedQuestions[question] = !this.expandedQuestions[question];
|
||||
},
|
||||
close () {
|
||||
this.$root.$emit('bv::hide::modal', 'group-plan-overview');
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
|
@ -1,5 +1,16 @@
|
|||
<template lang="pug">
|
||||
.standard-page
|
||||
group-plan-overview-modal
|
||||
task-modal(
|
||||
:task="workingTask",
|
||||
:purpose="taskFormPurpose",
|
||||
@cancel="cancelTaskModal()",
|
||||
ref="taskModal",
|
||||
:groupId="groupId",
|
||||
v-on:taskCreated='taskCreated',
|
||||
v-on:taskEdited='taskEdited',
|
||||
v-on:taskDestroyed='taskDestroyed'
|
||||
)
|
||||
.row.tasks-navigation
|
||||
.col-12.col-md-4
|
||||
h1 Group's Tasks
|
||||
|
|
@ -53,27 +64,17 @@
|
|||
.d-flex.align-items-center
|
||||
span(v-once) {{ $t('filter') }}
|
||||
.svg-icon.filter-icon(v-html="icons.filter")
|
||||
#create-dropdown.col-12.col-md-1.offset-md-3
|
||||
b-dropdown(:right="true", :variant="'success'")
|
||||
div(slot="button-content")
|
||||
#create-dropdown.col-12.col-md-4
|
||||
b-dropdown.float-right(:right="true", :variant="'success'")
|
||||
.button-label(slot="button-content")
|
||||
.svg-icon.positive(v-html="icons.positive")
|
||||
| {{ $t('addTaskToGroupPlan') }}
|
||||
b-dropdown-item(v-for="type in columns", :key="type", @click="createTask(type)")
|
||||
span.dropdown-icon-item(v-once)
|
||||
span.svg-icon.inline(v-html="icons[type]")
|
||||
span.text {{$t(type)}}
|
||||
task-modal(
|
||||
:task="workingTask",
|
||||
:purpose="taskFormPurpose",
|
||||
@cancel="cancelTaskModal()",
|
||||
ref="taskModal",
|
||||
:groupId="groupId",
|
||||
v-on:taskCreated='taskCreated',
|
||||
v-on:taskEdited='taskEdited',
|
||||
v-on:taskDestroyed='taskDestroyed'
|
||||
)
|
||||
.row
|
||||
task-column.col-12.col-sm-6.col-3(
|
||||
task-column.col-12.col-md-3(
|
||||
v-for="column in columns",
|
||||
:type="column",
|
||||
:key="column",
|
||||
|
|
@ -224,12 +225,17 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.button-label {
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import taskDefaults from 'common/script/libs/taskDefaults';
|
||||
import TaskColumn from '../tasks/column';
|
||||
import TaskModal from '../tasks/taskModal';
|
||||
import GroupPlanOverviewModal from './groupPlanOverviewModal';
|
||||
|
||||
import positiveIcon from 'assets/svg/positive.svg';
|
||||
import filterIcon from 'assets/svg/filter.svg';
|
||||
|
|
@ -250,9 +256,11 @@ export default {
|
|||
components: {
|
||||
TaskColumn,
|
||||
TaskModal,
|
||||
GroupPlanOverviewModal,
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
openCreateBtn: false,
|
||||
searchId: '',
|
||||
columns: ['habit', 'daily', 'todo', 'reward'],
|
||||
tasksByType: {
|
||||
|
|
@ -294,6 +302,10 @@ export default {
|
|||
mounted () {
|
||||
if (!this.searchId) this.searchId = this.groupId;
|
||||
this.load();
|
||||
|
||||
if (this.$route.query.showGroupOverview) {
|
||||
this.$root.$emit('bv::show::modal', 'group-plan-overview');
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapState({user: 'user.data'}),
|
||||
|
|
|
|||
|
|
@ -342,7 +342,6 @@ export default {
|
|||
UPGRADE_GROUP: 'upgrade-group',
|
||||
PAY: 'pay',
|
||||
},
|
||||
// @TODO: Import from payment library?
|
||||
PAYMENTS: {
|
||||
AMAZON: 'amazon',
|
||||
STRIPE: 'stripe',
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@
|
|||
</style>
|
||||
|
||||
<script>
|
||||
import * as Analytics from 'client/libs/analytics';
|
||||
import axios from 'axios';
|
||||
import { mapState } from 'client/libs/store';
|
||||
|
||||
|
|
@ -222,6 +223,21 @@ export default {
|
|||
|
||||
let newGroup = response.data.data;
|
||||
if (newGroup && newGroup._id) {
|
||||
// Handle new user signup
|
||||
if (!this.$store.state.isUserLoggedIn) {
|
||||
const habiticaUrl = `${location.protocol}//${location.host}`;
|
||||
|
||||
Analytics.track({
|
||||
hitType: 'event',
|
||||
eventCategory: 'group-plans-static',
|
||||
eventAction: 'view',
|
||||
eventLabel: 'paid-with-amazon',
|
||||
});
|
||||
|
||||
location.href = `${habiticaUrl}/group-plans/${newGroup._id}/task-information?showGroupOverview=true`;
|
||||
return;
|
||||
}
|
||||
|
||||
// @TODO: Just append? or $emit?
|
||||
this.$router.push(`/group-plans/${newGroup._id}/task-information`);
|
||||
this.user.guilds.push(newGroup._id);
|
||||
|
|
|
|||
|
|
@ -1,74 +1,236 @@
|
|||
<template lang="pug">
|
||||
div
|
||||
.container-fluid
|
||||
.row
|
||||
.group-plan-static.text-center
|
||||
amazon-payments-modal
|
||||
.container
|
||||
.row.top
|
||||
.top-left
|
||||
.col-6.offset-3
|
||||
button.btn.btn-primary.btn-lg.btn-block(@click="goToNewGroupPage()") {{ $t('getAGroupPlanToday') }}
|
||||
|
||||
img.party(src='../../assets/images/group-plans-static/party@3x.png')
|
||||
h1 {{ $t('groupPlanTitle') }}
|
||||
p {{ $t('groupPlanDesc') }}
|
||||
.pricing
|
||||
span Just
|
||||
span.number $9
|
||||
span.bold per month +
|
||||
span.number $3
|
||||
span.bold per member*
|
||||
.text-center
|
||||
button.btn.btn-primary.cta-button(@click="goToNewGroupPage()") {{ $t('getStarted') }}
|
||||
small {{ $t('billedMonthly') }}
|
||||
.top-right
|
||||
.row
|
||||
.text-col.col-12.col-md-6.text-left
|
||||
h2 {{ $t('teamBasedTasksList') }}
|
||||
p {{ $t('teamBasedTasksListDesc') }}
|
||||
.col-12.col-md-6
|
||||
.team-based(v-html='svg.teamBased')
|
||||
.row
|
||||
.col-12.col-md-6
|
||||
.group-management(v-html='svg.groupManagement')
|
||||
.text-col.col-12.col-md-6.text-left
|
||||
h2 {{ $t('groupManagementControls') }}
|
||||
p {{ $t('groupManagementControlsDesc') }}
|
||||
.row
|
||||
.col-12.col-md-6.offset-md-3.text-center
|
||||
img.big-gem(src='../../assets/images/group-plans-static/big-gem@3x.png')
|
||||
h2 {{ $t('inGameBenefits') }}
|
||||
p {{ $t('inGameBenefitsDesc') }}
|
||||
.row
|
||||
.bot-left
|
||||
.col-6.offset-3
|
||||
br
|
||||
.text-center {{ $t('groupSubscriptionPrice') }}
|
||||
|
||||
hr
|
||||
|
||||
.col-6.offset-3.text-center
|
||||
.row.row-margin(style="font-size: 2rem;")
|
||||
span {{ $t('enterprisePlansDescription') }}
|
||||
.row.row-margin
|
||||
// TODO
|
||||
a.btn.btn-primary.btn-lg.btn-block(:href="'mailto:vicky@habitica.com?subject=' + enterprisePlansEmailSubject") {{ $t('enterprisePlansButton') }}
|
||||
|
||||
br
|
||||
|
||||
.row.row-margin(style="font-size: 2rem;")
|
||||
span {{ $t('familyPlansDescription') }}
|
||||
.row.row-margin
|
||||
a.btn.btn-primary.btn-lg.btn-block(href="https://docs.google.com/forms/d/e/1FAIpQLSerMKkaCg3UcgpcMvBJtlNgnF9DNY8sxCebpAT-GHeDAQASPQ/viewform?usp=sf_link") {{ $t('familyPlansButton') }}
|
||||
h2.purple {{ $t('inspireYourParty') }}
|
||||
.pricing
|
||||
span Just
|
||||
span.number $9
|
||||
span.bold per month +
|
||||
span.number $3
|
||||
span.bold per member*
|
||||
.text-center
|
||||
button.btn.btn-primary.cta-button(@click="goToNewGroupPage()") {{ $t('getStarted') }}
|
||||
small {{ $t('billedMonthly') }}
|
||||
.bot-right
|
||||
b-modal#group-plan(title="", size='md', :hide-footer='true', :hide-header='true')
|
||||
div(v-if='modalPage === "account"')
|
||||
h2 {{ $t('letsMakeAccount') }}
|
||||
auth-form(@authenticate='authenticate()')
|
||||
div(v-if='modalPage === "purchaseGroup"')
|
||||
create-group-modal-pages
|
||||
</template>
|
||||
|
||||
<style lang='scss' scoped>
|
||||
.main {
|
||||
@import url('https://fonts.googleapis.com/css?family=Varela+Round');
|
||||
|
||||
h1, h2 {
|
||||
font-family: 'Varela Round', sans-serif;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.party {
|
||||
width: 386px;
|
||||
margin-top: 4em;
|
||||
}
|
||||
|
||||
.team-based {
|
||||
background-image: url('../../assets/images/group-plans-static/group-management@3x.png');
|
||||
background-size: contain;
|
||||
position: absolute;
|
||||
height: 356px;
|
||||
width: 411px;
|
||||
margin-top: -2em;
|
||||
}
|
||||
|
||||
.group-management {
|
||||
background-image: url('../../assets/images/group-plans-static/team-based@3x.png');
|
||||
background-size: contain;
|
||||
position: absolute;
|
||||
height: 294px;
|
||||
width: 411px;
|
||||
}
|
||||
|
||||
.top-left, .top-right, .bot-left, .bot-right {
|
||||
width: 273px;
|
||||
height: 396px;
|
||||
background-size: contain;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.top-left {
|
||||
background-image: url('../../assets/images/group-plans-static/top-left@3x.png');
|
||||
left: 4em;
|
||||
height: 420px;
|
||||
}
|
||||
|
||||
.top-right {
|
||||
background-image: url('../../assets/images/group-plans-static/top-right@3x.png');
|
||||
right: 4em;
|
||||
height: 420px;
|
||||
}
|
||||
|
||||
.bot-left {
|
||||
background-image: url('../../assets/images/group-plans-static/bot-left@3x.png');
|
||||
left: 4em;
|
||||
bottom: 1em;
|
||||
}
|
||||
|
||||
.bot-right {
|
||||
background-image: url('../../assets/images/group-plans-static/bot-right@3x.png');
|
||||
right: 4em;
|
||||
bottom: 1em;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 42px;
|
||||
color: #34313a;
|
||||
line-height: 1.17;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 29px;
|
||||
color: #34313a;
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
.purple {
|
||||
color: #6133b4;
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 20px;
|
||||
color: #878190;
|
||||
}
|
||||
|
||||
.group-plan-static {
|
||||
margin-top: 6em;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.row {
|
||||
margin-top: 10em;
|
||||
margin-bottom: 10em;
|
||||
}
|
||||
|
||||
.text-col {
|
||||
margin-top: 3em;
|
||||
}
|
||||
|
||||
.big-gem {
|
||||
width: 138.5px;
|
||||
}
|
||||
|
||||
.cta-button {
|
||||
font-family: 'Varela Round', sans-serif;
|
||||
font-weight: normal;
|
||||
padding: 1em 2em;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
border-radius: 4px;
|
||||
background-color: #6133b4;
|
||||
box-shadow: inset 0 -4px 0 0 rgba(52, 49, 58, 0.4);
|
||||
font-size: 20px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.pricing {
|
||||
color: #878190;
|
||||
font-size: 24px;
|
||||
|
||||
span {
|
||||
margin-right: .2em;
|
||||
}
|
||||
|
||||
.bold {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.number {
|
||||
color: #1ca372;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
small {
|
||||
font-size: 16px;
|
||||
color: #a5a1ac;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import { setup as setupPayments } from 'client/libs/payments';
|
||||
import amazonPaymentsModal from 'client/components/payments/amazonModal';
|
||||
import StaticHeader from './header.vue';
|
||||
import * as Analytics from 'client/libs/analytics';
|
||||
|
||||
import AuthForm from '../auth/authForm.vue';
|
||||
import CreateGroupModalPages from '../group-plans/createGroupModalPages.vue';
|
||||
|
||||
import party from '../../assets/images/group-plans-static/party.svg';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
StaticHeader,
|
||||
AuthForm,
|
||||
CreateGroupModalPages,
|
||||
amazonPaymentsModal,
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
enterprisePlansEmailSubject: 'Question regarding Enterprise Plans',
|
||||
svg: {
|
||||
party,
|
||||
},
|
||||
modalTitle: this.$t('register'),
|
||||
modalPage: 'account',
|
||||
};
|
||||
},
|
||||
mounted () {
|
||||
this.$nextTick(() => {
|
||||
// Load external scripts after the app has been rendered
|
||||
setupPayments();
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
goToNewGroupPage () {
|
||||
if (!this.$store.state.isUserLoggedIn) {
|
||||
this.$router.push({
|
||||
name: 'register',
|
||||
query: {
|
||||
redirectTo: '/group-plans',
|
||||
},
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
this.$router.push('/group-plans');
|
||||
this.$root.$emit('bv::show::modal', 'group-plan');
|
||||
},
|
||||
contactUs () {
|
||||
Analytics.track({
|
||||
hitType: 'event',
|
||||
eventCategory: 'button',
|
||||
eventAction: 'click',
|
||||
eventLabel: 'Contact Us (Plans)',
|
||||
});
|
||||
|
||||
window.location.href = `mailto:vicky@habitica.com?subject=${ this.enterprisePlansEmailSubject }`;
|
||||
authenticate () {
|
||||
this.modalPage = 'purchaseGroup';
|
||||
},
|
||||
},
|
||||
};
|
||||
|
|
|
|||
|
|
@ -2,7 +2,8 @@
|
|||
nav.navbar.navbar-inverse.fixed-top.navbar-expand-sm
|
||||
.navbar-header
|
||||
router-link.nav-item(:to='!isUserLoggedIn ? "/static/home" : "/"')
|
||||
.logo.svg-icon(v-html='icons.logo')
|
||||
.logo.svg-icon(v-html='icons.purpleLogo', v-if='this.$route.name === "plans"')
|
||||
.logo.svg-icon(v-html='icons.logo', v-else)
|
||||
.collapse.navbar-collapse
|
||||
ul.navbar-nav.mr-auto(v-if='$route.name !== "home"')
|
||||
router-link.nav-item(tag='li', to='/static/features')
|
||||
|
|
@ -152,6 +153,7 @@
|
|||
|
||||
<script>
|
||||
import logo from 'assets/svg/logo.svg';
|
||||
import purpleLogo from 'assets/svg/purple-logo.svg';
|
||||
import * as Analytics from 'client/libs/analytics';
|
||||
|
||||
export default {
|
||||
|
|
@ -159,6 +161,7 @@ export default {
|
|||
return {
|
||||
icons: Object.freeze({
|
||||
logo,
|
||||
purpleLogo,
|
||||
}),
|
||||
};
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
<template lang="pug">
|
||||
div
|
||||
static-header(v-if='showContentWrap', :class='{"home-header": ["home", "front"].indexOf($route.name) !== -1}')
|
||||
static-header(v-if='showContentWrap', :class='{"home-header": ["home", "front"].indexOf($route.name) !== -1, "white-header": this.$route.name === "plans"}')
|
||||
|
||||
.static-wrapper
|
||||
router-view
|
||||
|
||||
#purple-footer(v-if='showContentWrap')
|
||||
div(:id='footerId', v-if='showContentWrap')
|
||||
app-footer
|
||||
|
||||
#bottom-wrap.purple-4(v-if='showContentWrap')
|
||||
#bottom-wrap.purple-4(v-if='showContentWrap && footerId')
|
||||
#bottom-background
|
||||
.seamless_mountains_demo_repeat
|
||||
.midground_foreground_extended2
|
||||
|
|
@ -57,6 +57,19 @@ div
|
|||
}
|
||||
}
|
||||
|
||||
.white-header {
|
||||
background: #fff !important;
|
||||
background-color: #fff !important;
|
||||
|
||||
a {
|
||||
color: #271b3d !important;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #fff !important;
|
||||
}
|
||||
}
|
||||
|
||||
#bottom-wrap.purple-4 {
|
||||
background-color: #271b3d;
|
||||
}
|
||||
|
|
@ -156,6 +169,10 @@ export default {
|
|||
showContentWrap () {
|
||||
return this.$route.name !== 'news';
|
||||
},
|
||||
footerId () {
|
||||
if (this.$route.name === 'plans') return;
|
||||
return 'purple-footer';
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
|
|
|||
23
website/client/libs/auth.js
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
import axios from 'axios';
|
||||
import moment from 'moment';
|
||||
|
||||
export function setUpAxios (AUTH_SETTINGS) {
|
||||
if (!AUTH_SETTINGS) {
|
||||
AUTH_SETTINGS = localStorage.getItem('habit-mobile-settings');
|
||||
if (!AUTH_SETTINGS) return false;
|
||||
AUTH_SETTINGS = JSON.parse(AUTH_SETTINGS);
|
||||
}
|
||||
|
||||
let browserTimezoneOffset = moment().zone();
|
||||
|
||||
if (AUTH_SETTINGS.auth && AUTH_SETTINGS.auth.apiId && AUTH_SETTINGS.auth.apiToken) {
|
||||
axios.defaults.headers.common['x-api-user'] = AUTH_SETTINGS.auth.apiId;
|
||||
axios.defaults.headers.common['x-api-key'] = AUTH_SETTINGS.auth.apiToken;
|
||||
|
||||
axios.defaults.headers.common['x-user-timezoneOffset'] = browserTimezoneOffset;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
|
@ -5,6 +5,7 @@ import subscriptionBlocks from '../../common/script/content/subscriptionBlocks';
|
|||
import { mapState } from 'client/libs/store';
|
||||
import encodeParams from 'client/libs/encodeParams';
|
||||
import notificationsMixin from 'client/mixins/notifications';
|
||||
import * as Analytics from 'client/libs/analytics';
|
||||
|
||||
export default {
|
||||
mixins: [notificationsMixin],
|
||||
|
|
@ -95,6 +96,22 @@ export default {
|
|||
if (newGroup && newGroup._id) {
|
||||
// @TODO this does not do anything as we reload just below
|
||||
// @TODO: Just append? or $emit?
|
||||
|
||||
// Handle new user signup
|
||||
if (!this.$store.state.isUserLoggedIn) {
|
||||
const habiticaUrl = `${location.protocol}//${location.host}`;
|
||||
|
||||
Analytics.track({
|
||||
hitType: 'event',
|
||||
eventCategory: 'group-plans-static',
|
||||
eventAction: 'view',
|
||||
eventLabel: 'paid-with-stripe',
|
||||
});
|
||||
|
||||
location.href = `${habiticaUrl}/group-plans/${newGroup._id}/task-information?showGroupOverview=true`;
|
||||
return;
|
||||
}
|
||||
|
||||
this.$router.push(`/group-plans/${newGroup._id}/task-information`);
|
||||
// @TODO action
|
||||
this.user.guilds.push(newGroup._id);
|
||||
|
|
@ -144,7 +161,6 @@ export default {
|
|||
return true;
|
||||
},
|
||||
amazonPaymentsInit (data) {
|
||||
// @TODO: Do we need this? if (!this.isAmazonReady) return;
|
||||
if (!this.checkGemAmount(data)) return;
|
||||
if (data.type !== 'single' && data.type !== 'subscription') return;
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import content from 'common/script/content/index';
|
|||
import * as commonConstants from 'common/script/constants';
|
||||
import { DAY_MAPPING } from 'common/script/cron';
|
||||
import { asyncResourceFactory } from 'client/libs/asyncResource';
|
||||
import { setUpAxios } from 'client/libs/auth';
|
||||
import axios from 'axios';
|
||||
import moment from 'moment';
|
||||
|
||||
|
|
@ -19,18 +20,9 @@ let browserTimezoneOffset = moment().zone(); // eg, 240 - this will be converted
|
|||
axios.defaults.headers.common['x-client'] = 'habitica-web';
|
||||
|
||||
let AUTH_SETTINGS = localStorage.getItem('habit-mobile-settings');
|
||||
|
||||
if (AUTH_SETTINGS) {
|
||||
AUTH_SETTINGS = JSON.parse(AUTH_SETTINGS);
|
||||
|
||||
if (AUTH_SETTINGS.auth && AUTH_SETTINGS.auth.apiId && AUTH_SETTINGS.auth.apiToken) {
|
||||
axios.defaults.headers.common['x-api-user'] = AUTH_SETTINGS.auth.apiId;
|
||||
axios.defaults.headers.common['x-api-key'] = AUTH_SETTINGS.auth.apiToken;
|
||||
|
||||
axios.defaults.headers.common['x-user-timezoneOffset'] = browserTimezoneOffset;
|
||||
|
||||
isUserLoggedIn = true;
|
||||
}
|
||||
isUserLoggedIn = setUpAxios(AUTH_SETTINGS);
|
||||
}
|
||||
|
||||
const i18nData = window && window['habitica-i18n'];
|
||||
|
|
|
|||
|
|
@ -438,5 +438,35 @@
|
|||
"worldBossBullet2": "The World Boss won’t damage you for missed tasks, but its Rage meter will go up. If the bar fills up, the Boss will attack one of Habitica’s shopkeepers!",
|
||||
"worldBossBullet3": "You can continue with normal Quest Bosses, damage will apply to both",
|
||||
"worldBossBullet4": "Check the Tavern regularly to see World Boss progress and Rage attacks",
|
||||
"worldBoss": "World Boss"
|
||||
"worldBoss": "World Boss",
|
||||
|
||||
"groupPlanTitle": "Need more for your crew?",
|
||||
"groupPlanDesc": "Managing a small team or organizing household chores? Our group plans grant you exclusive access to a private task board and chat area dedicated to you and your group members!",
|
||||
"billedMonthly": "*billed as a monthly subscription",
|
||||
"teamBasedTasksList": "Team-Based Task List",
|
||||
"teamBasedTasksListDesc": "Set up an easily-viewed shared task list for the group. Assign tasks to your fellow group members, or let them claim their own tasks to make it clear what everyone is working on!",
|
||||
"groupManagementControls": "Group Management Controls",
|
||||
"groupManagementControlsDesc": "Use task approvals to verify that a task that was really completed, add Group Managers to share responsibilities, and enjoy a private group chat for all team members.",
|
||||
"inGameBenefits": "In-Game Benefits",
|
||||
"inGameBenefitsDesc": "Group members get an exclusive Jackalope Mount, as well as full subscription benefits, including special monthly equipment sets and the ability to buy gems with gold.",
|
||||
"inspireYourParty": "Inspire your party, gamify life together.",
|
||||
"letsMakeAccount": "First, let’s make you an account",
|
||||
"nameYourGroup": "Next, Name Your Group",
|
||||
"exampleGroupName": "Example: Avengers Academy",
|
||||
"exampleGroupDesc": "For those selected to join the training academy for The Avengers Superhero Initiative",
|
||||
"thisGroupInviteOnly": "This group is invitation only.",
|
||||
"gettingStarted": "Getting Started",
|
||||
"congratsOnGroupPlan": "Congratulations on creating your new Group! Here are a few answers to some of the more commonly asked questions.",
|
||||
"whatsIncludedGroup": "What's included in the subscription",
|
||||
"whatsIncludedGroupDesc": "All members of the Group receive full subscription benefits, including the monthly subscriber items, the ability to buy Gems with Gold, and the Royal Purple Jackalope mount, which is exclusive to users with a Group Plan membership.",
|
||||
"howDoesBillingWork": "How does billing work?",
|
||||
"howDoesBillingWorkDesc": "Group Leaders are billed based on group member count on a monthly basis. This charge includes the $9 (USD) price for the Group Leader subscription, plus $3 USD for each additional group member. For example: A group of four users will cost $18 USD/month, as the group consists of 1 Group Leader + 3 group members.",
|
||||
"howToAssignTask": "How do you assign a Task?",
|
||||
"howToAssignTaskDesc": "Assign any Task to one or more Group members (including the Group Leader or Managers themselves) by entering their usernames in the \"Assign To\" field within the Create Task modal. You can also decide to assign a Task after creating it, by editing the Task and adding the user in the \"Assign To\" field!",
|
||||
"howToRequireApproval": "How do you mark a Task as requiring approval?",
|
||||
"howToRequireApprovalDesc": "Toggle the \"Requires Approval\" setting to mark a specific task as requiring Group Leader or Manager confirmation. The user who checked off the task won't get their rewards for completing it until it has been approved.",
|
||||
"howToRequireApprovalDesc2": "Group Leaders and Managers can approve completed Tasks directly from the Task Board or from the Notifications panel.",
|
||||
"whatIsGroupManager": "What is a Group Manager?",
|
||||
"whatIsGroupManagerDesc": "A Group Manager is a user role that do not have access to the group's billing details, but can create, assign, and approve shared Tasks for the Group's members. Promote Group Managers from the Group’s member list.",
|
||||
"goToTaskBoard": "Go to Task Board"
|
||||
}
|
||||
|
|
|
|||