var page_content = document.getElementById("_ui_page_content");
var content = ''
for (const element of pages[idx].elements) {
- content = content + ElementHTML(element)
+ content = content + ElementHTML(element) + '\n'
}
page_content.innerHTML = content
- window.location.hash = '#'+id
+ window.location.hash = id
}
function DrawNavigator(project, pages) {
menu.innerHTML = list
}
+function DrawContacts(contacts) {
+ if (!contacts) return;
+ var contact_list = '<hr><h4 class="pure-u1">Контакты</h4>'
+ for (const contact of contacts) {
+ const url = new URL(contact)
+ var ref
+ console.log(url)
+ switch (url.protocol) {
+ case 'http':
+ case 'https:':
+ ref = '⌂ '+url.hostname
+ break
+ case 'mailto:':
+ ref = '✉ '+url.pathname
+ break
+ default:
+ ref = '🖅 '+url.pathname
+ }
+ contact_list += '<a href="'+contact+'">'+ref+'</a>'
+ }
+ var footer = document.getElementById('_ui_contacts');
+ footer.innerHTML = contact_list
+}
+
function DrawUI(ui) {
DrawHeader(ui.project)
pages = ui.pages
DrawNavigator(ui.project, pages)
+ DrawContacts(ui.project.contacts)
var anchor = getAnchor()
if (anchor) {
DrawPage(anchor)
name: WiFi Clock
version: 0.1.1
contacts:
- email: rvb@rvb.name
- tg: rvbglas
- site: https://git.rvb.name
+ - mailto:rvb@rvb.name
+ - tg:rvbglas
+ - https://git.rvb.name
+ - xmpp:rvb@rvb.name
pages:
- id: main
title: Главная
- id: clock
title: Часы
elements:
+ - type: text
+ value: Внешний вид
- id: panel_font
label: Шрифт часов
type: select
type: checkbox
- id: panel_speed
label: Скорость
- type: number
+ type: range
min: 1
max: 20
step: 1
- type: hr
- - type: hr
+ - type: text
+ value: Яркость
- id: day_from
label: Дневной режим с
type: number
- id: alarm
title: Будильник
elements:
+ - type: text
+ value: Будильник
- id: enable_alarm
type: checkbox
- label: Включить будильник
+ label: Включить
- id: alarm_hour
label: Час
type: number
min: 100
max: 2000
- type: hr
+ - type: text
+ value: Сигнал каждый час
- id: enable_hourly
type: checkbox
- label: Сигнал каждÑ\8bй Ñ\87аÑ\81
+ label: Ð\92клÑ\8eÑ\87иÑ\82Ñ\8c
- id: hourly_night
label: В том числе ночью
type: checkbox
- value: 1
text: "TX*"
- id: button_inversed
- label: "Кнопка на размыкание"
+ label: Кнопка на размыкание
type: checkbox
- type: hr
- type: text
- value: 1
text: "TX*"
- id: buzzer_passive
- label: "Пассивный зуммер"
+ label: Пассивный зуммер
type: checkbox
- type: hr
- type: text