Allow linking chats
This commit is contained in:
@@ -76,7 +76,7 @@
|
||||
|
||||
{% if existing %}
|
||||
<article class="notification is-light" style="margin-top: 0.8rem;">
|
||||
Current link: <strong>{{ existing.person.name }}</strong> ← <code>{{ existing.chat_identifier }}</code>
|
||||
Current link: <strong>{{ existing.person.name|default:existing.chat_name|default:existing.chat_identifier }}</strong> ← <code>{{ existing.chat_identifier }}</code>
|
||||
</article>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
@@ -21,28 +21,47 @@
|
||||
{% if contact_rows %}
|
||||
<div class="buttons are-small" style="display: grid; gap: 0.5rem;">
|
||||
{% for row in contact_rows %}
|
||||
<button
|
||||
class="button is-fullwidth"
|
||||
style="border-radius: 8px; border: 0; background: transparent; box-shadow: none; padding: 0;"
|
||||
hx-get="{% url 'ai_workspace_person' type='widget' person_id=row.person.id %}"
|
||||
hx-include="#ai-window-form"
|
||||
hx-target="#widgets-here"
|
||||
hx-swap="afterend">
|
||||
<span class="tags has-addons" style="display: inline-flex; width: 100%; margin: 0; white-space: nowrap;">
|
||||
<span class="tag is-dark" style="min-width: 2.5rem; justify-content: center;">
|
||||
<i class="fa-solid fa-comment-dots" aria-hidden="true"></i>
|
||||
</span>
|
||||
<span class="tag is-white" style="flex: 1; display: inline-flex; align-items: center; justify-content: space-between; gap: 0.75rem; padding-left: 0.7rem; padding-right: 0.7rem; border-top: 1px solid rgba(0, 0, 0, 0.2); border-bottom: 1px solid rgba(0, 0, 0, 0.2);">
|
||||
<span style="display: inline-flex; align-items: baseline; gap: 0.35rem; min-width: 0;">
|
||||
<strong>{{ row.person.name }}</strong>
|
||||
{% if row.person %}
|
||||
<button
|
||||
class="button is-fullwidth"
|
||||
style="border-radius: 8px; border: 0; background: transparent; box-shadow: none; padding: 0;"
|
||||
hx-get="{% url 'ai_workspace_person' type='widget' person_id=row.person.id %}"
|
||||
hx-include="#ai-window-form"
|
||||
hx-target="#widgets-here"
|
||||
hx-swap="afterend">
|
||||
<span class="tags has-addons" style="display: inline-flex; width: 100%; margin: 0; white-space: nowrap;">
|
||||
<span class="tag is-dark" style="min-width: 2.5rem; justify-content: center;">
|
||||
<i class="fa-solid fa-comment-dots" aria-hidden="true"></i>
|
||||
</span>
|
||||
{% if row.last_ts_label %}
|
||||
<small style="padding-left: 0.5rem;">{{ row.last_ts_label }}</small>
|
||||
{% endif %}
|
||||
<span class="tag is-white" style="flex: 1; display: inline-flex; align-items: center; justify-content: space-between; gap: 0.75rem; padding-left: 0.7rem; padding-right: 0.7rem; border-top: 1px solid rgba(0, 0, 0, 0.2); border-bottom: 1px solid rgba(0, 0, 0, 0.2);">
|
||||
<span style="display: inline-flex; align-items: baseline; gap: 0.35rem; min-width: 0;">
|
||||
<strong>{{ row.person.name }}</strong>
|
||||
</span>
|
||||
{% if row.last_ts_label %}
|
||||
<small style="padding-left: 0.5rem;">{{ row.last_ts_label }}</small>
|
||||
{% endif %}
|
||||
</span>
|
||||
<span class="tag is-dark" style="min-width: 3.25rem; justify-content: center;">{{ row.message_count }}</span>
|
||||
</span>
|
||||
<span class="tag is-dark" style="min-width: 3.25rem; justify-content: center;">{{ row.message_count }}</span>
|
||||
</span>
|
||||
</button>
|
||||
</button>
|
||||
{% else %}
|
||||
<button
|
||||
class="button is-fullwidth"
|
||||
style="border-radius: 8px; border: 0; background: transparent; box-shadow: none; padding: 0;"
|
||||
disabled>
|
||||
<span class="tags has-addons" style="display: inline-flex; width: 100%; margin: 0; white-space: nowrap;">
|
||||
<span class="tag is-info is-light" style="min-width: 2.5rem; justify-content: center;">
|
||||
<i class="fa-solid fa-users" aria-hidden="true"></i>
|
||||
</span>
|
||||
<span class="tag is-white" style="flex: 1; display: inline-flex; align-items: center; justify-content: space-between; gap: 0.75rem; padding-left: 0.7rem; padding-right: 0.7rem; border-top: 1px solid rgba(0, 0, 0, 0.2); border-bottom: 1px solid rgba(0, 0, 0, 0.2);">
|
||||
<span style="display: inline-flex; align-items: baseline; gap: 0.35rem; min-width: 0;">
|
||||
<strong>{{ row.chat_name }}</strong>
|
||||
<small class="has-text-grey">{{ row.service }}</small>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</button>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% else %}
|
||||
|
||||
@@ -37,6 +37,8 @@
|
||||
<p class="is-size-6" style="margin-bottom: 0;">
|
||||
{% if person %}
|
||||
{{ person.name }}
|
||||
{% elif group_name %}
|
||||
{{ group_name }}
|
||||
{% else %}
|
||||
{{ identifier }}
|
||||
{% endif %}
|
||||
|
||||
@@ -18,35 +18,44 @@
|
||||
</thead>
|
||||
{% for item in object_list %}
|
||||
<tr>
|
||||
<td>{{ item.chat.source_number }}</td>
|
||||
<td>{% if item.chat %}{{ item.chat.source_number }}{% endif %}</td>
|
||||
<td>
|
||||
<a
|
||||
class="has-text-grey button nowrap-child"
|
||||
onclick="window.prompt('Copy to clipboard: Ctrl+C, Enter', '{{ item.chat.source_uuid }}');">
|
||||
<span class="icon" data-tooltip="Copy to clipboard">
|
||||
<i class="fa-solid fa-copy" aria-hidden="true"></i>
|
||||
</span>
|
||||
</a>
|
||||
{% if item.chat %}
|
||||
<a
|
||||
class="has-text-grey button nowrap-child"
|
||||
onclick="window.prompt('Copy to clipboard: Ctrl+C, Enter', '{{ item.chat.source_uuid }}');">
|
||||
<span class="icon" data-tooltip="Copy to clipboard">
|
||||
<i class="fa-solid fa-copy" aria-hidden="true"></i>
|
||||
</span>
|
||||
</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>{% if item.chat %}{{ item.chat.account }}{% endif %}</td>
|
||||
<td>
|
||||
{% if item.is_group %}
|
||||
<span class="tag is-info is-light is-small mr-1"><i class="fa-solid fa-users"></i></span>
|
||||
{% endif %}
|
||||
{% if item.chat %}{{ item.chat.source_name }}{% else %}{{ item.name }}{% endif %}
|
||||
</td>
|
||||
<td>{{ item.chat.account }}</td>
|
||||
<td>{{ item.chat.source_name }}</td>
|
||||
<td>{{ item.person_name|default:"-" }}</td>
|
||||
<td>
|
||||
<div class="buttons">
|
||||
<button
|
||||
hx-headers='{"X-CSRFToken": "{{ csrf_token }}"}'
|
||||
hx-delete="{# url 'account_delete' type=type pk=item.id #}"
|
||||
hx-trigger="click"
|
||||
hx-target="#modals-here"
|
||||
hx-swap="innerHTML"
|
||||
hx-confirm="Are you sure you wish to unlink {{ item.chat }}?"
|
||||
class="button">
|
||||
<span class="icon-text">
|
||||
<span class="icon">
|
||||
<i class="fa-solid fa-xmark"></i>
|
||||
{% if not item.is_group %}
|
||||
<button
|
||||
hx-headers='{"X-CSRFToken": "{{ csrf_token }}"}'
|
||||
hx-delete="{# url 'account_delete' type=type pk=item.id #}"
|
||||
hx-trigger="click"
|
||||
hx-target="#modals-here"
|
||||
hx-swap="innerHTML"
|
||||
hx-confirm="Are you sure you wish to unlink {{ item.chat }}?"
|
||||
class="button">
|
||||
<span class="icon-text">
|
||||
<span class="icon">
|
||||
<i class="fa-solid fa-xmark"></i>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</button>
|
||||
</button>
|
||||
{% endif %}
|
||||
{% if type == 'page' %}
|
||||
{% if item.can_compose %}
|
||||
<a href="{{ item.compose_page_url }}"><button
|
||||
@@ -68,16 +77,18 @@
|
||||
</span>
|
||||
</button>
|
||||
{% endif %}
|
||||
<a href="{{ item.match_url }}"><button
|
||||
class="button"
|
||||
title="Match identifier to person">
|
||||
<span class="icon-text">
|
||||
<span class="icon">
|
||||
<i class="fa-solid fa-link"></i>
|
||||
{% if not item.is_group %}
|
||||
<a href="{{ item.match_url }}"><button
|
||||
class="button"
|
||||
title="Match identifier to person">
|
||||
<span class="icon-text">
|
||||
<span class="icon">
|
||||
<i class="fa-solid fa-link"></i>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</button>
|
||||
</a>
|
||||
</button>
|
||||
</a>
|
||||
{% endif %}
|
||||
<a href="{{ item.ai_url }}"><button
|
||||
class="button"
|
||||
title="Open AI workspace">
|
||||
@@ -112,13 +123,15 @@
|
||||
</span>
|
||||
</button>
|
||||
{% endif %}
|
||||
<a href="{{ item.match_url }}"><button class="button" title="Match identifier to person">
|
||||
<span class="icon-text">
|
||||
<span class="icon">
|
||||
<i class="fa-solid fa-link"></i>
|
||||
{% if not item.is_group %}
|
||||
<a href="{{ item.match_url }}"><button class="button" title="Match identifier to person">
|
||||
<span class="icon-text">
|
||||
<span class="icon">
|
||||
<i class="fa-solid fa-link"></i>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</button></a>
|
||||
</button></a>
|
||||
{% endif %}
|
||||
<a href="{{ item.ai_url }}"><button class="button">
|
||||
<span class="icon-text">
|
||||
<span class="icon">
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
</thead>
|
||||
{% for item in object_list %}
|
||||
<tr>
|
||||
<td>{{ item.name|default:"WhatsApp Chat" }}</td>
|
||||
<td>{% if item.is_group %}<span class="tag is-info is-light is-small mr-1"><i class="fa-solid fa-users"></i></span>{% endif %}{{ item.name|default:"WhatsApp Chat" }}</td>
|
||||
<td>
|
||||
<a
|
||||
class="has-text-grey button nowrap-child"
|
||||
|
||||
Reference in New Issue
Block a user