Skip to content

Commit 005a6f5

Browse files
author
VGGeorgiev
committed
2 parents 8707b2d + 991fbc7 commit 005a6f5

21 files changed

+380
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<!DOCTYPE html>
2+
3+
<html>
4+
5+
<head>
6+
<title>Parse.com & jQuery AJAX: View All Questions</title>
7+
<script src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
8+
</head>
9+
10+
<body>
11+
<section class="widget">
12+
<h2>Questions</h2>
13+
<ul id="questions">
14+
</ul>
15+
</section>
16+
17+
<script type="text/javascript">
18+
$(function() {
19+
var PARSE_APP_ID = "TWvkNXvWKe6GixlxZ44tv8pwacMJMwleMuG2oIT2";
20+
var PARSE_REST_API_KEY = "vIaiOnNJTeV4ZnqSHrocG4jlCP00iJd24NywZkM9";
21+
22+
$.ajax({
23+
method: "GET",
24+
headers: {
25+
"X-Parse-Application-Id": PARSE_APP_ID,
26+
"X-Parse-REST-API-Key": PARSE_REST_API_KEY
27+
},
28+
url: "https://api.parse.com/1/classes/Question",
29+
}).success(function(data) {
30+
for (var q in data.results) {
31+
var question = data.results[q];
32+
var questionItem = $('<li>');
33+
questionItem.text(question.questionText);
34+
questionItem.appendTo($("#questions"));
35+
}
36+
}).error(function() {
37+
alert('Cannot load questions.');
38+
});
39+
});
40+
</script>
41+
</body>
42+
43+
</html>
Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
<!DOCTYPE html>
2+
3+
<html>
4+
5+
<head>
6+
<title>Parse.com & jQuery AJAX: Voting System</title>
7+
<script src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
8+
<script type="text/javascript" src="jquery.noty.packaged.min.js"></script>
9+
</head>
10+
11+
<body>
12+
13+
<h2>Questions</h2>
14+
<ul id="questions">
15+
</ul>
16+
17+
<div id="answers" style="display:none">
18+
<h2>answers</h2>
19+
<ul>
20+
</ul>
21+
</div>
22+
23+
<script type="text/javascript">
24+
$(function() {
25+
var PARSE_APP_ID = "TWvkNXvWKe6GixlxZ44tv8pwacMJMwleMuG2oIT2";
26+
var PARSE_REST_API_KEY = "vIaiOnNJTeV4ZnqSHrocG4jlCP00iJd24NywZkM9";
27+
28+
loadQuestions();
29+
30+
function loadQuestions() {
31+
jQuery.ajax({
32+
method: "GET",
33+
headers: {
34+
"X-Parse-Application-Id": PARSE_APP_ID,
35+
"X-Parse-REST-API-Key": PARSE_REST_API_KEY
36+
},
37+
url: "https://api.parse.com/1/classes/Question?order=-questionText",
38+
success: questionsLoaded,
39+
error: ajaxError
40+
});
41+
}
42+
43+
function questionsLoaded(data) {
44+
for (var q in data.results) {
45+
var question = data.results[q];
46+
var questionItem = $('<li>');
47+
var questionLink = $("<a href='#'>").text(question.questionText);
48+
$(questionLink).data('question', question);
49+
questionLink.appendTo(questionItem);
50+
$(questionLink).click(questionClicked);
51+
questionItem.appendTo($("#questions"));
52+
}
53+
}
54+
55+
function questionClicked() {
56+
var question = $(this).data('question');
57+
$("#answers").hide();
58+
$("#answers h2").text(question.questionText);
59+
var questionId = question.objectId;
60+
$.ajax({
61+
method: "GET",
62+
headers: {
63+
"X-Parse-Application-Id": PARSE_APP_ID,
64+
"X-Parse-REST-API-Key": PARSE_REST_API_KEY
65+
},
66+
url: 'https://api.parse.com/1/classes/Answer?where={"question":{"__type":"Pointer","className":"Question","objectId":"' + questionId + '"}}',
67+
success: answersLoaded,
68+
error: ajaxError
69+
});
70+
}
71+
72+
function answersLoaded(data) {
73+
$("#answers ul").html('');
74+
for (var a in data.results) {
75+
var answer = data.results[a];
76+
var answerItem = $('<li>');
77+
answerItem.text(answer.answerText +
78+
' (' + answer.votes + ') ');
79+
var button = $("<a href='#'>[Vote]</а>");
80+
button.data('answer', answer);
81+
button.click(voteButtonClicked);
82+
button.appendTo(answerItem);
83+
answerItem.appendTo($("#answers ul"));
84+
}
85+
$('#answers').show();
86+
}
87+
88+
function voteButtonClicked() {
89+
var answer = $(this).data('answer');
90+
$.ajax({
91+
method: "PUT",
92+
headers: {
93+
"X-Parse-Application-Id": PARSE_APP_ID,
94+
"X-Parse-REST-API-Key": PARSE_REST_API_KEY
95+
},
96+
url: 'https://api.parse.com/1/classes/Answer/' +
97+
answer.objectId,
98+
data: JSON.stringify(
99+
{"votes": answer.votes + 1}
100+
),
101+
contentType: "application/json",
102+
success: votedSuccessfully,
103+
error: ajaxError
104+
});
105+
}
106+
107+
function votedSuccessfully() {
108+
noty({
109+
text: 'Thanks for voting',
110+
layout: 'topCenter',
111+
timeout: 2000}
112+
);
113+
114+
}
115+
116+
function ajaxError() {
117+
noty({
118+
text: 'Cannot load AJAX data.',
119+
type: 'error',
120+
layout: 'topCenter',
121+
timeout: 5000}
122+
);
123+
}
124+
});
125+
</script>
126+
</body>
127+
128+
</html>

