View | Details | Raw Unified | Return to bug 18418
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 / +56 lines)
Lines 84-90 Link Here
84
 * single subfield, '@'.
84
 * single subfield, '@'.
85
 */
85
 */
86
86
87
require( [ 'widget' ], function( Widget ) {
87
require( [ 'koha-backend', 'widget' ], function( KohaBackend, Widget ) {
88
    Widget.Register( '000@', {
88
    Widget.Register( '000@', {
89
        makeTemplate: function() {
89
        makeTemplate: function() {
90
            return '     nam a22     7a 4500';
90
            return '     nam a22     7a 4500';
Lines 112-117 require( [ 'widget' ], function( 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
            var sequence_list = $.map( KohaBackend.GetAuthorisedValues( 'CONTROL_NUM_SEQUENCE' ), function( authval ) {
153
                return authval.lib;
154
            } );
155
            sequence_list.sort();
156
            if(sequence_list.length){
157
                $.each( sequence_list, function( undef, sequence ) {
158
                    $( widget.node ).find('.control-number-widget-sequence').append( '<option>' + sequence + '</option>' );
159
                } );
160
            } else {
161
                $(".control-number-widget-assign").remove()
162
                $(".control-number-widget-sequence").remove();
163
                $(".control-number-widget-override").text( _('Manually assign') );
164
                $(".control-number-widget-override").attr('title', _('Define a CONTROL_NUM_SEQUENCE authorised value category with value set to initial value to enable auto-generation') );
165
            }
166
            // TODO: Make Enter on select click "Assign"
167
        }
168
    } );
169
115
    Widget.Register( '005@', {
170
    Widget.Register( '005@', {
116
        init: function() {
171
        init: function() {
117
            var $result = $( '<span class="subfield-widget fixed-widget">' + _("Updated: ") + '</span>' );
172
            var $result = $( '<span class="subfield-widget fixed-widget">' + _("Updated: ") + '</span>' );
(-)a/svc/cataloguing/control_num_sequences (+59 lines)
Line 0 Link Here
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
);
(-)a/svc/cataloguing/framework (-3 / +2 lines)
Lines 56-62 my $results; Link Here
56
if( $branch_limit ) {
56
if( $branch_limit ) {
57
    $results = $schema->resultset( "AuthorisedValue" )->search(
57
    $results = $schema->resultset( "AuthorisedValue" )->search(
58
    { "authorised_values_branches.branchcode" => { "=", [ $branch_limit, undef ] } },
58
    { "authorised_values_branches.branchcode" => { "=", [ $branch_limit, undef ] } },
59
    { join => "authorised_values_branches", order_by => "lib" } );
59
    { join => "authorised_values_branches", order_by => "lib"});
60
} else {
60
} else {
61
    $results = $schema->resultset( "AuthorisedValue" )->search(
61
    $results = $schema->resultset( "AuthorisedValue" )->search(
62
    undef,
62
    undef,
Lines 65-71 if( $branch_limit ) { Link Here
65
65
66
foreach my $result ( $results->all ) {
66
foreach my $result ( $results->all ) {
67
    $authorised_values->{$result->category} ||= [];
67
    $authorised_values->{$result->category} ||= [];
68
    push @{ $authorised_values->{$result->category} }, { value => $result->authorised_value, lib => $result->lib };
68
    push @{ $authorised_values->{$result->category->category_name} }, { value => $result->authorised_value, lib => $result->lib };
69
}
69
}
70
70
71
$response->param( framework => \@tags, authorised_values => $authorised_values );
71
$response->param( framework => \@tags, authorised_values => $authorised_values );
72
- 

Return to bug 18418