Closed GyverLibs closed 1 year ago
из библиотеки убрали файл custom.h в котором был полезный // пример "текст-ссылка" может вернуть?
Кастом файл теперь живёт в примере custom components:
ок
GP.TABLE_BEGIN("60px,100%,50px", nullptr, "100%"); в какой форме записывать выравнивания (GP_LEFT, GP_CENTER, GP_RIGHT) или "GP_LEFT, GP_CENTER, GP_RIGHT" ?
Смотри пример, там сильно по другому. В документации этого пока нет
а ок, всё увидел...
Доброго дня,
Хотелось бы реализовать в popup PROMT ввод пароля. Т.е. чтобы поле ввода было маскировано
Это невозможно, всплывающее окно prompt стандартное, полностью генерируется браузером
Не думаю что это возможно, всплывающее окно стандартное, полностью генерируется браузером
Но есть же стандартное всплывающее окно, которое требует например авторизации на каком либо сайте. и там пароль маскируется
Еще интересной фичей было бы ОТА прошивки и хранилища с заданного адреса в интернете
авторизации на каком либо сайте
Это стандартное окно вызывается автоматически при включении авторизации в портале, вроде бы через .setAuthorization(login pass), см доку
ОТА прошивки и хранилища с заданного адреса в интернете
Пожалуйста, стандартная библиотека httpupdate.h. Делаешь поле ввода текста для адреса и рядом кнопку "прошить"
Не стал добавлять или забыл? body {-webkit-tap-highlight-color: transparent;} Чтоб элементы на мобилах не подсвечивались...
Не стал добавлять или забыл?
В v3.3 это есть
А теперь увидел, в файлах стилей в файловой системе нет ... Кажется...
Креститься надо)
Сори, тогда не пойму почему у меня на телефоне все равно подсвечивает.... Память на есп полность чистил и заново закидывал обновленные файлы... Буду проверять...
Кеш в браузере почистить надо
Помогло спс...
А возможность изменения цвета кнопок OTA_FIRMWARE и OTA_FILESYSTEM не запланирована?
Запланировано то, что в списке наверху. Предлагайте, запланирую)
Предложил))) А то они могут быть только зеленого цвета
Еще такую вещь обнаружил label { white-space: nowrap; font-size: 20px; margin: 0 5px; }
У LABEL намеренно убран перенос текста? Если заголовок длинный, на мобиле вылезает за блок
Намеренно, без этого переносы появятся там где их быть не должно, например при форматировании бокса "лейбл + компонент". Длинные тексты можно делать при помощи plain, bold, span
а стрелки для фаерфокса не убрал... input[type='number'] { -moz-appearance: textfield; }
Мозильщики могут вставить нужные им стили через GP.SEND("<style></style>");
, я думаю одними стрелками дело не ограничится
ок, еще на мозиле при уходе со вкладки всплывает сообщение с предложением сохранить имя пользователя и пароль из поля GP.TEXT
Какая назойливая лисичка
А на тетелефоне в Яндексе такой глаз сбоку...
Это печально
все понял, окошко с сохранением выползает если есть поле GP.PASS а в пользователя ему пофиг что запихнуть... даже 3.14 если убрать поле GP.TEXT...
да я уже понял что мозила совсем корявый браузер, у Spinner на светлой теме + и - уходят в право и лед вообще не светит... буду менять браузер наверно...
А на темной нормально спиннер?
Да
В хроме и там и там нормально
вот на темной
CUSTOM_CHECKBOX по примеру SWITCH
void CUSTOM_CHECKBOX(const String& name, bool state = 0, bool dis = false, PGM_P st = GP_GREEN) { String s; if (st != GPGREEN) { s += F("\n"); } s += F("<label id='_"); s += name; s += "'"; s += F(" class='custom-checkbox'><input type='checkbox' name='"); s += name; s += F("' id='"); s += name; s += "' "; if (state) s += F("checked "); if (dis) s += F("disabled "); s += F("onclick='GP_click(this)'>\n"); s += F(""); GP.SEND(s); }
лед на мозиле
остаётся пожелать мужества тем, кто разрабатывает фронтенд под все популярные браузеры. Хотя там bootstrap и не париться вообще
со всеми остальными я так понял понял проще, а вот мозила не такая как все...
не совсем конечно как у Вас, надо добавлять стили и т.д. но вот пример led через svg
код:
void CUSTOM_LED(byte colour) {
String s;
s += F("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"26\">\
svg там где достаточно css - это сильно)
тупая мозила она еще и название SPOILER_BEGIN делает посередине, и ей пофиг что он должен быть слева...
Изменил для себя GP_update чтобы иметь возможность добавить класс при обновлении элемента. Это позволит изменять элементы со всей мощью CSS на ходу. По сути GP_update как работал так и работает обновляя значения элементов но с дополнительными возможностями. Чтобы добавить класс надо в answer
после значения для элемента добавить;
и addClass:first
и в элемент добавится класс first
. Чтобы удалить класс first
надо к answer
добавить remClass:first
. Добавлять и удалять можно несколько классов разделяя имена пробелами, также удалять и добавлять можно одновременно в одном answer
.
addClass
и remClass
необходимо разделять ;
.
Примеры:
"data; addClass:first second third; remClass:first"
. Здесь добавятся 3 класса first second third
и удалится first
, data
это данные для обновления элемента.
100;remClass: second;addClass:fourth
Тут в элементе будет значение 100, удалится класс second
, и добавится класс forth
.
Можно просто добавить или удалить класс без значения для элемента addClass:fourth
.
Может Алексу понравится и он добавит в портал.
Демо работы добавления классов
Код из scripts.js
function GP_update(ids) {
var xhttp = new XMLHttpRequest();
xhttp.open('GET', '/GP_update?' + ids + '=', true);
xhttp.send();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var str = this.responseText.split(',');
ids = ids.split(',');
if (ids.length != str.length)return;
for (let i = 0; i < ids.length; i++) {
var item = document.getElementById(ids[i]);
if (!item || !str[i])continue;
resp = str[i].split(';');
resp.forEach((cmd,j) => {
let tmp = cmd.split(':');
if(tmp[0].trim() ==='addClass'){
item.classList.add(...tmp[1].trim().split(' '))
}else if(tmp[0].trim() ==='remClass'){
item.classList.remove(...tmp[1].trim().split(' '))
}else {
if (item.type == 'hidden' && item.value == '_reload') {
if (resp[j] == '1') location.reload();
} else if (item.type == 'checkbox' || item.type == 'radio') item.checked = Number(resp[j]);
else if (item.type == 'select-one') document.querySelector('#' + ids[i]).value = resp[j];
else if (item.type == undefined) item.innerHTML = resp[j];
else item.value = resp[j];
if (item.type == 'range') GP_change(item);
}});}
}
};
}
Добавленные классы в style.css
.red{color:red;}
.yellow{color:yellow;}
.green{color: green;}
.hide {
max-height: 99em;
opacity: 1;
overflow: hidden;
transition: opacity 1s linear, max-height 1s linear;
height: 60px; /* Указывать высоту придется для каждой скрываемой области
иначе анимация не работает */
overflow: hidden;
transition: all 0.3s ease;
}
.invisible{
height: 0;
opacity: 0;
}`
Если это использовать чисто для скрытия компонентов - не лучше сделать чисто на js на стороне браузера? Без передачи логики на МК
Сокрытие так, для демонстрации. Делал для изменения цвета компонентов.
Ну это шашечки)
Arduino IDE что-то не видит последний релиз.
3.3?
В следующей версии наконец то появится dashboard layout
А также рисование графики в браузере в стиле Processing!
CHANGELOG v3.4
TODO
v3.5
Лажа
Осмыслить
curl -vF firmware=@firmware.bin http://x.x.x.х/GP_OTAupload