X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;ds=sidebyside;f=web%2Fhtdocs%2Fdetails%2Fedit.mc;h=7f297b80279216d6ee2caadc3713b77632880479;hb=9074cd10f51014642ea4624ea5c272905696a122;hp=e813ae0aae87a7b320dd77a24cc090b230337d1e;hpb=cf2404764bbafd54710bf999de68ec0963c44bce;p=irspy-moved-to-github.git diff --git a/web/htdocs/details/edit.mc b/web/htdocs/details/edit.mc index e813ae0..7f297b8 100644 --- a/web/htdocs/details/edit.mc +++ b/web/htdocs/details/edit.mc @@ -1,4 +1,3 @@ -%# $Id: edit.mc,v 1.34 2007-05-03 12:54:18 mike Exp $ <%args> $op $id => undef ### should be extracted using utf8param() @@ -32,7 +31,8 @@ duplicate ID. die "op = new but id defined" if $op eq "new" && defined $id; die "op != new but id undefined" if $op ne "new" && !defined $id; -my $conn = new ZOOM::Connection("localhost:8018/IR-Explain---1", 0, +my $db = ZOOM::IRSpy::connect_to_registry(); +my $conn = new ZOOM::Connection($db, 0, user => "admin", password => "fruitbat", elementSetName => "zeerex"); @@ -40,6 +40,15 @@ 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"; + &utf8param($r, port => $port); +} + my $newid; if (defined $protocol && $protocol ne "" && defined $host && $host ne "" && @@ -59,12 +68,22 @@ 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. my $rs = $conn->search(new ZOOM::Query::CQL(cql_target($newid))); if ($rs->size() > 0) { - my $qnewid = xml_encode(uri_escape($newid)); + my $qnewid = xml_encode(uri_escape_utf8($newid)); print qq[

There is already a record @@ -321,7 +340,7 @@ my @fields = # Update record with submitted data my %fieldsByKey = map { ( $_->[0], $_) } @fields; my %data; -foreach my $key ($r->param()) { +foreach my $key (&utf8param($r)) { next if grep { $key eq $_ } qw(op id update); $data{$key} = utf8param($r, $key); } @@ -333,7 +352,7 @@ if ($update && @changedFields) { "e:metaInfo/e:dateModified" ] }, { dateModified => isodate(time()) }); die "Didn't set dateModified!" if !@x; - ZOOM::IRSpy::_really_rewrite_record($conn, $xc->getContextNode(), + ZOOM::IRSpy::_rewrite_zeerex_record($conn, $xc->getContextNode(), $op eq "edit" ? $id : undef); } @@ -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>