Require a title (Name) for the target.
[irspy-moved-to-github.git] / web / htdocs / details / edit.mc
index e0403a4..881b5ce 100644 (file)
@@ -1,4 +1,3 @@
-%# $Id: edit.mc,v 1.40 2009-04-15 18:16:46 wosch Exp $
 <%args>
 $op
 $id => undef ### should be extracted using utf8param()
@@ -32,14 +31,16 @@ 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");
 
-my $protocol = utf8param($r, "protocol");
-my $host = utf8param($r, "host");
-my $port = utf8param($r, "port");
-my $dbname = utf8param($r, "dbname");
+my $protocol = utf8paramTrim($r, "protocol");
+my $host = utf8paramTrim($r, "host");
+my $port = utf8paramTrim($r, "port");
+my $dbname = utf8paramTrim($r, "dbname");
+my $title = utf8paramTrim($r, "title");
 
 if ((!defined $port || $port eq "") &&
     (defined $protocol && $protocol ne "")) {
@@ -53,6 +54,7 @@ my $newid;
 if (defined $protocol && $protocol ne "" &&
     defined $host && $host ne "" &&
     defined $port && $port ne "" &&
+    defined $title && $title ne "" &&
     defined $dbname && $dbname ne "") {
     $newid = irspy_make_identifier($protocol, $host, $port, $dbname);
 }
@@ -66,7 +68,7 @@ if (!defined $id) {
     } elsif (!defined $newid) {
        # Tried to create new record but data is insufficient
        print qq[<p class="error">
-               Please specify protocol, host, port and database name.</p>\n];
+               Please specify title, protocol, host, port and database name.</p>\n];
        undef $update;
     } elsif ($host !~ /^\w+\.[\w.]*\w$/i) {
        print qq[<p class="error">
@@ -83,7 +85,7 @@ if (!defined $id) {
        # 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[<p class="error">
                There is already
                <a href='?op=edit&amp;id=$newid'>a record</a>
@@ -342,7 +344,7 @@ my %fieldsByKey = map { ( $_->[0], $_) } @fields;
 my %data;
 foreach my $key (&utf8param($r)) {
     next if grep { $key eq $_ } qw(op id update);
-    $data{$key} = utf8param($r, $key);
+    $data{$key} = trimField( utf8param($r, $key) );
 }
 my @changedFields = modify_xml_document($xc, \%fieldsByKey, \%data);
 if ($update && @changedFields) {