Не обновляються меню Управления при использовании Javascript

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 694 раза
Контактная информация:

Re: Не обновляються меню Управления при использовании Javasc

Сообщение directman66 » Сб апр 29, 2017 10:05 am

Интересный пример с индикатором. Но можно попробовать его сделать и без картинок (графики)
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Не обновляються меню Управления при использовании Javasc

Сообщение nick7zmail » Сб апр 29, 2017 10:31 am

Легко. В шрифте FontAwesome к примеру есть индикаторы батареи.
Вложения
bat.jpg
bat.jpg (26.34 КБ) 4149 просмотров
За это сообщение автора nick7zmail поблагодарили (всего 2):
directman66 (Сб апр 29, 2017 10:57 am) • Amarok (Сб окт 21, 2017 8:18 am)
Рейтинг: 2.33%
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
Vovix
Сообщения: 1155
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Благодарил (а): 60 раз
Поблагодарили: 532 раза
Контактная информация:

Re: Не обновляються меню Управления при использовании Javasc

Сообщение Vovix » Сб апр 29, 2017 10:54 am

nick7zmail писал(а):Кажется вспомнил в чем дело))) Я об этом догадывался - но надо было проверить...
Java коряво отрабатывает в элементах меню.
...
:D зря вы так!
он не коряво работает (обидно даже за систему)
это принцип работы такой, т.е. отрабатывает всё как надо...
просто, если вы весь javascript код присвоите в свойство объекта и будете его выводить в меню через %Объект.СвойствоКод%
то он будет участвовать в сокетах и при его изменении всё будет отрабатываться!
А так (по листингу в начале) он отрабатывается один раз при загрузке страницы!

логика простая в сокетах участвует только то, что между %, остальное через обновление страницы!
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Не обновляються меню Управления при использовании Javasc

Сообщение nick7zmail » Сб апр 29, 2017 11:00 am

Vovix писал(а): :D зря вы так!
Не знаю зря/не зря...но попробуй модуль "продукты" в меню закинуть...там ни одна кнопка не работает. Ибо они все на яве.
Последний раз редактировалось nick7zmail Сб апр 29, 2017 11:00 am, всего редактировалось 1 раз.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 694 раза
Контактная информация:

Re: Не обновляються меню Управления при использовании Javasc

Сообщение directman66 » Сб апр 29, 2017 11:00 am

Мой вариант с картинками:

В меню под state добавляем:

Код: Выделить всё

<img size="4" src="/img/%admin.batterypic%" width=40 haight=20 title="Dmitriy %admin.BattLevel%%">
в сценарии добавляем

Код: Выделить всё

$objects=getObjectsByClass("Users");
foreach($objects as $obj)
 {
//$name='admin';
 
 $name=$obj['TITLE'];
$charging=gg($name.'.Charging');
$bl=gg($name.'.BattLevel');
 echo  $charging;
echo $bl;
if ( $charging== 1){
 sg($name.'.batterypic',"charge/batterycharged256.png");
    } 
 else if  ($bl == 100){
   sg($name.'.batterypic',"charge/batteryfull256.png");
        } 
 else if  ($bl   <= 95) {
  sg($name.'.batterypic',"charge/battery3256.png");   
     }
else if  ($bl   <= 50) {
  sg($name.'batterypic',"charge/batteryhalf256.png");   
     }

else if ($bl   <= 20) {
  sg($name.'batterypic',"charge/battery1256.png");   
     }

else if ( $bl   <= 5 ){
  sg($name.'batterypic',"charge/batteryempty256.png");   
     }
}
и вызываем сценарий каждую минуту через таймер onnewminute
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Не обновляються меню Управления при использовании Javasc

Сообщение nick7zmail » Сб апр 29, 2017 11:01 am

Можно не вызывать каждую минуту, а привязать к обновлению свойства с процентами заряда.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
Vovix
Сообщения: 1155
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Благодарил (а): 60 раз
Поблагодарили: 532 раза
Контактная информация:

Re: Не обновляються меню Управления при использовании Javasc

Сообщение Vovix » Сб апр 29, 2017 11:06 am

nick7zmail писал(а): Не знаю зря/не зря...но попробуй модуль "продукты" в меню закинуть...там ни одна кнопка не работает. Ибо они все на яве.
а зачем его в меню!
его вызывать можно из меню!
я написал почему не работает!

иногда подобные задачи обновления у себя решаю через периодический таймер

Код: Выделить всё

// запуск таймера на 2 секунды
setInterval(function() {
...
}, 2000); 
пока нет другого решения - работает всё как надо!
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Не обновляються меню Управления при использовании Javasc

Сообщение nick7zmail » Сб апр 29, 2017 11:09 am

а зачем его в меню!
его вызывать можно из меню!
я написал почему не работает!
Ну просто тестил...если есть возможность вызвать в меню - почему бы не попробовать)))
И если для рукописного скрипта можно код запихать в свойство, то для модуля этого не сделать.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
Vovix
Сообщения: 1155
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Благодарил (а): 60 раз
Поблагодарили: 532 раза
Контактная информация:

Re: Не обновляються меню Управления при использовании Javasc

Сообщение Vovix » Сб апр 29, 2017 11:15 am

таким образом, вот так должно работать (не проверял):

Код: Выделить всё

<br/>
Заряд телефона %K.BattLevel%% <img id="rozetka" width=40 haight=40> 
<script type="text/javascript">
setInterval(function() {

     if ( %K.HomeDistanceKm% <= 0){
        document.getElementById("home2").innerHTML = "Дома";
     } else{
        document.getElementById("home2").innerHTML = "Не Дома";
     }
     if ( %K.Charging% == 1){
        document.getElementById("rozetka").src="/img/charge/batterycharged256.png";
     } else if ( %K.BattLevel% == 100){
            document.getElementById("rozetka").src="/img/charge/batteryfull256.png";
     } else if ( %K.BattLevel%  <= 95 ){
            document.getElementById("rozetka").src="/img/charge/battery3256.png";
     } else if ( %K.BattLevel%  <= 50){
            document.getElementById("rozetka").src="/img/charge/batteryhalf256.png";
     } else if ( %K.BattLevel%  <= 20){
            document.getElementById("rozetka").src="/img/charge/battery1256.png";
     } else ( %K.BattLevel%  <= 3){
            document.getElementById("rozetka").src="/img/charge/batteryempty256.png";
     }

}, 2000); 
 </script>
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Аватара пользователя
Vovix
Сообщения: 1155
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Благодарил (а): 60 раз
Поблагодарили: 532 раза
Контактная информация:

Re: Не обновляються меню Управления при использовании Javasc

Сообщение Vovix » Сб апр 29, 2017 11:25 am

ну и код можно сократить и улучшить:
заменить
document.getElementById("rozetka").src на $("#rozetka").scr

и if ... else перестроить на switch ... case

я думаю, что вариант на javascript лучше, чем использование сценария, т.к. не загружает сервер (Алису) такими задачами!
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Ответить