Implement OTP and show received callbacks

This commit is contained in:
2022-10-15 21:51:47 +01:00
parent 8369f44bd4
commit 361b7b96f0
17 changed files with 396 additions and 155 deletions

View File

@@ -206,6 +206,11 @@
Hooks
</a>
{% endif %}
{% if user.is_authenticated %}
<a class="navbar-item" href="{% url 'callbacks' type='page' %}">
Callbacks
</a>
{% endif %}
{% if settings.STRIPE_ENABLED %}
{% if user.is_authenticated %}
<a class="navbar-item" href="{% url 'billing' %}">

View File

@@ -4,7 +4,7 @@
{% block outer_content %}
<div class="grid-stack" id="grid-stack-main">
<div class="grid-stack-item" gs-w="7" gs-h="10" gs-y="0" gs-x="1">
<div class="grid-stack-item" gs-w="7" gs-h="15" gs-y="0" gs-x="1">
<div class="grid-stack-item-content">
<nav class="panel">
<p class="panel-heading" style="padding: .2em; line-height: .5em;">

View File

@@ -9,11 +9,11 @@
<th>received hooks</th>
<th>actions</th>
</thead>
{% for item in hooks %}
{% for item in items %}
<tr>
<td>{{ item.id }}</td>
<td>{{ item.user }}</td>
<td>{{ item.name }}</td>
<td><code>{{settings.URL}}/{{settings.HOOK_PATH}}/{{ item.name }}</code></td>
<td>{{ item.hook }}</td>
<td>{{ item.received }}</td>
<td>
@@ -42,6 +42,18 @@
</span>
</span>
</button>
<button
hx-headers='{"X-CSRFToken": "{{ csrf_token }}"}'
hx-get="{% url 'callbacks' type='modal' hook_id=item.id %}"
hx-trigger="click"
hx-target="#hooks-table"
class="button is-success">
<span class="icon-text">
<span class="icon">
<i class="fa-solid fa-eye"></i>
</span>
</span>
</button>
</div>
</td>
</tr>

View File

@@ -0,0 +1,32 @@
{% include 'partials/notify.html' %}
<table class="table is-fullwidth is-hoverable" id="callbacks-table">
<thead>
<th>id</th>
<th>hook id</th>
<th>hook name</th>
<th>data</th>
<th>actions</th>
</thead>
{% for item in items %}
<tr>
<td>{{ item.id }}</td>
<td>{{ item.hook.id }}</td>
<td>
<a
hx-headers='{"X-CSRFToken": "{{ csrf_token }}"}'
hx-get="{% url 'hook_action' hook_id=item.hook.id %}"
hx-trigger="click"
hx-target="#modals-here">{{ item.hook.name }}
</a>
</td>
<td><pre>{{ item.data }}</pre></td>
<td>
<div class="buttons">
</div>
</td>
</tr>
{% endfor %}
</table>

View File

@@ -1,44 +1,95 @@
<p class="title">This is a demo panel</p>
<p class="title">Management panel</p>
<div class="buttons">
<button
hx-headers='{"X-CSRFToken": "{{ csrf_token }}"}'
hx-get="{% url 'hooks' type='modal' %}"
hx-trigger="click"
hx-target="#modals-here"
class="button is-info">
<span class="icon-text">
<span class="icon">
<i class="fa-solid fa-list"></i>
</span>
<span>Open modal</span>
</span>
</button>
<button
hx-headers='{"X-CSRFToken": "{{ csrf_token }}"}'
hx-get="{% url 'hooks' type='widget' %}"
hx-trigger="click"
hx-target="#widgets-here"
class="button is-info">
<span class="icon-text">
<span class="icon">
<i class="fa-solid fa-list"></i>
</span>
<span>Open widget</span>
</span>
</button>
<button
hx-headers='{"X-CSRFToken": "{{ csrf_token }}"}'
hx-get="{% url 'hooks' type='window' %}"
hx-trigger="click"
hx-target="#items-here"
hx-swap="afterend"
class="button is-info">
<span class="icon-text">
<span class="icon">
<i class="fa-solid fa-list"></i>
</span>
<span>Open window</span>
</span>
</button>
</div>
<table class="table is-fullwidth is-hoverable">
<thead>
<th>name</th>
<th>actions</th>
</thead>
<div class="buttons">
<tr>
<td>Hooks</td>
<td>
<button
hx-headers='{"X-CSRFToken": "{{ csrf_token }}"}'
hx-get="{% url 'hooks' type='modal' %}"
hx-trigger="click"
hx-target="#modals-here"
class="button is-info">
<span class="icon-text">
<span class="icon" data-tooltip="Modal">
<i class="fa-solid fa-window-maximize"></i>
</span>
</span>
</button>
<button
hx-headers='{"X-CSRFToken": "{{ csrf_token }}"}'
hx-get="{% url 'hooks' type='widget' %}"
hx-trigger="click"
hx-target="#widgets-here"
class="button is-info">
<span class="icon-text">
<span class="icon" data-tooltip="Widget">
<i class="fa-solid fa-sidebar"></i>
</span>
</span>
</button>
<button
hx-headers='{"X-CSRFToken": "{{ csrf_token }}"}'
hx-get="{% url 'hooks' type='window' %}"
hx-trigger="click"
hx-target="#items-here"
hx-swap="afterend"
class="button is-info">
<span class="icon-text">
<span class="icon" data-tooltip="Window">
<i class="fa-solid fa-window-restore"></i>
</span>
</span>
</button>
<td>
</tr>
<tr>
<td>Callbacks</td>
<td>
<button
hx-headers='{"X-CSRFToken": "{{ csrf_token }}"}'
hx-get="{% url 'callbacks' type='modal' %}"
hx-trigger="click"
hx-target="#modals-here"
class="button is-info">
<span class="icon-text">
<span class="icon" data-tooltip="Modal">
<i class="fa-solid fa-window-maximize"></i>
</span>
</span>
</button>
<button
hx-headers='{"X-CSRFToken": "{{ csrf_token }}"}'
hx-get="{% url 'callbacks' type='widget' %}"
hx-trigger="click"
hx-target="#widgets-here"
class="button is-info">
<span class="icon-text">
<span class="icon" data-tooltip="Widget">
<i class="fa-solid fa-sidebar"></i>
</span>
</span>
</button>
<button
hx-headers='{"X-CSRFToken": "{{ csrf_token }}"}'
hx-get="{% url 'callbacks' type='window' %}"
hx-trigger="click"
hx-target="#items-here"
hx-swap="afterend"
class="button is-info">
<span class="icon-text">
<span class="icon" data-tooltip="Window">
<i class="fa-solid fa-window-restore"></i>
</span>
</span>
</button>
<td>
</tr>
</div>
</table>