changeset 374:5646df8bd391

bulma (call): calling mode improvments: - instead of a "switch" button, there are now 2 button with only an icon, one for video call and the other for audio call, they appear on the same row as the search bar - search item can now be extended using "call" blocks, and options are used - call search items don't show group, and now display an "extra" menu (3 dots menu) with a dropdown to select audio or video call.
author Goffi <goffi@goffi.org>
date Tue, 15 Aug 2023 17:12:18 +0200 (16 months ago)
parents c5609be6c34e
children 88d5cb043a65
files sat_templates/templates/bulma/call/call.html sat_templates/templates/bulma/call/search_item.html sat_templates/templates/bulma/components/search_item.html sat_templates/templates/bulma/static/call.css
diffstat 4 files changed, 113 insertions(+), 30 deletions(-) [+]
line wrap: on
line diff
--- a/sat_templates/templates/bulma/call/call.html	Mon Aug 14 17:01:35 2023 +0200
+++ b/sat_templates/templates/bulma/call/call.html	Tue Aug 15 17:12:18 2023 +0200
@@ -13,25 +13,36 @@
 
     {# Search #}
     <div id="search_container" class="is-overlay">
-        <div id="search_header" class="columns is-1">
-            <div class="column">
-                <input class="input" type="search" id="search" placeholder="Enter contact's name or address">
-            </div>
+
+        <div class="container">
+            <div class="columns is-vcentered is-mobile">
 
-        <div class="column is-narrow buttons has-addons">
-            <button class="button is-primary" id="call_btn">
-                <i class="icon-videocam" aria-hidden="true"></i>
-                {% trans %}Video Call{% endtrans %}
-            </button>
-            <button class="button is-primary" id="toggle_call_mode_btn">
-                <span class="icon is-small">
-                    <i class="icon-exchange" aria-hidden="true"></i>
+        <!-- Search bar -->
+        <div class="column is-flex-grow-1">
+            <input class="input" type="search" id="search" placeholder="Enter contact's name or address" aria-label="Search for contacts">
+        </div>
+
+        <!-- Video Call Button -->
+        <div class="column is-narrow">
+            <button class="button is-primary" id="video_call_btn" aria-label="Initiate Video Call">
+                <span class="icon">
+                    <i class="icon-videocam"></i>
                 </span>
             </button>
         </div>
+
+        <!-- Audio Call Button -->
+        <div class="column is-narrow">
+            <button class="button is-light" id="audio_call_btn" aria-label="Initiate Audio Call">
+                <span class="icon">
+                    <i class="icon-phone"></i>
+                </span>
+            </button>
+        </div>
+            </div>
         </div>
 
-        <div id="contacts" class="columns is-multiline is-mobile">
+        <div id="contacts" class="columns is-multiline is-mobile is-half-touch">
         </div>
 
     </div>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sat_templates/templates/bulma/call/search_item.html	Tue Aug 15 17:12:18 2023 +0200
@@ -0,0 +1,42 @@
+{% extends 'components/search_item.html' %}
+
+{% import 'components/avatar.html' as avatar with context %}
+
+{% block call %}
+<div class="level is-mobile">
+    <div class="level-right">
+        <div class="level-item">
+            <div class="search-item-extra dropdown is-right">
+                <div class="dropdown-trigger">
+                    <button class="button is-white is-small" aria-haspopup="true" aria-controls="dropdown-menu">
+                        <span class="icon">
+                            <i class="icon-dot-3-vert"></i>
+                        </span>
+                    </button>
+                </div>
+                <div class="dropdown-menu" role="menu">
+
+                    <div class="dropdown-content">
+                        <!-- Video Call Option -->
+                        <a class="click-to-video dropdown-item">
+                            <span class="icon">
+                                <i class="icon-videocam"></i>
+                            </span>
+                            {% trans %}video call{% endtrans %}
+                        </a>
+
+                        <!-- Audio Call Option -->
+                        <a class="click-to-audio dropdown-item">
+                            <span class="icon">
+                                <i class="icon-phone"></i>
+                            </span>
+                            {% trans %}audio call{% endtrans %}
+                        </a>
+                    </div>
+
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+{% endblock %}
--- a/sat_templates/templates/bulma/components/search_item.html	Mon Aug 14 17:01:35 2023 +0200
+++ b/sat_templates/templates/bulma/components/search_item.html	Tue Aug 15 17:12:18 2023 +0200
@@ -1,5 +1,5 @@
 {% import 'components/avatar.html' as avatar with context %}
-<div class="column is-2-desktop is-4-touch">
+<div class="column is-2-desktop is-6-touch">
     <div class="card x-is-hoverable">
         <a href="{{url}}">
             <div class="card-image is-flex has-items-centered px-1 py-1">
@@ -7,16 +7,20 @@
             </div>
             <div class="card-content has-text-centered has-text-shortenable px-1 py-1">
                 <span>{{identities[item.entity].nicknames[0] if identities[item.entity].nicknames else item.entity}}</span>
-                <div class="search-item__group-tags is-flex is-justify-content-center mt-2">
-                    {% if item.groups %}
-                    <div class="tags">
-                        {% for group in item.groups %}
-                        <span class="tag is-rounded is-light">{{ group }}</span>
-                        {% endfor %}
+                {% if not options.no_group %}
+                    <div class="search-item__group-tags is-flex is-justify-content-center mt-2">
+                        {% if item.groups %}
+                        <div class="tags">
+                            {% for group in item.groups %}
+                            <span class="tag is-rounded is-light">{{ group }}</span>
+                            {% endfor %}
+                        </div>
+                        {% endif %}
                     </div>
-                    {% endif %}
-                </div>
+                {% endif %}
             </div>
         </a>
+        {% block call %}{% endblock %}
     </div>
 </div>
+p
--- a/sat_templates/templates/bulma/static/call.css	Mon Aug 14 17:01:35 2023 +0200
+++ b/sat_templates/templates/bulma/static/call.css	Tue Aug 15 17:12:18 2023 +0200
@@ -74,15 +74,41 @@
     color: #999;
 }
 
-.dropdown .dropdown-menu {
-  display: none;
-}
-
-.dropdown.is-active .dropdown-menu {
-  display: block;
-}
-
 .call_status {
     padding-top: 1.3rem;
     padding-bottom: 1.3rem;
 }
+
+.dropdown-menu{
+    min-width: 0;
+}
+
+/* Hide the call button by default on larger screens */
+.card .dropdown-trigger {
+    opacity: 0;
+    transition: opacity 0.3s;
+}
+
+/* Show the button when the card is hovered */
+.card:hover .dropdown-trigger {
+    opacity: 1;
+}
+
+/* Ensure it's always visible on smaller screens */
+@media (max-width: 768px) {
+    .card .dropdown-trigger {
+        opacity: 1;
+    }
+}
+
+/* Position the button at the top right */
+.level-right {
+    position: absolute;
+    top: 0.5rem;
+    right: 0.5rem;
+}
+
+/* Add some spacing between the icon and the edges of the button */
+.icon-dot-3-vert {
+    margin: 0 0.5rem;
+}