diff --git a/generator/static/images/badges/Olomouc-kandidat-dark.png b/generator/static/images/badges/Olomouc-kandidat-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..88f36721ef8058b277076602387ba730b64985f1 Binary files /dev/null and b/generator/static/images/badges/Olomouc-kandidat-dark.png differ diff --git a/generator/static/images/badges/Olomouc-kandidat-light.png b/generator/static/images/badges/Olomouc-kandidat-light.png new file mode 100644 index 0000000000000000000000000000000000000000..88f36721ef8058b277076602387ba730b64985f1 Binary files /dev/null and b/generator/static/images/badges/Olomouc-kandidat-light.png differ diff --git a/generator/static/images/badges/Olomouc-volim-dark.png b/generator/static/images/badges/Olomouc-volim-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..5b179169a26f0ec52b6cb75914a4381642f1dfbe Binary files /dev/null and b/generator/static/images/badges/Olomouc-volim-dark.png differ diff --git a/generator/static/images/badges/Olomouc-volim-light.png b/generator/static/images/badges/Olomouc-volim-light.png new file mode 100644 index 0000000000000000000000000000000000000000..5b179169a26f0ec52b6cb75914a4381642f1dfbe Binary files /dev/null and b/generator/static/images/badges/Olomouc-volim-light.png differ diff --git a/generator/static/js/avatar/external_ui.js b/generator/static/js/avatar/external_ui.js index ad23df891a9f617438ef179bb3584b0eafbb4ecf..95578a13038ae3272407b4ccc2b5610a0c1a4686 100644 --- a/generator/static/js/avatar/external_ui.js +++ b/generator/static/js/avatar/external_ui.js @@ -171,6 +171,8 @@ $(window).ready( } ); + console.log(template); + // Load template template = new AvatarTemplate("avatar-canvas"); @@ -183,8 +185,6 @@ $(window).ready( $("#image-controls").css("display", "none"); } - init(); - - template.redrawCanvas(); + await init(); } ); diff --git a/generator/static/js/avatar/internal_ui.js b/generator/static/js/avatar/internal_ui.js index e27b3fccea59c1be2c2275e1e0405190bc35846b..41b0c04f377d7a6def07bd7057b5168e77195309 100644 --- a/generator/static/js/avatar/internal_ui.js +++ b/generator/static/js/avatar/internal_ui.js @@ -542,7 +542,7 @@ $("#image").on( ); -$("#image").on( +$("#reset-image").on( "click", function(event) { template.resetImage(); diff --git a/generator/static/js/avatar/template.js b/generator/static/js/avatar/template.js index 38cbb5c935a41b6f14110bc649f5e0de19a98ea5..54e9efd13a5afd77c1b349eab6c3b867d2f3c271 100644 --- a/generator/static/js/avatar/template.js +++ b/generator/static/js/avatar/template.js @@ -375,6 +375,30 @@ class AvatarTemplate { } } + if ( + this.darkIconDefaultSource.endsWith("Olomouc-kandidat.png") || + this.darkIconDefaultSource.endsWith("Olomouc-volim.png") + ) { + this.context.globalCompositeOperation = "destination-in"; + + this.context.beginPath(); + + this.context.arc( + this.canvas.width / 2, + this.canvas.height / 2, + this.canvas.width / 2, + 0, + 2 * Math.PI, + false + ); + + this.context.fill(); + + this.context.closePath(); + + this.context.globalCompositeOperation = "source-over"; + } + this.redrawing = false; } diff --git a/generator/templates/avatar_internal.html b/generator/templates/avatar_internal.html index 3e3074905edb8ab3991676d2696bb03643f0a429..941df7ddc43f935f12ec22e08afb542db5af7b8f 100644 --- a/generator/templates/avatar_internal.html +++ b/generator/templates/avatar_internal.html @@ -523,6 +523,23 @@ value="olomouc" >Olomouc</option> + <option + data-image-source="{{ url_for('static', filename='images/badges/Olomouc-kandidat-dark.png') }}" + data-icon-dark-source="{{ url_for('static', filename='images/badges/Olomouc-kandidat-dark.png') }}" + data-icon-light-source="{{ url_for('static', filename='images/badges/Olomouc-kandidat-light.png') }}" + data-special-number-function="olomouc-kandidat" + data-url="{{ url_for('generator.view_avatar_generator_with_localization', icon_localization='olomouc-kandidat', _external=true) }}" + value="olomouc-kandidat" + >Olomouc - kandidát</option> + <option + data-image-source="{{ url_for('static', filename='images/badges/Olomouc-volim-dark.png') }}" + data-icon-dark-source="{{ url_for('static', filename='images/badges/Olomouc-volim-dark.png') }}" + data-icon-light-source="{{ url_for('static', filename='images/badges/Olomouc-volim-light.png') }}" + data-special-number-function="olomouc-volim" + data-url="{{ url_for('generator.view_avatar_generator_with_localization', icon_localization='olomouc-volim', _external=true) }}" + value="olomouc-volim" + >Olomouc - volím</option> + <option data-image-source="{{ url_for('static', filename='images/badges/Opava-dark.png') }}" data-icon-dark-source="{{ url_for('static', filename='images/badges/Opava-dark.png') }}" diff --git a/generator/templates/avatar_public.html b/generator/templates/avatar_public.html index 21002e4aef78efd91f3b78af8a0c564a24b32758..a21533cb3cb2373d110341be1796edafdd93058f 100644 --- a/generator/templates/avatar_public.html +++ b/generator/templates/avatar_public.html @@ -122,8 +122,8 @@ </footer> <script type="text/javascript"> - function init() { - template.setColorScheme("{% if dark %}white-on-black{% else %}black-on-white{% endif %}"); + async function init() { + template.setColorScheme("{% if dark %}white-on-black{% else %}black-on-white{% endif %}", true); {% if icon_localization is not none %} template.darkIconDefaultSource = "{{ url_for( @@ -142,6 +142,8 @@ filename='images/locations/' + base_localization.capitalize() + '.png' ) }}", true); {% endif %} + + await template.redrawCanvas(); } </script> </body> diff --git a/generator/views/generator.py b/generator/views/generator.py index 6c53b29c591ad83768cedbaccb70d7e3022fc7e0..d7090eadfb379181e22f3d044e84f831a0c2edda 100644 --- a/generator/views/generator.py +++ b/generator/views/generator.py @@ -27,7 +27,9 @@ ICON_HEIGHT_SPECIAL_MULTIPLIERS = { "louny-bila-na-fialove": 2, "louny-zlata-na-fialove": 2, "louny-fialova-na-bile": 2, - "louny-fialova-na-zlate": 2 + "louny-fialova-na-zlate": 2, + "olomouc-volim": 4, + "olomouc-kandidat": 4 } ICON_OFFSET_BOTTOM_SPECIAL_MULTIPLIERS = { @@ -37,7 +39,9 @@ ICON_OFFSET_BOTTOM_SPECIAL_MULTIPLIERS = { "louny-bila-na-fialove": 0, "louny-zlata-na-fialove": 0, "louny-fialova-na-bile": 0, - "louny-fialova-na-zlate": 0 + "louny-fialova-na-zlate": 0, + "olomouc-volim": 0, + "olomouc-kandidat": 0 } @@ -128,6 +132,8 @@ def view_avatar_generator_with_localization( "nymburk", "napajedla", "olomouc", + "olomouc-kandidat", + "olomouc-volim", "opava", "orlova", "ostrava-poruba",