View | Details | Raw Unified | Return to bug 11742
Collapse All | Expand All

(-)a/C4/Letters.pm (+2 lines)
Lines 73-78 C4::Letters - Give functions for Letters management Link Here
73
sub GetLetters {
73
sub GetLetters {
74
    my ($filters) = @_;
74
    my ($filters) = @_;
75
    my $module    = $filters->{module};
75
    my $module    = $filters->{module};
76
    my $code      = $filters->{code};
76
    my $dbh       = C4::Context->dbh;
77
    my $dbh       = C4::Context->dbh;
77
    my $letters   = $dbh->selectall_arrayref(
78
    my $letters   = $dbh->selectall_arrayref(
78
        q|
79
        q|
Lines 81-86 sub GetLetters { Link Here
81
            WHERE 1
82
            WHERE 1
82
        |
83
        |
83
          . ( $module ? q| AND module = ?| : q|| )
84
          . ( $module ? q| AND module = ?| : q|| )
85
          . ( $code   ? q| AND code = ?|   : q|| )
84
          . q| GROUP BY code ORDER BY name|, { Slice => {} }
86
          . q| GROUP BY code ORDER BY name|, { Slice => {} }
85
        , ( $module ? $module : () )
87
        , ( $module ? $module : () )
86
    );
88
    );
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/letter.tt (-30 / +62 lines)
Lines 1-6 Link Here
1
[% USE Koha %]
1
[% USE Koha %]
2
[% INCLUDE 'doc-head-open.inc' %]
2
[% INCLUDE 'doc-head-open.inc' %]
3
<title>Koha &rsaquo; Tools &rsaquo; Notices[% IF ( add_form ) %][% IF ( modify ) %] &rsaquo; Modify notice[% ELSE %] &rsaquo; Add notice[% END %][% END %][% IF ( add_validate ) %] &rsaquo; Notice added[% END %][% IF ( delete_confirm ) %] &rsaquo; Confirm deletion[% END %]</title>
3
<title>Koha &rsaquo; Tools &rsaquo; Notices[% IF ( add_form or copy_form ) %][% IF ( modify ) %] &rsaquo; Modify notice[% ELSE %] &rsaquo; Add notice[% END %][% END %][% IF ( add_validate or copy_validate) %] &rsaquo; Notice added[% END %][% IF ( delete_confirm ) %] &rsaquo; Confirm deletion[% END %]</title>
4
[% INCLUDE 'doc-head-close.inc' %]
4
[% INCLUDE 'doc-head-close.inc' %]
5
<link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
5
<link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
6
[% INCLUDE 'datatables.inc' %]
6
[% INCLUDE 'datatables.inc' %]
Lines 26-32 $(document).ready(function() { Link Here
26
      });
26
      });
27
    [% END %]
27
    [% END %]
28
28
29
    $("#submit").click( function(event) {
29
    $("#submit_form").click( function(event) {
30
        event.preventDefault();
30
        var at_least_one_exists = 0;
31
        var at_least_one_exists = 0;
31
        $("fieldset.mtt").each( function(){
32
        $("fieldset.mtt").each( function(){
32
            var title = $(this).find('input[name="title"]').val();
33
            var title = $(this).find('input[name="title"]').val();
Lines 40-46 $(document).ready(function() { Link Here
40
                msg = msg.replace( "%s", mtt );
41
                msg = msg.replace( "%s", mtt );
41
                at_least_one_exists = 1;
42
                at_least_one_exists = 1;
42
                alert(msg)
43
                alert(msg)
43
                event.preventDefault();
44
                return false;
44
                return false;
45
            } else if ( title.length > 0 && content.length > 0 ) {
45
            } else if ( title.length > 0 && content.length > 0 ) {
46
                at_least_one_exists = 1;
46
                at_least_one_exists = 1;
Lines 48-57 $(document).ready(function() { Link Here
48
        } );
48
        } );
49
        if ( ! at_least_one_exists ) {
49
        if ( ! at_least_one_exists ) {
50
            alert( _("Please fill at least one template.") );
50
            alert( _("Please fill at least one template.") );
51
            event.preventDefault();
52
            return false;
51
            return false;
53
        }
52
        }
54
        return true;
53
54
        // Test if code already exists in DB
55
        var new_lettercode = $("#code").val();
56
        [% IF copy_form %]
57
          if ( new_lettercode == '[% code %]' ) {
58
            alert( _("Please change the code.") );
59
            return false;
60
          }
61
        [% END %]
62
        if ( new_lettercode != '[% code %]' ) {
63
          $.ajax({
64
            data: { code: new_lettercode },
65
            type: 'GET',
66
            url: '/cgi-bin/koha/svc/letters/',
67
            success: function (data) {
68
              if ( data.letters.length > 0 ) {
69
                alert( _("This letter code is already used for another letter.") );
70
                return false;
71
              } else {
72
                $("#add_notice").submit();
73
              }
74
            },
75
          });
76
        } else {
77
          $("#add_notice").submit();
78
        }
55
    });
79
    });
56
80
57
    var sms_limit = 160;
81
    var sms_limit = 160;
Lines 65-71 $(document).ready(function() { Link Here
65
        }
89
        }
66
    });
90
    });
67
}); 
91
}); 
68
[% IF ( add_form ) %]
92
[% IF add_form or copy_form %]
69
	
