Bug 22343: Allow choosing an SMTP server in branches.pl
The missing piece on this patchset is choosing the desired SMTP server
for each library. This patch adds the option on editing the library.
The default one is picked for existing libraries, and you can pick the
one you want.
To test:
1. Apply the patchset
2. Run:
$ updatedatabase
=> SUCCESS: Things go smooth
3. Notice the new permission for managing SMTP servers
4. Notice the entry in the admin page
5. Add/have a few SMTP servers defined.
6. Edit a library
=> SUCCESS: The 'Default' SMTP server is picked
7. Choose any server and save
=> SUCCESS: Saving doesn't explode
8. Edit the server
=> SUCCESS: Your selection is kept (this can also be checked on the DB,
the library_smtp_server table)
9. Try (7) with many different options
=> SUCCESS: It works
10. Sign off :-D
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
parent
26cab84bd5
commit
69be1f3848
|
|
@ -19,16 +19,22 @@
|
|||
# along with Koha; if not, see <http://www.gnu.org/licenses>.
|
||||
|
||||
use Modern::Perl;
|
||||
|
||||
use CGI qw ( -utf8 );
|
||||
use Try::Tiny;
|
||||
|
||||
use C4::Auth;
|
||||
use C4::Context;
|
||||
use C4::Output;
|
||||
use C4::Koha;
|
||||
|
||||
use Koha::Database;
|
||||
use Koha::Patrons;
|
||||
use Koha::Items;
|
||||
use Koha::Libraries;
|
||||
use Koha::SMTP::Servers;
|
||||
|
||||
my $input = new CGI;
|
||||
my $input = CGI->new;
|
||||
my $branchcode = $input->param('branchcode');
|
||||
my $categorycode = $input->param('categorycode');
|
||||
my $op = $input->param('op') || 'list';
|
||||
|
|
@ -47,10 +53,14 @@ if ( $op eq 'add_form' ) {
|
|||
my $library;
|
||||
if ($branchcode) {
|
||||
$library = Koha::Libraries->find($branchcode);
|
||||
$template->param( selected_smtp_server => $library->smtp_server );
|
||||
}
|
||||
|
||||
my @smtp_servers = Koha::SMTP::Servers->search;
|
||||
|
||||
$template->param(
|
||||
library => $library,
|
||||
library => $library,
|
||||
smtp_servers => \@smtp_servers
|
||||
);
|
||||
} elsif ( $op eq 'add_validate' ) {
|
||||
my @fields = qw(
|
||||
|
|
@ -82,11 +92,32 @@ if ( $op eq 'add_form' ) {
|
|||
for my $field (@fields) {
|
||||
$library->$field( scalar $input->param($field) );
|
||||
}
|
||||
eval { $library->store; };
|
||||
if ($@) {
|
||||
|
||||
try {
|
||||
Koha::Database->new->schema->txn_do(
|
||||
sub {
|
||||
$library->store->discard_changes;
|
||||
# Deal with SMTP server
|
||||
my $smtp_server_id = $input->param('smtp_server');
|
||||
|
||||
if ( $smtp_server_id ) {
|
||||
if ( $smtp_server_id eq '*' ) {
|
||||
$library->smtp_server({ smtp_server => undef });
|
||||
}
|
||||
else {
|
||||
my $smtp_server = Koha::SMTP::Servers->find( $smtp_server_id );
|
||||
Koha::Exceptions::BadParameter->throw( parameter => 'smtp_server' )
|
||||
unless $smtp_server;
|
||||
$library->smtp_server({ smtp_server => $smtp_server });
|
||||
}
|
||||
}
|
||||
|
||||
push @messages, { type => 'message', code => 'success_on_update' };
|
||||
}
|
||||
);
|
||||
}
|
||||
catch {
|
||||
push @messages, { type => 'alert', code => 'error_on_update' };
|
||||
} else {
|
||||
push @messages, { type => 'message', code => 'success_on_update' };
|
||||
}
|
||||
} else {
|
||||
$branchcode =~ s|\s||g;
|
||||
|
|
@ -95,12 +126,30 @@ if ( $op eq 'add_form' ) {
|
|||
( map { $_ => scalar $input->param($_) || undef } @fields )
|
||||
}
|
||||
);
|
||||
eval { $library->store; };
|
||||
if ($@) {
|
||||
push @messages, { type => 'alert', code => 'error_on_insert' };
|
||||
} else {
|
||||
push @messages, { type => 'message', code => 'success_on_insert' };
|
||||
|
||||
try {
|
||||
Koha::Database->new->schema->txn_do(
|
||||
sub {
|
||||
$library->store->discard_changes;
|
||||
|
||||
my $smtp_server_id = $input->param('smtp_server');
|
||||
|
||||
if ( $smtp_server_id ) {
|
||||
if ( $smtp_server_id ne '*' ) {
|
||||
my $smtp_server = Koha::SMTP::Servers->find( $smtp_server_id );
|
||||
Koha::Exceptions::BadParameter->throw( parameter => 'smtp_server' )
|
||||
unless $smtp_server;
|
||||
$library->smtp_server({ smtp_server => $smtp_server });
|
||||
}
|
||||
}
|
||||
|
||||
push @messages, { type => 'message', code => 'success_on_insert' };
|
||||
}
|
||||
);
|
||||
}
|
||||
catch {
|
||||
push @messages, { type => 'alert', code => 'error_on_insert' };
|
||||
};
|
||||
}
|
||||
$op = 'list';
|
||||
} elsif ( $op eq 'delete_confirm' ) {
|
||||
|
|
|
|||
|
|
@ -141,6 +141,22 @@
|
|||
<li><label for="branchemail">Email: </label><input type="text" name="branchemail" id="branchemail" class="email" size="80" value="[% library.branchemail | html %]" /></li>
|
||||
<li><label for="branchreplyto">Reply-To: </label> <input type="text" name="branchreplyto" id="branchreplyto" class="email" size="80" value="[% library.branchreplyto | html %]" /><br /><span class="hint">Default: ReplyToDefault system preference</span></li>
|
||||
<li><label for="branchreturnpath">Return-Path: </label> <input type="text" name="branchreturnpath" id="branchreturnpath" class="email" size="80" value="[% library.branchreturnpath | html %]" /><br /><span class="hint">Default: ReturnpathDefault system preference</span></li>
|
||||
<li><label for="smtp_server">SMTP server: </label>
|
||||
<select name="smtp_server" id="smtp_server">
|
||||
[% IF selected_smtp_server.is_system_default %]
|
||||
<option value="*" selected="selected">Default</option>
|
||||
[% ELSE %]
|
||||
<option value="*">Default</option>
|
||||
[% END %]
|
||||
[% FOREACH smtp_server IN smtp_servers %]
|
||||
[% IF smtp_server.id == selected_smtp_server.id %]
|
||||
<option value="[% smtp_server.id | html %]" selected="selected">[% smtp_server.name | html %]</option>
|
||||
[% ELSE %]
|
||||
<option value="[% smtp_server.id | html %]">[% smtp_server.name | html %]</option>
|
||||
[% END %]
|
||||
[% END %]
|
||||
</select>
|
||||
</li>
|
||||
<li><label for="branchurl">URL: </label><input type="text" name="branchurl" id="branchurl" size="80" value="[% library.branchurl | html %]" class="url" /></li>
|
||||
<li><label for="opac_info">OPAC info: </label><textarea name="opac_info" id="opac_info">[% library.opac_info | $raw %]</textarea></li>
|
||||
<li><label for="branchip">IP: </label><input type="text" name="branchip" id="branchip" size="15" maxlength="15" value="[% library.branchip | html %]" /> <span class="hint">Can be entered as a single IP, or a subnet such as 192.168.1.*</span></li>
|
||||
|
|
|
|||
Loading…
Reference in New Issue