assets/js/ajaxFormSubmit.js   A
last analyzed

Complexity

Total Complexity 12
Complexity/F 1.33

Size

Lines of Code 106
Function Count 9

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
cc 0
eloc 72
nc 4
dl 0
loc 106
rs 10
c 3
b 0
f 0
wmc 12
mnd 2
bc 14
fnc 9
bpm 1.5555
cpm 1.3333
noi 1

5 Functions

Rating   Name   Duplication   Size   Complexity  
A $(ꞌ.save-bet-buttonꞌ).click 0 14 1
A ajaxFormSubmit.js ➔ submitForm 0 19 1
A $(ꞌ.extra-bet-submitꞌ).click 0 15 1
A $.fn.serializeObject 0 15 1
A ajaxFormSubmit.js ➔ showNotification 0 14 1
1
$(document).on("click", ".save-bet-button-dashboard", function (event) {
2
    event.preventDefault();
3
    let $_target = $(event.target);
4
    let $_bettingWrapperSelector = $('.betting-wrapper-dashboard');
5
    let $_bettingFormSelector = $('.user-betting-form-dashboard');
6
    let $_submitSelector = $('.save-bet-button-dashboard');
7
    let $_firstGameHiddenSelector = $('.firstGame-hidden-input');
8
    let $_secondGameHiddenSelector = $('.secondGame-hidden-input');
9
    let $_firstGameFakeSelector = $('.firstGame-fake-input');
10
    let $_secondGameFakeSelector = $('.secondGame-fake-input');
11
    let $_closestFirstFakeSelector = $_target.closest($_bettingWrapperSelector).find($_firstGameFakeSelector);
12
    let $_closestSecondFakeSelector = $_target.closest($_bettingWrapperSelector).find($_secondGameFakeSelector);
13
    let submitAction = '/savebet';
14
15
    $_target.closest($_bettingWrapperSelector).find($_firstGameHiddenSelector).val($_closestFirstFakeSelector.val());
16
    $_target.closest($_bettingWrapperSelector).find($_secondGameHiddenSelector).val($_closestSecondFakeSelector.val());
17
18
    $_submitSelector.prop('disabled', true);
19
    let data = $_target.closest($_bettingWrapperSelector).find($_bettingFormSelector).serializeObject();
20
21
    submitForm(data, $_submitSelector, submitAction);
22
23
});
24
25
$(document).on("click", ".save-bet-button", function (event) {
26
    event.preventDefault();
27
    let $_target = $(event.target);
28
    let $_bettingWrapperSelector = $('.betting-wrapper');
29
    let $_bettingFormSelector = $('.user-betting-form');
30
    let $_submitSelector = $('.save-bet-button');
31
    let submitAction = '/savebet';
32
33
    $_submitSelector.prop('disabled', true);
34
    let data = $_target.closest($_bettingWrapperSelector).find($_bettingFormSelector).serializeObject();
35
36
    submitForm(data, $_submitSelector, submitAction);
37
38
});
39
40
41
$(document).on("click", ".extra-bet-submit", function (event) {
42
    event.preventDefault();
43
    let $_target = $(event.target);
44
    let $_bettingWrapperSelector = $('.extra-bet-wrapper');
45
    let $_bettingFormSelector = $('.extra-bet-form');
46
    let $_submitSelector = $('.extra-bet-submit');
47
    let submitAction = '/saveextrabet';
48
49
    $_submitSelector.prop('disabled', true);
50
51
    let data = $_target.closest($_bettingWrapperSelector).find($_bettingFormSelector).serializeObject();
52
53
    submitForm(data, $_submitSelector, submitAction);
54
55
});
56
57
showNotification = function (message, color, icon) {
0 ignored issues
show
Bug introduced by
The variable showNotification seems to be never declared. Assigning variables without defining them first makes them global. If this was intended, consider making it explicit like using window.showNotification.
Loading history...
58
    $.notify({
59
        icon: "nc-icon " + icon,
60
        message: message
61
62
    }, {
63
        type: color,
64
        delay: 100,
65
        placement: {
66
            from: 'top',
67
            align: 'center'
68
        }
69
    });
70
};
71
72
$.fn.serializeObject = function () {
73
    let o = {};
74
    let a = this.serializeArray();
75
    $.each(a, function () {
76
        if (o[this.name] !== undefined) {
77
            if (!o[this.name].push) {
78
                o[this.name] = [o[this.name]];
79
            }
80
            o[this.name].push(this.value || '');
81
        } else {
82
            o[this.name] = this.value || '';
83
        }
84
    });
85
    return o;
86
};
87
88
function submitForm(data, $_submitSelector, url) {
89
    $.ajax({
90
        url: url,
91
        type: 'POST',
92
        dataType: 'json',
93
        data: data,
94
        success: function (data) {
95
            if (data.status) {
96
                showNotification("Tipp erfolgreich gespeichert!", 'success', 'nc-check-2')
97
            } else {
98
                showNotification("Fehler! 🙁", 'danger', 'nc-simple-remove')
99
100
            }
101
        },
102
        complete: function () {
103
            $_submitSelector.prop('disabled', false);
104
        }
105
    });
106
}
107
108