PageSourceSearch

https://www.epidomagennisis.gr/pub/Scripts/app/editSupport.js

js epidomagennisis.gr collected 2026-10-08 20:02:34 UTC 6,449 bytes, 222 lines download raw bytes

1// ========== Edit Support ==========
2
3(function ($) {
4	var kendo = window.kendo,
5		ui = kendo.ui,
6		Widget = ui.Widget,
7		proxy = $.proxy,
8		CHANGE = "change",
9		PROGRESS = "progress",
10		ERROR = "error",
11		NS = ".generalInfo";
12
13	var MaskedDatePicker = Widget.extend({
14		init: function (element, options) {
15			var that = this;
16			Widget.fn.init.call(this, element, options);
17
18			$(element).kendoMaskedTextBox({ mask: that.options.dateOptions.mask || "00/00/0000" })
19				.kendoDatePicker({
20					format: that.options.dateOptions.format || "dd/MM/yyyy",
21					parseFormats: that.options.dateOptions.parseFormats || ["dd/MM/yyyy", "dd/MM/yy"]
22				})
23				.closest(".k-datepicker")
24				.add(element)
25				.removeClass("k-textbox");
26
27			that.element.data("kendoDatePicker").bind("change", function () {
28				that.trigger(CHANGE);
29			});
30		},
31		options: {
32			name: "MaskedDatePicker",
33			dateOptions: {}
34		},
35		events: [
36			CHANGE
37		],
38		destroy: function () {
39			var that = this;
40			Widget.fn.destroy.call(that);
41
42			kendo.destroy(that.element);
43		},
44		value: function (value) {
45			var datepicker = this.element.data("kendoDatePicker");
46
47			if (value === undefined) {
48				return datepicker.value();
49			}
50
51			datepicker.value(value);
52		}
53	});
54
55	ui.plugin(MaskedDatePicker);
56
57})(window.kendo.jQuery);
58
59$(function () {
60
61
62    var culture = "el-GR";
63    kendo.culture(culture);
64
65    $.validator.methods.date = function (value, element) {
66        return this.optional(element) || validate_date(value);
67    }
68
69
70    $("form").bind("keypress", function (e) {
71        if (e.keyCode == 13) {
72            return false;
73        }
74    });
75
76    var residencePermitUntilDatePicker = $("#residencePermitUntil");
77
78    var validStartDatePicker = $("#validStart");
79    var validEndDatePicker = $("#validEnd");
80
81    var checkAppFileStartPicker = $("#checkAppFileStart");
82    var checkAppFileEndPicker = $("#checkAppFileEnd");
83
84    var approveStartPicker = $("#approveStart");
85    var approveEndPicker = $("#approveEnd");
86    var rejectStartPicker = $("#rejectStart");
87    var rejectEndPicker = $("#rejectEnd");
88	//residencePermitUntilDatePicker.kendoMaskedTextBox({
89	//	mask: "00/00/0000"
90	//});
91
92    // create DateTimePicker from input HTML element
93	//residencePermitUntilDatePicker.kendoDatePicker({
94 //     //start: "century"
95 //     format: "d/M/yyyy",
96	//		parseFormats: ["dd/MM/yyyy", "d/M/yyyy", "dd-MM-yyyy", "d-M-yyyy"],
97	//		dateInput: true
98	//});
99
100
101	residencePermitUntilDatePicker.kendoMaskedDatePicker({
102		format: "d/M/yyyy",
103		parseFormats: ["dd/MM/yyyy", "d/M/yyyy", "dd-MM-yyyy", "d-M-yyyy"],
104		dateInput: true
105    });
106
107    validStartDatePicker.kendoMaskedDatePicker({
108        format: "d/M/yyyy",
109        parseFormats: ["dd/MM/yyyy", "d/M/yyyy", "dd-MM-yyyy", "d-M-yyyy"],
110        dateInput: true
111    });
112
113    validEndDatePicker.kendoMaskedDatePicker({
114        format: "d/M/yyyy",
115        parseFormats: ["dd/MM/yyyy", "d/M/yyyy", "dd-MM-yyyy", "d-M-yyyy"],
116        dateInput: true
117    });
118
119    checkAppFileStartPicker.kendoMaskedDatePicker({
120        format: "dd/MM/yyyy",
121        parseFormats: ["dd/MM/yyyy"],
122        dateInput: true
123    });
124
125    checkAppFileEndPicker.kendoMaskedDatePicker({
126        format: "d/M/yyyy",
127        parseFormats: ["dd/MM/yyyy", "d/M/yyyy", "dd-MM-yyyy", "d-M-yyyy"],
128        dateInput: true
129    });
130
131    approveStartPicker.kendoMaskedDatePicker({
132        format: "d/M/yyyy",
133        parseFormats: ["dd/MM/yyyy", "d/M/yyyy", "dd-MM-yyyy", "d-M-yyyy"],
134        dateInput: true
135    });
136
137    approveEndPicker.kendoMaskedDatePicker({
138        format: "d/M/yyyy",
139        parseFormats: ["dd/MM/yyyy", "d/M/yyyy", "dd-MM-yyyy", "d-M-yyyy"],
140        dateInput: true
141    });
142
143    rejectStartPicker.kendoMaskedDatePicker({
144        format: "d/M/yyyy",
145        parseFormats: ["dd/MM/yyyy", "d/M/yyyy", "dd-MM-yyyy", "d-M-yyyy"],
146        dateInput: true
147    });
148
149    rejectEndPicker.kendoMaskedDatePicker({
150        format: "d/M/yyyy",
151        parseFormats: ["dd/MM/yyyy", "d/M/yyyy", "dd-MM-yyyy", "d-M-yyyy"],
152        dateInput: true
153    });
154
155	//residencePermitUntilDatePicker.closest(".k-datepicker")
156	//	.add(residencePermitUntilDatePicker)
157	//	.removeClass("k-textbox");
158	//});
159
160 
161    $("#postcode").kendoAutoComplete({
162        template: "#= Code # | #= City # | #= District #",
163        virtual: true,
164        noDataTemplate: false,
165        dataSource: {
166            transport: {
167                read: {
168                    url: "../postcode",
169                    dataType: "json",
170                    data: {
171                        q: function () {
172                            return $("#postcode").val();
173                        }
174                    }
175                },
176                parameterMap: function (data, type) {
177                    var ret = null;
178                    if (data.filter.filters[0] != undefined) {
179                        ret = data.filter.filters[0].value;
180                    }
181                    return { q: ret };
182                }
183            },
184            serverFiltering: true,
185
186        },
187        minLength: 2,
188        dataTextField: "Code",
189        select: function (e) {
190            var dataItem = this.dataItem(e.item.index());
191            $("#municipality").val(dataItem.City);
192            $("#county").val(dataItem.District);
193        },
194        close: function (e) {
195            if (this.dataItems().length == 1) {
196                var dataItem = this.dataItem(0);
197                $("#municipality").val(dataItem.City);
198                $("#county").val(dataItem.District);
199            }
200        }
201    });
202  
203
204    function validate_date(date) {
205        var pattern = new RegExp(/\b\d{1,2}[\/-]\d{1,2}[\/-]\d{4}\b/);
206        //return pattern.test(date);
207        if (pattern.test(date)) {
208            var dArr = date.split("/");
209            var d = new Date(dArr[1] + "/" + dArr[0] + "/" + dArr[2]);
210            return d.getDate() == dArr[0] && d.getMonth() + 1 == dArr[1] && d.getFullYear() == dArr[2] && d.getFullYear() >= 1900;
211        }
212        else {
213            return false;
214        }
215    }
216
217    function showContainerFormGroup($elm, show) {
218        var $container = $elm.closest(".form-group");
219        if (show) $container.show(); else $container.hide();
220    }    
221
222});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.