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

(-)a/koha-tmpl/intranet-tmpl/prog/css/cateditor.css (+7 lines)
Lines 155-160 body { Link Here
155
    padding: 4px;
155
    padding: 4px;
156
}
156
}
157
157
158
#editor .subfield-widget button {
159
    font-family: inherit;
160
    font-size: inherit;
161
    margin-left: 5px;
162
    vertical-align: middle;
163
}
164
158
#editor .subfield-widget select, #editor .subfield-widget input {
165
#editor .subfield-widget select, #editor .subfield-widget input {
159
    height: 1.5em;
166
    height: 1.5em;
160
    vertical-align: middle;
167
    vertical-align: middle;
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/cateditor-widgets-marc21.inc (+51 lines)
Lines 112-117 require( [ 'koha-backend', 'widget' ], function( KohaBackend, Widget ) { Link Here
112
        },
112
        },
113
    } );
113
    } );
114
114
115
    Widget.Register( '001@', {
116
        init: function() {
117
            var $result = $(
118
                '<span class="subfield-widget">'
119
                + _("Control number: ")
120
                + '<span class="control-number-widget-contents"></span>'
121
                + '<button class="control-number-widget-assign">' + _("Assign next") + '</button>'
122
                + '<select class="control-number-widget-sequence"></select>'
123
                + '<button class="control-number-widget-override">Override</button>'
124
                + '</span>'
125
            );
126
127
            return $result[0];
128
        },
129
        setControlNumber: function( text ) {
130
            if ( text ) this.setText( text );
131
            $( this.node ).find('.control-number-widget-contents')
132
                .html( text == '<empty>' ? ( '<span class="hint">' + _("unset") + '</span>' ) : text );
133
            this.mark.changed();
134
        },
135
        postCreate: function( node, mark ) {
136
            var widget = this;
137
            this.setControlNumber( this.text );
138
            $( this.node )
139
                .find('.control-number-widget-assign').click( function() {
140
                    var sequence = $( widget.node ).find('.control-number-widget-sequence').val();
141
                    $.post(
142
                        '/cgi-bin/koha/svc/cataloguing/control_num_sequences/' + sequence
143
                    ).done( function( result ) {
144
                        if ( result.next_value ) widget.setControlNumber( result.next_value );
145
                    } );
146
                } ).end()
147
                .find('.control-number-widget-override').click( function() {
148
                    var result = prompt( _("Enter new control number") );
149
150
                    if ( result ) widget.setControlNumber( result );
151
                } ).end();
152
153
            var sequence_list = $.map( KohaBackend.GetAuthorisedValues( 'CONTROL_NUM_SEQUENCE' ), function( authval ) {
154
                return authval.lib;
155
            } );
156
            sequence_list.sort();
157
158
            $.each( sequence_list, function( undef, sequence ) {
159
                $( widget.node ).find('.control-number-widget-sequence').append( '<option>' + sequence + '</option>' );
160
            } );
161
162
            // TODO: Make Enter on select click "Assign"
163
        }
164
    } );
165
115
    Widget.Register( '005@', {
166
    Widget.Register( '005@', {
116
        init: function() {
167
        init: function() {
117
            var $result = $( '<span class="subfield-widget fixed-widget">' + _("Updated: ") + '</span>' );
168
            var $result = $( '<span class="subfield-widget fixed-widget">' + _("Updated: ") + '</span>' );
(-)a/svc/cataloguing/control_num_sequences (-1 / +59 lines)
Line 0 Link Here
0
- 
1
#!/usr/bin/perl
2
#
3
# Copyright 2015 ByWater Solutions
4
#
5
# This file is part of Koha.
6
#
7
# Koha is free software; you can redistribute it and/or modify it under the
8
# terms of the GNU General Public License as published by the Free Software
9
# Foundation; either version 3 of the License, or (at your option) any later
10
# version.
11
#
12
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
13
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
14
# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
15
#
16
# You should have received a copy of the GNU General Public License along
17
# with Koha; if not, write to the Free Software Foundation, Inc.,
18
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19
20
use Modern::Perl;
21
22
use C4::Service;
23
use Koha::Database;
24
use MARC::Record;
25
26
my ( $query, $response ) = C4::Service->init( editcatalogue => 'edit_catalogue' );
27
28
sub get_and_increment {
29
    my ( $control_num_sequence ) = @_;
30
31
    my $schema = Koha::Database->new->schema();
32
    my $authval = $schema->resultset( 'AuthorisedValue' )->find(
33
        {
34
            category => 'CONTROL_NUM_SEQUENCE',
35
            lib => $control_num_sequence
36
        }
37
    );
38
39
    if ( !$authval ) {
40
        C4::Service->return_error( 'not_found' );
41
    }
42
43
    my $value = $authval->authorised_value;
44
45
    $response->param( next_value => $value );
46
47
    my ( $prefix, $num ) = ( $value =~ /(.+?)(\d+)$/ );
48
49
    $value = $prefix . sprintf( '%0*d', length( $num ), $num + 1 );
50
51
    $authval->authorised_value( $value );
52
    $authval->update();
53
54
    C4::Service->return_success( $response );
55
}
56
57
C4::Service->dispatch(
58
    [ 'POST /(.*)', [], \&get_and_increment ],
59
);

Return to bug 19263