X-Git-Url: http://git.indexdata.com/?p=irspy-moved-to-github.git;a=blobdiff_plain;f=web%2Fhtdocs%2Fdetails%2Fedit.mc;h=1e64568d02ce78effbb100903dedccf251820750;hp=96a8d152d3d7f2496a3ce194288afd6088a233f4;hb=acb6d79920e987e5235c1ebd415a893438844ebd;hpb=27a749ca91c4aac1cd153f91e2470e2820a5299a diff --git a/web/htdocs/details/edit.mc b/web/htdocs/details/edit.mc index 96a8d15..1e64568 100644 --- a/web/htdocs/details/edit.mc +++ b/web/htdocs/details/edit.mc @@ -1,7 +1,7 @@ -%# $Id: edit.mc,v 1.32 2007-05-03 09:33:29 mike Exp $ +%# $Id: edit.mc,v 1.39 2008-10-29 11:04:44 mike Exp $ <%args> $op -$id => undef +$id => undef ### should be extracted using utf8param() $update => undef <%doc> @@ -36,10 +36,19 @@ my $conn = new ZOOM::Connection("localhost:8018/IR-Explain---1", 0, user => "admin", password => "fruitbat", elementSetName => "zeerex"); -my $protocol = $r->param("protocol"); -my $host = $r->param("host"); -my $port = $r->param("port"); -my $dbname = $r->param("dbname"); +my $protocol = utf8param($r, "protocol"); +my $host = utf8param($r, "host"); +my $port = utf8param($r, "port"); +my $dbname = utf8param($r, "dbname"); + +if ((!defined $port || $port eq "") && + (defined $protocol && $protocol ne "")) { + # Port-guessing based on defaults for each protocol + $port = $protocol eq "Z39.50" ? 210 : 80; + warn "guessed port $port"; + $r->param(port => $port); +} + my $newid; if (defined $protocol && $protocol ne "" && defined $host && $host ne "" && @@ -59,6 +68,16 @@ if (!defined $id) { print qq[

Please specify protocol, host, port and database name.

\n]; undef $update; + } elsif ($host !~ /^\w+\.[\w.]*\w$/i) { + print qq[

+ This host name is not valid.

\n]; + undef $update; + sleep 25; + } elsif ($port !~ /^\d*$/i) { + print qq[

+ This port number is not valid.

\n]; + undef $update; + sleep 25; } else { # Creating new record, all necessary data is present. Check # that the new record is not a duplicate of an existing one. @@ -323,7 +342,7 @@ my %fieldsByKey = map { ( $_->[0], $_) } @fields; my %data; foreach my $key ($r->param()) { next if grep { $key eq $_ } qw(op id update); - $data{$key} = $r->param($key); + $data{$key} = utf8param($r, $key); } my @changedFields = modify_xml_document($xc, \%fieldsByKey, \%data); if ($update && @changedFields) { @@ -346,7 +365,14 @@ if ($update && @changedFields) { Changed <% $nchanges %> field<% $nchanges == 1 ? "" : "s" %>: <% join(", ", map { xml_encode($_->[2]) } @changedFields) %>.

+% return if $op eq "new"; % } +

+ Although anyone is allowed to add a new target, please note that + you will not be able to edit the newly added target unless you + have administrator privileges. So please be sure that the + details are correct before submitting them. +

<%perl> @@ -380,6 +406,7 @@ foreach my $ref (@fields) {
+% $op = "edit" if $op eq "new" && defined $update; % $id = $newid if defined $newid; % if (defined $id) {