Removed old PHP code, migrated to Python and Flask
Update .dockerignore, .env, and 503 more files...
This commit is contained in:
36
templates/tools/_tool.jinja
Normal file
36
templates/tools/_tool.jinja
Normal 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 %}
|
1
templates/tools/excel-password-remover.jinja
Normal file
1
templates/tools/excel-password-remover.jinja
Normal file
@@ -0,0 +1 @@
|
||||
{% extends "tools/_tool.jinja" %}
|
85
templates/tools/svg-to-png.jinja
Normal file
85
templates/tools/svg-to-png.jinja
Normal 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 %}
|
38
templates/tools/uuid-generator.jinja
Normal file
38
templates/tools/uuid-generator.jinja
Normal 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 %}
|
Reference in New Issue
Block a user