From 2858c1b4bffa47c59a48a9c1ef4980bc250a2aaa Mon Sep 17 00:00:00 2001 From: Byte09 Date: Sun, 26 Jan 2020 08:30:59 +0000 Subject: [PATCH] MSwitch_Wizard.js:initial commit git-svn-id: https://svn.fhem.de/fhem/trunk@21053 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/www/pgm2/MSwitch_Wizard.js | 1129 +++++++++++++++++++++++++++++++ 1 file changed, 1129 insertions(+) create mode 100644 fhem/www/pgm2/MSwitch_Wizard.js diff --git a/fhem/www/pgm2/MSwitch_Wizard.js b/fhem/www/pgm2/MSwitch_Wizard.js new file mode 100644 index 000000000..b4d7e9a07 --- /dev/null +++ b/fhem/www/pgm2/MSwitch_Wizard.js @@ -0,0 +1,1129 @@ +//######################################################################################## +// MSwitch_Wizard.js +// Version 0.8 +// See 98_MSwitch.pm for licensing +//######################################################################################## +//# Byte09 + + + + var version = 'V0.8 beta'; + var logging ='off'; + var observer; + var target; + var lastevent; + var show = 'off'; + var offtime =1000; + var sets = new Object(); + + var configstart = [ + '#V Version', + '#VS V2.00', + '#S .First_init -> done', + '#S .Trigger_off -> no_trigger', + '#S .Trigger_cmd_off -> no_trigger', + '#S Trigger_device -> no_trigger', + '#S Trigger_log -> off', + '#S .Trigger_on -> no_trigger', + '#S .Trigger_cmd_on -> no_trigger', + '#S .Trigger_condition -> ', + '#S .V_Check -> V2.00', + '#S .Device_Events -> no_trigger', + '#S .Device_Affected -> no_device', + '#S .Trigger_time -> ', + '#A MSwitch_Debug -> 0', + '#A MSwitch_Delete_Delays -> 0', + '#A MSwitch_Eventhistory -> 0', + '#A MSwitch_Safemode -> 1', + '#A MSwitch_Lock_Quickedit -> 1', + '#A MSwitch_Help -> 0', + '#A room -> MSwitch_Devices', + '#A MSwitch_Extensions -> 0', + '#A MSwitch_Ignore_Types -> notify allowed at watchdog doif fhem2fhem telnet FileLog readingsGroup FHEMWEB autocreate eventtypes readingsproxy svg cul', + '#A MSwitch_Include_Webcmds -> 0', + '#A MSwitch_Include_MSwitchcmds -> 0', + '#A MSwitch_Mode -> Notify', + '#A MSwitch_Expert -> 0', + '#A MSwitch_Include_Devicecmds -> 1']; + + + + +// starte Hauptfenster +conf('importWIZARD','wizard'); + +//#################################################################################################### +// init eventmonitor + +// Konfiguration des Observers: alles melden - Änderungen an Daten, Kindelementen und Attributen + var config = { attributes: true, childList: true, characterData: true }; +// test observer +// zu überwachende Zielnode (target) auswählen + target = document.querySelector('div[informid="'+devicename+'-EVENTCONF"]'); + +// eine Instanz des Observers erzeugen + observer = new MutationObserver(function(mutations) { + mutations.forEach(function(mutation) { + + var test = $( "div[informId='"+devicename+"-EVENTCONF']" ).text(); + test = test.replace(/ /gi,""); + + document.getElementById('tf').innerHTML = test; + + if(o[test]){return;} + + var event = test.split(':'); + var newevent = event[1]+':'+event[2] + if (event[0] != document.getElementById('3').value) + { + return; + } + if (logging == 'off') + { + return; + } + lastevent=newevent; + o[test] = test; + + // eintrag in dropdown und fenster ausblenden + newselect = $(''); + $(newselect).appendTo('#6step'); + + // umwandlung des objekts in standartarray + var a3 = Object.keys(o).map(function (k) { return o[k];}) + // array umdrehen + a3.reverse(); + $( '#eventcontrol' ).text( '' ); + var i; + for (i = 0; i < 30; i++) + { + if (a3[i]) + { + var newselect = $(''); + $(newselect).appendTo('#eventcontrol'); + } + } + }); +}); + + +//#################################################################################################### + + +function eventmonitorstop(){ + if (observer){ + observer.disconnect(); + //document.getElementById('tf').innerHTML = 'Monitor angehalten'; + } + return; +} + +function eventmonitorstart(){ + + //document.getElementById('tf').innerHTML = 'Monitor gestartet'; + var newselect = $(''); + $(newselect).appendTo('#6step'); + observer.observe(target, config); + + return; +} + +function closeall(){ + + logging ='off'; + o = new Object(); + eventmonitorstop() + + if (show == 'off'){ + document.getElementById('4step1').style.display='none'; + document.getElementById('4step2').style.display='none'; + document.getElementById('5step1').style.display='none'; + document.getElementById('5step2').style.display='none'; + document.getElementById('2step1').style.display='none'; + document.getElementById('2step2').style.display='none'; + document.getElementById('3step1').style.display='none'; + document.getElementById('3step2').style.display='none'; + } + document.getElementById('monitor').style.display='none'; + + return; +} +// settyp +function settypptime(inhalt,open,fill) { + openraw=open; + // #inh1 =inhalt + // #open = freizuschaltendezeile + // #fill = zu füllendes feld + open=openraw+'1'; + open1=openraw+'2'; + + if (open == '3step1') + { + closeall(); + $( '#eventcontrol' ).text( '' ); + document.getElementById('help').innerHTML = 'Bitte das Device wählen , das als Trigger dient.'; + + } + + if (open == '2step1') + { + closeall(); + document.getElementById('help').innerHTML = 'Bitte die Zeit angeben, zu der das MSwitc-Device auslösen soll.
'; + document.getElementById('help').innerHTML += 'Hier stehen mehrere Formate zur Verfügung
'; + document.getElementById('help').innerHTML += 'Bitte eine Vorauswahl treffen :
 
