Removed old PHP code, migrated to Python and Flask

Update .dockerignore, .env, and 503 more files...
This commit is contained in:
2024-10-20 16:20:37 +02:00
parent 169e4b4fe0
commit a930331d6c
394 changed files with 4705 additions and 190131 deletions

View File

@@ -0,0 +1,36 @@
{% extends "base_www.jinja" %}
{% block head_title %}{{ l10n(tool_data.metadata.head.title_key, tool_id, user_lang) }}{% endblock %}
{% block head_description %}{{ l10n(tool_data.metadata.head.description_key, tool_id, user_lang) }}{% endblock %}
{% block extra_stylesheets %}
{% for tool_stylesheet in tool_data.data.stylesheets %}
<link rel="stylesheet" href="{{ url_for("static", filename="/resources/NibblePoker/tools/" + tool_id + "/" + tool_stylesheet) }}">
{% endfor %}
{% endblock %}
{% block header_title %}
<i class="fad fa-briefcase t-size-16 mr-s t-muted"></i><a href="../" class="a-hidden">{{ l10n("header.root", "projects", user_lang) }}</a>
<span class="mobile-hide"><span class="mx-s t-size-15">❱</span>{{ l10n(tool_data.metadata.general.title_key, tool_id, user_lang) }}</span>
{% endblock %}
{% block main_content %}
{{ render_h1(
'<i class="' + tool_data.metadata.general.icon + ' t-size-16 mr-s t-muted"></i>' +
l10n(tool_data.metadata.general.title_key, tool_id, user_lang)
) }}
<div class="px-xxs">
{% block tool_content %}{% endblock %}
</div>
{% endblock %}
{% block extra_scripts %}
{% for tool_script in tool_data.data.scripts %}
{% if tool_script.endswith(".mjs") %}
<script src="{{ url_for("static", filename="/resources/NibblePoker/tools/" + tool_id + "/" + tool_script) }}" type="module"></script>
{% else %}
<script src="{{ url_for("static", filename="/resources/NibblePoker/tools/" + tool_id + "/" + tool_script) }}"></script>
{% endif %}
{% endfor %}
{% endblock %}

View File

@@ -0,0 +1 @@
{% extends "tools/_tool.jinja" %}

View File

