GyverLibs / GyverPortal

Простой конструктор веб интерфейса для esp8266 и ESP32
MIT License
311 stars 25 forks source link

Идеи/проблемы на обновление v3.5 #55

Closed GyverLibs closed 1 year ago

GyverLibs commented 1 year ago

v3.5

TODO v3.5

ROADMAP

DenysChuhlib commented 1 year ago

Вы забыли релиз 3.4 сделать)

DenysChuhlib commented 1 year ago

Или это специально?

GyverLibs commented 1 year ago

я спать ушёл да

Tisero commented 1 year ago

GP.UPDATE("lbl1, lbl2, lbl3, lbl4");

GP.LABEL("NAN", "lbl1"); GP.LABEL("NAN", "lbl2"); GP.LABEL("NAN", "lbl3"); GP.LABEL("NAN", "lbl4");

void action() { if (portal.update()) { String i = "Kek"; portal.updateString("lbl1", i); // Обновляется
portal.updateString("lbl2", i); // обновляется
portal.updateString("lbl3", i); // Нет обновления portal.updateString("lbl4", i); // Нет обновления итд. } }

Обновляются значения только у первых двух компонентов, дальше обновления не происходят. На v3.3 и 3,4 проверял.

GyverLibs commented 1 year ago

список id должен быть без пробелов. Но это действительно баг, т.к. у меня сделано удаление пробелов через js, но оно удаляет только один)) спасибо за репорт

Allexnero commented 1 year ago

В примерах из раздела projects стоит BUILD_BEGIN(); а с 3,4 он перестал компилироваться, надо заменить на GP.BUILD_BEGIN(); и GP.BUILD_END(); соответственно.

GyverLibs commented 1 year ago

всё таки пропустил)

Serega88kos commented 1 year ago

в wiki не прописаны

// подключить функцию которая вызывается при ошибке
    void attachError(void (*handler)(const String& UpdateError)) {
        _OTAerror = *handler;
    }

    // отключить функцию которая вызывается при ошибке
    void detachError() {
        _OTAerror = nullptr;
    }

нужно ли их вызывать, перед? String error(); // вывести описание ошибки (например в label)

GyverLibs commented 1 year ago

@DenysChuhlib поясни

Serega88kos commented 1 year ago

@GyverLibs в новой версии этот код что-то не работает)

    GP.FILE_MANAGER(&LittleFS);  // передать ссылку на свою ф. систему (&LittleFS, &SPIFFS..) выводит список файлов из Flash памяти с кнопками для удаления (нужно настроить delete)
    GP.SYSTEM_INFO();            // выводит таблицу системной информации
    GP_VERSION;

на дисплее пусто

p.s. убрал GP.NAV_TABS_LINKS и все прогрузилось)

и как я вижу, для UI дизайн надо переделывать, иначе все разъезжается в ПК версии) в мобильной все ок

GyverLibs commented 1 year ago

@Serega88kos GP_VERSION; это строка char*, см. документацию. Её нужно куда-то вывести чтобы увидеть

для UI дизайн надо переделывать

Да вроде не надо, там такая же центральная колонка. Я тестировал на своих скетчах, сразу выглядело норм

DenysChuhlib commented 1 year ago

в wiki не прописаны

// подключить функцию которая вызывается при ошибке
    void attachError(void (*handler)(const String& UpdateError)) {
        _OTAerror = *handler;
    }

    // отключить функцию которая вызывается при ошибке
    void detachError() {
        _OTAerror = nullptr;
    }

нужно ли их вызывать, перед? String error(); // вывести описание ошибки (например в label)

Можно когда угодно

Serega88kos commented 1 year ago

@GyverLibs поправил предыдущее сообщение, не знаю, прочитал ли исправление... В UI в ПК получается у меня так, надпись слева, поле ввода справа, между ними огромное пустое пространство)

M_BLOCK(GP_THIN, "",
            "Настройки WIFI",
            M_BOX(GP.LABEL("SSID"); GP.TEXT("ssid", "", w.ssid, "200px"); );
            M_BOX(GP.LABEL("PASS"); GP.PASS("pass", "", w.pass, "200px"); ););

переходить на таблицы?)

Можно когда угодно

как его вызывать тогда? что-то у меня не получилось...

GyverLibs commented 1 year ago

надпись слева, поле ввода справа, между ними огромное пустое пространство

всё верно. У UI по умолчанию ширина 1000 пикс, у BOX ширина 100% и выравнивание по краям. Либо уменьшать ширину UI, либо уменьшать ширину BOX, либо сложить всё в таблицу и задать ширину её или UI

DenysChuhlib commented 1 year ago

Можно когда угодно

как его вызывать тогда? что-то у меня не получилось...

Придумай, там просто подключил функцию, и через сериал выводишь, например

GyverLibs commented 1 year ago

по задумке error можно вывести в LABEL прямо под кнопкой OTA обновления. Если будет ошибка - он появится. Если плата перезагрузится - и лейбл чист - ошибки нет

Serega88kos commented 1 year ago

@GyverLibs файл темы с глазом смотрю подправил, но у меня что-то не вернулся на нужное место...

GP.BUILD_BEGIN(GP_LIGHT);
GP.UI_BEGIN("Меню", "", "");

заголовок меню в мобильной версии на черном фоне, так и задумано?