'; + + } + + if (open == '4step1') + { + closeall(); + document.getElementById('monitor').style.display='block'; + document.getElementById('help').innerHTML = 'Bitte das entsprechende Event manuell auslösen. Entweder durch der gewählten Hardware, oder durch schalten des entsprechenden MSwitchdevices.Wenn das gewünschte Event im Monitor sichtbar ist auf den Button klicken'; + + $( '#6step' ).text( '' ); + $( '#eventcontrol' ).text( '' ); + text = 'Warte auf eingehende Events des Devices '+inhalt+' ... '; + text =text+' '; + document.getElementById('4step1').innerHTML = text; + + logging='on'; + eventmonitorstart(); + } + + if (open == '5step1') + { + eventmonitorstop(); + logging = 'off'; + closeall(); + // 5 + document.getElementById('5').value=lastevent; + document.getElementById('help').innerHTML = 'Bitte das auslösende Event aus der Dropdownliste wählen. Im rechten Feld kann das Event manuell angepasst werden.'; + } + + + if (document.getElementById(fill)){document.getElementById(fill).value=inhalt;} + + if (document.getElementById(open)) { + document.getElementById(open).style.display='block'; + } + if (document.getElementById(open1)) { + document.getElementById(open1).style.display='block'; + } + + if (open == '6step1') + { + // wird von fertig gewähltem event aufgerufen + // starte Teil2 + // endptime(); + setTimeout(endptime, offtime); + } + + if (open == '7step1') + { + // auswahl time event fertig + // starte Teil2 + setTimeout(endptime, offtime); + } + + return; + } + + +function reset() { + var nm = devicename; + var def = nm+' reset_device checked'; + location = location.pathname+'detail='+devicename+'&cmd=set '+addcsrf(def); + return; + } + +function endptime() { + + // schliessen aller P1Fenster + document.getElementById('help').innerHTML = ''; + document.getElementById('1step1').style.display='none'; + document.getElementById('1step2').style.display='none'; + document.getElementById('4step1').style.display='none'; + document.getElementById('4step2').style.display='none'; + document.getElementById('5step1').style.display='none'; + document.getElementById('5step2').style.display='none'; + document.getElementById('2step1').style.display='none'; + document.getElementById('2step2').style.display='none'; + document.getElementById('3step1').style.display='none'; + document.getElementById('3step2').style.display='none'; + document.getElementById('monitor').style.display='none'; + document.getElementById('showall').disabled = false; + + + // starte teil2 + createpart2(); + return; + } + +function togglep1() { + //show = 'on'; + + if (show == 'on'){ + show = 'off'; + insert = 'none'; + } + else if(show == 'off'){ + show = 'on'; + insert = 'block'; + } + + // schliessen aller P1Fenster + document.getElementById('help').innerHTML = ''; + document.getElementById('1step1').style.display=insert; + document.getElementById('1step2').style.display=insert; + document.getElementById('4step1').style.display=insert; + document.getElementById('4step2').style.display=insert; + document.getElementById('5step1').style.display=insert; + document.getElementById('5step2').style.display=insert; + document.getElementById('2step1').style.display=insert; + document.getElementById('2step2').style.display=insert; + document.getElementById('3step1').style.display=insert; + document.getElementById('3step2').style.display=insert; + document.getElementById('monitor').style.display='block'; + + return; + } + + +// hauptfenster wählen +function conf(typ,but){ + eventmonitorstop() + //alert(typ+'-'+but); + document.getElementById('help').innerHTML = ''; + + document.getElementById('importAT').style.display='none'; + document.getElementById('importNOTIFY').style.display='none'; + document.getElementById('importCONFIG').style.display='none'; + document.getElementById('importWIZARD').style.display='none'; + document.getElementById('importPRECONF').style.display='none'; + + document.getElementById('wizard').style.backgroundColor=''; + document.getElementById('config').style.backgroundColor=''; + document.getElementById('importat').style.backgroundColor=''; + document.getElementById('importnotify').style.backgroundColor=''; + document.getElementById('importpreconf').style.backgroundColor=''; + + document.getElementById(typ).style.display='block'; + document.getElementById(but).style.backgroundColor='#ffb900'; + + if (but == 'wizard'){ + // neustart wizard + startwizardtrigger(); + } + + if (but == 'config'){ + // neustart wizard + startconfig(); + } + + if (but == 'importat'){ + // neustart wizard + startimportat(); + } + + if (but == 'importnotify'){ + // neustart wizard + startimportnotify(); + } + return; +} + +function start1(name){ + + + + + // this code will run after all other $(document).ready() scripts + // have completely finished, AND all page elements are fully loaded. + // alarm(); + $( ".makeSelect" ).text( "" ); + $( "[class='makeTable wide readings']" ).hide(); + $( "[class='makeTable wide internals']" ).hide(); + $( "[class='makeTable wide attributes']" ).hide(); + $( "[class=\"detLink iconFor\"]" ).hide(); + $( "[class=\"detLink rawDef\"]" ).hide(); + $( "[class=\"detLink devSpecHelp\"]" ).hide(); + $( "[class=\"detLink showDSI\"]" ).text( "" ); + r3 = $('Reset this device ('+name+')'); + $(r3).appendTo('[class=\"detLink showDSI\"]'); + +// fülle configfenster + fillconfig('rawconfig'); + startwizardtrigger(); +} + +function startwizardtrigger(){ + + document.getElementById('makeconf').style.backgroundColor='#ff0000'; + document.getElementById('saveconf').style.backgroundColor='#ff0000'; + + document.getElementById('makeconf').disabled = true; + document.getElementById('saveconf').disabled = true; + + +// help + document.getElementById('help').innerHTML = 'Bitte wählen, ob die Auslösung des MSwitch-Devices durch ein Event oder zeitgesteuert erfolgen soll.'; + +// htmlaufbau + +document.getElementById('showall').disabled = true; + + + // document.getElementById('version').innerHTML = 'Wizardversion '+version; + document.getElementById('monitor').style.display='none'; +// ## + line = 'Was für ein Ereigniss soll das MSwitch auslösen ( Trigger ) ?    '; + line =line+' '; + line =line+' '; + document.getElementById('1step1').innerHTML = line; +// ## + line =''; + document.getElementById('1step2').innerHTML = line; +// ## + line = ''; + line += '' + line += '' + line += '' + + line += '' + line += '
'; + + line += ''; + line += '
'; + + fbutton = ''; + + line += ''; + line += ''; + line += ''; + + line += '
'; + + document.getElementById('2step1').innerHTML = line; + document.getElementById('2step1').style.display='none'; + line =' '; + document.getElementById('2step2').innerHTML = line; + document.getElementById('2step2').style.display='none'; + document.getElementById('1step1').style.display='block'; + document.getElementById('1step2').style.display='block'; +// ## + line = 'Welches Gerärt soll der Auslöser sein ?     '; + line += devicelist('4step','3','settypptime'); + + document.getElementById('3step1').innerHTML = line; + document.getElementById('3step1').style.display='none'; + line =''; + document.getElementById('3step2').innerHTML = line; + document.getElementById('3step2').style.display='none'; +// ## + line = 'Warte auf eingehende Events des Devices '; + document.getElementById('4step1').innerHTML = line; + document.getElementById('4step1').style.display='none'; +// ## + line = 'Auslösendes Event wählen ?     '; + line =line+''; + document.getElementById('5step1').innerHTML = line; + document.getElementById('5step1').style.display='none'; + line =''; + document.getElementById('5step2').innerHTML = line; + document.getElementById('5step2').style.display='none'; + + return ; + + } + +function makeconfig(){ + // configstart[0] = '#V '+mVersion; + if (document.getElementById('first').value == 'time'){ + // ändere config für timeevent + string = document.getElementById('2').value; + // ersetze dp durch #[dp] + string = string.replace(/:/gi,"#[dp]"); + configstart[13] ='#S .Trigger_time -> on~off~ononly'+ string +'~offonly~onoffonly'; + } + + if (document.getElementById('first').value == 'event'){ + // ändere config für triggerevent + configstart[5] ='#S Trigger_device -> '+ document.getElementById('3').value; + configstart[8] ='#S .Trigger_cmd_on -> '+ document.getElementById('5').value; + } + + // ############ nur für volle befehlseingabe + // affected devices und befehl + + if (document.getElementById('a11').value == 'FreeCmd') + { + // nur für freie befehlseingabe + // alert('zweig nicht definiert'); + var cmdstring = document.getElementById('tra23end').value; + configstart[12] ='#S .Device_Affected -> '+ document.getElementById('a11').value +'-AbsCmd1'; + var newcmdline = '#S .Device_Affected_Details -> '+ document.getElementById('a11').value +'-AbsCmd1'+'#[NF]undefined#[NF]cmd#[NF]'+cmdstring+'#[NF]#[NF]delay1#[NF]delay1#[NF]00:00:00#[NF]00:00:00#[NF]#[NF]#[NF]undefined#[NF]undefined#[NF]1#[NF]0#[NF]#[NF]0#[NF]0#[NF]1#[NF]0'; + // #S .Device_Affected_Details -> FreeCmd-AbsCmd1#[NF]undefined#[NF]cmd#[NF]{;;fhem("set test on"};;;}#[NF]#[NF]delay1#[NF]delay1#[NF]00:00:00#[NF]00:00:00#[NF]#[NF]#[NF]undefined#[NF]undefined#[NF]1#[NF]0#[NF]#[NF]0#[NF]0#[NF]1#[NF]0 + //FW_okDialog(newcmdline); + //return; + configstart[29]=newcmdline; + } + else{ + + + // nur für definierte befehlseingabe + configstart[12] ='#S .Device_Affected -> '+ document.getElementById('a11').value +'-AbsCmd1'; + // befehl aufteilen + savedcmd = document.getElementById('tra33end').value; + + cmdarray= savedcmd.split(" "); + //alert('savecmd: '+savedcmd); + //alert('array0: '+cmdarray[0]); + //alert('array1: '+cmdarray[1]); + //alert('array2: '+cmdarray[2]); + // länge ermittel jedes element zufügen falls nicht leerzeichen + if (cmdarray[1] != " "){ + secondstring = cmdarray[1]; + } + if (cmdarray[2] != " "){ + secondstring = cmdarray[2]; + } + + var newcmdline = '#S .Device_Affected_Details -> '+ document.getElementById('a11').value +'-AbsCmd1'+'#[NF]'+cmdarray[0]+'#[NF]no_action#[NF]'+secondstring+'#[NF]#[NF]delay1#[NF]delay1#[NF]00:00:00#[NF]00:00:00#[NF]#[NF]#[NF]undefined#[NF]undefined#[NF]1#[NF]0#[NF]#[NF]0#[NF]0#[NF]1#[NF]0'; + //FW_okDialog(newcmdline); + + configstart[29]=newcmdline; + + } + + // ######################################### + fillconfig('rawconfig') + + document.getElementById('saveconf').style.backgroundColor=''; + document.getElementById('saveconf').disabled = false; + + return; +} + +function fillconfig(name){ + var showconf=''; + configstart[0] = '#V '+mVersion; + conflines = configstart.length ; + for (i = 0; i < conflines; i++) + { + showconf = showconf+configstart[i]+'\n'; + } + document.getElementById(name).innerHTML = showconf; + +} + +function saveconfig(name){ + + + //alert('In dieser Version noch nicht verfügbar'); + //return; + conf = document.getElementById(name).value; + conf = conf.replace(/\n/g,'#[EOL]'); + conf = conf.replace(/:/g,'#c[dp]'); + conf = conf.replace(/;/g,'#c[se]'); + conf = conf.replace(/ /g,'#c[sp]'); + + var nm = devicename; + var def = nm+' saveconfig '+encodeURIComponent(conf); + + location = location.pathname+'?detail='+devicename+'&cmd=set '+addcsrf(def); + return; +} + +function getday(name){ + var addon = ''; + return addon; +} + + +function settimetyp(name){ + + document.getElementById('typ1').style.display='none'; + document.getElementById('typ2').style.display='none'; + document.getElementById('typ3').style.display='none'; + + if (name == 'typ0'){ + document.getElementById('help').innerHTML = 'Bitte die Zeit angeben, zu der das MSwitc-Device auslösen soll.
'; + document.getElementById('help').innerHTML += 'Hier stehen mehrere Formate zur Verfügung
'; + document.getElementById('help').innerHTML += 'Bitte eine Vorauswahl treffen :
 
