Added CGI args parser
authorJamie Cameron <jcameron@webmin.com>
Wed, 10 Jun 2009 22:39:24 +0000 (22:39 +0000)
committerJamie Cameron <jcameron@webmin.com>
Wed, 10 Jun 2009 22:39:24 +0000 (22:39 +0000)
mysql/cgi_args.pl
postgresql/cgi_args.pl [new file with mode: 0644]

index facae82..8fcf303 100644 (file)
@@ -19,7 +19,7 @@ elsif ($cgi eq 'table_form.cgi') {
 elsif ($cgi eq 'edit_view.cgi') {
        return 'db=mysql&new=1';
        }
-elsif ($cgi eq 'edit_table.cgi') {
+elsif ($cgi eq 'edit_table.cgi' || $cgi eq 'view_table.cgi') {
        return 'db=mysql&table=user';
        }
 elsif ($cgi eq 'edit_field.cgi') {
diff --git a/postgresql/cgi_args.pl b/postgresql/cgi_args.pl
new file mode 100644 (file)
index 0000000..7116bef
--- /dev/null
@@ -0,0 +1,41 @@
+
+do 'postgresql-lib.pl';
+
+sub cgi_args
+{
+my ($cgi) = @_;
+my $db;
+eval {
+       local $main::error_must_die = 1;
+       ($db) = grep { &can_edit_db($_) &&
+                      !/^template/ } &list_databases();
+       };
+return undef if (!$db);        # Don't know which DB to use
+if ($cgi eq 'edit_dbase.cgi' || $cgi eq 'backup_form.cgi' ||
+    $cgi eq 'exec_form.cgi' || $cgi eq 'restore_form.cgi') {
+       # Use first DB
+       return 'db='.&urlize($db);
+       }
+elsif ($cgi eq 'list_grants.cgi') {
+       # Works with no args
+       return '';
+       }
+elsif ($cgi eq 'table_form.cgi') {
+       return 'db='.&urlize($db).'&fields=4';
+       }
+elsif ($cgi eq 'edit_view.cgi' || $cgi eq 'edit_seq.cgi') {
+       return 'db='.&urlize($db).'&new=1';
+       }
+elsif ($cgi eq 'edit_table.cgi' || $cgi eq 'edit_field.cgi' ||
+       $cgi eq 'view_table.cgi') {
+       # Find a table
+       my $table;
+       eval {
+               local $main::error_must_die = 1;
+               ($table) = &list_tables($db);
+               };
+       return 'db='.&urlize($db).'&table='.&urlize($table).
+              ($cgi eq 'edit_field.cgi' ? '&idx=0' : '');
+       }
+return undef;
+}