bring back the badge editor
This commit is contained in:
51
app/templates/hyper/badge_editor.html
Normal file
51
app/templates/hyper/badge_editor.html
Normal file
@@ -0,0 +1,51 @@
|
||||
{%- macro badge_input(uploads, label='', link='', selected=none, id=none) -%}
|
||||
{%- set defaults = uploads | selectattr('user_id', 'none') | list | sort(attribute='file_path') -%}
|
||||
{%- set user = uploads | selectattr('user_id') | list -%}
|
||||
{%- if selected is not none -%}
|
||||
{%- set selected_href = (uploads | selectattr('id', 'equalto', selected) | list)[0].file_path -%}
|
||||
{%- else -%}
|
||||
{% set selected_href = defaults[0].file_path %}
|
||||
{%- endif -%}
|
||||
<input type="hidden" name="id[]" value="{{id and id or '-1'}}">
|
||||
<div class="badge-editor-badge-container">
|
||||
<div class="badge-editor-badge-select">
|
||||
<select name="badge_choice[]" required data-s="badgeEditorSetPreview badgeEditorToggleFilePicker" data-listen="change">
|
||||
<optgroup label="Default">
|
||||
{%- for upload in defaults -%}
|
||||
<option data-file-path="{{upload.file_path}}" value="{{upload.id}}" {{selected==upload.id and 'selected' or ''}}>{{upload.file_path | basename_noext}}</option>
|
||||
{%- endfor -%}
|
||||
</optgroup>
|
||||
<optgroup label="Your uploads">
|
||||
{%- for upload in user -%}
|
||||
<option data-file-path="{{upload.file_path}}" value="{{upload.id}}" {{selected==upload.id and 'selected' or ''}}>{{upload.original_filename | basename_noext}}</option>
|
||||
{%- endfor -%}
|
||||
<option value="custom">Upload new…</option>
|
||||
</optgroup>
|
||||
</select>
|
||||
<img class="badge-button" src="{{selected_href}}" data-r="badgeEditorSetPreview badgeEditorSetPreviewCustom">
|
||||
</div>
|
||||
<div class="badge-editor-file-picker hidden" data-r="badgeEditorToggleFilePicker">
|
||||
<button data-s="badgeEditorShowFilePicker" type="button" class="alt">Upload…</button>
|
||||
<input data-s="badgeEditorFileSelected" data-r="badgeEditorShowFilePicker" type="file" accept="image/png, image/jpeg, image/jpg, image/webp" name="badge_file[]">
|
||||
</div>
|
||||
<input type="text" required placeholder="Label" value="{{label}}" autocomplete="off" name="label[]">
|
||||
<input type="url" placeholder="(Optional) Link" value="{{link}}" autocomplete="off" name="link[]" pattern="https://.*">
|
||||
<button type="button" class="critical" data-s="badgeEditorDelete">Delete</button>
|
||||
</div>
|
||||
{%- endmacro -%}
|
||||
{%- from 'common/macros.html' import sortable_list, sortable_list_item -%}
|
||||
<button type="button" data-s="badgeEditorAddBadge" data-r="setBadgeCount">Add badge</button>
|
||||
<input type="submit" value="Save badges">
|
||||
<span data-r="setBadgeCount">0/10</span>
|
||||
{%- call() sortable_list(attr={'data-r': 'badgeEditorAddBadge'}) -%}
|
||||
{%- for badge in badges -%}
|
||||
{%- call() sortable_list_item('badge', full=true, attr={'data-r': 'badgeEditorDelete badgeEditorAssignImgId'}) -%}
|
||||
{{badge_input(badge_uploads, badge.label, badge.link, badge.upload, badge.id)}}
|
||||
{%- endcall -%}
|
||||
{%- endfor -%}
|
||||
{%- endcall -%}
|
||||
<script type="text/html" id="badge-template">
|
||||
{%- call() sortable_list_item('badge', full=true, attr={'data-r': 'badgeEditorDelete'}) -%}
|
||||
{{- badge_input(badge_uploads) -}}
|
||||
{%- endcall -%}
|
||||
</script>
|
||||
Reference in New Issue
Block a user