# 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;
+use SL::Locale::String qw(t8);
use Data::Dumper;
$main::auth->assert('admin');
- $form->isblank("formname", $locale->text("You're not editing a file.")) unless ($form->{type} eq "stylesheet");
+ $form->isblank("formname", $locale->text("You're not editing a file."));
my ($filename) = AM->prepare_template_filename(\%myconfig, $form);
if (my $error = AM->save_template($filename, $form->{content})) {
$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|.*/||;
}
my $format = $form->{"format"} eq "html" ? "html" : "tex";
- $form->{"title"} = $form->{"type"} eq "stylesheet" ? $locale->text("Edit the stylesheet") : $locale->text("Edit templates");
+ $form->{"title"} = $locale->text("Edit templates");
if ($form->{"format"}) {
$form->{"title"} = uc($form->{"format"}) . " - " . $form->{"title"};
}
my @hidden = qw(type format);
- if (($form->{"type"} ne "stylesheet") && !$form->{"edit"}) {
+ if (!$form->{"edit"}) {
$options{"SHOW_EDIT_OPTIONS"} = 1;
#
#
if ($format eq "tex") {
# search all .tex-files in template dir (recursively)
+ my $template_dir = $defaults->templates;
my @all_files;
find(
sub {
my $fname = $File::Find::name;
# remove template dir from name
- $fname =~ s|^$myconfig{templates}/||;
+ $fname =~ s|^\Q$template_dir\E/||;
# remove .tex from name
$fname =~ s|.tex$||;
push(@all_files, $fname);
- }, $myconfig{templates});
+ }, $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;
push(@hidden, qw(formname language printer));
}
- if ($form->{formname} || ($form->{type} eq "stylesheet")) {
+ if ($form->{formname}) {
$options{"SHOW_CONTENT"} = 1;
($options{"filename"}, $options{"display_filename"})
$options{"CAN_EDIT"} = $form->{"edit"};
- if ($form->{edit}) {
- $::request->{layout}->focus("#edit_content");
-
- } else {
- $options{"content"} = "\n\n" if (!$options{"content"});
- $options{"SHOW_SECOND_EDIT_BUTTON"} = $options{"lines"} > 25;
+ if (!$form->{edit}) {
+ $options{"content"} = "\n\n" if (!$options{"content"});
}
}
$options{"HIDDEN"} = [ map(+{ "name" => $_, "value" => $form->{$_} }, @hidden) ];
+ setup_amtemplates_display_form_action_bar(
+ mode => $form->{edit} ? 'edit' : 'show',
+ template_selected => $options{SHOW_CONTENT},
+ );
+
$form->header;
print($form->parse_html_template("am/edit_templates", \%options));
$main::lxdebug->leave_sub();
}
+sub setup_amtemplates_display_form_action_bar {
+ my %params = @_;
+
+ for my $bar ($::request->layout->get('actionbar')) {
+ $bar->add(
+ action => [
+ t8('Edit'),
+ submit => [ '#form', { action => 'edit_template' } ],
+ accesskey => 'enter',
+ only_if => $params{mode} eq 'show',
+ disabled => !$params{template_selected} ? t8('No template has been selected yet.') : undef,
+ ],
+
+ action => [
+ t8('Save'),
+ submit => [ '#form', { action => 'save_template' } ],
+ accesskey => 'enter',
+ only_if => $params{mode} eq 'edit',
+ ],
+
+ action => [
+ t8('Abort'),
+ call => [ 'kivi.history_back' ],
+ only_if => $params{mode} eq 'edit',
+ ],
+ );
+ }
+}
+
1;