@@ -0,0 +1,85 @@
{% extends "tools/_tool.jinja" %}
{% block tool_content %}
{{ render_h2(l10n("upload.title", tool_id, user_lang)) }}
<div class="px-s">
<button id="svgtopng-add" class="p-xs r-s border b-light primary">
<i class="fa-duotone fa-solid fa-cloud-arrow-up mr-xs"></i>{{ l10n("upload.add.button", tool_id, user_lang) }}
</button>
<button id="svgtopng-reset" class="p-xs r-s border b-light warning">
{{ l10n("upload.clear.button", tool_id, user_lang) }}
</button>
<br>
<div class="svgtopng-file-drop-container border r-s bkgd-blank">
<p class="svgtopng-file-drop-text" id="pngtoico-drop-text-drop">Drop your file(s) here</p>
<p class="svgtopng-file-drop-text" id="pngtoico-drop-text-file-single" hidden>You selected 1 file</p>
<p class="svgtopng-file-drop-text" id="pngtoico-drop-text-file-multiple" hidden>You selected <span>9</span> files</p>
<label for="pngtoico-drop" hidden>Choose or drop SVG files:</label>
<input type="file" id="pngtoico-drop" name="pngtoico-drop" accept="image/svg+xml"
class="w-full p-l" multiple/>
</div>
</div>
{{ render_h2(l10n("options.title", tool_id, user_lang)) }}
<div class="px-s">
<label for="svgtopng-fit-mode" class="mr-xs">{{ l10n("fit.label", tool_id, user_lang) }}:</label>
<select name="svgtopng-fit-mode" id="svgtopng-fit-mode" class="p-xxs border r-s">
<option value="fit-svg">{{ l10n("fit.svg", tool_id, user_lang) }}</option>
<option value="fit-fixed" selected>{{ l10n("fit.fixed", tool_id, user_lang) }}</option>
<option value="fit-bigger-than">{{ l10n("fit.bigger", tool_id, user_lang) }}</option>
<option value="fit-smaller-than">{{ l10n("fit.smaller", tool_id, user_lang) }}</option>
</select>
<div id="svgtopng-options-fit-svg" hidden>
</div>
<div id="svgtopng-options-fit-fixed">
<label for="fixed-size-width" class="mr-xs">{{ l10n("width", "commons", user_lang) }}:</label>
<input id="fixed-size-width" class="p-xxs border r-s" type="number" value="64">
<br>
<label for="fixed-size-height" class="mr-xs">{{ l10n("height", "commons", user_lang) }}:</label>
<input id="fixed-size-height" class="p-xxs border r-s" type="number" value="64">
</div>
<div id="svgtopng-options-fit-bigger-than" hidden>
<label for="bigger-than-size-width" class="mr-xs">{{ l10n("width.min", "commons", user_lang) }}:</label>
<input id="bigger-than-width" class="p-xxs border r-s" type="number" value="64">
<br>
<label for="bigger-than-height" class="mr-xs">{{ l10n("height.min", "commons", user_lang) }}:</label>
<input id="bigger-than-height" class="p-xxs border r-s" type="number" value="64">
</div>
<div id="svgtopng-options-fit-smaller-than" hidden>
<label for="smaller-than-size-width" class="mr-xs">{{ l10n("width.max", "commons", user_lang) }}:</label>
<input id="smaller-than-width" class="p-xxs border r-s" type="number" value="64">
<br>
<label for="smaller-than-height" class="mr-xs">{{ l10n("height.max", "commons", user_lang) }}:</label>
<input id="smaller-than-height" class="p-xxs border r-s" type="number" value="64">
</div>
<div>
<button id="svgtopng-export-individual" class="p-xs r-s border b-light success">
{{ l10n("download.main.button", tool_id, user_lang) }}
</button>
</div>
</div>
{{ render_h2(l10n("preview.title", tool_id, user_lang)) }}
<div class="px-s">
<button id="svgtopng-preview-generate" class="p-xs r-s border b-light primary">
{{ l10n("preview.generate.button", tool_id, user_lang) }}
</button>
<button id="svgtopng-preview-reset" class="p-xs r-s border b-light warning">
{{ l10n("preview.clear.button", tool_id, user_lang) }}
</button>
<div id="svgtopng-preview-container" class="w-full ox-scroll">
<!--<hr class="subtle">-->
</div>
</div>
<!--<canvas id="svgtopng-conversion-canvas" width="256" height="256" class="border r-l d-none"></canvas>-->
{% endblock %}

View File

@@ -0,0 +1,38 @@
{% extends "tools/_tool.jinja" %}
{% block tool_content %}
<div class="px-xs mt-s">
<label for="uuid-generator-option-type" class="mr-xs">{{ l10n("type.label", tool_id, user_lang) }}:</label>
<select name="uuid-generator-option-type" id="uuid-generator-option-type" class="p-xxs border r-s">
<option value="type-uuid4" selected>{{ l10n("type.uuid4", tool_id, user_lang) }}</option>
<option value="type-guid">{{ l10n("type.guid", tool_id, user_lang) }}</option>
</select>
<br>
<label for="uuid-generator-option-count" class="mr-xs">{{ l10n("option.count", tool_id, user_lang) }}:</label>
<input id="uuid-generator-option-count" class="p-xxs border r-s" type="number" value="4" min="1" max="1000">
<br>
<label for="uuid-generator-option-hyphens" class="mr-xxs">{{ l10n("option.hyphen", tool_id, user_lang) }}:</label>
<input id="uuid-generator-option-hyphens" type="checkbox" checked>
<hr class="subtle">
<button id="uuid-generator-generate" class="p-xs r-s border b-light success">
<i class="fa-duotone fa-solid fa-gears mr-xs"></i>{{ l10n("generate", tool_id, user_lang) }}
</button>
<button id="uuid-generator-download" class="p-xs r-s border b-light primary">
<i class="fa-duotone fa-solid fa-download mr-xs"></i>{{ l10n("download", tool_id, user_lang) }}
</button>
<hr class="subtle">
<label for="uuid-generator-preview" class="d-none">{{ l10n("preview.label", tool_id, user_lang) }}:</label>
<textarea name="uuid-generator-preview" id="uuid-generator-preview" rows="16" class="w-full border r-s"></textarea>
</div>
{% endblock %}