Пример мобильного приложения на Glide для кафе (Часть 4).


Выбор блюд пользователем и просмотр блюда в корзине заказов

Здесь мы рассмотрим, как сделать просмотр корзины, сделать фильтр данных для фильтрации данных по каждому пользователю, а также дать пользователю возможность удаления из корзины уже выбранного блюда.



Блюда мы выбрали, но может мы что-то хотим поменять. Хотелось бы посмотреть весь список. Поэтому мы создадим новую вкладку в нашем приложении, где будет наша корзина. Cart options
Рис.1
Для этого откроем окно ‘Layout’ и в окне NAVIGATION нажмём ‘крестик’ у нас появилась новая вкладка “New Tab”. Выберем её мышью, Строка при этом выделится серо-голубым цветом. После чего перейдём в правое окно (Свойства) и в строке ‘Source’ Glide по умолчанию предлагает нам ‘Лист1’, но нам нужна ‘Корзина’. По стрелке вниз выберем новый источник, это таблица “Корзина”, в строке ‘Label’ напишем новое название вкладки - “Корзина”, а иконку поменяем на более приемлемую, у меня это ‘Корзина на колёсиках’. И наконец, стиль поменяем на “Details” (Рис.1). (Shopping_cart_options)


Content
Рис.2
По-умолчанию Glide отобразил нам некоторую последовательность компонент с данными из таблицы ‘Корзина’. Но нам здесь ничего не надо и мы последовательно удаляем все строки, нажимая (X) в каждой строке справа. После чего создаём новый компонент “Inline List” и выберем его. По-умолчанию Glide в качестве ‘Source’ (источник) предлагает нам здесь ‘Rel_menu_ID’, но при этом на экране отображается только один компонент. Но мне бы хотелось, чтобы отображался весь список блюд, выбранный каждым конкретным пользователем (возможно Glide предполагал какое-то другое решение, но описание этого я пока не нашел) и в характеристиках блюд были наименование, цена и фото. Для этого я меняю этот источник на таблицу “Корзина”, после чего мы уже имеем список всех заказов, и так как у нас получается два раза наименование списка (это – корзина), то в строке ‘Title’ мы одно наименование удаляем. Однако здесь у нас имеется новая проблема. В списке отображаются из того, что мне надо только фото, а отображения названия блюд и их стоимость, Glide сделать не позволяет. При нажатии на стрелку столбцов ‘Look_menu_name’ и ‘Look_menu_price’ в открывающемся списке “НЕТ” (Рис.2). (List_content_cart)


Для решения этой проблемы, давайте перейдём к окно ‘Data’ и откроем таблицу “Корзина”. Создадим в этой таблице новый столбец типа ‘Single Value’ (Одно значение) и назовём его “SV_название блюда”, где в строке ‘Get’ – оставим ‘First’, а в строке ‘From’ выберем ‘Look_menu_name’. Аналогично создадим ещё один столбец типа ‘Single Value’ и назовём его “SV_цена, а в строке ‘From’ выберем ‘Look_menu_price’ (Рис.3). (Cart) Cart
Рис.3


New list
Рис.4


CONTENT
Рис.5
Вернёмся в окно ‘Layout’. Теперь по нажатию на стрелку в разделе CONTENT в строке ‘Title’ в открывающемся меню видим, что появились две новые строки, это “SV_название блюда” и “SV_цена (Рис.4) (New_list_content_cart). Первое установим в строке ‘Title’, а второе - в строке ‘Details’. В результате мы имеем CONTENT - Рис.5 (CONTENT), что мы и хотели. А само приложение выглядит так, как представлено на рис 6. (App_cart)


Фильтрация данных в корзине заказов

Filter email
Рис.7
App Cart
Рис.6
Viewing_Илья
Рис.8
Viewing_Наталья
Рис.9
Но здесь представлен список блюд всех пользователей, а я хочу, чтобы каждый пользователь видел только свою корзину. Для этой цели у Glide есть функция фильтрации данных. Давайте настроим фильтр так, чтобы каждый пользователь видел, только то, что сам выбрал. У нас пользователи идентифицируются при открытии приложения по своему ‘Email’. Мы этим и воспользуемся. Перейдём в правое окно и откроем вкладку Options и нажмём “Add Filter. По умолчанию Glide предлагает нам фильтр “Время заполнения is not empty” (по существу это названия первого столбца), но нам это не надо. Кликнем по нему мышью и в открывшемся окне в верхней строке по стрелке выберем столбец “Look_user_email, а во второй “is signed-in user” (Рис.7) (Filter_Look_user_email). Выберем просмотр как Илья (View as Илья) и видим корзину Ильи (Рис.8) (Viewing_Илья), нажмём на просмотр как Наталья и видим корзину Натальи (Рис.9) (Viewing_Наталья).


Удаление блюда из корзины заказов

New list
Рис.10
App delete
Рис.11
App after delete
Рис.12
Теперь я хочу иметь возможность отказаться от уже выбранного блюда, находящегося в корзине. Это в конструкторе Glide делается очень просто. Выберем мышью компонент “Inline List Корзина” и в окне свойств раздел ACTIONS. Здесь у нас ‘Show detail screen for this item’, нажмём на это и в открывшейся конфигурации, ещё раз нажмём на ‘Show detail screen’, и в открывшемся меню выберем строку “Delete row”, а в строке ‘Rows’оставим ‘This item’ (Рис.10) (Configure_Action). Теперь в каждой строке появился кружочек со знаком МИНУС. (Рис.11) (App_delete_cart). Нажмём, например, на первую строку (Салат “Помидоры со сметаной”), и блюдо тут же было удалено (Рис.12) (App_after_deletet). (Примечание. Будьте аккуратны, а то можно удалить блюдо по ошибке, и его вновь придётся выбирать). Войдя во вкладку ‘Data’ и открыв таблицу ‘Корзина’, мы также можем видеть, что строка с салатом удалена из таблицы. Но добавлять новые блюда мы уже умеем, для этого надо снова перейти на вкладку ‘Моё кафе’ и сделать новый выбор.

Это всё что нам здесь и требовалось.

Теперь мне бы хотелось, чтобы теперь пользователь мог сообщить о принятом решении и сделать заказ. Об этом мы поговорим в продолжении этой статьи



Все поля в форме для комментариев обязательны для заполнения. Для проверки, что вы человек, сложите два случайных числа слева от кнопки и результат поместите в поле рядом с кнопкой.

Закрыть
Имя:
752 + 44 =  
Добавить комментарий:
Имя:
752 + 44 =  

Перед публикацией все комментарии проходят обязательную модерацию!

Если Вы хотите задать какой-либо вопрос, то пишите на почту alekskuznech@mail.ru или в соцсети.