93
	
70
    function cancel(f) {
94
    function cancel(f) {
71
        $('#op').val("");
95
        $('#op').val("");
Lines 117-125 $(document).ready(function() { Link Here
117
[% INCLUDE 'header.inc' %]
141
[% INCLUDE 'header.inc' %]
118
[% INCLUDE 'letters-search.inc' %]
142
[% INCLUDE 'letters-search.inc' %]
119
143
120
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/tools/tools-home.pl">Tools</a> &rsaquo; [% IF ( add_form ) %][% IF ( modify ) %]<a href="/cgi-bin/koha/tools/letter.pl">Notices &amp; Slips</a> &rsaquo; Modify notice[% ELSE %] <a href="/cgi-bin/koha/tools/letter.pl">Notices &amp; Slips</a> &rsaquo; Add notice[% END %][% ELSE %][% IF ( add_validate ) %] <a href="/cgi-bin/koha/tools/letter.pl">Notices &amp; Slips</a> &rsaquo; Notice added[% ELSE %][% IF ( delete_confirm ) %] <a href="/cgi-bin/koha/tools/letter.pl">Notices &amp; Slips</a> &rsaquo; Confirm deletion[% ELSE %]Notices &amp; Slips[% END %][% END %][% END %]</div>
144
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/tools/tools-home.pl">Tools</a> &rsaquo; [% IF ( add_form or copy_form) %][% IF ( modify ) %]<a href="/cgi-bin/koha/tools/letter.pl">Notices &amp; Slips</a> &rsaquo; Modify notice[% ELSE %] <a href="/cgi-bin/koha/tools/letter.pl">Notices &amp; Slips</a> &rsaquo; Add notice[% END %][% ELSE %][% IF ( add_validate or copy_validate) %] <a href="/cgi-bin/koha/tools/letter.pl">Notices &amp; Slips</a> &rsaquo; Notice added[% ELSE %][% IF ( delete_confirm ) %] <a href="/cgi-bin/koha/tools/letter.pl">Notices &amp; Slips</a> &rsaquo; Confirm deletion[% ELSE %]Notices &amp; Slips[% END %][% END %][% END %]</div>
121
145
122
[% IF ( add_form ) %]<div id="doc" class="yui-t7">[% ELSE %]<div id="doc3" class="yui-t2">[% END %]
146
[% IF add_form or copy_form %]<div id="doc" class="yui-t7">[% ELSE %]<div id="doc3" class="yui-t2">[% END %]
123
   
147
   
124
   <div id="bd">
148
   <div id="bd">
125
	<div id="yui-main">
149
	<div id="yui-main">
Lines 182-188 $(document).ready(function() { Link Here
182
                  <td style="white-space: nowrap">
206
                  <td style="white-space: nowrap">
183
                    [% IF !independant_branch || !lette.branchcode %]
207
                    [% IF !independant_branch || !lette.branchcode %]
184
                      <form method="post" action="/cgi-bin/koha/tools/letter.pl">
208
                      <form method="post" action="/cgi-bin/koha/tools/letter.pl">
185
                        <input type="hidden" name="op" value="copy" />
209
                        <input type="hidden" name="op" value="copy_form" />
186
                        <input type="hidden" name="oldbranchcode" value="[% lette.branchcode %]" />
210
                        <input type="hidden" name="oldbranchcode" value="[% lette.branchcode %]" />
187
                        <input type="hidden" name="module" value="[% lette.module %]" />
211
                        <input type="hidden" name="module" value="[% lette.module %]" />
188
                        <input type="hidden" name="code" value="[% lette.code %]" />
212
                        <input type="hidden" name="code" value="[% lette.code %]" />
Lines 221-230 $(document).ready(function() { Link Here
221
[% END %]
245
[% END %]
222
246
223
	
247
	
224
[% IF ( add_form ) %]
248
[% IF add_form or copy_form %]
225
<h1>[% IF ( modify ) %]Modify notice[% ELSE %]Add notice[% END %]</h1>
249
<h1>[% IF ( modify ) %]Modify notice[% ELSE %]Add notice[% END %]</h1>
226
        <form name="Aform" method="post" enctype="multipart/form-data" class="validate">
250
        <form id="add_notice" name="Aform" method="post" enctype="multipart/form-data" class="validate">
227
		<input type="hidden" name="op" id="op" value="add_validate" />
251
        [% IF add_form %]
252
          <input type="hidden" name="op" id="op" value="add_validate" />
253
        [% ELSE %]
254
          <input type="hidden" name="op" id="op" value="copy_validate" />
255
        [% END %]
256
228
		<input type="hidden" name="checked" value="0" />
257
		<input type="hidden" name="checked" value="0" />
229
		[% IF ( modify ) %]
258
		[% IF ( modify ) %]
230
		<input type="hidden" name="add" value="0" />
259
		<input type="hidden" name="add" value="0" />
Lines 232-238 $(document).ready(function() { Link Here
232
		<input type="hidden" name="add" value="1" />
261
		<input type="hidden" name="add" value="1" />
233
		[% END %]
262
		[% END %]
234
		<fieldset class="rows">
263
		<fieldset class="rows">
235
				<input type="hidden" name="oldbranchcode" value="[% branchcode %]" />
264
            <input type="hidden" name="oldbranchcode" value="[% oldbranchcode %]" />
236
            [% IF independant_branch %]
265
            [% IF independant_branch %]
237
                <input type="hidden" name="branchcode" value="[% independant_branch %]" />
266
                <input type="hidden" name="branchcode" value="[% independant_branch %]" />
238
            [% ELSE %]
267
            [% ELSE %]
Lines 250-256 $(document).ready(function() { Link Here
250
			<li>
279
			<li>
251
				<label for="module">Koha module:</label>
280
				<label for="module">Koha module:</label>
252
				<input type="hidden" name="oldmodule" value="[% module %]" />
281
				<input type="hidden" name="oldmodule" value="[% module %]" />
253
		[% IF ( modify ) %]<select name="module" id="module">[% END %] [% IF ( adding ) %] <select name="module" id="module" onchange="javascript:window.location.href = unescape(window.location.pathname)+'?op=add_form&amp;module='+this.value+'&amp;content='+window.document.forms['Aform'].elements['content'].value;">[% END %]
282
                [% IF adding  %]
283
                  <select name="module" id="module" onchange="javascript:window.location.href = unescape(window.location.pathname)+'?op=add_form&amp;module='+this.value+'&amp;content='+window.document.forms['Aform'].elements['content'].value;">
284
                [% ELSE %]
285
                  <select name="module" id="module">
286
                [% END %]
254
                                    [% IF ( module == "catalogue" ) %]
287
                                    [% IF ( module == "catalogue" ) %]
255
                                      <option value="catalogue" selected="selected">Catalog</option>
288
                                      <option value="catalogue" selected="selected">Catalog</option>
256
                                    [% ELSE %]
289
                                    [% ELSE %]
Lines 294-313 $(document).ready(function() { Link Here
294
                </select>
327
                </select>
295
            </li>
328
            </li>
296
            <li>
329
            <li>
297
                [% IF adding %]
330
              <label for="code" class="required">Code:</label>
298
                  <label for"code" class="required">Code:</label>
331
              <input type="text" id="code" name="code" size="20" maxlength="20" value="[% code %]" required="required"/>
299
                  <input type="text" id="code" name="code" size="20" maxlength="20" required="required" />
332
              <span class="required">Required</span>
300
                  <span class="required">Required</span>
333
              [% IF copying %]
301
                [% ELSE %]
334
                You must change this code to reflect the copy.
302
                  <label for="code">Code:</label>
335
              [% END %]
303
                  <input type="hidden" id="code" name="code" value="[% code %]" />[% code %]
336
              <input type="hidden" id="code" name="oldcode" value="[% oldcode %]" />
304
                [% END %]
305
            </li>
337
            </li>
306
        <li>
338
            <li>
307
            <label for="name" class="required">Name:</label>
339
              <label for="name" class="required">Name:</label>
308
            <input type="text" id="name" name="name" size="60" value="[% letter_name %]" required="required" />
340
              <input type="text" id="name" name="name" size="60" value="[% letter_name %]" required="required" />
309
            <span class="required">Required</span>
341
              <span class="required">Required</span>
310
        </li>
342
          </li>
311
343
312
        [% FOREACH letter IN letters %]
344
        [% FOREACH letter IN letters %]
313
          <li>
345
          <li>
Lines 376-387 $(document).ready(function() { Link Here
376
408
377
        [% IF code.search('DGST') %] <span class="overdue">Warning, this is a template for a Digest, as such, any references to branch data ( e.g. branches.branchname ) will refer to the borrower's home branch.</span> [% END %]
409
        [% IF code.search('DGST') %] <span class="overdue">Warning, this is a template for a Digest, as such, any references to branch data ( e.g. branches.branchname ) will refer to the borrower's home branch.</span> [% END %]
378
        </fieldset>
410
        </fieldset>
379
        <fieldset class="action"><input type="submit" id="submit" value="Submit" class="button" /> <a class="cancel" href="/cgi-bin/koha/tools/letter.pl">Cancel</a></fieldset>
411
        <fieldset class="action"><input type="submit" id="submit_form" value="Submit" class="button" /> <a class="cancel" href="/cgi-bin/koha/tools/letter.pl">Cancel</a></fieldset>
380
      <input type="hidden" name="searchfield" value="[% searchfield %]" />
412
      <input type="hidden" name="searchfield" value="[% searchfield %]" />
381
    </form>
413
    </form>
382
[% END %]
414
[% END %]
383
415
384
[% IF ( add_validate ) %]
416
[% IF ( add_validate or copy_validate) %]
385
	Data recorded
417
	Data recorded
386
	<form action="[% action %]" method="post">
418
	<form action="[% action %]" method="post">
387
	<input type="submit" value="OK" />
419
	<input type="submit" value="OK" />
Lines 431-437 $(document).ready(function() { Link Here
431
463
432
</div>
464
</div>
433
</div>
465
</div>
434
[% UNLESS ( add_form ) %]
466
[% UNLESS add_form or copy_form %]
435
    <div class="yui-b noprint">
467
    <div class="yui-b noprint">
436
        [% INCLUDE 'tools-menu.inc' %]
468
        [% INCLUDE 'tools-menu.inc' %]
437
    </div>
469
    </div>
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/overduerules.tt (-8 / +4 lines)
Lines 120-139 $(document).ready(function() { Link Here
120
              <input type="text" name="delay[% tab.number %]-[% value.overduename %]" size="5" value="[% value.delay %]" />
120
              <input type="text" name="delay[% tab.number %]-[% value.overduename %]" size="5" value="[% value.delay %]" />
121
              </td>
121
              </td>
122
              <td>
122
              <td>
123
              [% IF ( value.noletter ) %]
124
                <input type="text" name="letter[% tab.number %]-[% value.overduename %]" value="[% value.letter %]" />
125
              [% ELSE %]
126
                <select name="letter[% tab.number %]-[% value.overduename %]">
123
                <select name="letter[% tab.number %]-[% value.overduename %]">
127
                  <option value="">No notice</option>
124
                  <option value="">No notice</option>
128
                  [% FOREACH letterloop IN value.letterloop %]
125
                  [% FOREACH letter IN letters %]
129
                    [% IF ( letterloop.selected ) %]
126
                    [% IF letter.code == value.selected_lettercode %]
130
                      <option value="[% letterloop.value %]" selected="selected">[% letterloop.lettername %]</option>
127
                      <option value="[% letter.code %]" selected="selected">[% letter.name %]</option>
131
                    [% ELSE %]
128
                    [% ELSE %]
132
                      <option value="[% letterloop.value %]">[% letterloop.lettername %]</option>
129
                      <option value="[% letter.code %]">[% letter.name %]</option>
133
                    [% END %]
130
                    [% END %]
134
                  [% END %]
131
                  [% END %]
135
                </select>
132
                </select>
136
              [% END %]
137
              </td>
133
              </td>
138
              <td>
134
              <td>
139
              [% IF ( value.debarred ) %]
135
              [% IF ( value.debarred ) %]
(-)a/svc/letters (+63 lines)
Line 0 Link Here
1
#!/usr/bin/perl
2
3
# This file is part of Koha.
4
#
5
# Copyright 2014 BibLibre
6
#
7
# Koha is free software; you can redistribute it and/or modify it
8
# under the terms of the GNU General Public License as published by
9
# the Free Software Foundation; either version 3 of the License, or
10
# (at your option) any later version.
11
#
12
# Koha is distributed in the hope that it will be useful, but
13
# WITHOUT ANY WARRANTY; without even the implied warranty of
14
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
# GNU General Public License for more details.
16
#
17
# You should have received a copy of the GNU General Public License
18
# along with Koha; if not, see <http://www.gnu.org/licenses>.
19
20
use Modern::Perl;
21
22
use C4::Service;
23
use C4::Letters qw( GetLetters );
24
25
=head1 NAME
26
27
svc/letters - Web service for getting letters
28
29
=head1 SYNOPSIS
30
31
  GET /svc/letters
32
33
=head1 DESCRIPTION
34
35
For the moment, this service is only used to get a letter from a letter code.
36
37
=head1 METHODS
38
39
=cut
40
41
=head2 set_preference
42
43
=over 4
44
45
GET /svc/letters/$code
46
47
=back
48
49
Used to get letters with a given letter code.
50
51
=cut
52
53
our ( $query, $response ) = C4::Service->init( tools => 'edit_notices' );
54
55
sub get_letters {
56
    my $letters = GetLetters({ code => $query->param('code') });
57
    $response->param( letters => $letters );
58
    C4::Service->return_success( $response );
59
}
60
61
C4::Service->dispatch(
62
    [ 'GET /', [ 'code' ], \&get_letters ],
63
);
(-)a/tools/letter.pl (-40 / +23 lines)
Lines 78-84 sub get_letters { Link Here
78
    my $letter = $dbh->selectall_hashref("SELECT * $sql", 'message_transport_type', undef, @$args);
78
    my $letter = $dbh->selectall_hashref("SELECT * $sql", 'message_transport_type', undef, @$args);
79
    return $letter;
79
    return $letter;
80
}
80
}
81
82
# $protected_letters = protected_letters()
81
# $protected_letters = protected_letters()
83
# - return a hashref of letter_codes representing letters that should never be deleted
82
# - return a hashref of letter_codes representing letters that should never be deleted
84
sub protected_letters {
83
sub protected_letters {
Lines 121-137 $template->param( Link Here
121
	action => $script_name
120
	action => $script_name
122
);
121
);
123
122
124
if ($op eq 'copy') {
123
if ( $op eq 'add_validate' or $op eq 'copy_validate' ) {
125
    add_copy();
124
    add_validate();
126
    $op = 'add_form';
125
    $op = q{}; # we return to the default screen for the next operation
127
}
126
}
128
127
if ($op eq 'copy_form') {
129
if ($op eq 'add_form') {
128
    my $oldbranchcode = $input->param('oldbranchcode') || q||;
130
    add_form($branchcode, $module, $code);
129
    my $branchcode = $input->param('branchcode') || q||;
130
    my $oldcode = $input->param('oldcode') || $input->param('code');
131
    add_form($oldbranchcode, $module, $code);
132
    $template->param(
133
        oldbranchcode => $oldbranchcode,
134
        branchcode => $branchcode,
135
        branchloop => _branchloop($branchcode),
136
        oldcode => $oldcode,
137
        copying => 1,
138
        modify => 0,
139
    );
131
}
140
}
132
elsif ( $op eq 'add_validate' ) {
141
elsif ( $op eq 'add_form' ) {
133
    add_validate();
142
    add_form($branchcode, $module, $code);
134
    $op = q{}; # next operation is to return to default screen
135
}
143
}
136
elsif ( $op eq 'delete_confirm' ) {
144
elsif ( $op eq 'delete_confirm' ) {
137
    delete_confirm($branchcode, $module, $code);
145
    delete_confirm($branchcode, $module, $code);
Lines 258-264 sub add_form { Link Here
258
266
259
sub add_validate {
267
sub add_validate {
260
    my $dbh        = C4::Context->dbh;
268
    my $dbh        = C4::Context->dbh;
261
    my $oldbranchcode = $input->param('oldbranchcode');
262
    my $branchcode    = $input->param('branchcode') || '';
269
    my $branchcode    = $input->param('branchcode') || '';
263
    my $module        = $input->param('module');
270
    my $module        = $input->param('module');
264
    my $oldmodule     = $input->param('oldmodule');
271
    my $oldmodule     = $input->param('oldmodule');
Lines 271-282 sub add_validate { Link Here
271
        my $is_html = $input->param("is_html_$mtt");
278
        my $is_html = $input->param("is_html_$mtt");
272
        my $title   = shift @title;
279
        my $title   = shift @title;
273
        my $content = shift @content;
280
        my $content = shift @content;
274
        my $letter = get_letters($oldbranchcode,$oldmodule, $code, $mtt);
281
        my $letter = get_letters($branchcode,$oldmodule, $code, $mtt);
275
        unless ( $title and $content ) {
282
        unless ( $title and $content ) {
276
            delete_confirmed( $oldbranchcode, $oldmodule, $code, $mtt );
283
            delete_confirmed( $branchcode, $oldmodule, $code, $mtt );
277
            next;
284
            next;
278
        }
285
        }
279
        if ( exists $letter->{$mtt} ) {
286
        elsif ( exists $letter->{$mtt} ) {
280
            $dbh->do(
287
            $dbh->do(
281
                q{
288
                q{
282
                    UPDATE letter
289
                    UPDATE letter
Lines 285-291 sub add_validate { Link Here
285
                },
292
                },
286
                undef,
293
                undef,
287
                $branchcode, $module, $name, $is_html || 0, $title, $content,
294
                $branchcode, $module, $name, $is_html || 0, $title, $content,
288
                $oldbranchcode, $oldmodule, $code, $mtt
295
                $branchcode, $oldmodule, $code, $mtt
289
            );
296
            );
290
        } else {
297
        } else {
291
            $dbh->do(
298
            $dbh->do(
Lines 297-326 sub add_validate { Link Here
297
    }
304
    }
298
    # set up default display
305
    # set up default display
299
    default_display($branchcode);
306
    default_display($branchcode);
300
}
307
    return 1;
301
302
sub add_copy {
303
    my $dbh        = C4::Context->dbh;
304
    my $oldbranchcode = $input->param('oldbranchcode');
305
    my $branchcode    = $input->param('branchcode');
306
    my $module        = $input->param('module');
307
    my $code          = $input->param('code');
308
309
    return if keys %{ get_letters($branchcode,$module, $code, '*') };
310
311
    my $old_letters = get_letters($oldbranchcode,$module, $code, '*');
312
313
    my $message_transport_types = GetMessageTransportTypes();
314
    for my $mtt ( @$message_transport_types ) {
315
        next unless exists $old_letters->{$mtt};
316
        my $old_letter = $old_letters->{$mtt};
317
318
        $dbh->do(
319
            q{INSERT INTO letter (branchcode,module,code,name,is_html,title,content,message_transport_type) VALUES (?,?,?,?,?,?,?,?)},
320
            undef,
321
            $branchcode, $module, $code, $old_letter->{name}, $old_letter->{is_html}, $old_letter->{title}, $old_letter->{content}, $mtt
322
        );
323
    }
324
}
308
}
325
309
326
sub delete_confirm {
310
sub delete_confirm {
327
- 

Return to bug 11742