diff options
| author | Andreas Brachold <vdr07@deltab.de> | 2008-02-25 19:06:14 +0000 |
|---|---|---|
| committer | Andreas Brachold <vdr07@deltab.de> | 2008-02-25 19:06:14 +0000 |
| commit | 1a974ba550824dd6afe602d4534ed665c7117bea (patch) | |
| tree | 6106c84adb0216c12d30f36823f2cb895231c046 | |
| parent | 8cc206947676df6f2a2923e3fb68f9c9f7730897 (diff) | |
| download | xxv-1a974ba550824dd6afe602d4534ed665c7117bea.tar.gz xxv-1a974ba550824dd6afe602d4534ed665c7117bea.tar.bz2 | |
* AJAX: Message with state param.state:success or param.state:error
* xstyle/html: CONFIG - checkvalue, translate messages
* AUTOTIMER: Don't display success, if try to delete a none exist autotimer
| -rw-r--r-- | html/javascript/global.js | 14 | ||||
| -rw-r--r-- | lib/XXV/MODULES/AUTOTIMER.pm | 5 | ||||
| -rw-r--r-- | lib/XXV/MODULES/HTTPD.pm | 33 | ||||
| -rw-r--r-- | lib/XXV/OUTPUT/Ajax.pm | 27 |
4 files changed, 56 insertions, 23 deletions
diff --git a/html/javascript/global.js b/html/javascript/global.js index 7a5748c..ba01aec 100644 --- a/html/javascript/global.js +++ b/html/javascript/global.js @@ -148,12 +148,14 @@ function checkValue (valobj, msgname, cmd, wrongMsg, goodMsg) { var wrongMsg = sData[2]; var goodMsg = sData[3]; - if(oXML.responseText.search('ERROR') > -1) { - msg.className = 'error'; - msg.innerHTML = wrongMsg.replace('%s', oXML.responseText); - } else { + var o = eval("("+oXML.responseText+")");
+ if(o && o.data && typeof(o.data) == 'string' + && o.param && o.param.state && o.param.state == 'success') { msg.className = 'good'; - msg.innerHTML = goodMsg.replace('%s', oXML.responseText); + msg.innerHTML = goodMsg.replace('%s', o.data); + } else { + msg.className = 'error'; + msg.innerHTML = wrongMsg.replace('%s', o.data); } }; @@ -162,7 +164,7 @@ function checkValue (valobj, msgname, cmd, wrongMsg, goodMsg) { msgobj.innerHTML = 'Check value ...'; if(inputvalue) { - var url = "?cmd=checkvalue&data=" + cmd + ":" + inputvalue + "&ajax=text"; + var url = "?cmd=checkvalue&data=" + cmd + ":" + inputvalue + "&ajax=json"; var aconn = new XHRequest(); if(!aconn) return false; diff --git a/lib/XXV/MODULES/AUTOTIMER.pm b/lib/XXV/MODULES/AUTOTIMER.pm index 3641875..db2c02e 100644 --- a/lib/XXV/MODULES/AUTOTIMER.pm +++ b/lib/XXV/MODULES/AUTOTIMER.pm @@ -1047,8 +1047,9 @@ sub autotimerDelete { my $sql = sprintf('DELETE FROM AUTOTIMER where Id in (%s)', join(',' => ('?') x @timers)); my $sth = $obj->{dbh}->prepare($sql); - if(!$sth->execute(@timers)) { - error sprintf("Couldn't execute query: %s.",$sth->errstr); + my $rows = $sth->execute(@timers); + if(!$rows || $rows eq "0E0") { + error sprintf("Couldn't execute query: %s.",$sth->errstr) unless($rows); $console->err(sprintf gettext("The autotimer '%s' does not exist in the database."), join(',', @timers)); return 0; } diff --git a/lib/XXV/MODULES/HTTPD.pm b/lib/XXV/MODULES/HTTPD.pm index d32feb3..5920e1a 100644 --- a/lib/XXV/MODULES/HTTPD.pm +++ b/lib/XXV/MODULES/HTTPD.pm @@ -273,12 +273,20 @@ sub communicator or exists $console->{USER}->{Level})) { $console->setCall('nothing'); - if($data->{Request} eq '/' and not $data->{Query}) { + if(not $data->{Query} and + ($data->{Request} eq '/' or -d sprintf('%s/%s', $htmlRootDir,$data->{Request}))) { + my $request = $htmlRootDir; + $request .= '/'; + $request .= $data->{Request}; + $request .= '/'; + $request =~ s/\.\.\///g; + $request =~ s/\/\.\.//g; + $request =~ s/\/+/\//g; # Send the first page (index.html) - if(-r sprintf('%s/index.tmpl', $htmlRootDir)) { + if(-r sprintf('%sindex.tmpl', $request)) { $console->index; } else { - $console->datei(sprintf('%s/index.html', $htmlRootDir)); + $console->datei(sprintf('%sindex.html', $request)); } } elsif(my $typ = $mime->{lc((split('\.', $data->{Request}))[-1])}) { # Send multimedia files (this must registered in $mime!) @@ -597,19 +605,22 @@ sub checkvalue { my $value = join(':',@query); my $erg; + my $iserror; # e.g. isdir:/tmp if($check eq "isdir") { if(-d $value) { - $erg = "SUCCESS: directory found."; + $erg = gettext("Directory found."); } else { - $erg = "ERROR: directory not found."; + $erg = gettext("Directory not found."); + $iserror = 1; } # e.g. isfile:/bla/foobar } elsif($check eq "isfile") { if(-r $value) { - $erg = "SUCCESS: file found."; + $erg = gettext("File found."); } else { - $erg = "ERROR: file not found."; + $erg = gettext("File not found."); + $iserror = 1; } # e.g. getip:localhost } elsif($check eq "getip") { @@ -617,14 +628,16 @@ sub checkvalue { if($aton) { $erg = inet_ntoa($aton); } else { - $erg = "ERROR: host does not exist."; + $erg = gettext("Host does not exist."); + $iserror = 1; } # Unknown query } else { - $erg = "ERROR: Query : " . $check . " not supported."; + $erg = sprintf(gettext("Query : '%s' not supported."),$check); + $iserror = 1; } - return $console->msg($erg) + return $console->msg($erg, $iserror) if(ref $console); } diff --git a/lib/XXV/OUTPUT/Ajax.pm b/lib/XXV/OUTPUT/Ajax.pm index 6c5ef41..9cd44b4 100644 --- a/lib/XXV/OUTPUT/Ajax.pm +++ b/lib/XXV/OUTPUT/Ajax.pm @@ -211,20 +211,37 @@ sub msg { my $data = shift || 0; my $err = shift || 0; - + my $state = $err ? 'error' : 'success'; my $msg; - if(! $err and $data) { - $msg = $data; + if(ref $data eq 'ARRAY') { + $msg = join("\r\n",@{$data}); } else { - $msg = sprintf('ERROR:%s (%s)', $data); + $msg = $data; } - $self->out( $msg, 0, 'msg' ); + $self->out( $msg, { state => $state }, 'msg' ); $self->{call} = ''; } # ------------------ +sub message { +# ------------------ + my $self = shift || return error('No object defined!'); + my $data = shift || 0; + return $self->msg($data); +} + +# ------------------ +sub err { +# ------------------ + my $self = shift || return error('No object defined!'); + my $data = shift || 0; + return $self->msg($data,1); +} + + +# ------------------ sub typ { # ------------------ my $self = shift || return error('No object defined!'); |
