Project

General

Profile

1
$(function() {
2
    // product edit
3
    altair_product_edit.init();
4
});
5

    
6
altair_product_edit = {
7
    init: function() {
8
        // product edit form
9
        altair_product_edit.edit_form();
10
        // product tags
11
        altair_product_edit.product_tags();
12
    },
13
    edit_form: function() {
14
        // form variables
15
        var $product_edit_form = $('#product_edit_form'),
16
            $product_edit_submit_btn = $('#product_edit_submit'),
17
            product_name = $('#product_edit_name'),
18
            product_name_control= $('#product_edit_name_control'),
19
            product_sn = $('#product_edit_sn'),
20
            product_sn_control = $('#product_edit_sn_control'),
21
            product_manufacturer_control = $('#product_edit_manufacturer_control'),
22
            product_color_control = $('#product_edit_color_control'),
23
            product_memory_control = $('#product_edit_memory_control');
24

    
25

    
26
        // change full product name
27
        var product_name_change = function() {
28
            return product_name.text(product_manufacturer_control.val() + ' ' + product_name_control.val() + ', ' + product_memory_control.val() + ', ' + product_color_control.val())
29
        };
30

    
31
        product_name_control
32
            // change product name on keyup
33
            .on('keyup',function() {
34
                product_name_change();
35
            });
36

    
37
        product_manufacturer_control
38
            // change product name on keyup
39
            .on('keyup',function() {
40
                product_name_change();
41
            });
42

    
43
        product_sn_control
44
            // change product name on product serial number keyup
45
            .on('keyup',function() {
46
                product_sn.text(product_sn_control.val());
47
            });
48

    
49
        product_color_control
50
            // change product name on product color change
51
            .on('change',function() {
52
                product_name_change();
53
            });
54

    
55
        product_memory_control
56
            // change product name on product memory change
57
            .on('change',function() {
58
                product_name_change();
59
            });
60

    
61
        // submit form
62
        $product_edit_submit_btn.on('click',function(e) {
63
            e.preventDefault();
64
            var form_serialized = JSON.stringify( $product_edit_form.serializeObject(), null, 2 );
65
            UIkit.modal.alert('<p>Product data:</p><pre>' + form_serialized + '</pre>');
66
        })
67
    },
68
    product_tags: function() {
69

    
70
        $('#product_edit_tags_control').selectize({
71
            plugins: {
72
                'remove_button': {
73
                    label: ''
74
                }
75
            },
76
            placeholder: 'Select product tag(s)',
77
            options: [
78
                {id: 1, title: 'LTE', value: 'lte'},
79
                {id: 2, title: 'Quad HD', value: 'quad_hd'},
80
                {id: 3, title: 'Android™ 5.0', value: 'android_5'},
81
                {id: 4, title: '64GB', value: '64gb'}
82
            ],
83
            render: {
84
                option: function(data, escape) {
85
                    return  '<div class="option">' +
86
                        '<span>' + escape(data.title) + '</span>' +
87
                        '</div>';
88
                },
89
                item: function(data, escape) {
90
                    return '<div class="item">' + escape(data.title) + '</div>';
91
                }
92
            },
93
            maxItems: null,
94
            valueField: 'value',
95
            labelField: 'title',
96
            searchField: 'title',
97
            create: true,
98
            onDropdownOpen: function($dropdown) {
99
                $dropdown
100
                    .hide()
101
                    .velocity('slideDown', {
102
                        begin: function() {
103
                            $dropdown.css({'margin-top':'0'})
104
                        },
105
                        duration: 200,
106
                        easing: easing_swiftOut
107
                    })
108
            },
109
            onDropdownClose: function($dropdown) {
110
                $dropdown
111
                    .show()
112
                    .velocity('slideUp', {
113
                        complete: function() {
114
                            $dropdown.css({'margin-top':''})
115
                        },
116
                        duration: 200,
117
                        easing: easing_swiftOut
118
                    })
119
            }
120
        });
121
    }
122
};
(19-19/114)