1
0
mirror of https://github.com/flextype/flextype.git synced 2025-08-21 04:11:42 +02:00

feat(admin-plugin): update api templates #211

This commit is contained in:
Awilum
2020-01-23 15:34:19 +03:00
parent 1254d4551c
commit 081cf7c070
4 changed files with 191 additions and 127 deletions

View File

@@ -1,37 +1,64 @@
{% extends "plugins/admin/templates/partials/base.html" %}
{% block content %}
<form method="post" id="form">
{{ csrf() }}
<input type="hidden" name="api" value="{{ api }}">
<div class="flex">
<div class="w-full lg:w-3/12">
<div class="mb-2">
<label for="title" class="block mb-1">{{ tr('admin_title') }}</label>
<input type="text" id="title" name="title" value="" class="w-full border border-black border-2 outline-none px-1 py-1" required="required" data-validation="length required" data-validation-length="min1" data-validation-error-msg="{{ tr('admin_error_title_empty_input') }}">
<small class="opacity-50 block mt-1">{{ tr('admin_help_text_for_tokens_label') }}</small>
</div>
<div class="mb-2">
<label for="title" class="block mb-1">{{ tr('admin_api_calls_limit') }}</label>
<input type="text" id="limit" name="limit_calls" value="0" class="w-full border border-black border-2 outline-none px-1 py-1" required="required" data-validation="length required" data-validation-length="min1" data-validation-error-msg="{{ tr('admin_error_api_calls_empty_input') }}">
<small class="opacity-50 block mt-1">{{ tr('admin_help_text_for_api_calls_limit_label') }}</small>
</div>
<div class="mb-2">
<label for="icon" class="block mb-1">{{ tr('admin_icon') }}</label>
<input type="text" id="fieldsetIcon" name="icon" value="fas fa-truck" class="w-full border border-black border-2 outline-none px-1 py-1" required="required" data-validation="length required" data-validation-length="min1" data-validation-error-msg="{{ tr('admin_error_icon_empty_input') }}">
<small class="opacity-50 block mt-1">{{ tr('admin_help_text_for_api_token_icon', {':link': '<a href="https://fontawesome.com/icons?d=gallery&m=free" target="_blank">fontawesome</a>'})|raw }}</small>
</div>
<div class="mb-2">
<label for="type" class="block mb-1">{{ tr('admin_state') }}</label>
<select class="js-example-basic-single w-full border border-black border-2 outline-none px-1 py-1" name="state">
<option value="enabled" selected>{{ tr('admin_enabled') }}</option>
<option value="disabled">{{ tr('admin_disabled') }}</option>
</select>
</div>
<div class="mb-2">
<input type="submit" id="create" name="create" value="{{ tr('admin_create') }}" class="mt-6 px-4 py-2 border border-black border-4 text-black inline-block w-auto bg-white hover:bg-black hover:text-white">
<form method="post" id="form">
{{ csrf() }}
<input type="hidden" name="api" value="{{ api }}">
<div class="flex">
<div class="w-full lg:w-3/12">
<div class="mb-2">
<label for="title" class="block mb-1">{{ tr('admin_title') }}</label>
<input
type="text"
id="title"
name="title"
value=""
class="w-full border border-black border-2 outline-none px-1 py-2"
required="required"
data-validation="length required"
data-validation-length="min1"
data-validation-error-msg="{{ tr('admin_error_title_empty_input') }}">
<small class="opacity-50 block mt-1">{{ tr('admin_help_text_for_tokens_label') }}</small>
</div>
<div class="mb-2">
<label for="title" class="block mb-1">{{ tr('admin_api_calls_limit') }}</label>
<input
type="text"
id="limit"
name="limit_calls"
value="0"
class="w-full border border-black border-2 outline-none px-1 py-1"
required="required"
data-validation="length required"
data-validation-length="min1"
data-validation-error-msg="{{ tr('admin_error_api_calls_empty_input') }}">
<small class="opacity-50 block mt-1">{{ tr('admin_help_text_for_api_calls_limit_label') }}</small>
</div>
<div class="mb-2">
<label for="icon" class="block mb-1">{{ tr('admin_icon') }}</label>
<input
type="text"
id="fieldsetIcon"
name="icon"
value="fas fa-truck"
class="w-full border border-black border-2 outline-none px-1 py-1"
required="required"
data-validation="length required"
data-validation-length="min1"
data-validation-error-msg="{{ tr('admin_error_icon_empty_input') }}">
<small class="opacity-50 block mt-1">{{ tr('admin_help_text_for_api_token_icon', {':link': '<a href="https://fontawesome.com/icons?d=gallery&m=free" target="_blank">fontawesome</a>'})|raw }}</small>
</div>
<div class="mb-2">
<label for="type" class="block mb-1">{{ tr('admin_state') }}</label>
<select class="js-example-basic-single w-full border border-black border-2 outline-none px-1 py-1" name="state">
<option value="enabled" selected="selected">{{ tr('admin_enabled') }}</option>
<option value="disabled">{{ tr('admin_disabled') }}</option>
</select>
</div>
<div class="mb-2">
<input type="submit" id="create" name="create" value="{{ tr('admin_create') }}" class="mt-6 px-4 py-2 border border-black border-4 text-black inline-block w-auto bg-white hover:bg-black hover:text-white">
</div>
</div>
</div>
</div>
</form>
{% endblock %}
</form>
{% endblock %}

