use SL::User;
use SL::Common;
use SL::Inifile;
+use SL::DBUpgrade2;
require "bin/mozilla/common.pl";
}
sub update_dataset {
-
- %needsupdate = User->dbneedsupdate(\%$form);
-
$form->{title} =
"Lx-Office ERP "
. $locale->text('Database Administration') . " / "
. $locale->text('Update Dataset');
- $form->header;
-
- print qq|
-<body class=admin>
-
-
-<center>
-<h2>$form->{title}</h2>
-|;
- my $field_id = 0;
- foreach $key (sort keys %needsupdate) {
- if ($needsupdate{$key} ne $form->{dbversion}) {
- $upd .= qq|<input id="$field_id" name="db$key" type="checkbox" value="1" checked> $key\n|;
- $form->{dbupdate} .= "db$key ";
- $field_id++;
- }
- }
-
- chop $form->{dbupdate};
-
- if ($form->{dbupdate}) {
-
- print qq|
-<table width=100%>
-<form method=post action=$form->{script}>
-
-<input type=hidden name="dbhost" value="$form->{dbhost}">
-<input type=hidden name="dbport" value="$form->{dbport}">
-<input type=hidden name="dbuser" value="$form->{dbuser}">
-<input type=hidden name="dbpasswd" value="$form->{dbpasswd}">
-<input type=hidden name="dbdefault" value="$form->{dbdefault}">
+ my @need_updates = User->dbneedsupdate($form);
+ $form->{NEED_UPDATES} = \@need_updates;
+ $form->{ALL_UPDATED} = !scalar @need_updates;
-<tr class=listheading>
- <th>| . $locale->text('The following Datasets need to be updated') . qq|</th>
-</tr>
-<tr>
-<td>
-
-$upd
+ $form->header();
+ print $form->parse_html_template("admin/update_dataset");
+}
-</td>
-</tr>
-<tr>
-<td>
+sub dbupdate {
+ $form->{stylesheet} = "lx-office-erp.css";
+ $form->{title} = $locale->text("Dataset upgrade");
+ $form->header();
-<input name=dbupdate type=hidden value="$form->{dbupdate}">
+ my $rowcount = $form->{rowcount} * 1;
+ my @update_rows = grep { $form->{"update_$_"} } (1 .. $rowcount);
+ $form->{NOTHING_TO_DO} = !scalar @update_rows;
+ my $saved_form = save_form();
-<input name=callback type=hidden value="$form->{script}?action=list_users&rpw=$form->{rpw}">
+ $| = 1;
-<input type=hidden name=rpw value=$form->{rpw}>
+ print $form->parse_html_template("admin/dbupgrade_all_header");
-<input type=hidden name=nextsub value=dbupdate>
+ foreach my $i (@update_rows) {
+ restore_form($saved_form);
-<hr size=3 noshade>
+ map { $form->{$_} = $form->{"${_}_${i}"} } qw(dbname dbdriver dbhost dbport dbuser dbpasswd);
-<br>
-<input type=submit class=submit name=action value="|
- . $locale->text('Continue') . qq|">
+ my $controls = parse_dbupdate_controls($form, $form->{dbdriver});
-</td></tr>
-</table>
-</form>
-|;
+ print $form->parse_html_template("admin/dbupgrade_header");
- } else {
+ $form->{dbupdate} = $form->{dbname};
+ $form->{$form->{dbname}} = 1;
- print $locale->text('All Datasets up to date!');
+ User->dbupdate($form);
+ User->dbupdate2($form, $controls);
+ print $form->parse_html_template("admin/dbupgrade_footer");
}
- print qq|
-
-</body>
-</html>
-|;
-
-}
-
-sub dbupdate {
- $form->{"stylesheet"} = "lx-office-erp.css";
- $form->{"title"} = $main::locale->text("Dataset upgrade");
- $form->header();
- my $dbname =
- join(" ",
- map({ s/\s//g; s/^db//; $_; }
- grep({ $form->{$_} }
- split(/\s+/, $form->{"dbupdate"}))));
- print($form->parse_html_template("dbupgrade/header",
- { "dbname" => $dbname }));
-
- User->dbupdate(\%$form);
-
- print qq|
-<hr>
-
-| . $locale->text('Dataset updated!') . qq|
-
-<br>
-
-<a id="enddatasetupdate" href="admin.pl?action=login&| .
-join("&", map({ "$_=" . $form->escape($form->{$_}); } qw(rpw))) .
-qq|">| . $locale->text("Continue") . qq|</a>|;
-
+ print $form->parse_html_template("admin/dbupgrade_all_done");
}
sub create_dataset {