mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-02-01 19:30:31 +00:00
1129 lines
36 KiB
JavaScript
1129 lines
36 KiB
JavaScript
|
//########################################################################################
|
||
|
// 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 = $('<option value="'+newevent+'">'+newevent+'</option>');
|
||
|
$(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 = $('<option value=\"'+a3[i]+'\">'+a3[i]+'</option>');
|
||
|
$(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 = $('<option value="Event wählen">Event wählen:</option>');
|
||
|
$(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.<br>';
|
||
|
document.getElementById('help').innerHTML += 'Hier stehen mehrere Formate zur Verfügung<br>';
|
||
|
document.getElementById('help').innerHTML += 'Bitte eine Vorauswahl treffen :<br> <br>';
|
||
|
|
||
|
}
|
||
|
|
||
|
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+'<input name=\"5th\" id=\"5step\" type=\"button\" value=\"Event eingetroffen\" onclick=\"javascript: settypptime(this.value,id,name)\"> ';
|
||
|
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 = $('<a href=\"javascript: reset()\">Reset this device ('+name+')</a>');
|
||
|
$(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+'<input name=\"first\" id=\"2step\" type=\"button\" value=\"time\" onclick=\"javascript: settypptime(this.value,id,name)\"> ';
|
||
|
line =line+'<input name=\"first\" id=\"3step\" type=\"button\" value=\"event\" onclick=\"javascript: settypptime(this.value,id,name)\"> ';
|
||
|
document.getElementById('1step1').innerHTML = line;
|
||
|
// ##
|
||
|
line ='<input id =\"first\" type=\"text\" value=\"\" disabled=\"disabled\">';
|
||
|
document.getElementById('1step2').innerHTML = line;
|
||
|
// ##
|
||
|
line = '<table border ="0"><tr>';
|
||
|
line += '<td>';
|
||
|
|
||
|
line += '<select id="timetyps" name="timetyp" name="timetyp" onchange=\"javascript: settimetyp(this.value)\">';
|
||
|
line += '<option id ="" value="typ0">wähle Zeit-Typ:</option>';
|
||
|
line += '<option id ="" value="typ1">exakte Zeitangabe</option>';
|
||
|
line += '<option id ="" value="typ2">zufällige Schaltzeit zwischen zwei Zeitpunkten</option>';
|
||
|
line += '<option id ="" value="typ3">periodische Auslösung zwischen zwei Zeitpunkten</option>';
|
||
|
line += '</select>';
|
||
|
line += '</td>'
|
||
|
line += '</tr>'
|
||
|
line += '<tr>'
|
||
|
|
||
|
line += '<td>';
|
||
|
|
||
|
fbutton = '<input name=\"selecttyp\" id=\"selecttyp\" type=\"button\" value=\"übernehmen\" onclick=\"javascript: settime()\">';
|
||
|
|
||
|
line += '<div id ="typ1" style="display:none">Um '+gettime('normal')+' Uhr '+getday('day1')+fbutton+'</div>';
|
||
|
line += '<div id ="typ2" style="display:none">zwischen '+gettime('zufall')+' Uhr und '+gettime('zufall1') +'Uhr '+getday('zufal3')+fbutton+'</div>';
|
||
|
line += '<div id ="typ3" style="display:none">periodisch alle '+gettime('periodic')+' zwischen '+gettime('periodic1') +'Uhr und'+gettime('periodic3')+'Uhr'+getday('periodic4')+fbutton+'</div>';
|
||
|
|
||
|
line += '</td>'
|
||
|
line += '</tr></table>';
|
||
|
|
||
|
document.getElementById('2step1').innerHTML = line;
|
||
|
document.getElementById('2step1').style.display='none';
|
||
|
line ='<input id=\"2\" type=\"text\" value=\"\" disabled=\"disabled\"> ';
|
||
|
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 ='<input id=\"3\" type=\"text\" value=\"\" disabled=\"disabled\">';
|
||
|
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+'<select id =\"6step\" name=\"5\" onchange=\"javascript: settypptime(this.value,id,name)\">';
|
||
|
// ##
|
||
|
line =line+'</select>';
|
||
|
document.getElementById('5step1').innerHTML = line;
|
||
|
document.getElementById('5step1').style.display='none';
|
||
|
line ='<input id=\"5\" type=\"text\" value=\"\" >';
|
||
|
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 = '<select id="'+name+'day">';
|
||
|
addon += '<option value="">jeden Tag</option>';
|
||
|
addon += '<option value="|$we">am Wochenende</option>';
|
||
|
addon += '<option value="|!$we">an Wochentagen</option>';
|
||
|
addon += '<option value="|1">Montag</option>';
|
||
|
addon += '<option value="|2">Dienstag</option>';
|
||
|
addon += '<option value="|3">Mitwoch</option>';
|
||
|
addon += '<option value="|4">Donnerstag</option>';
|
||
|
addon += '<option value="|5">Freitag</option>';
|
||
|
addon += '<option value="|6">Samstag</option>';
|
||
|
addon += '<option value="|7">Sonntag</option>';
|
||
|
addon += '</select>';
|
||
|
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.<br>';
|
||
|
document.getElementById('help').innerHTML += 'Hier stehen mehrere Formate zur Verfügung<br>';
|
||
|
document.getElementById('help').innerHTML += 'Bitte eine Vorauswahl treffen :<br> <br>';
|
||
|
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 += '<option>'+change+'</option>';
|
||
|
}
|
||
|
var min;
|
||
|
for (i=0; i<60; i++)
|
||
|
{
|
||
|
change=("00" + i).slice(-2);
|
||
|
min += '<option>'+change+'</option>';
|
||
|
}
|
||
|
|
||
|
var sel1 = '<select id="'+name+'1">';
|
||
|
sel1 += hour;
|
||
|
sel1 += '</select>';
|
||
|
sel1 += ':';
|
||
|
sel1 += '<select id="'+name+'2">';
|
||
|
sel1 += min;
|
||
|
sel1 += '</select>';
|
||
|
|
||
|
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 = '<table border = \'0\'><tr>';
|
||
|
line += '<td>Teil Ausführung ';
|
||
|
line += '<input name=\"\" id=\"showall1\" type=\"button\" value=\"show complete\" onclick=\"javascript: togglep1()\"\">';
|
||
|
line += '</td>';
|
||
|
line += '<td></td>';
|
||
|
line += '<td></td>';
|
||
|
line += '</tr>';
|
||
|
|
||
|
// id des select,name des select,scriptname,flag ( gesetzt - freie Befehlseingabe )
|
||
|
line +='<tr>';
|
||
|
line +='<td>Welches Gerät soll geschaltet werden ?</td>';
|
||
|
line +='<td>'+ret+'</td>';
|
||
|
line +='<td><input id=\"a11\" type=\"text\" value=\"\" disabled=\"disabled\"></td>';
|
||
|
line +='</tr>';
|
||
|
line +='<tr id=\"tra2\">';
|
||
|
line +='<td><div style=\"display:none\" id=\"tra21\">Auszuführender Befehl:</div></td>';
|
||
|
line +='<td style=\" text-align: center; vertical-align: middle;\"><div style=\"display:none\" id=\"tra22\"><textarea id=\"freecmd\" cols=\"50\" name=\"TextArea1\" rows=\"4\"></textarea>';
|
||
|
line +='<br><input type=\"button\" value=\"übernehmen\" onclick=\"javascript: setaffected(\'a2\',\'a2\',\'a2\'); \">';
|
||
|
line +='</div></td>';
|
||
|
line +='<td><div style=\"display:none\" id=\"tra23\"><input id=\"tra23end\" type=\"text\" value=\"\" disabled=\"disabled\"></div></td>';
|
||
|
line +='</tr>';
|
||
|
line +='<tr id=\"tra3\">';
|
||
|
line +='<td><div style=\"display:none\" id=\"tra31\">Auszuführender Befehl:</div></td>';
|
||
|
line +='<td><div style=\"display:none\" id=\"tra32\">';
|
||
|
line +='<span id =\"setcmd\"></span>';
|
||
|
line +='<span id=\"setcmd1\"></span>';
|
||
|
line +='<span id=\"setcmd2\">test</span>';
|
||
|
line +='</div></td>';
|
||
|
line +='<td><div style=\"display:none\" id=\"tra33\"><input id=\"tra33end\" type=\"text\" value=\"\" disabled=\"disabled\"></div></td>';
|
||
|
line +='</tr>';
|
||
|
line += '</table>';
|
||
|
document.getElementById('part2').innerHTML =line;
|
||
|
|
||
|
}
|
||
|
|
||
|
function devicelist(id,name,script,flag){
|
||
|
|
||
|
// erstelle geräteliste'+id+'+name+'
|
||
|
ret = '<select id =\"'+id+'\" name=\"'+name+'\" onchange=\"javascript: '+script+'(this.value,id,name)\">';
|
||
|
count =0;
|
||
|
if (flag == '1'){
|
||
|
ret +='<option value=\"select\">bitte wählen:</option>';
|
||
|
ret +='<option value=\"free\">freie Befehlseingabe</option>';
|
||
|
//count++;
|
||
|
}
|
||
|
|
||
|
for (i=count; i<len; i++)
|
||
|
{
|
||
|
|
||
|
if (flag == '1'){
|
||
|
ret +='<option value='+i+'>'+devices[i]+'</option>';
|
||
|
}
|
||
|
else{
|
||
|
|
||
|
ret +='<option value='+devices[i]+'>'+devices[i]+'</option>';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
ret +='</select>';
|
||
|
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 = '<input type=\"button\" value=\"übernehmen\" onclick=\"javascript: setaffected(\'a3\',\'a3\',\'a3\'); \">';
|
||
|
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 = '<select id =\"comand\" name=\"\" onchange=\"javascript: selectcmdoptions(this.value)\">';
|
||
|
retoption +='<option selected value=\"0\">Befehl wählen</option>';
|
||
|
|
||
|
sets = new Object();
|
||
|
var cmdset = new Array;
|
||
|
cmdset = line.split(" ");
|
||
|
var anzahl = cmdset.length;
|
||
|
|
||
|
for (i=0; i<anzahl; i++)
|
||
|
{
|
||
|
aktset = cmdset[i].split(":");
|
||
|
sets[aktset[0]]=aktset[1];
|
||
|
if (aktset[0] != ""){
|
||
|
retoption +='<option value='+aktset[0]+'>'+aktset[0]+'</option>';
|
||
|
}
|
||
|
}
|
||
|
retoption +='</select>';
|
||
|
var arraysetskeys = Object.keys(sets);
|
||
|
document.getElementById('tf').innerHTML = 'ANZAHL: '+anzahl+'<br>';
|
||
|
document.getElementById('tf').innerHTML += line+'<br>';
|
||
|
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 = '<input name=\"\" id=\"comand2\" type=\"text\" value=\"\"> ';
|
||
|
document.getElementById('setcmd1').innerHTML = retoption1;
|
||
|
return;
|
||
|
}
|
||
|
// wenn liste subcmd erzeugen
|
||
|
|
||
|
var retoption1;
|
||
|
retoption1 = '<select id =\"comand1\" name=\"\">';
|
||
|
retoption1 +='<option selected value=\"0\">Option wählen</option>';
|
||
|
|
||
|
var cmdset1= new Array;
|
||
|
cmdset1= sets[inhalt].split(",");
|
||
|
console.log(cmdset1);
|
||
|
var anzahl = cmdset1.length;
|
||
|
for (i=0; i<anzahl; i++)
|
||
|
{
|
||
|
retoption1 +='<option value='+cmdset1[i]+'>'+cmdset1[i]+'</option>';
|
||
|
}
|
||
|
retoption1 +='</select>';
|
||
|
document.getElementById('setcmd1').innerHTML = retoption1;
|
||
|
}
|
||
|
|
||
|
|
||
|
function startconfig(){
|
||
|
|
||
|
var html='<table><tr><td style=\"text-align: center; vertical-align: middle;\">';
|
||
|
html+='<textarea id=\"rawconfig3\" style=\"width: 950px; height: 600px\"></textarea>';
|
||
|
html+='</td>';
|
||
|
html+='</tr>';
|
||
|
html+='<tr><td style=\"text-align: center; vertical-align: middle;\">';
|
||
|
html+='<input name=\"saveconf\" id=\"saveconf\" type=\"button\" value=\"save new config\" onclick=\"javascript: saveconfig(\'rawconfig3\')\"\">';
|
||
|
html+='</td>';
|
||
|
html+='</tr>';
|
||
|
html+='</table>';
|
||
|
|
||
|
document.getElementById('importCONFIG').innerHTML = html;
|
||
|
fillconfig('rawconfig3');
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
|
||
|
function startimportat(){
|
||
|
script = 'setat';
|
||
|
ret = '<select id =\"\" name=\"\" onchange=\"javascript: '+script+'(this.value)\">';
|
||
|
ret +='<option value=\"empty\">bitte zu importierendes AT wählen</option>';
|
||
|
|
||
|
count =0;
|
||
|
|
||
|
var len = at.length;
|
||
|
for (i=count; i<len; i++)
|
||
|
{
|
||
|
ret +='<option value='+i+'>'+at[i]+'</option>';
|
||
|
}
|
||
|
|
||
|
ret +='</select>';
|
||
|
|
||
|
var html='';
|
||
|
html+='<table border=\"0\">';
|
||
|
html+='<tr><td style=\"vertical-align: top;\">';
|
||
|
html+='<table border=\"0\">';
|
||
|
html+='<tr><td colspan=\"3\">';
|
||
|
html+='';
|
||
|
html+='</td></tr>';
|
||
|
html+='<tr><td style=\"\">';
|
||
|
html+=ret;
|
||
|
html+='</td>';
|
||
|
html+='<td>';
|
||
|
html+='Definition:<br>';
|
||
|
html+='Comand:<br>';
|
||
|
html+='Timespec:<br>';
|
||
|
html+='Steuerflag:<br>';
|
||
|
html+='Triggertime:<br>';
|
||
|
html+='</td>';
|
||
|
html+='<td>';
|
||
|
html+='<input id=\"def\" type=\"text\" value=\"\" disabled=\"\" style=\"width:400pt;\"><br>';
|
||
|
html+='<input id=\"defcmd\" type=\"text\" value=\"\" disabled=\"\" style=\"width:400pt;\"><br>';
|
||
|
html+='<input id=\"deftspec\" type=\"text\" value=\"\" disabled=\"\" style=\"width:400pt;\"><br>';
|
||
|
html+='<input id=\"defflag\" type=\"text\" value=\"\" disabled=\"\" style=\"width:400pt;\"><br>';
|
||
|
html+='<input id=\"trigtime\" type=\"text\" value=\"\" disabled=\"\" style=\"width:400pt;\"><br>';
|
||
|
html+='</td>';
|
||
|
html+='</tr>';
|
||
|
html+='<tr><td colspan=\"3\" style=\"text-align: center; vertical-align: middle;\">';
|
||
|
html+='<br><input disabled name=\"\" id=\"sat\" type=\"button\" value=\"import this at\" onclick=\"javascript: saveat()\"\">';
|
||
|
html+='</td>';
|
||
|
html+='</tr>';
|
||
|
html+='</table>';
|
||
|
html+='</td>';
|
||
|
html+='<td>';
|
||
|
html+='<textarea disabled id=\'rawconfig1\' style=\'width: 450px; height: 600px\'></textarea>';
|
||
|
html+='</td>';
|
||
|
html+='</tr>';
|
||
|
html+='</table>';
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
document.getElementById('help').innerHTML = 'Es können nur periodisch wiederkehrende ATs importiert werden.<br>MSwitch berücksichtigt keine Sekundenangaben.<br>';
|
||
|
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 = '<select id =\"\" name=\"\" onchange=\"javascript: '+script+'(this.value)\">';
|
||
|
ret +='<option value=\"empty\">bitte zu importierendes NOTIFY wählen</option>';
|
||
|
count =0;
|
||
|
len = notify.length;
|
||
|
for (i=count; i<len; i++)
|
||
|
{
|
||
|
|
||
|
ret +='<option value='+i+'>'+notify[i]+'</option>';
|
||
|
|
||
|
}
|
||
|
|
||
|
ret +='</select>';
|
||
|
|
||
|
var html='';
|
||
|
html+='<table border=\"0\">';
|
||
|
html+='<tr><td style=\"vertical-align: top;\">';
|
||
|
html+='<table border=\"0\">';
|
||
|
html+='<tr><td colspan=\"3\">';
|
||
|
//html+='<br>';
|
||
|
//html+='<br>';
|
||
|
//html+=' <br>';
|
||
|
html+='</td></tr>';
|
||
|
html+='<tr><td style=\"\">';
|
||
|
html+=ret;
|
||
|
html+='</td>';
|
||
|
html+='<td>';
|
||
|
html+='Definition:<br>';
|
||
|
html+='Comand:<br>';
|
||
|
html+='Trigger-Device:<br>';
|
||
|
html+='Trigger-Event:<br>';
|
||
|
html+='</td>';
|
||
|
html+='<td>';
|
||
|
html+='<input id=\"defnotify\" type=\"text\" value=\"\" disabled=\"\" style=\"width:400pt;\"><br>';
|
||
|
html+='<input id=\"comandnotify\" type=\"text\" value=\"\" disabled=\"\" style=\"width:400pt;\"><br>';
|
||
|
html+='<input id=\"trigdev\" type=\"text\" value=\"\" disabled=\"\" style=\"width:400pt;\"><br>';
|
||
|
html+='<input id=\"trigevent\" type=\"text\" value=\"\" disabled=\"\" style=\"width:400pt;\"><br>';
|
||
|
html+='</td>';
|
||
|
html+='</tr>';
|
||
|
html+='<tr><td colspan=\"3\" style=\"text-align: center; vertical-align: middle;\">';
|
||
|
html+='<br><input disabled name=\"\" id=\"not\" type=\"button\" value=\"import this NOTIFY\" onclick=\"javascript: savenot()\"\">';
|
||
|
html+='</td>';
|
||
|
html+='</tr>';
|
||
|
html+='</table>';
|
||
|
html+='</td>';
|
||
|
html+='<td>';
|
||
|
html+='<textarea disabled id=\'rawconfig2\' style=\'width: 450px; height: 600px\'></textarea>';
|
||
|
html+='</td>';
|
||
|
html+='</tr>';
|
||
|
html+='</table>';
|
||
|
|
||
|
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;
|
||
|
}
|