Страница 2 из 3

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

Добавлено: Сб апр 29, 2017 10:05 am
directman66
Интересный пример с индикатором. Но можно попробовать его сделать и без картинок (графики)

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

Добавлено: Сб апр 29, 2017 10:31 am
nick7zmail
Легко. В шрифте FontAwesome к примеру есть индикаторы батареи.

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

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

логика простая в сокетах участвует только то, что между %, остальное через обновление страницы!

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

Добавлено: Сб апр 29, 2017 11:00 am
nick7zmail
Vovix писал(а): :D зря вы так!
Не знаю зря/не зря...но попробуй модуль "продукты" в меню закинуть...там ни одна кнопка не работает. Ибо они все на яве.

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

Добавлено: Сб апр 29, 2017 11:00 am
directman66
Мой вариант с картинками:

В меню под 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

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

Добавлено: Сб апр 29, 2017 11:01 am
nick7zmail
Можно не вызывать каждую минуту, а привязать к обновлению свойства с процентами заряда.

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

Добавлено: Сб апр 29, 2017 11:06 am
Vovix
nick7zmail писал(а): Не знаю зря/не зря...но попробуй модуль "продукты" в меню закинуть...там ни одна кнопка не работает. Ибо они все на яве.
а зачем его в меню!
его вызывать можно из меню!
я написал почему не работает!

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

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

// запуск таймера на 2 секунды
setInterval(function() {
...
}, 2000); 
пока нет другого решения - работает всё как надо!

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

Добавлено: Сб апр 29, 2017 11:09 am
nick7zmail
а зачем его в меню!
его вызывать можно из меню!
я написал почему не работает!
Ну просто тестил...если есть возможность вызвать в меню - почему бы не попробовать)))
И если для рукописного скрипта можно код запихать в свойство, то для модуля этого не сделать.

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

Добавлено: Сб апр 29, 2017 11:15 am
Vovix
таким образом, вот так должно работать (не проверял):

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

<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>

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

Добавлено: Сб апр 29, 2017 11:25 am
Vovix
ну и код можно сократить и улучшить:
заменить
document.getElementById("rozetka").src на $("#rozetka").scr

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

я думаю, что вариант на javascript лучше, чем использование сценария, т.к. не загружает сервер (Алису) такими задачами!