From 4d03f1a79d42a9dd0fbcdb7a27211eb6ba9707dd Mon Sep 17 00:00:00 2001 From: ezobnin Date: Tue, 17 Aug 2021 15:42:36 +0300 Subject: [PATCH] add ui:show_table --- README_ru.md | 1 + main/uptimerobot-widget.lua | 16 +++++++++++++++- samples/table-sample.lua | 9 +++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 samples/table-sample.lua diff --git a/README_ru.md b/README_ru.md index 26a57f7..132f6a3 100644 --- a/README_ru.md +++ b/README_ru.md @@ -18,6 +18,7 @@ * `ui:show_text(string)` - выводит в виджет обычный текст; повторный вызов стирает предыдущий текст; * `ui:show_lines(table, [table])` - выводит список строк с отправителем (на манер почтового виджета), второй аргумент (необязательный) - соответствующие им отправители (форматирование в стиле почтового виджета); +* `ui:show_table(table, [centering])` - аналог `show_lines` для вывода строк в виде таблицы, первый аргумент - таблиц тбалиц, второй - булево значение, указывающее, нужно ли центрировать ячейки таблицы; * `ui:show_buttons(names, [colors])` - выводит список кнопок, первый аргумент - таблица строк, второй опциональный аргумент, таблица цветов в формате #XXXXXX; * `ui:show_progress_bar(text, current_value, max_value)` - показывает прогресс бар; * `ui:show_chart(points, [format], [title], [show_grid], [folded_string], [copyright])` - показывает график, points - таблица таблиц координат, format - формат данных (см. ниже), title - название графика, show\_grid - флага показа сетки, folded\_string - строка для свернутого состояния (иначе будет показано название), copyright - строка, отображаемая в правом нижнем углу; diff --git a/main/uptimerobot-widget.lua b/main/uptimerobot-widget.lua index b59f124..6ea850f 100644 --- a/main/uptimerobot-widget.lua +++ b/main/uptimerobot-widget.lua @@ -48,7 +48,7 @@ function on_network_result(result) strings_tab[k] = v.friendly_name..": "..format_status(v.status) end - ui:show_lines(strings_tab) + ui:show_table(table_to_tables(strings_tab, 2)) end -- utils @@ -60,3 +60,17 @@ function format_status(status) return ""..statuses[status].."" end +function table_to_tables(tab, num) + local out_tab = {} + local row = {} + + for k,v in ipairs(tab) do + table.insert(row, v) + if k % num == 0 then + table.insert(out_tab, row) + row = {} + end + end + + return out_tab +end diff --git a/samples/table-sample.lua b/samples/table-sample.lua new file mode 100644 index 0000000..6b50b54 --- /dev/null +++ b/samples/table-sample.lua @@ -0,0 +1,9 @@ +function on_resume() + local table = { + {"1", "2", "3"}, + {"4", "5", "6"}, + {"7", "8", "9"}, + } + + ui:show_table(table, true) +end