Skip to content

Commit

Permalink
Loading templates now works as part of the db setup process. Now to a…
Browse files Browse the repository at this point in the history
…dd it to the console template

git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/trunk@6395 4979c152-3d1c-0410-bac9-87ea11338e46
  • Loading branch information
einhverfr committed Jan 6, 2014
1 parent 144914d commit c6a7ca2
Show file tree
Hide file tree
Showing 3 changed files with 85 additions and 141 deletions.
27 changes: 2 additions & 25 deletions LedgerSMB/Scripts/configuration.pm
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,6 @@ our @default_settings = (
{ name => 'default_language',
label => $locale->text('Default Language'),
type => 'SELECT_ONE', },
{ name => 'templates',
type => 'SELECT_ONE',
label => $locale->text('Template Set'), },
{ name => 'format',
type => 'SELECT_ONE',
label => $locale->text('Default Format'), },
Expand Down Expand Up @@ -211,12 +208,6 @@ sub defaults_screen{
text_attr => 'description',
value_attr => 'code',
},
'templates' => {name => 'templates',
options => _get_template_directories(),
text_attr => 'text',
default_values => [$request->{'templates'}],
value_attr => 'value'
},
'format' => {name => 'format',
text_attr => 'text',
value_attr => 'value',
Expand Down Expand Up @@ -295,26 +286,12 @@ sub save_defaults {
defaults_screen($request);
}

=item _get_template_directories
=item save_sequences
Returns set of template directories available.
Saves the items in the sequence screen
=cut

sub _get_template_directories {
my $subdircount = 0;
my @dirarray;
opendir ( DIR, $LedgerSMB::Sysconfig::templates) || die $locale->text("Error while opening directory: [_1]", "./".$LedgerSMB::Sysconfig::templates);
while( my $name = readdir(DIR)){
next if ($name =~ /\./);
if (-d $LedgerSMB::Sysconfig::templates.'/'.$name) {
push @dirarray, {text => $name, value => $name};
}
}
closedir(DIR);
return \@dirarray;
}

sub save_sequences {
my ($request) = @_;
for my $count (1 .. $request->{count}){
Expand Down
95 changes: 83 additions & 12 deletions LedgerSMB/Scripts/setup.pm
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ use LedgerSMB::Auth;
use LedgerSMB::Database;
use LedgerSMB::App_State;
use LedgerSMB::Upgrade_Tests;
use LedgerSMB::Sysconfig;
use LedgerSMB::Template::DB;
use strict;

my $logger = Log::Log4perl->get_logger('LedgerSMB::Scripts::setup');
Expand Down Expand Up @@ -203,12 +205,7 @@ sub copy_db {
my $database = _get_database($request);
my $rc = $database->copy($request->{new_name})
|| die 'An error occurred. Please check your database logs.' ;
my $template = LedgerSMB::Template->new(
path => 'UI/setup',
template => 'complete',
format => 'HTML',
);
$template->render($request);
complete($request);
}


Expand Down Expand Up @@ -317,6 +314,67 @@ sub run_backup {

}

=item _get_template_directories
Returns set of template directories available.
=cut

sub _get_template_directories {
my $subdircount = 0;
my @dirarray;
my $locale = $LedgerSMB::App_State::Locale;
opendir ( DIR, $LedgerSMB::Sysconfig::templates) || die $locale->text("Error while opening directory: [_1]", "./".$LedgerSMB::Sysconfig::templates);
while( my $name = readdir(DIR)){
next if ($name =~ /\./);
if (-d $LedgerSMB::Sysconfig::templates.'/'.$name) {
push @dirarray, {text => $name, value => $name};
}
}
closedir(DIR);
return \@dirarray;
}

=item template_screen
Shows the screen for loading templates. This should appear before loading
the user. $request->{only_templates} will be passed on to the saving routine
so that further workflow can be aborted.
=cut

sub template_screen {
my ($request) = @_;
$request->{template_dirs} = _get_template_directories();
LedgerSMB::Template->new(
path => 'UI/setup',
template => 'template_info',
format => 'HTML',
)->render($request);
}

=item load_templates
This bulk loads the templates. Expectated inputs are template_dir and
optionally only_templates (which if true returns to the confirmation screen
and not the user creation screen.
=cut

sub load_templates {
my ($request) = @_;
my $dir = $LedgerSMB::Sysconfig::templates . '/' . $request->{template_dir};
my $dbh = _get_database($request)->dbh;
opendir(DIR, $dir);
while (readdir(DIR)){
next unless -f "$dir/$_";
my $dbtemp = LedgerSMB::Template::DB->get_from_file("$dir/$_");
$dbtemp->save;
}
$dbh->commit;
return _render_new_user($request) unless $request->{only_templates};
return complete($request);
}

=item _get_linked_accounts
Expand Down Expand Up @@ -549,7 +607,6 @@ sub fix_tests{
=cut

sub create_db {
use LedgerSMB::Sysconfig;
my ($request) = @_;
my $rc=0;

Expand Down Expand Up @@ -597,7 +654,7 @@ sub select_coa {
}
if ($request->{coa_lc}){
if ($request->{chart}){
_render_new_user($request);
template_screen($request);
} else {
opendir(COA, "sql/coa/$request->{coa_lc}/chart");
my @coa = sort (grep !/^(\.|[Ss]ample.*)/, readdir(COA));
Expand All @@ -617,7 +674,7 @@ sub select_coa {
push @{$request->{coa_lcs}}, {code => $lcs};
}
}
_render_new_user($request);
template_screen($request);
}


Expand All @@ -635,7 +692,7 @@ button facilitates that scenario.
sub skip_coa {
my ($request) = @_;

_render_new_user($request);
template_screen($request);
}


Expand Down Expand Up @@ -932,7 +989,6 @@ sub rebuild_modules {
log => $temp . "_stdout",
errlog => $temp . "_stderr"
});
$request->{lsmb_info} = $database->lsmb_info();

my $dbh = $request->{dbh};
my $sth = $dbh->prepare(
Expand All @@ -942,15 +998,30 @@ sub rebuild_modules {
$sth->finish;
$dbh->commit;
#$dbh->disconnect;#upper stack will disconnect
complete($request);

}

=item complete
Gets the info and adds shows the complete screen.
=cut

sub complete {
my ($request) = @_;
my $database = _init_db($request);
my $temp = $database->loader_log_filename();
$request->{lsmb_info} = $database->lsmb_info();
my $template = LedgerSMB::Template->new(
path => 'UI/setup',
template => 'complete',
format => 'HTML',
);
$template->render($request);

}


=back
=head1 COPYRIGHT
Expand Down
104 changes: 0 additions & 104 deletions tools/load_templates.pl

This file was deleted.

0 comments on commit c6a7ca2

Please sign in to comment.