View File

@@ -1,42 +1,69 @@
{% extends "plugins/admin/templates/partials/base.html" %}
{% block content %}
<form method="post" id="form">
{{ csrf() }}
<input type="hidden" name="api" value="{{ api }}">
<input type="hidden" name="api_token" value="{{ api_token }}">
<input type="hidden" name="created_by" value="{{ api_token_data.created_by }}">
<input type="hidden" name="created_at" value="{{ api_token_data.created_at }}">
<input type="hidden" name="uuid" value="{{ api_token_data.uuid }}">
<input type="hidden" name="calls" value="{{ api_token_data.calls }}">
<div class="flex">
<div class="w-full lg:w-3/12">
<div class="mb-2">
<label for="title" class="block mb-1 font-bold">{{ tr('admin_title') }}</label>
<input type="text" id="title" name="title" value="{{ api_token_data.title }}" class="w-full border border-black border-2 outline-none px-2 py-2" required="required" data-validation="length required" data-validation-length="min1" data-validation-error-msg="{{ tr('admin_error_title_empty_input') }}">
<small class="opacity-50 block mt-1">{{ tr('admin_help_text_for_tokens_label') }}</small>
</div>
<div class="mb-2">
<label for="title" class="block mb-1 font-bold">{{ tr('admin_api_calls_limit') }}</label>
<input type="text" id="limit" name="limit_calls" value="{{ api_token_data.limit_calls }}" class="w-full border border-black border-2 outline-none px-2 py-2" required="required" data-validation="length required" data-validation-length="min1" data-validation-error-msg="{{ tr('admin_error_api_calls_empty_input') }}">
<small class="opacity-50 block mt-1">{{ tr('admin_help_text_for_api_calls_limit_label') }}</small>
</div>
<div class="mb-2">
<label for="icon" class="block mb-1 font-bold">{{ tr('admin_icon') }}</label>
<input type="text" id="fieldsetIcon" name="icon" value="{{ api_token_data.icon }}" class="w-full border border-black border-2 outline-none px-2 py-2" required="required" data-validation="length required" data-validation-length="min1" data-validation-error-msg="{{ tr('admin_error_icon_empty_input') }}">
<small class="opacity-50 block mt-1">{{ tr('admin_help_text_for_api_token_icon', {':link': '<a href="https://fontawesome.com/icons?d=gallery&m=free" target="_blank">fontawesome</a>'})|raw }}</small>
</div>
<div class="mb-2">
<label for="type" class="block mb-1 font-bold">{{ tr('admin_state') }}</label>
<select class="w-full border border-black border-2 outline-none px-1 py-2" name="state">
<option value="enabled" {% if api_token_data.state == 'enabled' %}selected{% endif %}>{{ tr('admin_enabled') }}</option>
<option value="disabled" {% if api_token_data.state == 'disabled' %}selected{% endif %}>{{ tr('admin_disabled') }}</option>
</select>
</div>
<div class="mb-2">
<input type="submit" id="save" name="save" value="{{ tr('admin_save') }}" class="mt-6 px-4 py-2 border border-black border-4 text-black inline-block w-auto bg-white hover:bg-black hover:text-white">
<form method="post" id="form">
{{ csrf() }}
<input type="hidden" name="api" value="{{ api }}">
<input type="hidden" name="api_token" value="{{ api_token }}">
<input type="hidden" name="created_by" value="{{ api_token_data.created_by }}">
<input type="hidden" name="created_at" value="{{ api_token_data.created_at }}">
<input type="hidden" name="uuid" value="{{ api_token_data.uuid }}">
<input type="hidden" name="calls" value="{{ api_token_data.calls }}">
<div class="flex">
<div class="w-full lg:w-3/12">
<div class="mb-2">
<label for="title" class="block mb-1 font-bold">{{ tr('admin_title') }}</label>
<input
type="text"
id="title"
name="title"
value="{{ api_token_data.title }}"
class="w-full border border-black border-2 outline-none px-2 py-2"
required="required"
data-validation="length required"
data-validation-length="min1"
data-validation-error-msg="{{ tr('admin_error_title_empty_input') }}">
<small class="opacity-50 block mt-1">{{ tr('admin_help_text_for_tokens_label') }}</small>
</div>
<div class="mb-2">
<label for="title" class="block mb-1 font-bold">{{ tr('admin_api_calls_limit') }}</label>
<input
type="text"
id="limit"
name="limit_calls"
value="{{ api_token_data.limit_calls }}"
class="w-full border border-black border-2 outline-none px-2 py-2"
required="required"
data-validation="length required"
data-validation-length="min1"
data-validation-error-msg="{{ tr('admin_error_api_calls_empty_input') }}">
<small class="opacity-50 block mt-1">{{ tr('admin_help_text_for_api_calls_limit_label') }}</small>
</div>
<div class="mb-2">
<label for="icon" class="block mb-1 font-bold">{{ tr('admin_icon') }}</label>
<input
type="text"
id="fieldsetIcon"
name="icon"
value="{{ api_token_data.icon }}"
class="w-full border border-black border-2 outline-none px-2 py-2"
required="required"
data-validation="length required"
data-validation-length="min1"
data-validation-error-msg="{{ tr('admin_error_icon_empty_input') }}">
<small class="opacity-50 block mt-1">{{ tr('admin_help_text_for_api_token_icon', {':link': '<a href="https://fontawesome.com/icons?d=gallery&m=free" target="_blank">fontawesome</a>'})|raw }}</small>
</div>
<div class="mb-2">
<label for="type" class="block mb-1 font-bold">{{ tr('admin_state') }}</label>
<select class="w-full border border-black border-2 outline-none px-1 py-2" name="state">
<option value="enabled" {% if api_token_data.state == 'enabled' %} selected{% endif %}="selected{% endif %}">{{ tr('admin_enabled') }}</option>
<option value="disabled" {% if api_token_data.state == 'disabled' %} selected{% endif %}="selected{% endif %}">{{ tr('admin_disabled') }}</option>
</select>
</div>
<div class="mb-2">
<input type="submit" id="save" name="save" value="{{ tr('admin_save') }}" class="mt-6 px-4 py-2 border border-black border-4 text-black inline-block w-auto bg-white hover:bg-black hover:text-white">
</div>
</div>
</div>
</div>
</form>
{% endblock %}
</form>
{% endblock %}

