Bug 28376: Replace jQueryUI date/timepicker with Flatpickr
[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 flatpickr.l10ns.default.firstDayOfWeek = calendarFirstDayOfWeek;
25
26 $(document).ready(function() {
27     KohaTable("patron_categories", {
28         "aoColumnDefs": [{
29             "aTargets": [-1],
30             "bSortable": false,
31             "bSearchable": false
32         }, {
33             "aTargets": [3, 4, 5],
34             "sType": "natural"
35         }, ],
36         "aaSorting": [
37             [1, "asc"]
38         ],
39         "sPaginationType": "full",
40         "exportColumns": [0,1,2,3,4,5,6,7,8,9,10,11,12],
41     }, columns_settings);
42
43     $("#enrolmentperioddate").flatpickr({
44         minDate: new Date().fp_incr(1)
45     });
46
47     if ($("#branches option:selected").length < 1) {
48         $("#branches option:first").attr("selected", "selected");
49     }
50
51     $("#categorycode").on("blur",function(){
52         toUC(this);
53     });
54
55     $("#category_form").validate({
56         rules: {
57             categorycode: {
58                 required: true,
59                 letters_numbers: true
60             },
61             description: "required",
62             enrolmentperiod: {
63                 required: function(element){
64                     return $("#enrolmentperioddate").val() === "";
65                 },
66                 digits: true,
67                 enrollment_period: true,
68                 min: 1
69             },
70             enrolmentperioddate: {
71                 required: function(element){
72                     return $("#enrolmentperiod").val() === "";
73                 },
74                 enrollment_period: true
75             },
76             dateofbirthrequired: {
77                 digits: true
78             },
79             upperagelimit: {
80                 digits: true
81             },
82             enrolmentfee: {
83                 number: true
84             },
85             reservefee: {
86                 number: true
87             },
88             category_type: {
89                 required: true
90             },
91             min_password_length: {
92                 digits: true
93             }
94         },
95         messages: {
96             enrolmentperiod: {
97                 required: __("Please choose an enrollment period in months OR by date.")
98             },
99             enrolmentperioddate: {
100                 required: __("Please choose an enrollment period in months OR by date.")
101             }
102         }
103
104     });
105 });