-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.js
96 lines (75 loc) · 2 KB
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
(() => {
loadBackgrounds();
mtDropdown();
submit();
reset();
function submit() {
const $setLoc = $('#submit'),
$inputs = $('input'),
$err = $('#error');
let eventDisable = false;
$setLoc.on('click keydown', e => {
if (!(e.which === 1 || e.which === 13) || eventDisable) return;
else eventDisable = true;
if ($err.is(':visible')) $err.hide();
let formInput, locString,
coordsAJAX, coords,
weatherAJAX, weather;
formInput = form.getValues($inputs);
locString = forecast.stringLocParams(formInput);
coordsAJAX = forecast.coordsAPI(locString);
coordsAJAX
.then( res => {
forecast.errorHandling(res);
coords = forecast.splitCoordsRes(res);
weatherAJAX = forecast.weatherAPI(coords);
return weatherAJAX
.then( res => {
weather = res;
dash.viewOne(forecast.currentTempF(weather));
dash.stageSubViews(forecast.dailySummary(weather));
menu.close();
return weather;
})
.catch( err => {
throw new Error('Problem with weather service.');
});
})
.catch( err => {
form.showErr($err, err);
$err.show();
})
.then( weather => {
eventDisable = false;
});
});
}
function reset() {
const $resetLoc = $('#dropdown');
$resetLoc.click(() => {
menu.open();
});
}
function mtDropdown() {
const $newLocation = $('#dropdown'),
$submit = $('#submit'),
$pane = $('#pane'),
$menu = $('#menu');
$menu.hover(() => {
if ($submit.is(':visible')) return;
$newLocation.show();
});
$pane.mouseleave(() => {
$newLocation.hide();
})
}
function loadBackgrounds() {
$('#background-carousel').cycle({
fx: 'fade',
pager: '#smallnav',
pause: 0,
speed: 3500,
timeout: 3500
});
}
})();