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

(-)a/koha-tmpl/intranet-tmpl/prog/css/cateditor.css (+7 lines)
Lines 128-133 body { Link Here
128
    padding: 4px;
128
    padding: 4px;
129
}
129
}
130
130
131
#editor .subfield-widget button {
132
    font-family: inherit;
133
    font-size: inherit;
134
    margin-left: 5px;
135
    vertical-align: middle;
136
}
137
131
#editor .subfield-widget select, #editor .subfield-widget input {
138
#editor .subfield-widget select, #editor .subfield-widget input {
132
    height: 1.5em;
139
    height: 1.5em;
133
    vertical-align: middle;
140
    vertical-align: middle;
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/cateditor-widgets-marc21.inc (-1 / +52 lines)
Lines 85-91 Link Here
85
 * single subfield, '@'.
85
 * single subfield, '@'.
86
 */
86
 */
87
87
88
require( [ 'widget' ], function( Widget ) {
88
require( [ 'koha-backend', 'widget' ], function( KohaBackend, Widget ) {
89
    Widget.Register( '000@', {
89
    Widget.Register( '000@', {
90
        makeTemplate: function() {
90
        makeTemplate: function() {
91
            return '     nam a22     7a 4500';
91
            return '     nam a22     7a 4500';
Lines 113-118 require( [ 'widget' ], function( Widget ) { Link Here
113
        },
113
        },
114
    } );
114
    } );
115
115
116
    Widget.Register( '001@', {
117
        init: function() {
118
            var $result = $(
119
                '<span class="subfield-widget">'
120
                + _("Control number: ")
121
                + '<span class="control-number-widget-contents"></span>'
122
                + '<button class="control-number-widget-assign">' + _("Assign next") + '</button>'
123
                + '<select class="control-number-widget-sequence"></select>'
124
                + '<button class="control-number-widget-override">Override</button>'
125
                + '</span>'
126
            );
127
128
            return $result[0];
129
        },
130
        setControlNumber: function( text ) {
131
            if ( text ) this.setText( text );
132
            $( this.node ).find('.control-number-widget-contents')
133
                .html( text == '<empty>' ? ( '<span class="hint">' + _("unset") + '</span>' ) : text );
134
            this.mark.changed();
135
        },
136
        postCreate: function( node, mark ) {
137
            var widget = this;
138
            this.setControlNumber( this.text );
139
            $( this.node )
140
                .find('.control-number-widget-assign').click( function() {
141
                    var sequence = $( widget.node ).find('.control-number-widget-sequence').val();
142
                    $.post(
143
                        '/cgi-bin/koha/svc/cataloguing/control_num_sequences/' + sequence
144
                    ).done( function( result ) {
145
                        if ( result.next_value ) widget.setControlNumber( result.next_value );
146
                    } );
147
                } ).end()
148
                .find('.control-number-widget-override').click( function() {
149
                    var result = prompt( _("Enter new control number") );
150
151
                    if ( result ) widget.setControlNumber( result );
152
                } ).end();
153
154
            var sequence_list = $.map( KohaBackend.GetAuthorisedValues( 'CONTROL_NUM_SEQUENCE' ), function( authval ) {
155
                return authval.lib;
156
            } );
157
            sequence_list.sort();
158
159
            $.each( sequence_list, function( undef, sequence ) {
160
                $( widget.node ).find('.control-number-widget-sequence').append( '<option>' + sequence + '</option>' );
161
            } );
162
163
            // TODO: Make Enter on select click "Assign"
164
        }
165
    } );
166
116
    Widget.Register( '005@', {
167
    Widget.Register( '005@', {
117
        init: function() {
168
        init: function() {
118
            var $result = $( '<span class="subfield-widget fixed-widget">' + _("Updated: ") + '</span>' );
169
            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
our ( $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