Revision 05b30be4
Von Moritz Bunkus vor mehr als 11 Jahren hinzugefügt
SL/Controller/ClientConfig.pm | ||
---|---|---|
use strict;
|
||
use parent qw(SL::Controller::Base);
|
||
|
||
use File::Copy::Recursive ();
|
||
use List::Util qw(first);
|
||
|
||
use SL::DB::Chart;
|
||
... | ... | |
use SL::DB::Unit;
|
||
use SL::Helper::Flash;
|
||
use SL::Locale::String qw(t8);
|
||
use SL::Template;
|
||
|
||
__PACKAGE__->run_before('check_auth');
|
||
|
||
use Rose::Object::MakeMethods::Generic (
|
||
'scalar --get_set_init' => [ qw(defaults all_warehouses all_weightunits all_languages all_currencies posting_options payment_options accounting_options inventory_options profit_options accounts) ],
|
||
'scalar --get_set_init' => [ qw(defaults all_warehouses all_weightunits all_languages all_currencies all_templates posting_options payment_options accounting_options inventory_options profit_options accounts) ],
|
||
);
|
||
|
||
sub action_edit {
|
||
my ($self, %params) = @_;
|
||
|
||
$::form->{use_templates} = $self->defaults->templates ? 'existing' : 'new';
|
||
$self->edit_form;
|
||
}
|
||
|
||
... | ... | |
|
||
my @errors = map { $errors_idx{$_} } sort keys %errors_idx;
|
||
|
||
# Check templates
|
||
$::form->{new_templates} =~ s:/::g;
|
||
$::form->{new_master_templates} =~ s:/::g;
|
||
|
||
if (($::form->{use_templates} eq 'existing') && ($self->defaults->templates !~ m:^templates/[^/]+$:)) {
|
||
push @errors, t8('You must select existing print templates or create a new set.');
|
||
|
||
} elsif ($::form->{use_templates} eq 'new') {
|
||
if (!$::form->{new_templates}) {
|
||
push @errors, t8('You must enter a name for your new print templates.');
|
||
} elsif (-d "templates/" . $::form->{new_templates}) {
|
||
push @errors, t8('A directory with the name for the new print templates exists already.');
|
||
} elsif (! -d "templates/print/" . $::form->{new_master_templates}) {
|
||
push @errors, t8('The master templates where not found.');
|
||
}
|
||
}
|
||
|
||
# Show form again if there were any errors. Nothing's been changed
|
||
# yet in the database.
|
||
if (@errors) {
|
||
flash('error', @errors);
|
||
return $self->edit_form;
|
||
... | ... | |
$self->defaults->currency_id($new_currency ? $new_currency->id : $original_currency_id);
|
||
}
|
||
|
||
# Create new templates if requested.
|
||
if ($::form->{use_templates} eq 'new') {
|
||
local $File::Copy::Recursive::SkipFlop = 1;
|
||
File::Copy::Recursive::dircopy('templates/print/' . $::form->{new_master_templates}, 'templates/' . $::form->{new_templates});
|
||
$self->defaults->templates('templates/' . $::form->{new_templates});
|
||
}
|
||
|
||
# Finally save defaults.
|
||
$self->defaults->save;
|
||
|
||
flash_later('info', t8('Client Configuration saved!'));
|
||
... | ... | |
sub init_all_languages { SL::DB::Manager::Language->get_all_sorted }
|
||
sub init_all_currencies { SL::DB::Manager::Currency->get_all_sorted }
|
||
sub init_all_weightunits { SL::DB::Manager::Unit->find_by(name => 'g')->convertible_units }
|
||
sub init_all_templates { +{ SL::Template->available_templates } }
|
||
|
||
sub init_posting_options {
|
||
[ { title => t8("never"), value => 0 },
|
||
... | ... | |
|
||
sub edit_form {
|
||
my ($self) = @_;
|
||
|
||
$self->render('client_config/form', title => t8('Client Configuration'),
|
||
make_chart_title => sub { $_[0]->accno . '--' . $_[0]->description });
|
||
make_chart_title => sub { $_[0]->accno . '--' . $_[0]->description },
|
||
make_templates_value => sub { 'templates/' . $_[0] },
|
||
);
|
||
}
|
||
|
||
1;
|
templates/webpages/client_config/_miscellaneous.html | ||
---|---|---|
</tr>
|
||
|
||
<tr>
|
||
<td align="right">[% LxERP.t8("Address") %]</td>
|
||
<td>[% L.textarea_tag('defaults.address', SELF.defaults.address, style=style, rows=4) %]</td>
|
||
<td align="right" valign="top">[% LxERP.t8("Address") %]</td>
|
||
<td valign="top">[% L.textarea_tag('defaults.address', SELF.defaults.address, style=style, rows=4) %]</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
... | ... | |
<td>[% L.select_tag('defaults.language_id', SELF.all_languages, title_key='description', default=SELF.defaults.language_id, with_empty=1, style=style) %]</td>
|
||
</tr>
|
||
|
||
<tr><td class="listheading" colspan="4">[% LxERP.t8("Print templates") %]</td></tr>
|
||
|
||
<tr>
|
||
<td align="right" valign="top">[% LxERP.t8("Print templates to use") %]</td>
|
||
<td colspan="3" valign="top">
|
||
<table>
|
||
<tr>
|
||
<td>[% L.radio_button_tag('use_templates', value='existing', id='use_templates_existing', label=LxERP.t8('Use existing templates'), checked=(FORM.use_templates == 'existing')) %]</td>
|
||
<td>[% L.select_tag('defaults.templates', SELF.all_templates.print_templates, default=SELF.defaults.templates, value_sub=\make_templates_value, style=style) %]</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>[% L.radio_button_tag('use_templates', value='new', id='use_templates_new', label=LxERP.t8('Create new templates from master templates'), checked=(FORM.use_templates == 'new')) %]</td>
|
||
<td>[% L.select_tag('new_master_templates', SELF.all_templates.master_templates, default=FORM.new_master_templates, style=style) %]</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td align="right">[% LxERP.t8("New name") %]</td>
|
||
<td>[% L.input_tag('new_templates', FORM.new_templates, style=style) %]</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr><td class="listheading" colspan="4">[% LxERP.t8("Currencies") %]</td></tr>
|
||
|
||
<tr>
|
||
... | ... | |
</tr>
|
||
|
||
[% FOREACH currency = SELF.all_currencies %]
|
||
[% L.hidden_tag("currencies[+].id", currency.id) %]
|
||
<tr>
|
||
<td align="right">[% IF loop.count == 1 %][% LxERP.t8("Currencies") %][% END %]</td>
|
||
<td>
|
||
[% L.input_tag("currencies[].name", currency.name, style=style) %]
|
||
</td>
|
||
<td align="center">
|
||
[% L.hidden_tag("currencies[+].id", currency.id) %]
|
||
[% L.radio_button_tag('defaults.currency_id', value=currency.id, id='defaults.currency_id_' _ currency.id, checked=(SELF.defaults.currency_id == currency.id)) %]
|
||
</td>
|
||
<td>[% L.input_tag("currencies[].name", currency.name, style=style) %]</td>
|
||
<td align="center">[% L.radio_button_tag('defaults.currency_id', value=currency.id, id='defaults.currency_id_' _ currency.id, checked=(SELF.defaults.currency_id == currency.id)) %]</td>
|
||
<td>[% IF loop.count == 1 %][% LxERP.t8("Edit the currency names in order to rename them.") %][%- END %]</td>
|
||
</tr>
|
||
[% END %]
|
templates/webpages/client_config/form.html | ||
---|---|---|
});
|
||
}
|
||
|
||
function enable_template_controls() {
|
||
var existing = $('#use_templates_existing').prop('checked');
|
||
$('#defaults_templates').prop('disabled', !existing);
|
||
$('#new_templates,#new_master_templates').prop('disabled', existing);
|
||
}
|
||
|
||
$(function() {
|
||
warehouse_selected([% SELF.defaults.warehouse_id || -1 %], [% SELF.defaults.bin_id || -1 %], 'bin_id');
|
||
warehouse_selected([% SELF.defaults.warehouse_id_ignore_onhand || -1 %], [% SELF.defaults.bin_id_ignore_onhand || -1 %], 'bin_id_ignore_onhand');
|
||
|
||
enable_template_controls();
|
||
$('#use_templates_existing,#use_templates_new').change(enable_template_controls);
|
||
})
|
||
-->
|
||
</script>
|
Auch abrufbar als: Unified diff
Mandantenkonfiguration: Druckvorlagen konfigurieren können