GyverLibs commented 1 year ago

у меня что-то не вернулся на нужное место...

обнови браузер и почисть кеш. Я специально скачал всяких говнобраузеров и проверил, глаз везде работает корректкно

заголовок меню в мобильной версии на черном фоне

в мобильной светлой теме верхний бар чёрный

Serega88kos commented 1 year ago

Скачал новый, Brave, глаз за пределами. g34

GyverLibs commented 1 year ago

ну тут мои полномочия всё)

Serega88kos commented 1 year ago

по задумке error можно вывести в LABEL прямо под кнопкой OTA обновления.

это понятно, непонятно к чему привязать, никак не принимает компилятор... даже Денис ответил, придумай что-нибудь)

Serega88kos commented 1 year ago

ну тут мои полномочия всё)

margin-left:260px;margin-top:-5px; мой старый вариант g341 тут глаз плавает, в зависимости от ширины)

DenysChuhlib commented 1 year ago

по задумке error можно вывести в LABEL прямо под кнопкой OTA обновления.

это понятно, непонятно к чему привязать, никак не принимает компилятор... даже Денис ответил, придумай что-нибудь)

Что не принимает? Покажи тогда

GyverLibs commented 1 year ago

тут глаз плавает, в зависимости от ширины

что это за браузер?

Serega88kos commented 1 year ago

тут глаз плавает, в зависимости от ширины

что это за браузер?

brave.com да и в любом другом...

SPINNER(): УБРАНА ШИРИНА, сделана автоширина, значение по центру

как теперь обходить этот момент. если спиннеров несколько и все разные значения, то уже не выходят все под одну ширину)

Serega88kos commented 1 year ago

@MalfurionST у тебя тоже глазик барахлил, как сейчас дела?)

GyverLibs commented 1 year ago

проблема явно где то у тебя. Вот хром/яндекс/brave/edge image

GyverLibs commented 1 year ago

не выходят все под одну ширину)

что нибудь придумаю upd. Сделал

Serega88kos commented 1 year ago

сделал проще макрос и решил с таблицей)

    M_TABLE(
            M_TR(
              GP.LABEL("SSID");
              GP.TEXT("ssid", "", w.ssid););
            M_TR(
              GP.LABEL("PASS");
              GP.PASS("pass", "", w.pass);););

вот в таком виде глаз идеально встает) а было так

M_BLOCK(GP_THIN, "", "Настройки WIFI",
            M_BOX(GP.LABEL("SSID"); GP.TEXT("ssid", "", w.ssid, "150px"););
            M_BOX(GP.LABEL("PASS"); GP.PASS("pass", "", w.pass, "150px");););

g342

GyverLibs commented 1 year ago

понятно, глаз убегает при использовании внутри THIN BLOCK. Но почему - непонятно, починим)

DenysChuhlib commented 1 year ago

Просматривая файлы в глаз кинулся нюансик.

#define M_TR10(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) M_TR8(a1,a2,a3,a4,a5,a6,a7,a8,a9); GP.TD(); a10;

Может там должен быть M_TR9 а не 8?

DenysChuhlib commented 1 year ago

Жесть это теперь мощный инструмент, у меня глаза розбегаються в bilder.h

GyverLibs commented 1 year ago

Может там должен быть M_TR9

фига ты глазастый) сейчас пойду фиксить

GyverLibs commented 1 year ago

@DenysChuhlib ты в canvas загляни ещё)

DenysChuhlib commented 1 year ago

@DenysChuhlib ты в canvas загляни ещё)

Я видел, надо будет разобраться

Serega88kos commented 1 year ago

@GyverLibs предложение, вывод системной информации сделать компактнее, не через строчку. Места больно много занимает)

GyverLibs commented 1 year ago

а оно не через строчку... что то поломалось, строки таблицы раздулись. Перед загрузкой релиза всё было окей)))

GyverLibs commented 1 year ago

залил текущие фиксы, можно забирать

Serega88kos commented 1 year ago

В UI меню, если сделать длинное название ссылки (различные настройки), до получаются две строки и выравнивание посередине. Глаз заработал. Информация компактная. Спиннер, ширина работает.

GyverLibs commented 1 year ago

пофиксил

Serega88kos commented 1 year ago

все ок. такой вариант GP.LABEL(String(day + "/" + month + "/" + year)); через GP.SEND(); делать?)

GyverLibs commented 1 year ago

GP.LABEL уже выводит текст на страницу...

Serega88kos commented 1 year ago

ругается на оператор + по отдельности выводит, но интервал между ними большой

GyverLibs commented 1 year ago

ругается на оператор +

Уже в который раз отправляю читать про стринги https://alexgyver.ru/lessons/strings/

Serega88kos commented 1 year ago

словил баг, ссылка выровнялась на середину, возможно из-за таблицы, экспериментировал с шириной колонок.

Serega88kos commented 1 year ago

Баг на спиннере, когда меняешь значения, сбивается ширина.

GyverLibs commented 1 year ago

У спиннера автоширина

Serega88kos commented 1 year ago

с пк такого прикола нет, а с мобильного есть)

GyverLibs commented 1 year ago

Блин не понял, покажи подробнее

GyverLibs commented 1 year ago

Спин с фиксированной шириной на мобиле не меняет ширину при нажатии у меня