2. Parse.com-Demos/Parse.com-JavaScript-AJAX-Examples/jquery.noty.packaged.min.js

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
curl -X GET \
2+
-H "X-Parse-Application-Id: TWvkNXvWKe6GixlxZ44tv8pwacMJMwleMuG2oIT2" \
3+
-H "X-Parse-REST-API-Key: vIaiOnNJTeV4ZnqSHrocG4jlCP00iJd24NywZkM9" \
4+
https://api.parse.com/1/classes/Question
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
curl -X POST \
2+
-H "X-Parse-Application-Id: TWvkNXvWKe6GixlxZ44tv8pwacMJMwleMuG2oIT2" \
3+
-H "X-Parse-REST-API-Key: vIaiOnNJTeV4ZnqSHrocG4jlCP00iJd24NywZkM9" \
4+
-H "Content-Type: application/json" \
5+
-d '{"username":"pesho","password":"p@ss123"}' \
6+
https://api.parse.com/1/users
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
curl -X POST \
2+
-H "X-Parse-Application-Id: TWvkNXvWKe6GixlxZ44tv8pwacMJMwleMuG2oIT2" \
3+
-H "X-Parse-REST-API-Key: vIaiOnNJTeV4ZnqSHrocG4jlCP00iJd24NywZkM9" \
4+
-H "Content-Type: application/json" \
5+
-d '{"notes":"My private notes", "ACL":{ "*":{"read":true}, "6nt64Njj8W":{"write":true,"read":true} }
6+
}' \
7+
https://api.parse.com/1/classes/UserData
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
curl -X GET \
2+
-H "X-Parse-Application-Id: TWvkNXvWKe6GixlxZ44tv8pwacMJMwleMuG2oIT2" \
3+
-H "X-Parse-REST-API-Key: vIaiOnNJTeV4ZnqSHrocG4jlCP00iJd24NywZkM9" \
4+
-G \
5+
--data-urlencode 'username=pesho' \
6+
--data-urlencode 'password=p@ss123' \
7+
https://api.parse.com/1/login
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
curl -X GET \
2+
-H "X-Parse-Application-Id: TWvkNXvWKe6GixlxZ44tv8pwacMJMwleMuG2oIT2" \
3+
-H "X-Parse-REST-API-Key: vIaiOnNJTeV4ZnqSHrocG4jlCP00iJd24NywZkM9" \
4+
-H "X-Parse-Session-Token: yQtztxp1DITdTmNWdxKidqXQn" \
5+
https://api.parse.com/1/users/me
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
curl -X DELETE \
2+
-H "X-Parse-Application-Id: TWvkNXvWKe6GixlxZ44tv8pwacMJMwleMuG2oIT2" \
3+
-H "X-Parse-REST-API-Key: vIaiOnNJTeV4ZnqSHrocG4jlCP00iJd24NywZkM9" \
4+
-H "X-Parse-Session-Token: yQtztxp1DITdTmNWdxKidqXQn" \
5+
https://api.parse.com/1/classes/UserData/9NwYT5KOSK
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
curl -X GET \
2+
-H "X-Parse-Application-Id: TWvkNXvWKe6GixlxZ44tv8pwacMJMwleMuG2oIT2" \
3+
-H "X-Parse-REST-API-Key: vIaiOnNJTeV4ZnqSHrocG4jlCP00iJd24NywZkM9" \
4+
https://api.parse.com/1/classes/Question/4uKvW0uAdt

0 commit comments

Comments
 (0)