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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
/**
* Copyright 2009 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS-IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
diagnostics = {};
diagnostics.data = {};
diagnostics.steps = [
['init', "Initializing"],
['examineBrowser', "Examining web browser"],
['testStreaming', "Testing primary transport (streaming)"],
['testPolling', "Testing secondary transport (polling)"],
['testHiccups', "Testing connection hiccups"],
['sendInfo', "Sending information"],
['showResult', ""]
];
diagnostics.processNext = function(i) {
if (i < diagnostics.steps.length) {
var msg = "Step "+(i+1)+": "+diagnostics.steps[i][1]+"...";
$('#statusmsg').html(msg);
diagnostics[diagnostics.steps[i][0]](function() {
diagnostics.processNext(i+1);
});
}
};
$(document).ready(function() {
diagnostics.processNext(0);
var emailClicked = false;
$('#email').click(function() {
if (!emailClicked) {
$('#email').select();
emailClicked = true;
}
});
$('#emailsubmit').click(function() {
function err(m) {
$('#emailerrormsg').hide().html(m).fadeIn('fast');
}
var email = $('#email').val();
if (!etherpad.validEmail(email)) {
err("That doesn't look like a valid email address.");
return;
}
$.ajax({
type: 'post',
url: '/ep/connection-diagnostics/submitemail',
data: {email: email, diagnosticStorableId: clientVars.diagnosticStorableId},
success: success,
error: error
});
function success(responseText) {
if (responseText == "OK") {
$('#emailform').html("<p>Thanks! We will look at your case shortly.</p>");
} else {
err(responseText);
}
}
function error() {
err("There was an error processing your request.");
}
});
});
diagnostics.init = function(done) {
setTimeout(done, 1000);
};
diagnostics.examineBrowser = function(done) {
setTimeout(done, 1000);
};
diagnostics.testStreaming = function(done) {
setTimeout(done, 1000);
};
diagnostics.testPolling = function(done) {
setTimeout(done, 1000);
};
diagnostics.testHiccups = function(done) {
setTimeout(done, 1000);
};
diagnostics.sendInfo = function(done) {
// TODO(jd): remove these test data when you submit actual data.
diagnostics.data.test1 = "foo";
diagnostics.data.test2 = "bar";
diagnostics.data.testNested = {a: 1, b: 2, c: 3};
// send data object back to server.
$.ajax({
type: 'post',
url: '/ep/connection-diagnostics/submitdata',
data: {dataJson: JSON.stringify(diagnostics.data),
diagnosticStorableId: clientVars.diagnosticStorableId},
success: done,
error: function() { alert("There was an error submitting the diagnostic information to the server."); done(); }
});
};
diagnostics.showResult = function(done) {
$('#linkanimation').hide();
$('#statusmsg').html("<br/>Result: your browser and internet"
+ " connection appear to be incompatibile with EtherPad.");
$('#statusmsg').css('color', '#520');
$('#emailform').show();
};
|