Bug 26988: Add API route to fetch hold pickup locations and use it in the holds table
[koha.git] / koha-tmpl / intranet-tmpl / prog / js / categories.js
1 /* global __ */
2
3 jQuery.validator.addMethod( "letters_numbers", function(value,element){
4     var patt = /^[a-zA-Z0-9\-_]+$/g;
5     if (patt.test(element.value)) {
6         return true;
7     } else {
8         return false;
9     }
10     }, __("Category code can only contain the following characters: letters, numbers, - and _.")
11 );
12
13 jQuery.validator.addMethod( "enrollment_period", function(){
14         enrolmentperiod = $("#enrolmentperiod").val();
15         enrolmentperioddate = $("#enrolmentperioddate").val();
16         if ( $("#enrolmentperiod").val() !== "" && $("#enrolmentperioddate").val() !== "" ) {
17             return false;
18         } else {
19             return true;
20         }
21     }, __("Please choose an enrollment period in months OR by date.")
22 );
23
24
25 $(document).ready(function() {
26     KohaTable("patron_categories", {
27         "aoColumnDefs": [{
28             "aTargets": [-1],
29             "bSortable": false,
30             "bSearchable": false
31         }, {
32             "aTargets": [3, 4, 5],
33             "sType": "natural"
34         }, ],
35         "aaSorting": [
36             [1, "asc"]
37         ],
38         "sPaginationType": "full",
39         "exportColumns": [0,1,2,3,4,5,6,7,8,9,10,11,12],
40     }, columns_settings);
41
42     $("#enrolmentperioddate").datepicker({
43         minDate: 1
44     }); // Require that "until date" be in the future
45
46     if ($("#branches option:selected").length < 1) {
47         $("#branches option:first").attr("selected", "selected");
48     }
49
50     $("#categorycode").on("blur",function(){
51         toUC(this);
52     });
53
54     $("#category_form").validate({
55         rules: {
56             categorycode: {
57                 required: true,
58                 letters_numbers: true
59             },
60             description: "required",
61             enrolmentperiod: {
62                 required: function(element){
63                     return $("#enrolmentperioddate").val() === "";
64                 },
65                 digits: true,
66                 enrollment_period: true,
67                 min: 1
68             },
69             enrolmentperioddate: {
70                 required: function(element){
71                     return $("#enrolmentperiod").val() === "";
72                 },
73                 enrollment_period: true
74             },
75             dateofbirthrequired: {
76                 digits: true
77             },
78             upperagelimit: {
79                 digits: true
80             },
81             enrolmentfee: {
82                 number: true
83             },
84             reservefee: {
85                 number: true
86             },
87             category_type: {
88                 required: true
89             },
90             min_password_length: {
91                 digits: true
92             }
93         },
94         messages: {
95             enrolmentperiod: {
96                 required: __("Please choose an enrollment period in months OR by date.")
97             },
98             enrolmentperioddate: {
99                 required: __("Please choose an enrollment period in months OR by date.")
100             }
101         }
102
103     });
104 });