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

(-)a/admin/itemtypes.pl (-16 / +22 lines)
Lines 69-75 my $input = new CGI; Link Here
69
my $searchfield = $input->param('description');
69
my $searchfield = $input->param('description');
70
my $script_name = "/cgi-bin/koha/admin/itemtypes.pl";
70
my $script_name = "/cgi-bin/koha/admin/itemtypes.pl";
71
my $itemtype    = $input->param('itemtype');
71
my $itemtype    = $input->param('itemtype');
72
my $op          = $input->param('op');
72
my $op          = $input->param('op') // 'list';
73
my @messages;
73
$searchfield =~ s/\,//g;
74
$searchfield =~ s/\,//g;
74
my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
75
my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
75
    {
76
    {
Lines 85-92 my ( $template, $borrowernumber, $cookie ) = get_template_and_user( Link Here
85
$template->param(script_name => $script_name);
86
$template->param(script_name => $script_name);
86
if ($op) {
87
if ($op) {
87
	$template->param($op  => 1); # we show only the TMPL_VAR names $op
88
	$template->param($op  => 1); # we show only the TMPL_VAR names $op
88
} else {
89
    $template->param(else => 1);
90
}
89
}
91
90
92
my $dbh = C4::Context->dbh;
91
my $dbh = C4::Context->dbh;
Lines 132-145 if ( $op eq 'add_form' ) { Link Here
132
    # called by add_form, used to insert/modify data in DB
131
    # called by add_form, used to insert/modify data in DB
133
}
132
}
134
elsif ( $op eq 'add_validate' ) {
133
elsif ( $op eq 'add_validate' ) {
135
    my $query = "
134
    my $is_a_modif = $input->param('is_a_modif');
135
    my ( $already_exists ) = $dbh->selectrow_array(q|
136
        SELECT itemtype
136
        SELECT itemtype
137
        FROM   itemtypes
137
        FROM   itemtypes
138
        WHERE  itemtype = ?
138
        WHERE  itemtype = ?
139
    ";
139
    |, undef, $itemtype );
140
    my $sth = $dbh->prepare($query);
140
    if ( $already_exists and $is_a_modif ) { # it's a modification
141
    $sth->execute($itemtype);
142
    if ( $sth->fetchrow ) {		# it's a modification
143
        my $query2 = '
141
        my $query2 = '
144
            UPDATE itemtypes
142
            UPDATE itemtypes
145
            SET    description = ?
143
            SET    description = ?
Lines 152-158 elsif ( $op eq 'add_validate' ) { Link Here
152
                 , sip_media_type = ?
150
                 , sip_media_type = ?
153
            WHERE itemtype = ?
151
            WHERE itemtype = ?
154
        ';
152
        ';
155
        $sth = $dbh->prepare($query2);
153
        my $sth = $dbh->prepare($query2);
156
        $sth->execute(
154
        $sth->execute(
157
            $input->param('description'),
155
            $input->param('description'),
158
            $input->param('rentalcharge'),
156
            $input->param('rentalcharge'),
Lines 171-177 elsif ( $op eq 'add_validate' ) { Link Here
171
            $input->param('itemtype')
169
            $input->param('itemtype')
172
        );
170
        );
173
    }
171
    }
174
    else {    # add a new itemtype & not modif an old
172
    elsif ( not $already_exists and not $is_a_modif ) {
175
        my $query = "
173
        my $query = "
176
            INSERT INTO itemtypes
174
            INSERT INTO itemtypes
177
                (itemtype,description,rentalcharge, notforloan, imageurl, summary, checkinmsg, checkinmsgtype, sip_media_type)
175
                (itemtype,description,rentalcharge, notforloan, imageurl, summary, checkinmsg, checkinmsgtype, sip_media_type)
Lines 194-203 elsif ( $op eq 'add_validate' ) { Link Here
194
            $sip_media_type,
192
            $sip_media_type,
195
        );
193
        );
196
    }
194
    }
195
    else {
196
        push @messages, {
197
            type => 'error',
198
            code => 'already_exists',
199
        };
200
    }
197
201
198
    print $input->redirect('itemtypes.pl');
202
    $searchfield = '';
199
    exit;
203
    $op = 'list';
200
201
    # END $OP eq ADD_VALIDATE
204
    # END $OP eq ADD_VALIDATE
202
################## DELETE_CONFIRM ##################################
205
################## DELETE_CONFIRM ##################################
203
    # called by default form, used to confirm deletion of data in DB
206
    # called by default form, used to confirm deletion of data in DB
Lines 244-250 elsif ( $op eq 'delete_confirmed' ) { Link Here
244
    # END $OP eq DELETE_CONFIRMED
247
    # END $OP eq DELETE_CONFIRMED
245
################## DEFAULT ##################################
248
################## DEFAULT ##################################
246
}
249
}
247
else {    # DEFAULT
250
251
if ( $op eq 'list' ) {
248
    my ($results) = StringSearch( $searchfield, 'web' );
252
    my ($results) = StringSearch( $searchfield, 'web' );
249
    my @loop;
253
    my @loop;
250
    foreach my $itemtype ( @{$results} ) {
254
    foreach my $itemtype ( @{$results} ) {
Lines 254-261 else { # DEFAULT Link Here
254
    }
258
    }
255
259
256
    $template->param(
260
    $template->param(
257
        loop           => \@loop,
261
        loop     => \@loop,
262
        else     => 1,
263
        messages => \@messages,
258
    );
264
    );
259
}    #---- END $OP eq DEFAULT
265
}
260
266
261
output_html_with_http_headers $input, $cookie, $template->output;
267
output_html_with_http_headers $input, $cookie, $template->output;
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/itemtypes.tt (-1 / +16 lines)
Lines 85-90 Item types administration Link Here
85
    <a class="btn btn-small" id="newitemtype" href="/cgi-bin/koha/admin/itemtypes.pl?op=add_form"><i class="icon-plus"></i> New item type</a>
85
    <a class="btn btn-small" id="newitemtype" href="/cgi-bin/koha/admin/itemtypes.pl?op=add_form"><i class="icon-plus"></i> New item type</a>
86
</div>[% END %]
86
</div>[% END %]
87
87
88
[% FOREACH message IN messages %]
89
  [% IF message.type == 'success' %]
90
    <div class="dialog message">
91
  [% ELSIF message.type == 'warning' %]
92
    <div class="dialog alert">
93
  [% ELSIF message.type == 'error' %]
94
    <div class="dialog error" style="margin:auto;">
95
  [% END %]
96
  [% IF message.code == 'already_exists' %]
97
    This item type already exists.
98
  [% END %]
99
  </div>
100
[% END %]
101
102
88
[% IF ( add_form ) %]
103
[% IF ( add_form ) %]
89
  [% IF ( itemtype ) %]
104
  [% IF ( itemtype ) %]
90
      <h3>Modify item type</h3>
105
      <h3>Modify item type</h3>
Lines 99-104 Item types administration Link Here
99
	<ol>
114
	<ol>
100
  [% IF ( itemtype ) %]
115
  [% IF ( itemtype ) %]
101
      <li>
116
      <li>
117
          <input type="hidden" name="is_a_modif" value="1" />
102
          <span class="label">Item type: </span> <input type="hidden" name="itemtype" value="[% itemtype %]" />
118
          <span class="label">Item type: </span> <input type="hidden" name="itemtype" value="[% itemtype %]" />
103
          [% itemtype %]
119
          [% itemtype %]
104
     </li>
120
     </li>
105
- 

Return to bug 12965