Project

General

Profile

1
$(function() {
2
	kendoUI.autocomplete_widget();
3
    kendoUI.calendar_widget();
4
    kendoUI.color_picker_widget();
5
    kendoUI.combobox_widget();
6
    kendoUI.datepicker_widget();
7
    kendoUI.datetimepicker_widget();
8
    kendoUI.dropdownList_widget();
9
    kendoUI.masked_input_widget();
10
    kendoUI.menu_widget();
11
    kendoUI.multiselect_widget();
12
    kendoUI.numeric_textbox_widget();
13
    kendoUI.panelbar_widget();
14
    kendoUI.timepicker_widget();
15
    kendoUI.toolbar_widget();
16
    kendoUI.window_widget();
17
});
18

    
19
kendoUI = {
20
    autocomplete_widget: function() {
21
        // basic example
22
        var $kUI_autocomplete = $('#kUI_automplete');
23
        if($kUI_autocomplete.length) {
24
            var countries = ["Albania", "Andorra", "Armenia", "Austria", "Azerbaijan", "Belarus", "Belgium", "Bosnia & Herzegovina", "Bulgaria", "Croatia", "Cyprus", "Czech Republic", "Denmark", "Estonia", "Finland", "France", "Georgia", "Germany", "Greece", "Hungary", "Iceland", "Ireland", "Italy", "Kosovo", "Latvia", "Liechtenstein", "Lithuania", "Luxembourg", "Macedonia", "Malta", "Moldova", "Monaco", "Montenegro", "Netherlands", "Norway", "Poland", "Portugal", "Romania", "Russia", "San Marino", "Serbia", "Slovakia", "Slovenia", "Spain", "Sweden", "Switzerland", "Turkey", "Ukraine", "United Kingdom", "Vatican City"];
25
            var countriesDS = new kendo.data.DataSource({
26
                data: countries
27
            });
28
            var getFilters = function (filter) {
29
                var filters = [];
30
                filters.push(filter);
31
                var values = autoComplete.value().split(", ");
32
                values.pop();
33
                $.each(values, function (index, item) {
34
                    filters.push({field: "", ignoreCase: true, operator: "neq", value: item});
35
                });
36
                return filters;
37
            };
38
            var autoComplete = $kUI_autocomplete.kendoAutoComplete({
39
                filter: "startswith",
40
                placeholder: "Select country...",
41
                separator: ", ",
42
                dataSource: {
43
                    transport: {
44
                        read: function (options, operation) {
45
                            countriesDS.read();
46
                            countriesDS.filter({logic: "and", filters: getFilters(options.data.filter.filters[0])});
47
                            options.success(countriesDS.view());
48
                        }
49
                    },
50
                    serverFiltering: true
51
                }
52
            }).data("kendoAutoComplete");
53
        }
54

    
55
        // custom template
56
        var $kUI_autocomplete_template = $('#kUI_automplete_template');
57
        if($kUI_autocomplete_template.length) {
58
            $kUI_autocomplete_template.kendoAutoComplete({
59
                minLength: 2,
60
                dataTextField: "ContactName",
61
                template:
62
                '<div class="k-list-wrapper">'+
63
                    '<span class="k-state-default k-list-wrapper-addon">' +
64
                        '<img src=\"assets/img/avatars/avatar_#:data.CustomerID#_tn.png\" alt=\"#:data.CustomerID#\" />' +
65
                    '</span>' +
66
                    '<span class="k-state-default k-list-wrapper-content">' +
67
                        '<p>#: data.ContactName #</p>' +
68
                        '<span class="uk-text-muted uk-text-small">#: data.CompanyName #</span>' +
69
                    '</span>' +
70
                '</div>',
71
                dataSource: {
72
                    transport: {
73
                        read: {
74
                            dataType: "json",
75
                            url: "data/kUI_users_data.min.json"
76
                        }
77
                    }
78
                },
79
                height: 204
80
            }).data("kendoAutoComplete");
81
        }
82
    },
83
    calendar_widget: function() {
84
        var $kUI_calendar = $('#kUI_calendar');
85
        if($kUI_calendar.length) {
86
            $kUI_calendar.kendoCalendar();
87
        }
88
    },
89
    color_picker_widget: function() {
90
        function preview(e) {
91
            $(".icon_preview").find('.material-icons').css("color", e.value);
92
        }
93

    
94
        var $kUI_color_palette = $('#kUI_color_palette');
95
        if($kUI_color_palette.length) {
96
            $kUI_color_palette.kendoColorPalette({
97
                columns: 5,
98
                tileSize: {
99
                    width: 24,
100
                    height: 16
101
                },
102
                palette: [
103
                    "#e53935", "#d81b60", "#8e24aa", "#5e35b1", "#3949ab",
104
                    "#1e88e5", "#039be5", "#00acc1", "#00897b", "#43a047",
105
                    "#7cb342", "#c0ca33", "#fdd835", "#ffb300", "#fb8c00",
106
                    "#f4511e", "#6d4c41", "#757575", "#546e7a"
107
                ],
108
                change: preview
109
            });
110
        }
111
        var $kUI_color_picker = $('#kUI_color_picker');
112
        if($kUI_color_picker.length) {
113
            $kUI_color_picker.kendoColorPicker({
114
                value: "#fff",
115
                buttons: false,
116
                select: preview
117
            });
118
        }
119

    
120
    },
121
    combobox_widget: function() {
122
        // from <input>
123
        var $kUI_combobox_input = $('#kUI_combobox_input');
124
        if($kUI_combobox_input.length) {
125
            var $kUI_combobox_input_data = $kUI_combobox_input.kendoComboBox({
126
                dataTextField: "text",
127
                dataValueField: "value",
128
                dataSource: [
129
                    { text: "Cotton", value: "1" },
130
                    { text: "Polyester", value: "2" },
131
                    { text: "Cotton/Polyester", value: "3" },
132
                    { text: "Rib Knit", value: "4" }
133
                ],
134
                filter: "contains",
135
                suggest: true,
136
                index: 3
137
            }).data("kendoComboBox");
138

    
139
            /* add readonly attribute to combobox
140
            $kUI_combobox_input_data.input
141
                .attr("readonly", true)
142
                .on("keydown", function (e) {
143
                    if (e.keyCode === 8) {
144
                        e.preventDefault();
145
                    }
146
                });
147
            */
148
        }
149

    
150
        // from <select>
151
        var $kUI_combobox_select = $('#kUI_combobox_select');
152
        if($kUI_combobox_select.length) {
153
            $kUI_combobox_select.kendoComboBox();
154
            var $kUI_combobox_select_data = $("#size").data("kendoComboBox");
155
        }
156

    
157
        // cascade combobox
158
        var $kUI_combobox_cascade_a = $('#kUI_combobox_cascade_a');
159
        var $kUI_combobox_cascade_b = $('#kUI_combobox_cascade_b');
160
        var $kUI_combobox_cascade_c = $('#kUI_combobox_cascade_c');
161

    
162
        if($kUI_combobox_cascade_a.length && $kUI_combobox_cascade_b.length && $kUI_combobox_cascade_c.length) {
163
            $kUI_combobox_cascade_a.kendoComboBox({
164
                dataTextField: "name",
165
                dataValueField: "id",
166
                dataSource: [
167
                    {name: "Parent1", id: 1},
168
                    {name: "Parent2", id: 2}
169
                ]
170
            });
171
            $kUI_combobox_cascade_b.kendoComboBox({
172
                cascadeFrom: "kUI_combobox_cascade_a",
173
                cascadeFromField: "parentId",
174
                dataTextField: "name",
175
                dataValueField: "id",
176
                dataSource: [
177
                    {name: "Child1_1", id: 1, parentId: 1},
178
                    {name: "Child1_2", id: 2, parentId: 1},
179
                    {name: "Child2_1", id: 3, parentId: 2},
180
                    {name: "Child2_2", id: 4, parentId: 2}
181
                ]
182
            });
183
            $kUI_combobox_cascade_c.kendoComboBox({
184
                cascadeFrom: "kUI_combobox_cascade_b",
185
                cascadeFromField: "parentId",
186
                dataTextField: "name",
187
                dataValueField: "id",
188
                dataSource: [
189
                    {name: "Child1_1_1", id: 1, parentId: 1},
190
                    {name: "Child1_1_2", id: 3, parentId: 1},
191
                    {name: "Child1_2_1", id: 3, parentId: 2},
192
                    {name: "Child1_2_2", id: 4, parentId: 2},
193
                    {name: "Child2_1_1", id: 5, parentId: 3},
194
                    {name: "Child2_1_2", id: 6, parentId: 3},
195
                    {name: "Child2_2_1", id: 7, parentId: 4},
196
                    {name: "Child2_2_2", id: 8, parentId: 4}
197
                ]
198
            });
199
        }
200
    },
201
    datepicker_widget: function() {
202
        var $kUI_datepicker_a = $('#kUI_datepicker_a');
203
        if($kUI_datepicker_a.length) {
204
            $kUI_datepicker_a.kendoDatePicker({
205
                format: "d-MM-yyyy"
206
            });
207
        }
208
        var $kUI_datepicker_b = $('#kUI_datepicker_b');
209
        if($kUI_datepicker_b.length) {
210
            $kUI_datepicker_b.kendoDatePicker({
211
                start: "year",
212
                depth: "year",
213
                format: "MMMM yyyy"
214
            });
215
        }
216
    },
217
    datetimepicker_widget: function() {
218
        var $kUI_datetimepicker_a = $('#kUI_datetimepicker_basic');
219
        if($kUI_datetimepicker_a.length) {
220
            $kUI_datetimepicker_a.kendoDateTimePicker({
221
                value: new Date()
222
            });
223
        }
224
        var $kUI_datetimepicker_range_start = $('#kUI_datetimepicker_range_start');
225
        var $kUI_datetimepicker_range_end = $('#kUI_datetimepicker_range_end');
226
        if($kUI_datetimepicker_range_start.length && $kUI_datetimepicker_range_end.length) {
227
            function startChange() {
228
                var startDate = start.value(),
229
                    endDate = end.value();
230

    
231
                if (startDate) {
232
                    startDate = new Date(startDate);
233
                    startDate.setDate(startDate.getDate());
234
                    end.min(startDate);
235
                } else if (endDate) {
236
                    start.max(new Date(endDate));
237
                } else {
238
                    endDate = new Date();
239
                    start.max(endDate);
240
                    end.min(endDate);
241
                }
242
            }
243

    
244
            function endChange() {
245
                var endDate = end.value(),
246
                    startDate = start.value();
247

    
248
                if (endDate) {
249
                    endDate = new Date(endDate);
250
                    endDate.setDate(endDate.getDate());
251
                    start.max(endDate);
252
                } else if (startDate) {
253
                    end.min(new Date(startDate));
254
                } else {
255
                    endDate = new Date();
256
                    start.max(endDate);
257
                    end.min(endDate);
258
                }
259
            }
260

    
261
            var today = kendo.date.today();
262

    
263
            var start = $kUI_datetimepicker_range_start.kendoDateTimePicker({
264
                value: today,
265
                change: startChange,
266
                parseFormats: ["MM/dd/yyyy"]
267
            }).data("kendoDateTimePicker");
268

    
269
            var end = $kUI_datetimepicker_range_end.kendoDateTimePicker({
270
                value: today,
271
                change: endChange,
272
                parseFormats: ["MM/dd/yyyy"]
273
            }).data("kendoDateTimePicker");
274

    
275
            start.max(end.value());
276
            end.min(start.value());
277
        }
278

    
279
    },
280
    dropdownList_widget: function() {
281
        var $kUI_dropdown_basic_input = $('#kUI_dropdown_basic_input');
282
        if($kUI_dropdown_basic_input.length) {
283
            var data = [
284
                {text: "Black", value: "1"},
285
                {text: "Orange", value: "2"},
286
                {text: "Grey", value: "3"}
287
            ];
288
            $kUI_dropdown_basic_input.kendoDropDownList({
289
                dataTextField: "text",
290
                dataValueField: "value",
291
                dataSource: data,
292
                index: 0
293
            });
294
        }
295

    
296
        var $kUI_dropdown_basic_select = $('#kUI_dropdown_basic_select');
297
        if($kUI_dropdown_basic_select.length) {
298
            $kUI_dropdown_basic_select.kendoDropDownList();
299
        }
300
    },
301
    masked_input_widget: function() {
302
        var $kUI_masked_phone = $('#kUI_masked_phone');
303
        if($kUI_masked_phone.length) {
304
            $kUI_masked_phone.kendoMaskedTextBox({
305
                mask: "(999) 000-0000"
306
            });
307
        }
308
        var $kUI_masked_credit_card = $('#kUI_masked_credit_card');
309
        if($kUI_masked_credit_card.length) {
310
            $kUI_masked_credit_card.kendoMaskedTextBox({
311
                mask: "0000 0000 0000 0000"
312
            });
313
        }
314
        var $kUI_masked_ssn = $('#kUI_masked_ssn');
315
        if($kUI_masked_ssn.length) {
316
            $kUI_masked_ssn.kendoMaskedTextBox({
317
                mask: "000-00-0000"
318
            });
319
        }
320
        var $kUI_masked_postcode = $('#kUI_masked_postcode');
321
        if($kUI_masked_postcode.length) {
322
            $kUI_masked_postcode.kendoMaskedTextBox({
323
                mask: "L0L 0LL"
324
            });
325
        }
326
    },
327
    menu_widget: function() {
328
        var $kUI_menu = $('#kUI_menu');
329
        if($kUI_menu.length) {
330
            $kUI_menu.kendoMenu();
331
        }
332
    },
333
    multiselect_widget: function() {
334
        var $kUI_multiselect_basic = $('#kUI_multiselect_basic');
335
        if($kUI_multiselect_basic.length) {
336
            $kUI_multiselect_basic.kendoMultiSelect();
337
        }
338
        var $kUI_multiselect_custom_template = $('#kUI_multiselect_custom_template');
339
        if($kUI_multiselect_custom_template.length) {
340
            $kUI_multiselect_custom_template.kendoMultiSelect({
341
                dataTextField: "ContactName",
342
                dataValueField: "CustomerID",
343
                itemTemplate:
344
                    '<div class="k-list-wrapper">'+
345
                        '<span class="k-state-default k-list-wrapper-addon">' +
346
                            '<img src=\"assets/img/avatars/avatar_#:data.CustomerID#_tn.png\" alt=\"#:data.CustomerID#\" />' +
347
                        '</span>' +
348
                        '<span class="k-state-default k-list-wrapper-content">' +
349
                            '<p>#: data.ContactName #</p>' +
350
                            '<span class="uk-text-muted uk-text-small">#: data.CompanyName #</span>' +
351
                        '</span>' +
352
                    '</div>',
353
                tagTemplate:
354
                    '<img class="k-tag-image" src=\"assets/img/avatars/avatar_#:data.CustomerID#_tn.png\" alt=\"${data.CustomerID}\" />' +
355
                    '#: data.ContactName #',
356
                dataSource: {
357
                    transport: {
358
                        read: {
359
                            dataType: "json",
360
                            url: "data/kUI_users_data.min.json"
361
                        }
362
                    }
363
                },
364
                value: [
365
                    { ContactName: "William Block", CustomerID: 3 }
366
                ],
367
                height: 204
368
            }).data("kendoMultiSelect");
369

    
370
        }
371
    },
372
    numeric_textbox_widget: function() {
373
        var $kUI_numeric_price = $('#kUI_numeric_price');
374
        if($kUI_numeric_price.length) {
375
            $kUI_numeric_price.kendoNumericTextBox({
376
                format: "c",
377
                decimals: 3
378
            });
379
        }
380
        var $kUI_numeric_price_discount = $('#kUI_numeric_price_discount');
381
        if($kUI_numeric_price_discount.length) {
382
            $kUI_numeric_price_discount.kendoNumericTextBox({
383
                format: "p0",
384
                min: 0,
385
                max: 0.1,
386
                step: 0.01
387
            });
388
        }
389
        var $kUI_numeric_weight = $('#kUI_numeric_weight');
390
        if($kUI_numeric_weight.length) {
391
            $kUI_numeric_weight.kendoNumericTextBox({
392
                format: "#.00 kg"
393
            });
394
        }
395
        var $kUI_numeric_stock = $('#kUI_numeric_stock');
396
        if($kUI_numeric_stock.length) {
397
            $kUI_numeric_stock.kendoNumericTextBox();
398
        }
399
    },
400
    panelbar_widget: function() {
401
        var $kUI_panelbar = $('#kUI_panelbar');
402
        if($kUI_panelbar.length) {
403
            $kUI_panelbar.kendoPanelBar();
404
        }
405
    },
406
    timepicker_widget: function() {
407
        //  basic example
408
        var $kUI_timepicker = $('#kUI_timepicker');
409
        if($kUI_timepicker.length) {
410
            $kUI_timepicker.kendoTimePicker();
411
        }
412
        // range selection
413
        var $kUI_timepicker_range_start = $('#kUI_timepicker_range_start');
414
        var $kUI_timepicker_range_end = $('#kUI_timepicker_range_end');
415
        if($kUI_timepicker_range_start.length && $kUI_timepicker_range_end.length) {
416
            function startChange() {
417
                var startTime = start.value();
418
                if (startTime) {
419
                    startTime = new Date(startTime);
420
                    end.max(startTime);
421
                    startTime.setMinutes(startTime.getMinutes() + this.options.interval);
422
                    end.min(startTime);
423
                    end.value(startTime);
424
                }
425
            }
426

    
427
            var start = $kUI_timepicker_range_start.kendoTimePicker({
428
                change: startChange
429
            }).data("kendoTimePicker");
430

    
431
            var end = $kUI_timepicker_range_end.kendoTimePicker().data("kendoTimePicker");
432

    
433
            start.min("8:00 AM");
434
            start.max("6:00 PM");
435

    
436
            end.min("8:00 AM");
437
            end.max("7:30 AM");
438

    
439
        }
440

    
441
    },
442
    toolbar_widget: function() {
443
        var $kUI_toolBar = $('#kUI_toolBar');
444
        if($kUI_toolBar.length) {
445

    
446
            $kUI_toolBar.kendoToolBar({
447
                items: [
448
                    { type: "button", text: "Button" },
449
                    { type: "button", text: "Toggle Button", togglable: true },
450
                    {
451
                        type: "splitButton",
452
                        text: "Insert",
453
                        menuButtons: [
454
                            { text: "Insert above", icon: "insert-n" },
455
                            { text: "Insert between", icon: "insert-m" },
456
                            { text: "Insert below", icon: "insert-s" }
457
                        ]
458
                    },
459
                    { type: "separator" },
460
                    { template: "<label>Format:</label>" },
461
                    {
462
                        template: "<input id='kUI_dropdown' class='uk-form-width-medium' />",
463
                        overflow: "never"
464
                    },
465
                    { type: "separator" },
466
                    {
467
                        type: "buttonGroup",
468
                        buttons: [
469
                            { spriteCssClass: "k-tool-icon k-justifyLeft", text: "Left", togglable: true, group: "text-align" },
470
                            { spriteCssClass: "k-tool-icon k-justifyCenter", text: "Center", togglable: true, group: "text-align" },
471
                            { spriteCssClass: "k-tool-icon k-justifyRight", text: "Right", togglable: true, group: "text-align" }
472
                        ]
473
                    },
474
                    {
475
                        type: "buttonGroup",
476
                        buttons: [
477
                            { spriteCssClass: "k-tool-icon k-bold", text: "Bold", togglable: true, showText: "overflow" },
478
                            { spriteCssClass: "k-tool-icon k-italic", text: "Italic", togglable: true, showText: "overflow" },
479
                            { spriteCssClass: "k-tool-icon k-underline", text: "Underline", togglable: true, showText: "overflow" }
480
                        ]
481
                    },
482
                    {
483
                        type: "button",
484
                        text: "Action",
485
                        overflow: "always"
486
                    },
487
                    {
488
                        type: "button",
489
                        text: "Another Action",
490
                        overflow: "always"
491
                    },
492
                    {
493
                        type: "button",
494
                        text: "Something else here",
495
                        overflow: "always"
496
                    }
497
                ]
498
            });
499

    
500
            $("#kUI_dropdown").kendoDropDownList({
501
                optionLabel: "Paragraph",
502
                dataTextField: "text",
503
                dataValueField: "value",
504
                dataSource: [
505
                    { text: "Heading 1", value: 1 },
506
                    { text: "Heading 2", value: 2 },
507
                    { text: "Heading 3", value: 3 },
508
                    { text: "Title", value: 4 },
509
                    { text: "Subtitle", value: 5 }
510
                ]
511
            });
512

    
513
        }
514
    },
515
    window_widget: function() {
516
        var $kUI_window = $('#kUI_window');
517
        var $kUI_undo = $('#kUI_undo');
518
        if($kUI_window.length) {
519
            var k_window = $kUI_window,
520
                k_undo = $kUI_undo
521
                    .bind("click", function () {
522
                        k_window.data("kendoWindow").open();
523
                        k_undo.hide();
524
                    });
525

    
526
            var onClose = function () {
527
                k_undo.show();
528
            };
529

    
530
            if (!k_window.data("kendoWindow")) {
531
                k_window.kendoWindow({
532
                    width: "600px",
533
                    title: "Lorem ipsum dolor sit",
534
                    actions: [
535
                        "Pin",
536
                        "Minimize",
537
                        "Maximize",
538
                        "Close"
539
                    ],
540
                    close: onClose
541
                });
542
            }
543
        }
544
    }
545
};
(33-33/114)