close dialogs

172 views
Skip to first unread message

karam mohammed 1

unread,
Nov 6, 2025, 7:07:23 AM (12 days ago) Nov 6
to mementodatabase
 Hello, I want all dialogs to close completely after pressing a button selection in second dialog   
This is an example shows a two-step booking interface made with dialogs 
First, I selects a day, then the second dialog displays available time slots for that day.
Once a time is chosen, the booking is confirmed and the dialogs not closed automatically . I used  dialog().closeAll() but not worked.



(function () {
    function showDaySelection() {
        var layout = ui().layout([
            ui().text("Choose a day:").font({ size: 16, bold: true }),
            ui().button("Monday").action(function () {
                showTimeSelection("Monday");
                return true;
            }),
            ui().button("Tuesday").action(function () {
                showTimeSelection("Tuesday");
                return true;
            })
        ], "vertical");

        dialog()
            .title("Select Day")
            .view(layout)
            .negativeButton("Cancel", function () { return true; })
            .show(true);
    }

    function showTimeSelection(day) {
        var layout = ui().layout([
            ui().text("Available times on " + day + ":").font({ size: 16, bold: true }),
            ui().button("3:00 PM").action(function () {
                message("Booked on " + day + " at 3:00 PM");
                dialog().close();
                return true;
            }),
            ui().button("3:30 PM").action(function () {
                message("Booked on " + day + " at 3:30 PM");
                dialog().close();
                return true;
            }),
            ui().button("⬅️ Back").action(function () {
                showDaySelection();
                return true;
            })
        ], "vertical");

        dialog()
            .title("Select Time")
            .view(layout)
            .negativeButton("Cancel", function () { return true; })
            .show(true);
    }

    // Start
    showDaySelection();
})();



thanks in advance

Mmm

unread,
Nov 6, 2025, 9:06:18 AM (12 days ago) Nov 6
to mementodatabase
Закрыть диалог с помощью ui().button() нельзя.
dialog().close(); //не поддерживается.

Вместо кнопок с датами и временем ui().button попробуйте использовать:
  • ui().choiceBox();
  • ui().checkbox() с методом onChange() (при выборе одного элемента ( checked = true ), все остальные элементы сбрасываются ( checked = false )).
Сообщение о бронировании я бы тоже вывел в диалог, вместо message().

Переход между диалогами выполните кнопками диалога (positiveButton и negativeButton), а не ui().button.

четверг, 6 ноября 2025 г. в 15:07:23 UTC+3, kara...@gmail.com:

karam mohammed 1

unread,
Nov 6, 2025, 10:20:03 AM (12 days ago) Nov 6
to mementodatabase
Thank mmm for your replay
I canot do this : 
ui().checkbox() with the onChange() method (when one element is selected ( checked = true ), all other elements are reset ( checked = false )).


Please , Can you provide me with example or edit mine to adapt this

karam mohammed 1

unread,
Nov 6, 2025, 7:32:37 PM (12 days ago) Nov 6
to mementodatabase
I mean If it is possible to show elements of second dialog on the first dialog using on chang()

Mmm

unread,
Nov 7, 2025, 4:00:20 AM (11 days ago) Nov 7
to mementodatabase
Шаблон варианта решения:

Только работа окон dialog().
Требуется доработка для определения массивов дней приема и массивов доступных часов приема для каждого дня.

пятница, 7 ноября 2025 г. в 03:32:37 UTC+3, kara...@gmail.com:
screen-20251107-1.mp4

karam mohammed 1

unread,
Nov 7, 2025, 7:44:08 AM (11 days ago) Nov 7
to mementodatabase
thanks again .. but i mean to show dependent dialog 2 in the same dialog 1 upon select

Mmm

unread,
Nov 7, 2025, 7:56:27 AM (11 days ago) Nov 7
to mementodatabase
Вариант решения – совмещённый диалог.

Шаблон с двумя примерами (старый удален):
пятница, 7 ноября 2025 г. в 15:44:08 UTC+3, kara...@gmail.com:
screen-20251107-2.mp4

karam mohammed 1

unread,
Nov 7, 2025, 11:26:22 AM (11 days ago) Nov 7
to mementodatabase
Thanks mmm again and again. But because I have many appointments per day.  So layout will be long . So I hope if it is possible to show available times on day click.

Mmm

unread,
Nov 7, 2025, 12:02:26 PM (11 days ago) Nov 7
to mementodatabase
Вам необходимо самостоятельно создать массив объектов listBook.
Размер этого массива будет влиять на "длину" формы. 

Вы можете добавить предварительный диалог, в котором Пользователь может выбрать удобный для него период.
Я не знаю графика приема. Поэтому каким периодом ограничивать выбор (3 дня, неделя, две недели, другое) – это Ваше решение.
Например, неделя.
Создаете предварительный диалог с выбором периода. 
С 10 по 14, с 17 по 21, с 24 по 28 ноября, ... и передаёте результат выбора в функцию showDayTimeSelection().
Создаете массив объектов подходящих данных из записей библиотеки и отображаете их в диалоге выбора.

У Вас есть варианты работы как с одним, так и с двумя диалогами. 
Адаптировать их под нужные требования не составит труда.

пятница, 7 ноября 2025 г. в 19:26:22 UTC+3, kara...@gmail.com:

karam mohammed 1

unread,
Nov 7, 2025, 12:05:34 PM (11 days ago) Nov 7
to mementodatabase
OK.  Many Thanks . I really appreciate your help 🙏 
Reply all
Reply to author
Forward
0 new messages