solr.js
3.48 KB
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
$(document).ready(
function() {
$("div.output").html("").hide();
$("div.error").html("").hide();
$("div.solr").each(function() {
var text = $(this).find("div.post textarea").first().text();
$(this).find("input.reset").first().data("original", text);
});
$("div.solr input.reset").click(
function() {
var parent = $(this).closest("div.solr");
parent.find("div.output").html("").hide();
parent.find("div.error").html("").hide();
parent.find("div.post textarea").first().val(
$(this).data("original"));
});
$("div.solr input.post").click(
function() {
var parent = $(this).closest("div.solr");
var url = parent.data('url');
var type = parent.data('type');
$("div.solr div.output").html("").hide();
$("div.solr div.error").html("").hide();
update(url, type, parent.find("div.post textarea").first(), parent.find("div.output")
.first(), parent.find("div.error").first(),
parent.find("input.create").first());
});
jQuery.each(jQuery('textarea[data-autoresize]'), function() {
var offset = this.offsetHeight - this.clientHeight;
var resizeTextarea = function(el) {
jQuery(el).css('height', 'auto').css('height',
el.scrollHeight + offset);
};
resizeTextarea(this);
jQuery(this).on('keyup input', function() {
resizeTextarea(this);
}).removeAttr('data-autoresize');
});
});
function update(url, type, post, output, error, button) {
output.html("").hide();
if (type == "json") {
error.html("<pre>waiting for response...</pre>").show();
button.hide();
$
.ajax({
'type' : 'POST',
'url' : url,
'contentType' : 'application/json',
'data' : post.val(),
'success' : function(data) {
// create response
try {
var myObject = JSON.parse(data);
error.hide();
output.html(
'<pre>'
+ JSON.stringify(myObject,
undefined, 2).replace(/&/g,
'&').replace(/</g,
'<').replace(/>/g,
'>').replace(/"/g,
'"') + '</pre>')
.show();
} catch (err) {
error.html('<pre>' + data + '</pre>').show();
}
button.show();
},
'error' : function(jqXHR, textStatus, errorThrown) {
error.html(
'<pre>' + jqXHR.status + ' : '
+ jqXHR.statusText + ' : '
+ jqXHR.responseText + '</pre>').show();
button.show();
}
});
} else if (type == "post") {
error.html("<pre>waiting for response...</pre>").show();
button.hide();
$
.ajax({
'type' : 'POST',
'url' : url,
'data' : post.val(),
'success' : function(data) {
// create response
try {
var myObject = JSON.parse(data);
error.hide();
output.html(
'<pre>'
+ JSON.stringify(myObject,
undefined, 2).replace(/&/g,
'&').replace(/</g,
'<').replace(/>/g,
'>').replace(/"/g,
'"') + '</pre>')
.show();
} catch (err) {
error.html('<pre>' + data + '</pre>').show();
}
button.show();
},
'error' : function(jqXHR, textStatus, errorThrown) {
error.html(
'<pre>' + jqXHR.status + ' : '
+ jqXHR.statusText + ' : '
+ jqXHR.responseText + '</pre>').show();
button.show();
}
});
} else {
error.html("<pre>unexpected request type " + type + "...</pre>").show();
button.hide();
}
}