| author | veltr |
| Thu, 18 Apr 2013 18:20:50 +0200 | |
| changeset 42 | 3a2328ffd759 |
| parent 41 | integ/js/iri-buzz.js@8d64ffdaf5e3 |
| child 49 | 531a593a0294 |
| permissions | -rw-r--r-- |
| 28 | 1 |
$(function(){ |
2 |
||
| 30 | 3 |
/* |
4 |
$(window).bind('resize', function(){ |
|
5 |
setSidebarContentHeight(); |
|
6 |
}); |
|
7 |
setSidebarContentHeight(); |
|
8 |
function setSidebarContentHeight(){ |
|
9 |
var newHeight = $(window).height() - $('header').height() - $('footer').height(); |
|
10 |
$(".sidebar .content").css('height', newHeight); |
|
11 |
} |
|
12 |
||
|
41
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
13 |
*/ |
| 30 | 14 |
|
|
41
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
15 |
|
| 30 | 16 |
|
|
41
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
17 |
var CONFIG = { |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
18 |
wChart : 150, |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
19 |
hVS : 200, |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
20 |
now : new Date(), |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
21 |
dayLimit : 1, |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
22 |
timelineMin : 5, |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
23 |
bar : [] |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
24 |
}; |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
25 |
|
| 30 | 26 |
function init(){ |
27 |
var wWin = ($(window).width()>520) ? $(window).width() : 520; |
|
28 |
$('.timer-bar').width(wWin - 170); |
|
29 |
||
|
41
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
30 |
var stepHour = CONFIG.dayLimit * 24 / 12; |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
31 |
var hourText = 0; |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
32 |
$('.hours li').each(function(k, v){ |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
33 |
$(v).text(hourText+'h'); |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
34 |
hourText = hourText + stepHour; |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
35 |
}); |
| 30 | 36 |
|
37 |
var wTimerBar = $('.timer-bar').width(), |
|
38 |
nbIndicator = $('.hours li').length-1; |
|
39 |
mrIndicator = wTimerBar/ (nbIndicator); |
|
40 |
$('.timeline-head').css('min-width', wWin); |
|
41 |
$('.hours li').each(function(k,v){ |
|
42 |
if(k >= nbIndicator - 1) return; |
|
43 |
var mr = mrIndicator - $('.hours li:last-child').width()/2 - $(v).width()/2; |
|
44 |
$(v).css('margin-right', mr); |
|
45 |
}); |
|
|
41
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
46 |
|
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
47 |
|
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
48 |
var spaceTop = 100, spaceBotPoster = 200; |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
49 |
CONFIG.hVS = $(window).height() - $('footer').height() - $('header').height() - spaceTop - spaceBotPoster; |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
50 |
CONFIG.hVS = (CONFIG.hVS>200) ? CONFIG.hVS : 200; |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
51 |
|
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
52 |
showHorloge(); |
| 30 | 53 |
} |
54 |
||
55 |
init(); |
|
56 |
||
| 29 | 57 |
function resizeImg(parentId){ |
58 |
$(parentId+" img").each(function() { |
|
59 |
var img = $(this), |
|
60 |
div = $(this).parent(); |
|
61 |
img.load(function() { |
|
62 |
var iw = img.width(), |
|
63 |
ih = img.height(), |
|
64 |
dw = div.width(), |
|
65 |
dh = div.height(), |
|
66 |
scale = Math.max(dw/iw, dh/ih), |
|
67 |
niw = iw * scale, |
|
68 |
nih = ih * scale; |
|
69 |
img.css({ |
|
70 |
width: niw, |
|
71 |
height: nih, |
|
72 |
"margin-left": (dw - niw) / 2, |
|
73 |
"margin-top": (dh - nih) / 3 |
|
74 |
}); |
|
75 |
}); |
|
76 |
}); |
|
77 |
} |
|
78 |
||
|
41
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
79 |
|
| 28 | 80 |
|
81 |
var bcSettings = { |
|
82 |
width : 960, |
|
|
41
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
83 |
height : CONFIG.hVS, |
| 28 | 84 |
chart : { |
| 29 | 85 |
spacer : 5 |
| 28 | 86 |
}, |
87 |
data : { |
|
88 |
model :[], |
|
89 |
strata:[], |
|
90 |
stream : { provider : 'direct' } |
|
91 |
}, |
|
92 |
sedimentation:{ |
|
93 |
aggregation:{height:100} |
|
94 |
}, |
|
95 |
options:{layout:false} |
|
96 |
}; |
|
97 |
||
98 |
||
99 |
var currentDay = new Date().getDate(); |
|
100 |
var _reviewMovies = []; |
|
101 |
var nbMovies; |
|
102 |
var indiceMovie = 0; |
|
103 |
var indiceBar = 0; |
|
104 |
var barChart; |
|
105 |
||
106 |
var urlBestMovies = 'http://api.allocine.fr/rest/v3/movielist?partner='+ partnerCode +'&format=json&filter=top:week&count=15'; |
|
107 |
$.getJSON(urlBestMovies, function(data) { |
|
108 |
|
|
109 |
var movies = data.feed.movie; |
|
110 |
nbMovies = movies.length; |
|
| 30 | 111 |
bcSettings.width = nbMovies * CONFIG.wChart + (10 * nbMovies); |
| 28 | 112 |
$('.posters').css('width', bcSettings.width); |
113 |
//var wItem = bcSettings.width / nbMovies; |
|
114 |
||
115 |
_.each(movies, function(d){ |
|
116 |
||
117 |
var dataMovie = { |
|
118 |
title : d.originalTitle, |
|
119 |
code : d.code, |
|
120 |
posterUrl : d.poster.href, |
|
121 |
userRating : d.statistics.userRating, |
|
122 |
userReviewCount : d.statistics.userReviewCount |
|
123 |
}; |
|
124 |
||
125 |
var poster = |
|
126 |
'<li>'+ |
|
127 |
'<img src="'+ dataMovie.posterUrl +'" alt="'+ dataMovie.title +'" />'+ |
|
128 |
'</li>'; |
|
129 |
$('.posters').append(poster); |
|
130 |
||
131 |
//getReviewsByFilm(dataMovie.code); |
|
132 |
||
133 |
CONFIG.bar.push(dataMovie.code); |
|
134 |
||
135 |
bcSettings.data.model.push({}); |
|
136 |
||
137 |
var userReviewCount = dataMovie.userReviewCount; |
|
138 |
if(_.isUndefined(userReviewCount))userReviewCount = 0; |
|
139 |
var initValue = userReviewCount; |
|
140 |
||
|
41
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
141 |
initValue = 0; |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
142 |
|
| 28 | 143 |
bcSettings.data.strata.push([{initValue: initValue }]); |
144 |
/* |
|
145 |
var item = $('<li>').attr('data-poster', dataMovie.posterUrl).attr('id', 'movie-'+dataMovie.code ).attr('id', 'movie-'+dataMovie.code ).css('width', wItem); |
|
|
41
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
146 |
var nbReview = $('').addClass('nbReview').text(userReviewCount); |
| 28 | 147 |
item.append(nbReview); |
148 |
item.appendTo('.info-movies'); |
|
149 |
*/ |
|
150 |
}); |
|
151 |
||
| 29 | 152 |
resizeImg('.posters'); |
| 28 | 153 |
barChart = $("#data-viz").vs(bcSettings).data('visualSedimentation'); |
154 |
||
|
41
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
155 |
barChart.settings.sedimentation.token.size.minimum=0; |
| 28 | 156 |
}); |
|
41
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
157 |
|
| 28 | 158 |
var now = new Date(); |
159 |
||
160 |
function reviewAllowSince(dateReview){ |
|
161 |
var diffNowReview = CONFIG.now.getTime() - new Date(dateReview).getTime(); |
|
162 |
var limit = (CONFIG.dayLimit * 24) * 60 * 60 * 1000; |
|
163 |
if(diffNowReview<=limit){ |
|
164 |
var startDate = limit - diffNowReview; |
|
165 |
return startDate; |
|
166 |
}else{ |
|
167 |
return false; |
|
168 |
} |
|
169 |
} |
|
170 |
||
171 |
function generateTimerByMin(time){ |
|
172 |
var timeLimit = (CONFIG.timelineMin*60)*1000; |
|
173 |
return (time * timeLimit) / ((CONFIG.dayLimit*24)*60*60*1000) |
|
174 |
} |
|
175 |
||
176 |
function showHorloge(){ |
|
|
41
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
177 |
|
| 28 | 178 |
var timestampDateLimit = CONFIG.now.getTime() - ((CONFIG.dayLimit*24)*60*60*1000); |
179 |
var dateLimit = new Date(timestampDateLimit); |
|
|
41
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
180 |
|
| 28 | 181 |
var diff = CONFIG.now.getTime() - timestampDateLimit; |
182 |
||
183 |
var oneHour = (CONFIG.timelineMin * 60 * 1000) / (CONFIG.dayLimit*24); |
|
184 |
var oneMinute = oneHour / 60; |
|
185 |
||
|
41
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
186 |
|
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
187 |
var wTimerBar = $('.timer-bar').width(); |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
188 |
var timerBarValue = $('.timer-bar-value'); |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
189 |
timerBarValue.width(0); |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
190 |
var indice = 0; |
| 28 | 191 |
|
192 |
setInterval(function(){ |
|
|
41
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
193 |
if(indice>=diff) return; |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
194 |
indice = indice + (60 * 1000); |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
195 |
var wTimerBarValue = wTimerBar * indice / diff; |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
196 |
timerBarValue.width(wTimerBarValue); |
| 28 | 197 |
},oneMinute); |
198 |
||
199 |
} |
|
200 |
||
|
41
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
201 |
|
| 28 | 202 |
|
203 |
function getReviewsByFilm(codeFilm){ |
|
204 |
||
205 |
var _movie = { |
|
206 |
movieCode : codeFilm |
|
207 |
}; |
|
208 |
||
209 |
var reviewCount = 100; |
|
210 |
var urlCommentaireMovie = 'http://api.allocine.fr/rest/v3/reviewlist?partner='+ partnerCode +'&format=json&filter=public&count='+reviewCount+'&subject=movie:'+codeFilm; |
|
211 |
$.getJSON(urlCommentaireMovie, function(data) { |
|
212 |
||
213 |
var nbFilmSince = 0; |
|
214 |
//console.log(data) |
|
215 |
var totalResults = data.feed.totalResults; |
|
216 |
if(totalResults > 0) { |
|
217 |
var _reviews = new Array(); |
|
218 |
var reviews = data.feed.review; |
|
219 |
_.each(reviews, function(d){ |
|
220 |
if(d.totalResults == 0) return; |
|
221 |
||
222 |
var dataReview = { |
|
223 |
commentaire : d.body, |
|
224 |
date : d.creationDate,//"2013-03-10T |
|
225 |
rating : d.rating, |
|
226 |
author : d.writer.name |
|
227 |
}; |
|
228 |
||
229 |
var startDate = reviewAllowSince(d.creationDate); |
|
230 |
||
231 |
if(startDate){ |
|
232 |
nbFilmSince++ |
|
233 |
dataReview.startDate = startDate; |
|
234 |
_reviews.push(dataReview); |
|
235 |
} |
|
236 |
}); |
|
237 |
||
238 |
var totalReviews = $('li#movie-'+codeFilm+' span.nbReview').text(); |
|
239 |
$('li#movie-'+codeFilm+' span.nbReview').text(totalReviews-nbFilmSince) |
|
240 |
||
241 |
_movie.reviews = _reviews; |
|
242 |
_reviewMovies.push(_movie); |
|
243 |
} |
|
244 |
||
245 |
indiceMovie++; |
|
246 |
//console.log(indiceMovie) |
|
247 |
if(indiceMovie == nbMovies){ |
|
248 |
showHorloge(); |
|
249 |
displayReviews(); |
|
250 |
} |
|
251 |
||
252 |
});//getJson |
|
253 |
}//getReviewsByFilm |
|
254 |
||
255 |
function displayReviews(){ |
|
256 |
_.each(_reviewMovies, function(a){ |
|
257 |
var movieCode = a.movieCode; |
|
258 |
var reviews = a.reviews; |
|
259 |
||
260 |
var barCharCat; |
|
261 |
$.each(CONFIG.bar, function(k,v){ |
|
262 |
if(movieCode == v)barCharCat = k; |
|
263 |
}); |
|
264 |
||
265 |
_.each(reviews, function(b){ |
|
266 |
||
267 |
b.movieCode = movieCode; |
|
268 |
var startDate = b.startDate; |
|
269 |
||
270 |
var timer = generateTimerByMin(startDate); |
|
271 |
setTimeout(function(){ |
|
272 |
addToken(barCharCat, b) |
|
273 |
},timer); |
|
274 |
}); |
|
275 |
}); |
|
276 |
}//displayReviews |
|
277 |
||
278 |
function addToken(barCharCat, data){ |
|
279 |
var commentaire = data.commentaire; |
|
280 |
var date = data.date; |
|
281 |
var rating = data.rating; |
|
282 |
var author = data.author; |
|
283 |
var movieCode = data.movieCode; |
|
284 |
||
285 |
var nbReview = $('li#movie-'+movieCode+' span.nbReview').text(); |
|
286 |
var newNbReview = parseInt(nbReview)+1; |
|
287 |
$('li#movie-'+movieCode+' span.nbReview').text(newNbReview); |
|
288 |
//console.log(data.author) |
|
289 |
barChart.addToken({ |
|
290 |
commentaire : commentaire, |
|
291 |
movieCode : movieCode, |
|
292 |
date : date, |
|
293 |
rating : rating, |
|
294 |
author : author, |
|
295 |
category:barCharCat, |
|
|
41
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
296 |
size:1, |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
297 |
shape:{ |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
298 |
type:'box', |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
299 |
width:75, |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
300 |
height:2.5 |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
301 |
}, |
| 28 | 302 |
callback:{ |
303 |
mouseover:function(token){ |
|
304 |
var commentaire = token.attr('commentaire'); |
|
305 |
var author = token.attr('author'); |
|
306 |
var date = token.attr('date'); |
|
307 |
var movieCode = token.attr('movieCode'); |
|
308 |
$('.review .author').text(author+', '+date); |
|
309 |
$('.review .comment').text(commentaire); |
|
310 |
var poster = $('li#movie-'+movieCode).attr('data-poster'); |
|
311 |
$('.review img').attr('src', poster); |
|
312 |
} |
|
313 |
} |
|
314 |
}); |
|
315 |
} |
|
|
41
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
316 |
|
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
317 |
$('a.rejouer').bind('click', function(e){ |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
318 |
e.preventDefault(); |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
319 |
addTokenTest() |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
320 |
}); |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
321 |
|
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
322 |
function addTokenTest(){ |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
323 |
barChart.addToken({ |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
324 |
category:0, |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
325 |
size:1, |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
326 |
|
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
327 |
callback:{ |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
328 |
|
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
329 |
} |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
330 |
}); |
|
8d64ffdaf5e3
résolution problème scrollbar firefox
Anthony Ly <anthonyly.com@gmail.com>
parents:
30
diff
changeset
|
331 |
} |
| 28 | 332 |
});//load |