forked from fossasia/yaydoc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
form.js
75 lines (66 loc) · 2.58 KB
/
form.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
/**
* Client-side Event Handling
*/
$(function () {
var socket = io();
$("#btnGenerate").click(function () {
var formData = getData();
if (validation.isValid(formData)) {
socket.emit('execute', formData);
$(this).attr("disabled", "none");
} else {
$('.notification').append($('<li>')).text(validation.getMessages());
$('#notification-container').css("visibility", "visible");
$('#notification-container').css("opacity", "1");
validation.setMessages([]);
setTimeout(function() {
$('#notification-container').css("visibility", "hidden");
$('#notification-container').css("opacity", "0");
}, 5000)
}
});
socket.on('logs', function (data) {
$('#messages').append($('<li class="info">').text(data.data));
$("#progress").css("width", data.donePercent + "%");
});
socket.on('err-logs', function (msg) {
$('#messages').append($('<li class="error">').text(msg));
});
socket.on('success', function (data) {
$('#btnDownload').css("display", "inline");
$('#btnDownload').attr("href", "/download/" + data.email +"/" + data.uniqueId);
$('#btnPreview').css("display", "inline");
$('#btnPreview').attr("href", "/preview/" + data.email +"/" + data.uniqueId + "_preview");
$('.notification').append($('<li>')).text("Documentation Generated Successfully");
$('#notification-container').css("visibility", "visible");
$('#notification-container').css("opacity", "1");
setTimeout(function() {
$('#notification-container').css("visibility", "hidden");
$('#notification-container').css("opacity", "0");
}, 5000)
$('#btnDeploy').css("display", "inline");
$('#btnDeploy').attr("href", '/github?email='+data.email+'&uniqueId='+data.uniqueId+'&gitURL='+data.gitUrl);
});
socket.on('failure', function (data) {
$('.notification').append($('<li>')).text("Failed to Generate Documentation: Error " + data.errorCode);
$('#notification-container').css("visibility", "visible");
$('#notification-container').css("opacity", "1");
setTimeout(function() {
$('#notification-container').css("visibility", "hidden");
$('#notification-container').css("opacity", "0");
}, 5000)
})
});
/**
* Retrieve data from input form fields
*/
function getData() {
var data = {};
var formData = $("form").serializeArray();
$.each(formData, function (i, field) {
if (field.name === "email") { data.email = field.value; }
if (field.name === "git_url") { data.gitUrl = field.value; }
if (field.name === "doc_theme") { data.docTheme = field.value; }
});
return data;
}