Revision 0b280f98
Von Moritz Bunkus vor mehr als 17 Jahren hinzugefügt
SL/User.pm | ||
---|---|---|
40 | 40 |
use SL::DBUpgrade2; |
41 | 41 |
use SL::DBUtils; |
42 | 42 |
use SL::Iconv; |
43 |
use SL::Inifile; |
|
43 | 44 |
|
44 | 45 |
sub new { |
45 | 46 |
$main::lxdebug->enter_sub(); |
... | ... | |
666 | 667 |
|
667 | 668 |
my ($self, $form) = @_; |
668 | 669 |
|
669 |
my %dbsources = (); |
|
670 |
my $query; |
|
671 |
|
|
672 |
$form->{sid} = $form->{dbdefault}; |
|
673 |
&dbconnect_vars($form, $form->{dbdefault}); |
|
674 |
|
|
675 |
my $dbh = |
|
676 |
DBI->connect($form->{dbconnect}, $form->{dbuser}, $form->{dbpasswd}) |
|
677 |
or $form->dberror; |
|
678 |
|
|
679 |
if ($form->{dbdriver} eq 'Pg') { |
|
670 |
my $members = Inifile->new($main::memberfile); |
|
671 |
my $controls = parse_dbupdate_controls($form, $form->{dbdriver}); |
|
680 | 672 |
|
681 |
$query = |
|
682 |
qq|SELECT d.datname FROM pg_database d, pg_user u | . |
|
683 |
qq|WHERE d.datdba = u.usesysid AND u.usename = ?|; |
|
684 |
my $sth = prepare_execute_query($form, $dbh, $query, $form->{dbuser}); |
|
673 |
my ($query, $sth, %dbs_needing_updates); |
|
685 | 674 |
|
686 |
while (my ($db) = $sth->fetchrow_array) { |
|
675 |
foreach my $login (grep /[a-z]/, keys %{ $members }) { |
|
676 |
my $member = $members->{$login}; |
|
687 | 677 |
|
688 |
next if ($db =~ /^template/); |
|
678 |
map { $form->{$_} = $member->{$_} } qw(dbname dbuser dbpasswd dbhost dbport); |
|
679 |
dbconnect_vars($form, $form->{dbname}); |
|
680 |
$main::lxdebug->dump(0, "form", $form); |
|
681 |
my $dbh = DBI->connect($form->{dbconnect}, $form->{dbuser}, $form->{dbpasswd}); |
|
689 | 682 |
|
690 |
&dbconnect_vars($form, $db);
|
|
683 |
next unless $dbh;
|
|
691 | 684 |
|
692 |
my $dbh2 = |
|
693 |
DBI->connect($form->{dbconnect}, $form->{dbuser}, $form->{dbpasswd}) |
|
694 |
or $form->dberror; |
|
685 |
my $version; |
|
695 | 686 |
|
696 |
$query = |
|
697 |
qq|SELECT tablename FROM pg_tables | . |
|
698 |
qq|WHERE tablename = 'defaults'|; |
|
699 |
my $sth2 = prepare_execute_query($form, $dbh, $query); |
|
700 |
|
|
701 |
if ($sth2->fetchrow_array) { |
|
702 |
$query = qq|SELECT version FROM defaults|; |
|
703 |
my ($version) = selectrow_query($form, $dbh2, $query); |
|
704 |
$dbsources{$db} = $version; |
|
705 |
} |
|
706 |
$sth2->finish; |
|
707 |
$dbh2->disconnect; |
|
687 |
$query = qq|SELECT version FROM defaults|; |
|
688 |
$sth = prepare_query($form, $dbh, $query); |
|
689 |
if ($sth->execute()) { |
|
690 |
($version) = $sth->fetchrow_array(); |
|
708 | 691 |
} |
709 |
$sth->finish; |
|
710 |
} |
|
711 |
|
|
712 |
if ($form->{dbdriver} eq 'Oracle') { |
|
713 |
$query = |
|
714 |
qq|SELECT owner FROM dba_objects |. |
|
715 |
qq|WHERE object_name = 'DEFAULTS' AND object_type = 'TABLE'|; |
|
716 |
|
|
717 |
$sth = $dbh->prepare($query); |
|
718 |
$sth->execute || $form->dberror($query); |
|
719 |
|
|
720 |
while (my ($db) = $sth->fetchrow_array) { |
|
721 |
|
|
722 |
$form->{dbuser} = $db; |
|
723 |
&dbconnect_vars($form, $db); |
|
724 |
|
|
725 |
my $dbh = |
|
726 |
DBI->connect($form->{dbconnect}, $form->{dbuser}, $form->{dbpasswd}) |
|
727 |
or $form->dberror; |
|
692 |
$sth->finish(); |
|
693 |
$dbh->disconnect(); |
|
728 | 694 |
|
729 |
$query = qq|SELECT version FROM defaults|; |
|
730 |
my $sth = $dbh->prepare($query); |
|
731 |
$sth->execute; |
|
695 |
next unless $version; |
|
732 | 696 |
|
733 |
if (my ($version) = $sth->fetchrow_array) { |
|
734 |
$dbsources{$db} = $version; |
|
735 |
} |
|
736 |
$sth->finish; |
|
737 |
$dbh->disconnect; |
|
697 |
if (update_available($form->{dbdriver}, $version) || update2_available($form, $controls)) { |
|
698 |
my $dbinfo = {}; |
|
699 |
map { $dbinfo->{$_} = $member->{$_} } grep /^db/, keys %{ $member }; |
|
700 |
$dbs_needing_updates{$member->{dbhost} . "::" . $member->{dbname}} = $dbinfo; |
|
738 | 701 |
} |
739 |
$sth->finish; |
|
740 | 702 |
} |
741 | 703 |
|
742 |
$dbh->disconnect; |
|
743 |
|
|
744 | 704 |
$main::lxdebug->leave_sub(); |
745 | 705 |
|
746 |
return %dbsources;
|
|
706 |
return values %dbs_needing_updates;
|
|
747 | 707 |
} |
748 | 708 |
|
749 | 709 |
sub calc_version { |
... | ... | |
793 | 753 |
|
794 | 754 |
local *SQLDIR; |
795 | 755 |
|
796 |
opendir(SQLDIR, "sql/${dbdriver}-upgrade") |
|
797 |
or &error("", "sql/${dbdriver}-upgrade: $!"); |
|
798 |
my @upgradescripts = |
|
799 |
grep(/$form->{dbdriver}-upgrade-\Q$cur_version\E.*\.(sql|pl)$/, |
|
800 |
readdir(SQLDIR)); |
|
801 |
closedir(SQLDIR); |
|
756 |
opendir SQLDIR, "sql/${dbdriver}-upgrade" || error("", "sql/${dbdriver}-upgrade: $!"); |
|
757 |
my @upgradescripts = grep /${dbdriver}-upgrade-\Q$cur_version\E.*\.(sql|pl)$/, readdir SQLDIR; |
|
758 |
closedir SQLDIR; |
|
802 | 759 |
|
803 | 760 |
return ($#upgradescripts > -1); |
804 | 761 |
} |
... | ... | |
940 | 897 |
|
941 | 898 |
map({ $_->{"applied"} = 0; } @upgradescripts); |
942 | 899 |
|
900 |
$self->create_schema_info_table($form, $dbh); |
|
901 |
|
|
943 | 902 |
$query = qq|SELECT tag FROM schema_info|; |
944 | 903 |
$sth = $dbh->prepare($query); |
945 | 904 |
$sth->execute() || $form->dberror($query); |
bin/mozilla/admin.pl | ||
---|---|---|
41 | 41 |
use SL::User; |
42 | 42 |
use SL::Common; |
43 | 43 |
use SL::Inifile; |
44 |
use SL::DBUpgrade2; |
|
44 | 45 |
|
45 | 46 |
require "bin/mozilla/common.pl"; |
46 | 47 |
|
... | ... | |
570 | 571 |
} |
571 | 572 |
|
572 | 573 |
sub update_dataset { |
573 |
|
|
574 |
%needsupdate = User->dbneedsupdate(\%$form); |
|
575 |
|
|
576 | 574 |
$form->{title} = |
577 | 575 |
"Lx-Office ERP " |
578 | 576 |
. $locale->text('Database Administration') . " / " |
579 | 577 |
. $locale->text('Update Dataset'); |
580 | 578 |
|
581 |
$form->header; |
|
582 |
|
|
583 |
print qq| |
|
584 |
<body class=admin> |
|
585 |
|
|
586 |
|
|
587 |
<center> |
|
588 |
<h2>$form->{title}</h2> |
|
589 |
|; |
|
590 |
my $field_id = 0; |
|
591 |
foreach $key (sort keys %needsupdate) { |
|
592 |
if ($needsupdate{$key} ne $form->{dbversion}) { |
|
593 |
$upd .= qq|<input id="$field_id" name="db$key" type="checkbox" value="1" checked> $key\n|; |
|
594 |
$form->{dbupdate} .= "db$key "; |
|
595 |
$field_id++; |
|
596 |
} |
|
597 |
} |
|
598 |
|
|
599 |
chop $form->{dbupdate}; |
|
600 |
|
|
601 |
if ($form->{dbupdate}) { |
|
602 |
|
|
603 |
print qq| |
|
604 |
<table width=100%> |
|
605 |
<form method=post action=$form->{script}> |
|
606 |
|
|
607 |
<input type=hidden name="dbhost" value="$form->{dbhost}"> |
|
608 |
<input type=hidden name="dbport" value="$form->{dbport}"> |
|
609 |
<input type=hidden name="dbuser" value="$form->{dbuser}"> |
|
610 |
<input type=hidden name="dbpasswd" value="$form->{dbpasswd}"> |
|
611 |
<input type=hidden name="dbdefault" value="$form->{dbdefault}"> |
|
579 |
my @need_updates = User->dbneedsupdate($form); |
|
580 |
$form->{NEED_UPDATES} = \@need_updates; |
|
581 |
$form->{ALL_UPDATED} = !scalar @need_updates; |
|
612 | 582 |
|
613 |
<tr class=listheading> |
|
614 |
<th>| . $locale->text('The following Datasets need to be updated') . qq|</th> |
|
615 |
</tr> |
|
616 |
<tr> |
|
617 |
<td> |
|
618 |
|
|
619 |
$upd |
|
583 |
$form->header(); |
|
584 |
print $form->parse_html_template("admin/update_dataset"); |
|
585 |
} |
|
620 | 586 |
|
621 |
</td>
|
|
622 |
</tr>
|
|
623 |
<tr>
|
|
624 |
<td>
|
|
587 |
sub dbupdate {
|
|
588 |
$form->{stylesheet} = "lx-office-erp.css";
|
|
589 |
$form->{title} = $locale->text("Dataset upgrade");
|
|
590 |
$form->header();
|
|
625 | 591 |
|
626 |
<input name=dbupdate type=hidden value="$form->{dbupdate}"> |
|
592 |
my $rowcount = $form->{rowcount} * 1; |
|
593 |
my @update_rows = grep { $form->{"update_$_"} } (1 .. $rowcount); |
|
594 |
$form->{NOTHING_TO_DO} = !scalar @update_rows; |
|
595 |
my $saved_form = save_form(); |
|
627 | 596 |
|
628 |
<input name=callback type=hidden value="$form->{script}?action=list_users&rpw=$form->{rpw}">
|
|
597 |
$| = 1;
|
|
629 | 598 |
|
630 |
<input type=hidden name=rpw value=$form->{rpw}>
|
|
599 |
print $form->parse_html_template("admin/dbupgrade_all_header");
|
|
631 | 600 |
|
632 |
<input type=hidden name=nextsub value=dbupdate> |
|
601 |
foreach my $i (@update_rows) { |
|
602 |
restore_form($saved_form); |
|
633 | 603 |
|
634 |
<hr size=3 noshade>
|
|
604 |
map { $form->{$_} = $form->{"${_}_${i}"} } qw(dbname dbdriver dbhost dbport dbuser dbpasswd);
|
|
635 | 605 |
|
636 |
<br> |
|
637 |
<input type=submit class=submit name=action value="| |
|
638 |
. $locale->text('Continue') . qq|"> |
|
606 |
my $controls = parse_dbupdate_controls($form, $form->{dbdriver}); |
|
639 | 607 |
|
640 |
</td></tr> |
|
641 |
</table> |
|
642 |
</form> |
|
643 |
|; |
|
608 |
print $form->parse_html_template("admin/dbupgrade_header"); |
|
644 | 609 |
|
645 |
} else { |
|
610 |
$form->{dbupdate} = $form->{dbname}; |
|
611 |
$form->{$form->{dbname}} = 1; |
|
646 | 612 |
|
647 |
print $locale->text('All Datasets up to date!'); |
|
613 |
User->dbupdate($form); |
|
614 |
User->dbupdate2($form, $controls); |
|
648 | 615 |
|
616 |
print $form->parse_html_template("admin/dbupgrade_footer"); |
|
649 | 617 |
} |
650 | 618 |
|
651 |
print qq| |
|
652 |
|
|
653 |
</body> |
|
654 |
</html> |
|
655 |
|; |
|
656 |
|
|
657 |
} |
|
658 |
|
|
659 |
sub dbupdate { |
|
660 |
$form->{"stylesheet"} = "lx-office-erp.css"; |
|
661 |
$form->{"title"} = $main::locale->text("Dataset upgrade"); |
|
662 |
$form->header(); |
|
663 |
my $dbname = |
|
664 |
join(" ", |
|
665 |
map({ s/\s//g; s/^db//; $_; } |
|
666 |
grep({ $form->{$_} } |
|
667 |
split(/\s+/, $form->{"dbupdate"})))); |
|
668 |
print($form->parse_html_template("dbupgrade/header", |
|
669 |
{ "dbname" => $dbname })); |
|
670 |
|
|
671 |
User->dbupdate(\%$form); |
|
672 |
|
|
673 |
print qq| |
|
674 |
<hr> |
|
675 |
|
|
676 |
| . $locale->text('Dataset updated!') . qq| |
|
677 |
|
|
678 |
<br> |
|
679 |
|
|
680 |
<a id="enddatasetupdate" href="admin.pl?action=login&| . |
|
681 |
join("&", map({ "$_=" . $form->escape($form->{$_}); } qw(rpw))) . |
|
682 |
qq|">| . $locale->text("Continue") . qq|</a>|; |
|
683 |
|
|
619 |
print $form->parse_html_template("admin/dbupgrade_all_done"); |
|
684 | 620 |
} |
685 | 621 |
|
686 | 622 |
sub create_dataset { |
locale/de/admin | ||
---|---|---|
3 | 3 |
'Add User' => 'Benutzer erfassen', |
4 | 4 |
'Address' => 'Adresse', |
5 | 5 |
'Administration' => 'Administration', |
6 |
'All Datasets up to date!' => 'Alle Datenbanken sind auf aktuellem Stand.', |
|
7 | 6 |
'Attempt to call an undefined sub named \'%s\'' => 'Es wurde versucht, eine nicht definierte Unterfunktion namens \'%s\' aufzurufen.', |
8 | 7 |
'Bin List' => 'Lagerliste', |
9 | 8 |
'CANCELED' => 'Storniert', |
10 | 9 |
'Cannot create Lock!' => 'System kann nicht gesperrt werden!', |
11 | 10 |
'Change Admin Password' => 'Administratorpasswort ?ndern', |
12 | 11 |
'Confirmation' => 'Auftragsbest?tigung', |
13 |
'Continue' => 'Weiter', |
|
14 | 12 |
'Create Dataset' => 'Datenbank anlegen', |
15 | 13 |
'Credit Note' => 'Gutschrift', |
16 | 14 |
'Customer Number' => 'Kundennummer', |
... | ... | |
20 | 18 |
'Database Administration' => 'Datenbankadministration', |
21 | 19 |
'Database User missing!' => 'Datenbankbenutzer fehlt!', |
22 | 20 |
'Dataset missing!' => 'Datenbank fehlt!', |
23 |
'Dataset updated!' => 'Datenbank erneuert!', |
|
24 | 21 |
'Dataset upgrade' => 'Datenbankaktualisierung', |
25 | 22 |
'Delete Dataset' => 'Datenbank l?schen', |
26 | 23 |
'Dependency loop detected:' => 'Schleife in den Abhängigkeiten entdeckt:', |
... | ... | |
77 | 74 |
'Storno Packing List' => 'Stornolieferschein', |
78 | 75 |
'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.', |
79 | 76 |
'The directory %s does not exist.' => 'Das Verzeichnis %s existiert nicht.', |
80 |
'The following Datasets need to be updated' => 'Folgende Datenbanken m?ssen aktualisiert werden', |
|
81 | 77 |
'The login is missing.' => 'Das Login fehlt.', |
82 | 78 |
'The passwords do not match.' => 'Die Passwörter stimmen nicht überein.', |
83 | 79 |
'Trying to call a sub without a name' => 'Es wurde versucht, eine Unterfunktion ohne Namen aufzurufen.', |
locale/de/all | ||
---|---|---|
128 | 128 |
'All Accounts' => 'Alle Konten', |
129 | 129 |
'All Datasets up to date!' => 'Alle Datenbanken sind auf aktuellem Stand.', |
130 | 130 |
'All changes in that file have been reverted.' => 'Alle Änderungen in dieser Datei wurden rückgängig gemacht.', |
131 |
'All database upgrades have been applied.' => 'Alle Datenbankupdates wurden eingespielt.', |
|
131 | 132 |
'Amended Advance Turnover Tax Return' => 'Berichtigte Anmeldung', |
132 | 133 |
'Amended Advance Turnover Tax Return (Nr. 10)' => 'Ist dies eine berichtigte Anmeldung? (Nr. 10/Zeile 15 Steuererkl?rung)', |
133 | 134 |
'Amount' => 'Betrag', |
... | ... | |
323 | 324 |
'Database update error:' => 'Fehler beim Datenbankupgrade:', |
324 | 325 |
'Dataset' => 'Datenbank', |
325 | 326 |
'Dataset missing!' => 'Datenbank fehlt!', |
326 |
'Dataset updated!' => 'Datenbank erneuert!', |
|
327 | 327 |
'Dataset upgrade' => 'Datenbankaktualisierung', |
328 | 328 |
'Date' => 'Datum', |
329 | 329 |
'Date Format' => 'Datumsformat', |
... | ... | |
699 | 699 |
'No Dataset selected!' => 'Keine Datenbank ausgew?hlt!', |
700 | 700 |
'No Vendor was found matching the search parameters.' => 'Zu dem Suchbegriff wurde kein H?ndler gefunden', |
701 | 701 |
'No customer has been selected yet.' => 'Es wurde noch kein Kunde ausgew?hlt.', |
702 |
'No datasets have been selected.' => 'Es wurden keine Datenbanken ausgewählt.', |
|
702 | 703 |
'No employee was found matching the search parameters.' => 'Es wurde kein Angestellter gefunden, auf den die Suchparameter zutreffen.', |
703 | 704 |
'No entries were found which had no unit assigned to them.' => 'Es wurden keine Einträge gefunden, denen keine Einheit zugeordnet war.', |
704 | 705 |
'No licenses were found that match the search criteria.' => 'Es wurden keine Lizenzen gefunden, auf die die Suchkriterien zutreffen.', |
... | ... | |
1123 | 1124 |
'Update Prices' => 'Preise aktualisieren', |
1124 | 1125 |
'Update complete' => 'Update beendet.', |
1125 | 1126 |
'Update prices' => 'Preise aktualisieren', |
1127 |
'Update?' => 'Aktualisieren?', |
|
1126 | 1128 |
'Updated' => 'Erneuert am', |
1127 | 1129 |
'Use As Template' => 'Als Vorlage verwenden', |
1128 | 1130 |
'Use Templates' => 'benutze Vorlagen', |
templates/webpages/admin/dbadmin_de.html | ||
---|---|---|
54 | 54 |
<br> |
55 | 55 |
|
56 | 56 |
<input type="submit" class="submit" name="action" value="Datenbank anlegen"> |
57 |
<!-- <input type="submit" class="submit" name="action" value="Datenbank aktualisieren"> -->
|
|
57 |
<input type="submit" class="submit" name="action" value="Datenbank aktualisieren">
|
|
58 | 58 |
<input type="submit" class="submit" name="action" value="Datenbank l?schen"> |
59 | 59 |
</td> |
60 | 60 |
</tr> |
templates/webpages/admin/dbadmin_master.html | ||
---|---|---|
54 | 54 |
<br> |
55 | 55 |
|
56 | 56 |
<input type="submit" class="submit" name="action" value="<translate>Create Dataset</translate>"> |
57 |
<!-- <input type="submit" class="submit" name="action" value="<translate>Update Dataset</translate>"> -->
|
|
57 |
<input type="submit" class="submit" name="action" value="<translate>Update Dataset</translate>">
|
|
58 | 58 |
<input type="submit" class="submit" name="action" value="<translate>Delete Dataset</translate>"> |
59 | 59 |
</td> |
60 | 60 |
</tr> |
templates/webpages/admin/dbupgrade_all_done_de.html | ||
---|---|---|
1 |
<TMPL_IF NOTHING_TO_DO> |
|
2 |
<p>Es wurden keine Datenbanken ausgewählt.</p> |
|
3 |
|
|
4 |
<TMPL_ELSE> |
|
5 |
|
|
6 |
<hr> |
|
7 |
|
|
8 |
<p>Alle Datenbankupdates wurden eingespielt.</p> |
|
9 |
</TMPL_IF> |
|
10 |
|
|
11 |
<form method="post" action="admin.pl"> |
|
12 |
<input type="hidden" name="nextsub" value="list_users"> |
|
13 |
<input type="hidden" name="rpw" value="<TMPL_VAR rpw ESCAPE=HTML>"> |
|
14 |
|
|
15 |
<input type="submit" name="action" value="Weiter"> |
|
16 |
</form> |
|
17 |
|
|
18 |
</body> |
|
19 |
</html> |
templates/webpages/admin/dbupgrade_all_done_master.html | ||
---|---|---|
1 |
<TMPL_IF NOTHING_TO_DO> |
|
2 |
<p><translate>No datasets have been selected.</translate></p> |
|
3 |
|
|
4 |
<TMPL_ELSE> |
|
5 |
|
|
6 |
<hr> |
|
7 |
|
|
8 |
<p><translate>All database upgrades have been applied.</translate></p> |
|
9 |
</TMPL_IF> |
|
10 |
|
|
11 |
<form method="post" action="admin.pl"> |
|
12 |
<input type="hidden" name="nextsub" value="list_users"> |
|
13 |
<input type="hidden" name="rpw" value="<TMPL_VAR rpw ESCAPE=HTML>"> |
|
14 |
|
|
15 |
<input type="submit" name="action" value="<translate>Continue</translate>"> |
|
16 |
</form> |
|
17 |
|
|
18 |
</body> |
|
19 |
</html> |
templates/webpages/admin/dbupgrade_all_header_de.html | ||
---|---|---|
1 |
<body> |
|
2 |
|
templates/webpages/admin/dbupgrade_all_header_master.html | ||
---|---|---|
1 |
<body> |
|
2 |
|
templates/webpages/admin/dbupgrade_footer_de.html | ||
---|---|---|
1 |
<p>...fertig</p> |
templates/webpages/admin/dbupgrade_footer_master.html | ||
---|---|---|
1 |
<p><translate>...done</translate></p> |
templates/webpages/admin/dbupgrade_header_de.html | ||
---|---|---|
1 |
<div class="listtop" width="100%">Datenbankaktualisierung (<TMPL_VAR dbname ESCAPE=HTML>)</div> |
templates/webpages/admin/dbupgrade_header_master.html | ||
---|---|---|
1 |
<div class="listtop" width="100%"><translate>Dataset upgrade</translate> (<TMPL_VAR dbname ESCAPE=HTML>)</div> |
templates/webpages/admin/update_dataset_de.html | ||
---|---|---|
1 |
<body class="admin"> |
|
2 |
|
|
3 |
<h2><TMPL_VAR title></h2> |
|
4 |
|
|
5 |
<TMPL_IF ALL_UPDATED> |
|
6 |
Alle Datenbanken sind auf aktuellem Stand. |
|
7 |
|
|
8 |
<TMPL_ELSE> |
|
9 |
|
|
10 |
<form method="post" action="admin.pl"> |
|
11 |
|
|
12 |
<p>Folgende Datenbanken m?ssen aktualisiert werden:</p> |
|
13 |
|
|
14 |
<table> |
|
15 |
<tr> |
|
16 |
<th class="listtop">Aktualisieren?</th> |
|
17 |
<th class="listtop">Datenbank</th> |
|
18 |
<th class="listtop">Treiber</th> |
|
19 |
<th class="listtop">Datenbankcomputer</th> |
|
20 |
<th class="listtop">Port</th> |
|
21 |
<th class="listtop">Benutzer</th> |
|
22 |
</tr> |
|
23 |
|
|
24 |
<TMPL_LOOP NEED_UPDATES> |
|
25 |
<tr class="listrow<TMPL_IF __odd__>1<TMPL_ELSE>0</TMPL_IF>"> |
|
26 |
<td><input type="checkbox" name="update_<TMPL_VAR __counter__>" value="1" checked></td> |
|
27 |
<td><input type="hidden" name="dbname_<TMPL_VAR __counter__>" value="<TMPL_VAR dbname ESCAPE=HTML>"><TMPL_VAR dbname ESCAPE=HTML></td> |
|
28 |
<td><input type="hidden" name="dbdriver_<TMPL_VAR __counter__>" value="Pg">PostgreSQL</td> |
|
29 |
<td><input type="hidden" name="dbhost_<TMPL_VAR __counter__>" value="<TMPL_VAR dbhost ESCAPE=HTML>"><TMPL_VAR dbhost ESCAPE=HTML></td> |
|
30 |
<td><input type="hidden" name="dbport_<TMPL_VAR __counter__>" value="<TMPL_VAR dbport ESCAPE=HTML>"><TMPL_VAR dbport ESCAPE=HTML></td> |
|
31 |
<td><input type="hidden" name="dbuser_<TMPL_VAR __counter__>" value="<TMPL_VAR dbuser ESCAPE=HTML>"><TMPL_VAR dbuser ESCAPE=HTML></td> |
|
32 |
</tr> |
|
33 |
|
|
34 |
<TMPL_IF __last__> |
|
35 |
<input type="hidden" name="rowcount" value="<TMPL_VAR __counter__>"> |
|
36 |
</TMPL_IF> |
|
37 |
</TMPL_LOOP> |
|
38 |
</table> |
|
39 |
|
|
40 |
<input name="callback" type="hidden" value="admin.pl?action=list_users&rpw=<TMPL_VAR rpw ESCAPE=URL>"> |
|
41 |
<input type="hidden" name="rpw" value="<TMPL_VAR rpw ESCAPE=HTML>"> |
|
42 |
<input type="hidden" name="nextsub" value="dbupdate"> |
|
43 |
|
|
44 |
<hr size="3" noshade> |
|
45 |
|
|
46 |
<br> |
|
47 |
|
|
48 |
<input type="submit" class="submit" name="action" value="Weiter"> |
|
49 |
|
|
50 |
</form> |
|
51 |
|
|
52 |
</TMPL_IF> |
|
53 |
|
|
54 |
</body> |
|
55 |
</html> |
templates/webpages/admin/update_dataset_master.html | ||
---|---|---|
1 |
<body class="admin"> |
|
2 |
|
|
3 |
<h2><TMPL_VAR title></h2> |
|
4 |
|
|
5 |
<TMPL_IF ALL_UPDATED> |
|
6 |
<translate>All Datasets up to date!</translate> |
|
7 |
|
|
8 |
<TMPL_ELSE> |
|
9 |
|
|
10 |
<form method="post" action="admin.pl"> |
|
11 |
|
|
12 |
<p><translate>The following Datasets need to be updated</translate>:</p> |
|
13 |
|
|
14 |
<table> |
|
15 |
<tr> |
|
16 |
<th class="listtop"><translate>Update?</translate></th> |
|
17 |
<th class="listtop"><translate>Dataset</translate></th> |
|
18 |
<th class="listtop"><translate>Driver</translate></th> |
|
19 |
<th class="listtop"><translate>Host</translate></th> |
|
20 |
<th class="listtop"><translate>Port</translate></th> |
|
21 |
<th class="listtop"><translate>User</translate></th> |
|
22 |
</tr> |
|
23 |
|
|
24 |
<TMPL_LOOP NEED_UPDATES> |
|
25 |
<tr class="listrow<TMPL_IF __odd__>1<TMPL_ELSE>0</TMPL_IF>"> |
|
26 |
<td><input type="checkbox" name="update_<TMPL_VAR __counter__>" value="1" checked></td> |
|
27 |
<td><input type="hidden" name="dbname_<TMPL_VAR __counter__>" value="<TMPL_VAR dbname ESCAPE=HTML>"><TMPL_VAR dbname ESCAPE=HTML></td> |
|
28 |
<td><input type="hidden" name="dbdriver_<TMPL_VAR __counter__>" value="Pg">PostgreSQL</td> |
|
29 |
<td><input type="hidden" name="dbhost_<TMPL_VAR __counter__>" value="<TMPL_VAR dbhost ESCAPE=HTML>"><TMPL_VAR dbhost ESCAPE=HTML></td> |
|
30 |
<td><input type="hidden" name="dbport_<TMPL_VAR __counter__>" value="<TMPL_VAR dbport ESCAPE=HTML>"><TMPL_VAR dbport ESCAPE=HTML></td> |
|
31 |
<td><input type="hidden" name="dbuser_<TMPL_VAR __counter__>" value="<TMPL_VAR dbuser ESCAPE=HTML>"><TMPL_VAR dbuser ESCAPE=HTML></td> |
|
32 |
</tr> |
|
33 |
|
|
34 |
<TMPL_IF __last__> |
|
35 |
<input type="hidden" name="rowcount" value="<TMPL_VAR __counter__>"> |
|
36 |
</TMPL_IF> |
|
37 |
</TMPL_LOOP> |
|
38 |
</table> |
|
39 |
|
|
40 |
<input name="callback" type="hidden" value="admin.pl?action=list_users&rpw=<TMPL_VAR rpw ESCAPE=URL>"> |
|
41 |
<input type="hidden" name="rpw" value="<TMPL_VAR rpw ESCAPE=HTML>"> |
|
42 |
<input type="hidden" name="nextsub" value="dbupdate"> |
|
43 |
|
|
44 |
<hr size="3" noshade> |
|
45 |
|
|
46 |
<br> |
|
47 |
|
|
48 |
<input type="submit" class="submit" name="action" value="<translate>Continue</translate>"> |
|
49 |
|
|
50 |
</form> |
|
51 |
|
|
52 |
</TMPL_IF> |
|
53 |
|
|
54 |
</body> |
|
55 |
</html> |
Auch abrufbar als: Unified diff
Administration: Die Funktion zur Aktualisierung von nicht aktuellen Datenbanken neu geschrieben und wieder aktiviert. Unterstützt auch die Scripte in Pg-upgrade2.