source: Git/src/main/resources/static/js/sharedScript.js@ 3c0f9a9

main
Last change on this file since 3c0f9a9 was 3c0f9a9, checked in by Petar Partaloski <ppartaloski@…>, 2 years ago

Added genre liking, fixed counter, improved paging, improved searches

  • Property mode set to 100644
File size: 9.6 KB
Line 
1var urlRating;
2
3$(document).ready(function (){
4 var elements = $(".elements")
5 var elementGrade;
6
7
8 $("#button-add").on("click", function (){
9 itemInput = $("#pageInput")
10 itemInput.val(Number(itemInput.val()) + 1);
11 $("#button-submit-page").click()
12 })
13
14 $("#button-sub").on("click", function (){
15 itemInput = $("#pageInput")
16 if(Number(itemInput.val()) > 1){
17 itemInput.val(Number(itemInput.val()) - 1);
18 $("#button-submit-page").click()
19 }
20 })
21
22 $("#searchTitle").on("keyup", function() {
23 var value = $(this).val().toLowerCase();
24 console.log(value)
25 $(".elements div a .title").filter(function() {
26 console.log($(this).text())
27 if($(this).text().toLowerCase().indexOf(value) <= -1)
28 $(this).parent().parent().parent().addClass("visibility")
29 else
30 $(this).parent().parent().parent().removeClass("visibility")
31 });
32 });
33
34
35
36
37 $("#dialog-rating").dialog({
38 autoOpen: false,
39 modal: true,
40 buttons: [
41 {
42 text: "Потврди",
43 click: function () {
44 $("#dialog-rating").dialog("close")
45 ajaxCallRating(urlRating,elementGrade)
46 }
47 },
48 {
49 text: "Откажи",
50 click: function () {
51 $("#dialog-rating").dialog("close")
52 }
53 }
54 ]
55 });
56 $(".button-add-grade-movie").on("click",function (){
57 elementGrade = $(this)
58 urlRating ="api/movies/grade/"+$(this).attr("movie-id")
59 $("#dialog-rating").dialog("open")
60 })
61 $(".button-add-grade-person").on("click",function (){
62 elementGrade = $(this)
63 urlRating ="api/persons/grade/"+$(this).attr("person-id")
64 $("#dialog-rating").dialog("open")
65 })
66
67
68 /*$(".search-button-title").on("click",function (){
69 let filter = $("#searchTitle").val()
70 console.log(elements)
71 for (let item of elements){
72 let title = $(item).find(".card-title").text()
73 if (title.toLowerCase() === filter.toLowerCase()){
74 console.log("Da")
75 $(item).css("display","block")
76 }
77 else{
78 $(item).css("display","none")
79 }
80 }
81 })*/
82
83
84 $(".search-button").on("click",function () {
85 let filter = $("#searchGenre").val()
86 for (let item of elements) {
87 let genre = $(item).find(".card-genre")
88 let visible = false;
89
90 for (let g of genre) {
91
92 if (( $(g).text().toLowerCase() === filter.toLowerCase() && !$(g).hasClass("visibility") && filter.trim().length != 0)) {
93 visible = true
94 $(item).removeClass("visibility")
95 break;
96 }
97 }
98 if (!visible && filter.trim().length != 0)
99 $(item).addClass("visibility")
100 else
101 $(item).removeClass("visibility")
102
103 }
104 });
105
106 $(".button-delete-movie").on("click",function (){
107 let button = $(this)
108 let url = "api/movies/delete/" + $(button).attr("movie-id")
109 ajaxCallDelete(url,button)
110 })
111 $(".button-delete-actor").on("click",function (){
112 let button = $(this)
113 let url = "api/persons/delete/" + $(button).attr("person-id")
114 ajaxCallDelete(url,button)
115 })
116 $(".button-delete-discussion").on("click",function (){
117 let button = $(this)
118 let url = "api/discussions/delete/" + $(button).attr("discussion-id")
119 ajaxCallDelete(url,button)
120 })
121
122 $(document.body).on("click",".button-confirm",function (){
123
124 $(this).parent().parent().fadeOut(2000)
125 })
126 $(".person-movies").change(function (){
127 if (this.value === "A"){
128 $(".movie-directors").attr("hidden",true).prop("selected",false)
129
130
131 $(".movies-actors").attr("hidden",false)
132
133 }
134 else{
135 $(".movies-actors").attr("hidden",true).prop("selected",false)
136 $(".movie-directors").attr("hidden",false)
137 }
138 })
139 $(document.body).on("click",".button-add-favourite-list",function (){
140 let button = $(this)
141 let url = "api/movies/like/"+ $(this).attr("movie-id") + "?userId="+ $(this).attr("user-id")
142 ajaxCallLike(url,button,'like','Веќе е филмот допаднат!')
143 })
144 $(document.body).on("click",".button-remove-favourite-list",function (){
145 let button = $(this)
146 let url = "api/movies/unlike/"+ $(this).attr("movie-id")+"?userId="+ $(this).attr("user-id")
147 ajaxCallLike(url,button,'unlike','Немате оставено допаѓање на филмот!')
148 })
149 $(document.body).on("click",".button-add-genre-liked-list",function (){
150 let button = $(this)
151 let url = "api/genres/like/"+ $(this).attr("genre-id") + "?userId="+ $(this).attr("user-id")
152 ajaxCallLikeGenre(url,button,'like','Веќе ви се допаѓа жанрот!')
153 })
154 $(document.body).on("click",".button-remove-genre-liked-list",function (){
155 let button = $(this)
156 let url = "api/genres/unlike/"+ $(this).attr("genre-id")+"?userId="+ $(this).attr("user-id")
157 ajaxCallLikeGenre(url,button,'unlike','Немате оставено допаѓање на жанрот!')
158 })
159 $(".discussion-type").change(function (){
160 if (this.value === "M"){
161 $(".persons-discussion").hide()
162 $(".movies-discussion").show()
163
164
165 }
166 else{
167 $(".movies-discussion").hide()
168 $(".persons-discussion").show()
169 }
170 })
171
172
173})
174function ajaxCallLike(url,button,type,message){
175 $.ajax({
176 url:url,
177 success:function (data){
178 if (data){
179 let el = $(button).parent().siblings().eq(3)
180 console.log(el)
181 if (type=="like") {
182 $(el).html(parseInt($(el).text()) + 1)
183 console.log("da")
184 }
185 else
186 $(el).html(parseInt($(el).text()) - 1)
187 $(button).css("display","none")
188 let userId = $(button).attr("user-id")
189 let movieId=$(button).attr("movie-id")
190 if (type==='like') {
191 $(button).parent().append("<a class='bottom-heart btn btn-danger button-remove-favourite-list' movie-id=" + movieId + " user-id=" + userId + ">💔</a>")
192 console.log("da")
193 }
194 else{
195 $(button).parent().append("<a class='bottom-heart btn btn-success button-add-favourite-list' movie-id=" + movieId + " user-id=" + userId + ">❤</a>")
196
197 }
198 $(button).remove()
199 }
200 else {
201 $(button).parent().append("<div>" + message +" <button class='button-confirm'>Ок</button></div>")
202 }
203 }
204 })
205}
206function ajaxCallDelete(url,button){
207 $.ajax({
208 url:url,
209 method:"DELETE",
210 success: function (data){
211 if (data){
212 console.log(data)
213 $(button).parent().parent().html("<div>Бришењето е успешно!<button class='button-confirm'>Ок</button></div>")
214 }
215 else {
216 var div = "<div>Веќе е избришан записот! <button class='button-confirm'>Ок</button></div>"
217 button.parent().html(button.parent().html() + div)
218 }
219 }
220 })
221}
222
223
224
225function ajaxCallLikeGenre(url,button,type,message){
226 $.ajax({
227 url:url,
228 success:function (data){
229 if (data){
230 let el = $(button).parent().siblings().eq(3)
231 console.log(el)
232 if (type=="like") {
233 $(el).html(parseInt($(el).text()) + 1)
234 console.log("da")
235 }
236 else
237 $(el).html(parseInt($(el).text()) - 1)
238 $(button).css("display","none")
239 let userId = $(button).attr("user-id")
240 let genreId=$(button).attr("genre-id")
241 if (type==='like') {
242 $(button).parent().append("<a class='btn btn-danger button-remove-genre-liked-list' genre-id=" + genreId + " user-id=" + userId + ">💔</a>")
243 console.log("da")
244 }
245 else{
246 $(button).parent().append("<a class='btn btn-success button-add-genre-liked-list' genre-id=" + genreId + " user-id=" + userId + ">❤</a>")
247 }
248 let likes_sibling = $("#"+genreId+"genre")
249 value_likes = Number(likes_sibling.text())
250 if(type=="like")
251 value_likes+=1
252 else
253 value_likes-=1
254 likes_sibling.text(value_likes)
255 $(button).remove()
256 }
257 else {
258 $(button).parent().append("<div>" + message +" <button class='button-confirm'>Ок</button></div>")
259 }
260 }
261 })
262}
263
264
265function ajaxCallRating(url,button,type){
266 model = {
267 rating:$("#grade").val(),
268 reason:$("#reason").val()
269 }
270 $.ajax({
271 url:urlRating,
272 method: "POST",
273 dataType:"json",
274 data:JSON.stringify(model),
275 contentType : 'application/json; charset=utf-8',
276 success: function (data){
277 if (data){
278 console.log(data)
279 $(button).text("Промени оцена и мислење")
280 }
281
282 }
283 })
284}
Note: See TracBrowser for help on using the repository browser.