View File

@@ -1,50 +1,58 @@
{% extends "plugins/admin/templates/partials/base.html" %}
{% block content %}
{% if (delivery_tokens_list|length > 0) %}
<table>
<tbody>
{% for key, delivery_token in delivery_tokens_list %}
{% set token_file_path = PATH_TOKENS ~ '/' ~ api ~ '/' ~ delivery_token.dirname ~ '/' ~ 'token.yaml' %}
{% if filesystem_has(token_file_path) %}
{% set token_data = parser_decode(filesystem_read(token_file_path), 'yaml') %}
{% endif %}
<tr>
<td class="w-1 text-center {% if token_data.state == 'disabled' %}opacity-50{% endif %}">
<i class="fas fa-truck"></i>
</td>
<td class="pl-0 {% if token_data.state == 'disabled' %}opacity-50{% endif %}"><a href="{{ path_for('admin.api_tokens.edit') }}?api={{ api }}&api_token={{ delivery_token.dirname }}">{{ token_data.title }}</a></td>
<td class="{% if token_data.state == 'disabled' %}opacity-50{% endif %}">{{ delivery_token.dirname }}</td>
<td class="{% if token_data.state == 'disabled' %}opacity-50{% endif %}">{{ token_data.calls }} / {% if(token_data.limit_calls > 0) %}{{ token_data.limit_calls }}{% else %}<span style="font-size: 20px;">&infin;</span>{% endif %}</td>
<td class="text-right">
<div class="relative">
<button type="button" class="btn dot js-dropdown-btn">
<i class="fas fa-ellipsis-h"></i>
</button>
<div class="js-dropdown px-10 py-6 bg-black text-white absolute right-0 top-0 mt-6 w-56 text-left hidden">
<a class="block py-2" href="{{ path_for('admin.api_tokens.edit') }}?api={{ api }}&api_token={{ delivery_token.dirname }}"><i class="fas fa-edit mr-2"></i> {{ tr('admin_edit') }}</a>
<form id="delete-api-token-id-{{ delivery_token.dirname }}" action="{{ path_for('admin.api_tokens.deleteProcess') }}" method="POST" style="display: none;">
{{ csrf() }}
<input type="hidden" name="api" value="{{ api }}">
<input type="hidden" name="api_token" value="{{ delivery_token.dirname }}">
</form>
<a class="block py-2" href="javascript:;"
onclick="event.preventDefault();
document.getElementById('delete-api-token-id-{{ delivery_token.dirname }}').submit();"><i class="fas fa-trash-alt mr-2"></i> {{ tr('admin_delete') }}</a>
</div>
</div>
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% else %}
{{ include ("plugins/admin/templates/ui/no-elements.html", {icon: 'fas fa-truck',
{% if (delivery_tokens_list | length > 0) %}
<table>
<tbody>
{% for key, delivery_token in delivery_tokens_list %}
{% set token_file_path = PATH_TOKENS ~ '/' ~ api ~ '/' ~ delivery_token.dirname ~ '/' ~ 'token.yaml' %}
{% if filesystem_has(token_file_path) %}
{% set token_data = parser_decode(filesystem_read(token_file_path), 'yaml') %}
{% endif %}
<tr>
<td class="w-1 text-center {% if token_data.state == 'disabled' %}opacity-50{% endif %}">
<i class="fas fa-truck"></i>
</td>
<td class="pl-0 {% if token_data.state == 'disabled' %}opacity-50{% endif %}">
<a href="{{ path_for('admin.api_tokens.edit') }}?api={{ api }}&api_token={{ delivery_token.dirname }}">{{ token_data.title }}</a>
</td>
<td class="{% if token_data.state == 'disabled' %}opacity-50{% endif %}">{{ delivery_token.dirname }}</td>
<td class="{% if token_data.state == 'disabled' %}opacity-50{% endif %}">{{ token_data.calls }}
/
{% if (token_data.limit_calls > 0) %}{{ token_data.limit_calls }}
{% else %}&infin;{% endif %}
</td>
<td class="text-right">
<button type="button" class="js-dropdown-btn">
<i class="fas fa-ellipsis-h"></i>
</button>
<div class="js-dropdown dropdown-menu">
<a class="dropdown-menu__item" href="{{ path_for('admin.api_tokens.edit') }}?api={{ api }}&api_token={{ delivery_token.dirname }}">
<i class="fas fa-edit dropdown-menu__icon"></i>
{{ tr('admin_edit') }}</a>
<div class="dropdown-menu__divider"></div>
<a class="dropdown-menu__item" href="javascript:;" onclick="event.preventDefault();
document.getElementById('delete-api-token-id-{{ delivery_token.dirname }}').submit();">
<i class="fas fa-trash-alt dropdown-menu__icon"></i>
{{ tr('admin_delete') }}</a>
<form id="delete-api-token-id-{{ delivery_token.dirname }}" action="{{ path_for('admin.api_tokens.deleteProcess') }}" method="POST" style="display: none;">
{{ csrf() }}
<input type="hidden" name="api" value="{{ api }}">
<input type="hidden" name="api_token" value="{{ delivery_token.dirname }}">
</form>
</div>
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% else %}
{{ include ("plugins/admin/templates/ui/no-elements.html", {icon: 'fas fa-truck',
message: 'admin_create_new_delivery_token',
button: {
link: path_for('admin.api_tokens.add') ~ '?api=' ~ api,
title: 'admin_create_new_delivery_token'
}
})}}
{% endif %}
{% endblock %}
{% endif %}
{% endblock %}

View File

@@ -1,20 +1,22 @@
{% extends "plugins/admin/templates/partials/base.html" %}
{% block content %}
{% if (api_list|length > 0) %}
<table>
<tbody>
{% for key, api in api_list %}
<tr>
<td class="w-1 text-center">
<i class="fas fa-truck"></i>
</td>
<td class="pl-0"><a href="{{ path_for('admin.api_tokens.index') }}?api={{ key }}">{{ api }}</a></td>
</tr>
{% endfor %}
</tbody>
</table>
{% else %}
{{ include ("plugins/admin/templates/ui/no-elements.html", {icon: 'fas fa-network-wired', message: 'admin_you_have_not_created_any_api_tokens_yet'}) }}
{% endif %}
{% endblock %}
{% if (api_list | length > 0) %}
<table>
<tbody>
{% for key, api in api_list %}
<tr>
<td class="w-1 text-center">
<i class="fas fa-truck"></i>
</td>
<td class="pl-0">
<a href="{{ path_for('admin.api_tokens.index') }}?api={{ key }}">{{ api }}</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% else %}
{{ include ("plugins/admin/templates/ui/no-elements.html", {icon: 'fas fa-network-wired', message: 'admin_you_have_not_created_any_api_tokens_yet'}) }}
{% endif %}
{% endblock %}