Funktion zum Auflisten vorhandener Druckvorlagen nach SL::Template verschoben
authorMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 3 Jun 2013 14:37:52 +0000 (16:37 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 5 Jun 2013 08:03:56 +0000 (10:03 +0200)
SL/Template.pm
bin/mozilla/admin.pl

index ab499e9..df6dbec 100644 (file)
@@ -10,6 +10,8 @@ package SL::Template;
 
 use strict;
 
+use IO::Dir;
+
 use SL::Template::Simple;
 use SL::Template::Excel;
 use SL::Template::HTML;
@@ -26,4 +28,30 @@ sub create {
   $package->new($params{file_name}, $params{form}, $params{myconfig} || \%::myconfig, $params{userspath} || $::lx_office_conf{paths}->{userspath});
 }
 
+sub available_templates {
+  my ($class) = @_;
+
+  # is there a templates basedir
+  if (!-d $::lx_office_conf{paths}->{templates}) {
+    $::form->error(sprintf($::locale->text("The directory %s does not exist."), $::lx_office_conf{paths}->{templates}));
+  }
+
+  tie my %dir_h, 'IO::Dir', $::lx_office_conf{paths}->{templates};
+
+  my @alldir  = sort grep {
+       -d ($::lx_office_conf{paths}->{templates} . "/$_")
+    && !/^\.\.?$/
+    && !m/\.(?:html|tex|sty|odt|xml|txb)$/
+    && !m/^(?:webpages$|print$|mail$|\.)/
+  } keys %dir_h;
+
+  tie %dir_h, 'IO::Dir', "$::lx_office_conf{paths}->{templates}/print";
+  my @allmaster = ('Standard', sort grep { -d ("$::lx_office_conf{paths}->{templates}/print" . "/$_") && !/^\.\.?$/ && !/^Standard$/ } keys %dir_h);
+
+  return (
+    print_templates  => \@alldir,
+    master_templates => \@allmaster,
+  );
+}
+
 1;
index 84c8b06..1c7f259 100755 (executable)
@@ -55,6 +55,7 @@ use SL::Common;
 use SL::Inifile;
 use SL::DBUpgrade2;
 use SL::DBUtils;
+use SL::Template;
 
 require "bin/mozilla/common.pl";
 require "bin/mozilla/admin_groups.pl";
@@ -1168,24 +1169,9 @@ sub _nologin_file_name {
 }
 
 sub _search_templates {
-  # is there a templates basedir
-  if (!-d $::lx_office_conf{paths}->{templates}) {
-    $::form->error(sprintf($::locale->text("The directory %s does not exist."), $::lx_office_conf{paths}->{templates}));
-  }
-
-  tie my %dir_h, 'IO::Dir', $::lx_office_conf{paths}->{templates};
-
-  my @alldir  = sort grep {
-       -d ($::lx_office_conf{paths}->{templates} . "/$_")
-    && !/^\.\.?$/
-    && !m/\.(?:html|tex|sty|odt|xml|txb)$/
-    && !m/^(?:webpages$|print$|mail$|\.)/
-  } keys %dir_h;
-
-  tie %dir_h, 'IO::Dir', "$::lx_office_conf{paths}->{templates}/print";
-  my @allmaster = ('Standard', sort grep { -d ("$::lx_office_conf{paths}->{templates}/print" . "/$_") && !/^\.\.?$/ && !/^Standard$/ } keys %dir_h);
+  my %templates = SL::Template->available_templates;
 
-  return \@alldir, \@allmaster;
+  return ($templates{print_templates}, $templates{master_templates});
 }
 
 1;