# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1335, USA.
#======================================================================
#
# administration
#
#======================================================================
+use File::Find;
+
+use SL::DB::Default;
use SL::AM;
use SL::Form;
my $form = $main::form;
- $main::auth->assert('config');
+ $main::auth->assert('admin');
$form->{edit} = 0;
display_template_form();
my $form = $main::form;
- $main::auth->assert('config');
+ $main::auth->assert('admin');
$form->{edit} = 1;
display_template_form();
my %myconfig = %main::myconfig;
my $locale = $main::locale;
- $main::auth->assert('config');
+ $main::auth->assert('admin');
$form->isblank("formname", $locale->text("You're not editing a file.")) unless ($form->{type} eq "stylesheet");
my %myconfig = %main::myconfig;
my $locale = $main::locale;
- $main::auth->assert('config');
+ $main::auth->assert('admin');
+
+ my $defaults = SL::DB::Default->get;
+ $form->error($::locale->text('No print templates have been created for this client yet. Please do so in the client configuration.')) if !$defaults->templates;
+
+ if ($form->{"formname"} =~ m|\.\.| || $form->{"formname"} =~ m|^/|) {
+ $form->{"formname"} =~ s|.*/||;
+ }
- $form->{"formname"} =~ s|.*/||;
my $format = $form->{"format"} eq "html" ? "html" : "tex";
$form->{"title"} = $form->{"type"} eq "stylesheet" ? $locale->text("Edit the stylesheet") : $locale->text("Edit templates");
@values = sort({ $a->{"label"} cmp $b->{"label"} } @values);
+ #
+ # at the end: others/includes for tex
+ #
+ if ($format eq "tex") {
+ # search all .tex-files in template dir (recursively)
+ my $template_dir = $defaults->templates;
+ my @all_files;
+ find(
+ sub {
+ next if (-l $_ || -d $_);
+ next unless (-f $_ && $_ =~ m/.*?\.tex$/);
+
+ my $fname = $File::Find::name;
+ # remove template dir from name
+ $fname =~ s|^\Q$template_dir\E/||;
+ # remove .tex from name
+ $fname =~ s|.tex$||;
+
+ push(@all_files, $fname);
+
+ }, $template_dir);
+
+ # filter all files already set up (i.e. not already in @values)
+ my @other_files = grep { my $a=$_; not grep {$a eq $_->{value}} @values } @all_files;
+
+ # add other tex files
+ foreach my $o (@other_files) {
+ push(@values, { "value" => $o, "label" => $locale->text("Others")." ($o)" });
+ }
+ }
+
$options{FORMNAME} = [ @values ];
#
$options{"CAN_EDIT"} = $form->{"edit"};
- if ($form->{edit}) {
- $form->{fokus} = "Form.content";
-
- } else {
+ if (!$form->{edit}) {
$options{"content"} = "\n\n" if (!$options{"content"});
$options{"SHOW_SECOND_EDIT_BUTTON"} = $options{"lines"} > 25;
}