'; + return; + } + + document.getElementById('help').innerHTML = 'Bitte die gewünschten Zeiten angeben.'; + document.getElementById(name).style.display='block'; + return; + +} + + +function gettime(name){ + var hour; + for (i=0; i<24; i++) + { + change = ("00" + i).slice(-2); + hour += ''; + } + var min; + for (i=0; i<60; i++) + { + change=("00" + i).slice(-2); + min += ''; + } + + var sel1 = ''; + sel1 += ':'; + sel1 += ''; + +return sel1; +} + +function settime(){ + typ = document.getElementById('timetyps').value; + //alert(typ) + var ret; + if ( typ =='typ0'){ + return; + } + + if ( typ =='typ1'){ + // exakte Zeitangabe + hh = document.getElementById('normal1').value; + mm = document.getElementById('normal2').value; + // tag + dd = document.getElementById('day1day').value; + ret = '['+hh+':'+mm+dd+']'; + //alert(ret); + } + + if ( typ =='typ2'){ + // exakte Zeitangabe + // zeitpunkt 1 + hh = document.getElementById('zufall1').value; + mm = document.getElementById('zufall2').value; + // zeitpunkt 2 + hh1 = document.getElementById('zufall11').value; + mm1 = document.getElementById('zufall12').value; + // tag + dd1 = document.getElementById('zufal3day').value; + ret = '[?'+hh+':'+mm+'-'+hh1+':'+mm1+dd1+']'; + //alert(ret); + } + + if ( typ =='typ3'){ + // exakte Zeitangabe + // zeitpunkt 1 + hh = document.getElementById('periodic11').value; + mm = document.getElementById('periodic12').value; + // zeitpunkt 2 + hh1 = document.getElementById('periodic31').value; + mm1 = document.getElementById('periodic32').value; + // tag + dd1 = document.getElementById('periodic4day').value; + // intrtvall + intervallhh=document.getElementById('periodic1').value; + intervallmm=document.getElementById('periodic2').value; + + ret = '['+intervallhh+':'+intervallmm+'*'+hh+':'+mm+'-'+hh1+':'+mm1+dd1+']'; + } + + settypptime(ret,'7step','2'); + return; +} + +function createpart2(){ + + eventmonitorstop(); + // hole geräteliste + ret = devicelist('a1','a1','setaffected',1); + // hole befehlsliste dur gewähltes gerät + + line = ''; + line += ''; + line += ''; + line += ''; + line += ''; + + // id des select,name des select,scriptname,flag ( gesetzt - freie Befehlseingabe ) + line +=''; + line +=''; + line +=''; + line +=''; + line +=''; + line +=''; + line +=''; + line +=''; + line +=''; + line +=''; + line +=''; + line +=''; + line +=''; + line +=''; + line +=''; + line += '
Teil Ausführung '; + line += ''; + line += '
Welches Gerät soll geschaltet werden ?'+ret+'
Auszuführender Befehl:
'; + line +='
'; + line +='
Auszuführender Befehl:
'; + line +=''; + line +=''; + line +='test'; + line +='
'; + document.getElementById('part2').innerHTML =line; + +} + +function devicelist(id,name,script,flag){ + + // erstelle geräteliste'+id+'+name+' + ret = ''; + return ret; + +} + +function setaffected(inhalt,id,name){ + + if (inhalt == 'select'){ + document.getElementById('tra31').style.display='none'; + document.getElementById('tra32').style.display='none'; + document.getElementById('tra33').style.display='none'; + document.getElementById('tra21').style.display='none'; + document.getElementById('tra22').style.display='none'; + document.getElementById('tra23').style.display='none'; + return; + } + if (inhalt == 'free'){ + // wähle fenster 'freie eingabe' + document.getElementById('tra31').style.display='none'; + document.getElementById('tra32').style.display='none'; + document.getElementById('tra33').style.display='none'; + document.getElementById('tra21').style.display='block'; + document.getElementById('tra22').style.display='block'; + document.getElementById('tra23').style.display='block'; + document.getElementById(id+'1').value='FreeCmd'; + return; + } + + + if (id == 'a1'){ + //schritt 1 deviceauswahl + device = devices[inhalt]; + document.getElementById(id+'1').value= device; + seloptions = makecmdhash(cmds[inhalt]); + document.getElementById('setcmd').innerHTML = 'set '+device+' '; + document.getElementById('setcmd').innerHTML += seloptions; + document.getElementById('setcmd1').innerHTML =''; + out = ''; + document.getElementById('setcmd2').innerHTML =out; + document.getElementById('tra31').style.display='block'; + document.getElementById('tra32').style.display='block'; + document.getElementById('tra33').style.display='block'; + document.getElementById('tra21').style.display='none'; + document.getElementById('tra22').style.display='none'; + document.getElementById('tra23').style.display='none'; + } + + + if (id == 'a2'){ + //übernahme der befehle aus schritt 2 - freie befehlseingabe + comand1 = document.getElementById('freecmd').value; + if (comand1 == ''){ + comand1=''; + FW_okDialog('Bitte Befehl engeben'); + return; + } + + comand1 = comand1.replace(/\n/g,';;'); + + document.getElementById('tra23end').value=comand1; + document.getElementById('tra33end').value=''; + document.getElementById('makeconf').style.backgroundColor=''; + document.getElementById('makeconf').disabled = false; + } + + + + if (id == 'a3'){ + //übernahme der befehle aus schritt 3 + comand1=''; + comand2=''; + comand3=''; + device = document.getElementById('a11').value; + comand1 = document.getElementById('comand').value; + if (comand1 == '0'){ + comand1=''; + FW_okDialog('Bitte Befehl wählen'); + return; + } + + if (document.getElementById('comand1')){ + comand2 = document.getElementById('comand1').value ; + if (comand2 == '0'){ + comand2=''; + FW_okDialog('Bitte Befehlszusatz wählen'); + return; + } + } + + if (document.getElementById('comand2')){ + //alert('test cmd2'); + comand3 = document.getElementById('comand2').value ; + } + document.getElementById('tra23end').value=''; + document.getElementById('tra33end').value=comand1+' '+comand2+' '+comand3; + } + document.getElementById('makeconf').style.backgroundColor=''; + document.getElementById('makeconf').disabled = false; + return; + +} + +function makecmdhash(line){ + document.getElementById('setcmd1').value=''; + document.getElementById('setcmd2').value=''; + + if (line === undefined){ + return; + } + var retoption = ''; + var arraysetskeys = Object.keys(sets); + document.getElementById('tf').innerHTML = 'ANZAHL: '+anzahl+'
'; + document.getElementById('tf').innerHTML += line+'
'; + document.getElementById('tf').innerHTML += arraysetskeys; + return retoption; +} + +function selectcmdoptions(inhalt){ + document.getElementById('setcmd1').innerHTML =''; + // wenn undefined textfeld erzeugen + if (sets[inhalt] == 'noArg'){ return;} + // wenn noarg befehl übernehmen + if (sets[inhalt] === undefined){ + + retoption1 = ' '; + document.getElementById('setcmd1').innerHTML = retoption1; + return; + } + // wenn liste subcmd erzeugen + + var retoption1; + retoption1 = ''; + document.getElementById('setcmd1').innerHTML = retoption1; +} + + +function startconfig(){ + + var html=''; + html+=''; + html+=''; + html+=''; + html+='
'; + html+=''; + html+='
'; + html+=''; + html+='
'; + + document.getElementById('importCONFIG').innerHTML = html; + fillconfig('rawconfig3'); + return; +} + + +function startimportat(){ + script = 'setat'; + ret = ''; + + var html=''; + html+=''; + html+=''; + html+=''; + html+=''; + html+='
'; + html+=''; + html+=''; + html+=''; + html+=''; + html+=''; + html+=''; + html+=''; + html+=''; + html+='
'; + html+=''; + html+='
'; + html+=ret; + html+=''; + html+='Definition:
'; + html+='Comand:
'; + html+='Timespec:
'; + html+='Steuerflag:
'; + html+='Triggertime:
'; + html+='
'; + html+='
'; + html+='
'; + html+='
'; + html+='
'; + html+='
'; + html+='
'; + html+='
'; + html+='
'; + html+='
'; + html+=''; + html+='
'; + + + + + + + document.getElementById('help').innerHTML = 'Es können nur periodisch wiederkehrende ATs importiert werden.
MSwitch berücksichtigt keine Sekundenangaben.
'; + document.getElementById('importAT').innerHTML = html; + document.getElementById('sat').style.backgroundColor='#ff0000'; + fillconfig('rawconfig1'); + return; +} + + +function setat(name){ + if (name == "empty"){ + document.getElementById('sat').disabled = true; + document.getElementById('def').value=''; + document.getElementById('defcmd').value=''; + document.getElementById('deftspec').value=''; + document.getElementById('defflag').value=''; + document.getElementById('trigtime').value=''; + document.getElementById('sat').style.backgroundColor='#ff0000'; + return; + } + document.getElementById('sat').style.backgroundColor=''; + document.getElementById('sat').disabled = false; + document.getElementById('def').value=atdef[name]; + document.getElementById('defcmd').value=atcmd[name]; + document.getElementById('deftspec').value=atspec[name]; + defflag = atdef[name].substr(0,1); + document.getElementById('defflag').value=defflag; + document.getElementById('trigtime').value=triggertime[name]; + return; +} + + +function saveat(){ + + var cmdstring = document.getElementById('defcmd').value; + configstart[12] ='#S .Device_Affected -> FreeCmd-AbsCmd1'; + var newcmdline = '#S .Device_Affected_Details -> FreeCmd-AbsCmd1'+'#[NF]undefined#[NF]cmd#[NF]'+cmdstring+'#[NF]#[NF]delay1#[NF]delay1#[NF]00:00:00#[NF]00:00:00#[NF]#[NF]#[NF]undefined#[NF]undefined#[NF]1#[NF]0#[NF]#[NF]0#[NF]0#[NF]1#[NF]0'; + + configstart[29]=newcmdline; + + if (document.getElementById('defflag').value == "*") + { + string = document.getElementById('deftspec').value; + // ersetze dp durch #[dp] + string ="["+string+"]"; + string = string.replace(/:/gi,"#[dp]"); + configstart[13] ='#S .Trigger_time -> on~off~ononly'+ string +'~offonly~onoffonly'; + } + + + if (document.getElementById('defflag').value == "+") + { + string = document.getElementById('deftspec').value; + // ersetze dp durch #[dp] + //string ="["+string+"]"; + string = '['+string+'*00:01-23:59]'; + string = string.replace(/:/gi,"#[dp]"); + configstart[13] ='#S .Trigger_time -> on~off~ononly'+ string +'~offonly~onoffonly'; + } + + fillconfig('rawconfig1'); + saveconfig('rawconfig1'); + return; +} + + +function startimportnotify(){ + script = 'setnotify'; + ret = ''; + + var html=''; + html+=''; + html+=''; + html+=''; + html+=''; + html+='
'; + html+=''; + html+=''; + html+=''; + html+=''; + html+=''; + html+=''; + html+=''; + html+=''; + html+='
'; + //html+='
'; + //html+='
'; + //html+=' 
'; + html+='
'; + html+=ret; + html+=''; + html+='Definition:
'; + html+='Comand:
'; + html+='Trigger-Device:
'; + html+='Trigger-Event:
'; + html+='
'; + html+='
'; + html+='
'; + html+='
'; + html+='
'; + html+='
'; + html+='
'; + html+='
'; + html+='
'; + html+=''; + html+='
'; + + document.getElementById('importNOTIFY').innerHTML = html; + document.getElementById('not').style.backgroundColor='#ff0000'; + fillconfig('rawconfig2'); + return; + +} + +function setnotify(name){ + + if (name == "empty"){ + document.getElementById('not').disabled = true; + document.getElementById('not').style.backgroundColor='#ff0000'; + document.getElementById('defnotify').value=''; + document.getElementById('comandnotify').value=''; + document.getElementById('trigdev').value=''; + document.getElementById('trigevent').value=''; + return; + } + + document.getElementById('not').style.backgroundColor=''; + document.getElementById('not').disabled = false; + document.getElementById('defnotify').value=notifydef[name]; + var first = notifydef[name].indexOf(" "); + //alert(first); + var laenge = notifydef[name].length; + var cmd = notifydef[name].substring(first+1,laenge); + //alert(cmd); + document.getElementById('comandnotify').value=cmd; + var trigger = notifydef[name].substring(0,first); + //alert(trigger); + var tlaenge = trigger.length; + var trenner = trigger.indexOf(":"); + var tdevice = notifydef[name].substring(0,trenner); + document.getElementById('trigdev').value=tdevice; + var tevent = notifydef[name].substring(trenner+1,tlaenge); + document.getElementById('trigevent').value=tevent; + return; +} + + +function savenot(){ + var cmdstring = document.getElementById('comandnotify').value; + configstart[12] ='#S .Device_Affected -> FreeCmd-AbsCmd1'; + var newcmdline = '#S .Device_Affected_Details -> FreeCmd-AbsCmd1'+'#[NF]undefined#[NF]cmd#[NF]'+cmdstring+'#[NF]#[NF]delay1#[NF]delay1#[NF]00:00:00#[NF]00:00:00#[NF]#[NF]#[NF]undefined#[NF]undefined#[NF]1#[NF]0#[NF]#[NF]0#[NF]0#[NF]1#[NF]0'; + configstart[29]=newcmdline; + configstart[5] ='#S Trigger_device -> '+ document.getElementById('trigdev').value; + configstart[8] ='#S .Trigger_cmd_on -> '+ document.getElementById('trigevent').value; + fillconfig('rawconfig2'); + saveconfig('rawconfig2'); + return; +} \ No newline at end of file