PluginProbe
WP Ultimate Post Grid / 2.4.0
WP Ultimate Post Grid v2.4.0
4.1.1 trunk 1.5 1.6 1.7 1.7.1 1.7.2 1.8 1.9 2.0 2.1 2.2 2.3 2.4.0 2.5.0 2.6.0 2.7.0 2.8.0 2.8.2 3.0.0 3.3.0 3.4.0 3.5.0 3.6.0 3.7.0 All 32 releases
wp-ultimate-post-grid / js / grid.js

grid.js in WP Ultimate Post Grid 2.4.0, at js/grid.js

732 lines 26.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 var WPUltimatePostGrid = WPUltimatePostGrid || {};
2
3 WPUltimatePostGrid.grids = {};
4
5 WPUltimatePostGrid.initGrid = function(container) {
6 var grid_id = container.data('grid');
7
8 var args = {
9 itemSelector: '.wpupg-item',
10 transitionDuration: wpupg_public.animationSpeed,
11 hiddenStyle: wpupg_public.animationHide,
12 visibleStyle: wpupg_public.animationShow
13 };
14
15 if(wpupg_public.rtl) {
16 args.isOriginLeft = false;
17 }
18
19 var layout_mode = container.data('layout-mode');
20 if(layout_mode) {
21 args.layoutMode = layout_mode;
22 }
23
24 if(layout_mode == 'masonry' && container.data('centered')) {
25 args.masonry = {
26 isFitWidth: true
27 };
28 }
29
30 container.isotopewpupg(args);
31
32 container.imagesLoaded( function() {
33 container.isotopewpupg('layout');
34 });
35
36 WPUltimatePostGrid.grids[grid_id] = {
37 args: args,
38 container: container,
39 centered: container.data('centered'),
40 data: window['wpupg_grid_' + container.data('grid-id')],
41 id: container.data('grid-id'),
42 pages: [0],
43 page: 0,
44 filter: '',
45 filters: {},
46 filter_text: false,
47 filter_text_search: '',
48 filter_text_posts: []
49 };
50
51 WPUltimatePostGrid.checkLinks(grid_id);
52 WPUltimatePostGrid.updatePosts(grid_id);
53
54 jQuery(container).on('hover', '.wpupg-item', function(e) {
55 var hovering = e.type == 'mouseenter';
56 WPUltimatePostGrid.hoverGridItem(jQuery(this), hovering);
57 });
58
59 // Check for empty grid
60 container.on('arrangeComplete', function() {
61 WPUltimatePostGrid.checkEmpty(container);
62 });
63 };
64
65 WPUltimatePostGrid.hoverGridItem = function(grid_item, hovering) {
66 if(hovering) {
67 grid_item.addClass('wpupg-hovering');
68
69 grid_item.find('.wpupg-show-on-hover').each(function() {
70 var item = jQuery(this),
71 effect = item.data('hover-in'),
72 duration = parseInt(item.data('hover-in-duration'));
73
74 if(effect == 'fade') {
75 item.fadeIn(duration);
76 } else if(effect == 'slide') {
77 item.slideDown(duration);
78 } else {
79 item.show();
80 }
81 });
82
83 grid_item.find('.wpupg-hide-on-hover').each(function() {
84 var item = jQuery(this),
85 effect = item.data('hover-out'),
86 duration = parseInt(item.data('hover-out-duration'));
87
88 if(effect == 'fade') {
89 item.fadeOut(duration);
90 } else if(effect == 'slide') {
91 item.slideUp(duration);
92 } else {
93 item.hide();
94 }
95 });
96 } else {
97 grid_item.removeClass('wpupg-hovering');
98
99 grid_item.find('.wpupg-show-on-hover').each(function() {
100 var item = jQuery(this),
101 effect = item.data('hover-out'),
102 duration = parseInt(item.data('hover-out-duration'));
103
104 if(effect == 'fade') {
105 item.fadeOut(duration);
106 } else if(effect == 'slide') {
107 item.slideUp(duration);
108 } else {
109 item.hide();
110 }
111 });
112
113 grid_item.find('.wpupg-hide-on-hover').each(function() {
114 var item = jQuery(this),
115 effect = item.data('hover-in'),
116 duration = parseInt(item.data('hover-in-duration'));
117
118 if(effect == 'fade') {
119 item.fadeIn(duration);
120 } else if(effect == 'slide') {
121 item.slideDown(duration);
122 } else {
123 item.show();
124 }
125 });
126 }
127 };
128
129 WPUltimatePostGrid.updatePosts = function(grid_id) {
130 var grid = WPUltimatePostGrid.grids[grid_id];
131
132 var posts = [];
133
134 grid.container.find('.wpupg-item').each(function() {
135 var post_id = jQuery(this).data('id');
136 posts.push(post_id);
137 });
138
139 WPUltimatePostGrid.grids[grid_id].posts = posts;
140 };
141
142 WPUltimatePostGrid.filterGrid = function(grid_id) {
143 var grid = WPUltimatePostGrid.grids[grid_id];
144 var filters = [];
145
146 if(grid.filter_text) {
147 grid.filter = '';
148 var posts = [];
149
150 for(var i=0; i < grid.filter_text_posts.length; i++) {
151 posts.push('#wpupg-container-post-' + grid.filter_text_posts[i]);
152 posts.push('#wpurp-container-recipe-' + grid.filter_text_posts[i]);
153 }
154
155 if(posts.length == 0) {
156 posts.push('no-result');
157 }
158
159 WPUltimatePostGrid.getFilterString(grid_id, '', [posts], 0);
160 } else {
161 // Page filter
162 if(grid.pagination_type == 'pages') {
163 var page = grid.page || 0;
164 filters.push(['.wpupg-page-' + page]);
165 }
166
167 // Taxonomy filters
168 for(var taxonomy in grid.filters) {
169 if(grid.filters.hasOwnProperty(taxonomy)) {
170 var taxonomy_filters = grid.filters[taxonomy];
171
172 var match_one_filters = [];
173 var match_all_filter = '';
174 var filter = '';
175
176 if(taxonomy_filters) {
177 for(var i = 0; i < taxonomy_filters.length; i++) {
178 filter = '.wpupg-tax-' + taxonomy + '-' + taxonomy_filters[i];
179
180 if(grid.multiselect_type == 'match_one') {
181 match_one_filters.push(filter);
182 } else {
183 match_all_filter += filter;
184 }
185 }
186 }
187
188 if(grid.multiselect_type == 'match_one') {
189 if(match_one_filters.length > 0) filters.push(match_one_filters);
190 } else {
191 if(match_all_filter !== '') filters.push([match_all_filter]);
192 }
193 }
194 }
195
196 grid.filter = '';
197 WPUltimatePostGrid.getFilterString(grid_id, '', filters, 0);
198 if(grid.inverse) {
199 if(grid.pagination_type == 'pages') {
200 var page = grid.page || 0;
201 var filter_without_page = grid.filter.replace('.wpupg-page-' + page, '');
202
203 grid.filter = '.wpupg-page-' + page + ':not(' + filter_without_page + ')';
204 } else {
205 grid.filter = ':not(' + grid.filter + ')';
206 }
207 }
208 }
209
210 jQuery('#wpupg-grid-' + grid_id + '-empty').hide();
211 grid.container.isotopewpupg({ filter: grid.filter });
212 grid.container.trigger('wpupgFiltered');
213 WPUltimatePostGrid.updateDeeplink();
214 };
215
216 WPUltimatePostGrid.getFilterString = function(grid_id, s, attrs, k) {
217 if(k==attrs.length) {
218 if(WPUltimatePostGrid.grids[grid_id].filter !== '') s = ', ' + s;
219 WPUltimatePostGrid.grids[grid_id].filter += s;
220 } else {
221 for(var i=0; i<attrs[k].length;i++) {
222 WPUltimatePostGrid.getFilterString(grid_id, s+attrs[k][i], attrs, k+1);
223 }
224 }
225 };
226
227 WPUltimatePostGrid.checkEmpty = function(container) {
228 var grid_id = container.data('grid'),
229 filter = WPUltimatePostGrid.grids[grid_id].filter,
230 visible_items = container.find(filter);
231
232 if(filter !== '' && visible_items.length == 0) {
233 jQuery('#wpupg-grid-' + grid_id + '-empty').slideDown(300);
234 }
235 };
236
237 WPUltimatePostGrid.updateDeeplink = function() {
238 var link = '';
239
240 for(var grid_id in WPUltimatePostGrid.grids) {
241 if(WPUltimatePostGrid.grids.hasOwnProperty(grid_id)) {
242 var grid = WPUltimatePostGrid.grids[grid_id];
243 var grid_link = '';
244
245
246 if(grid.filter_text) {
247 grid_link += '+s:' + grid.filter_text_search;
248 } else {
249 // Page filter
250 if(grid.page != 0) grid_link += '+p:' + (grid.page+1);
251
252 // Taxonomy filters
253 for(var taxonomy in grid.filters) {
254 if(grid.filters.hasOwnProperty(taxonomy)) {
255 var taxonomy_filter = grid.filters[taxonomy];
256
257 if(taxonomy_filter.length > 0) {
258 grid_link += '+' + taxonomy + ':' + taxonomy_filter.join(',');
259 }
260 }
261 }
262 }
263
264 if(grid_link != '') {
265 if(link != '') link += '#';
266 link += grid_id;
267 link += grid_link;
268 }
269 }
270 }
271
272 WPUltimatePostGrid.replaceDeeplink(link);
273 };
274
275 /**
276 * Source: http://stackoverflow.com/questions/1397329/how-to-remove-the-hash-from-window-location-with-javascript-without-page-refresh/5298684#5298684
277 */
278 WPUltimatePostGrid.replaceDeeplink = function(link) {
279 var scrollV, scrollH, loc = window.location;
280 if ("replaceState" in history) {
281 var hash = link == '' ? '' : '#' + link;
282 history.replaceState("", document.title, loc.pathname + hash + loc.search);
283 } else {
284 // Prevent scrolling by storing the page's current scroll offset
285 scrollV = document.documentElement.scrollTop || document.body.scrollTop;
286 scrollH = document.documentElement.scrollLeft || document.body.scrollLeft;
287
288 loc.hash = link;
289
290 // Restore the scroll offset, should be flicker free
291 document.documentElement.scrollTop = document.body.scrollTop = scrollV;
292 document.documentElement.scrollLeft = document.body.scrollLeft = scrollH;
293 }
294 };
295
296 WPUltimatePostGrid.preFilterGrid = function() {
297 var link = document.location.hash;
298 link = link.substr(1);
299
300 if(!link) {
301 var link = '';
302
303 for(var grid_id in WPUltimatePostGrid.grids) {
304 if(WPUltimatePostGrid.grids.hasOwnProperty(grid_id)) {
305 var grid = WPUltimatePostGrid.grids[grid_id];
306 var grid_link = '';
307
308 if(grid.filter_data) {
309 var pre_filter = grid.filter_data['pre_filter'];
310
311 // Taxonomy filters
312 for(var taxonomy in pre_filter) {
313 if(pre_filter.hasOwnProperty(taxonomy)) {
314 var taxonomy_filter = pre_filter[taxonomy];
315
316 if(taxonomy_filter.length > 0) {
317 grid_link += '+' + taxonomy + ':' + taxonomy_filter.join(',');
318 }
319 }
320 }
321 }
322
323 if(grid_link != '') {
324 if(link != '') link += '#';
325 link += grid_id;
326 link += grid_link;
327 }
328 }
329 }
330
331 WPUltimatePostGrid.replaceDeeplink(link);
332 }
333 };
334
335 WPUltimatePostGrid.restoreDeeplink = function() {
336 var link = document.location.hash;
337 link = link.substr(1);
338
339 if(link) {
340 // Make sure characters are not URL encoded
341 link = link.replace('%23', '#');
342 link = link.replace('%7C', '|');
343 link = link.replace('%2B', '+');
344 link = link.replace('%3A', ':');
345 link = link.replace('%2C', ',');
346
347 // Backwards compatibility
348 link = link.replace('|', '+');
349
350 var grids = link.split('#');
351
352 for(var i=0; i < grids.length; i++) {
353 var parts = grids[i].split('+');
354 var grid_id = parts[0];
355
356 for(var j=1; j < parts.length; j++) {
357 var filter = parts[j].split(':');
358
359 if(filter[0] == 'p') {
360 var page = parseInt(filter[1]) - 1;
361 WPUltimatePostGrid.updatePagination(jQuery('#wpupg-grid-' + grid_id + '-pagination'), page);
362 } else if(filter[0] == 's') {
363 WPUltimatePostGrid.updateFilter(jQuery('#wpupg-grid-' + grid_id + '-filter'), filter[0], 'text', filter[1]);
364 } else {
365 var terms = filter[1].split(',');
366 WPUltimatePostGrid.updateFilter(jQuery('#wpupg-grid-' + grid_id + '-filter'), filter[0], 'terms', terms);
367 }
368 }
369 }
370 }
371 };
372
373 WPUltimatePostGrid.checkLinks = function(grid_id) {
374 var grid = WPUltimatePostGrid.grids[grid_id];
375 var default_link_type = grid.container.data('link-type');
376 var link_target = grid.container.data('link-target');
377 var link_rel = link_target == 'post' ? '' : ' rel="lightbox"';
378
379 if(default_link_type != 'none') {
380 grid.container.find('.wpupg-item').each(function() {
381 var item = jQuery(this);
382
383 // Remove links from item
384 item.find('a:not(.wpupg-keep-link, .wpurp-recipe-favorite, .wpurp-recipe-add-to-shopping-list, .wpurp-recipe-add-to-meal-plan, .wpurp-recipe-print-button, .wpurp-recipe-grid-link)').each(function() {
385 var link = jQuery(this);
386 if(link.parents('.sharrre').length == 0) {
387 link.replaceWith(function() { return link.contents(); });
388 }
389 });
390
391 var link = item.data('custom-link') ? item.data('custom-link') : ( link_target == 'post' ? item.data('permalink') : item.data('image') );
392 var link_behaviour = item.data('custom-link-behaviour');
393
394 var link_type = link_behaviour == '_blank' || link_behaviour == '_self' ? link_behaviour : default_link_type;
395
396 // Add link around item
397 if (link_behaviour !== 'none' && link && item.parent('a').length == 0) {
398 item.wrap('<a href="' + link + '" target="' + link_type + '"' + link_rel + ' class="' + wpupg_public.link_class + '"></a>');
399 }
400 });
401 }
402 };
403
404 WPUltimatePostGrid.updateFilter = function(container, taxonomy, type, terms) {
405 var filter_type = container.data('type');
406 var func = 'updateFilter' + filter_type.charAt(0).toUpperCase() + filter_type.slice(1);
407 if(typeof WPUltimatePostGrid[func] == 'function') {
408 WPUltimatePostGrid[func](container, taxonomy, type, terms);
409 }
410 };
411
412 WPUltimatePostGrid.updateFilterIsotope = function(container, taxonomy, type, terms) {
413 for(var i = 0; i < terms.length; i++) {
414 container.find('.wpupg-filter-tag-' + terms[i]).click();
415 }
416 };
417
418 WPUltimatePostGrid.initFilterIsotope = function(container) {
419 var grid_id = container.data('grid');
420
421 WPUltimatePostGrid.grids[grid_id].multiselect = container.data('multiselect');
422 WPUltimatePostGrid.grids[grid_id].multiselect_type = container.data('multiselect-type');
423 WPUltimatePostGrid.grids[grid_id].inverse = container.data('inverse');
424
425 container.find('.wpupg-filter-isotope-term').click(function() {
426 var filter_item = jQuery(this);
427 var taxonomy = filter_item.data('taxonomy');
428 var filter_all = filter_item.data('filter') == undefined;
429 var filter_term = filter_item.data('filter');
430
431 var filters = [];
432
433 if(WPUltimatePostGrid.grids[grid_id].multiselect && !filter_all) {
434 // Make sure "All" is not selected
435 filter_item.siblings('.wpupg-filter-tag-').removeClass('active').trigger('checkActiveFilter');
436
437 filters = WPUltimatePostGrid.grids[grid_id].filters || [];
438
439 if(filters[taxonomy] == undefined) filters[taxonomy] = [];
440
441 var term_index = filters[taxonomy].indexOf(filter_term);
442 if(term_index == -1) {
443 // Term was not select before, add
444 filter_item.addClass('active').trigger('checkActiveFilter');
445 filters[taxonomy].push(filter_term);
446 } else {
447 // Term was already selected, remove
448 filter_item.removeClass('active').trigger('checkActiveFilter');
449 filters[taxonomy].splice(term_index, 1);
450
451 // Set "All" active if no terms left
452 var nbr_terms = 0;
453
454 for(var filter_taxonomy in filters) {
455 if(filters.hasOwnProperty(filter_taxonomy)) {
456 var filter_taxonomy_terms = filters[filter_taxonomy];
457
458 if(filter_taxonomy_terms) {
459 nbr_terms += filter_taxonomy_terms.length;
460 }
461 }
462 }
463
464 if(nbr_terms == 0) {
465 filter_item.siblings('.wpupg-filter-tag-').addClass('active').trigger('checkActiveFilter');
466 }
467 }
468 } else {
469 filter_item.siblings('.wpupg-filter-isotope-term').removeClass('active').trigger('checkActiveFilter');
470 filter_item.addClass('active').trigger('checkActiveFilter');
471
472 if(!filter_all) {
473 filters[taxonomy] = [filter_term];
474 }
475 }
476
477 WPUltimatePostGrid.grids[grid_id].filters = filters;
478 WPUltimatePostGrid.filterGrid(grid_id);
479 });
480
481 var filter_type = container.data('filter-type');
482 var filter_items = container.find('.wpupg-filter-item');
483
484 if(filter_type == 'isotope' || filter_type == 'text_isotope') {
485 var margin = container.data('margin-vertical') + 'px ' + container.data('margin-horizontal') + 'px';
486 var padding = container.data('padding-vertical') + 'px ' + container.data('padding-horizontal') + 'px';
487 var border = container.data('border-width') + 'px solid ' + container.data('border-color');
488 var background_color = container.data('background-color');
489 var text_color = container.data('text-color');
490
491 var active_border = container.data('border-width') + 'px solid ' + container.data('active-border-color');
492 var active_background_color = container.data('active-background-color');
493 var active_text_color = container.data('active-text-color');
494
495 var hover_border = container.data('border-width') + 'px solid ' + container.data('hover-border-color');
496 var hover_background_color = container.data('hover-background-color');
497 var hover_text_color = container.data('hover-text-color');
498
499 filter_items.each(function() {
500 var filter_item = jQuery(this);
501
502 filter_item
503 .css('margin', margin)
504 .css('padding', padding)
505 .css('border', border)
506 .css('background-color', background_color)
507 .css('color', text_color)
508 .hover(function() {
509 if(!filter_item.hasClass('active')) {
510 filter_item
511 .css('border', hover_border)
512 .css('background-color', hover_background_color)
513 .css('color', hover_text_color);
514 }
515 }, function() {
516 if(!filter_item.hasClass('active')) {
517 filter_item
518 .css('border', border)
519 .css('background-color', background_color)
520 .css('color', text_color);
521 }
522 })
523 .on('checkActiveFilter', function() {
524 if(filter_item.hasClass('active')) {
525 filter_item
526 .css('border', active_border)
527 .css('background-color', active_background_color)
528 .css('color', active_text_color);
529 } else {
530 filter_item
531 .css('border', border)
532 .css('background-color', background_color)
533 .css('color', text_color);
534 }
535 }).trigger('checkActiveFilter');
536 });
537 }
538 };
539
540 WPUltimatePostGrid.updatePagination = function(container, page) {
541 var type = container.data('type');
542
543 if(type) {
544 var func = 'updatePagination' + type.charAt(0).toUpperCase() + type.slice(1);
545 if(typeof WPUltimatePostGrid[func] == 'function') {
546 WPUltimatePostGrid[func](container, page);
547 }
548 }
549 };
550
551 WPUltimatePostGrid.updatePaginationPages = function(container, page) {
552 container.find('.wpupg-page-' + page).click();
553 };
554
555 WPUltimatePostGrid.initPaginationPages = function(container) {
556 var grid_id = container.data('grid');
557
558 container.find('.wpupg-pagination-term').click(function() {
559 var pagination_item = jQuery(this);
560 pagination_item.siblings('.wpupg-pagination-term').removeClass('active').trigger('checkActiveFilter');
561
562 var page = parseInt(pagination_item.addClass('active').trigger('checkActiveFilter').data('page'));
563
564 WPUltimatePostGrid.scrollTo(WPUltimatePostGrid.grids[grid_id].container);
565
566 if(WPUltimatePostGrid.grids[grid_id].pages.indexOf(page) !== -1) {
567 WPUltimatePostGrid.grids[grid_id].page = page;
568 WPUltimatePostGrid.filterGrid(grid_id);
569 } else {
570 // Get new page via AJAX
571 var data = {
572 action: 'wpupg_get_page',
573 security: wpupg_public.nonce,
574 grid: grid_id,
575 page: page
576 };
577
578 pagination_item.addClass('wpupg-spinner');
579 pagination_item.css('color', WPUltimatePostGrid.grids[grid_id].pagination_style.active_background_color);
580
581 // Get recipes through AJAX
582 jQuery.post(wpupg_public.ajax_url, data, function(html) {
583 var posts = jQuery(html).toArray();
584
585 WPUltimatePostGrid.grids[grid_id].page = page;
586 WPUltimatePostGrid.insertPosts(grid_id, posts);
587
588 pagination_item.removeClass('wpupg-spinner');
589 pagination_item.css('color', WPUltimatePostGrid.grids[grid_id].pagination_style.active_text_color);
590
591 WPUltimatePostGrid.grids[grid_id].pages.push(page);
592 WPUltimatePostGrid.updatePosts(grid_id);
593 });
594 }
595 });
596
597 var pagination_items = container.find('.wpupg-pagination-term');
598
599 var margin = container.data('margin-vertical') + 'px ' + container.data('margin-horizontal') + 'px';
600 var padding = container.data('padding-vertical') + 'px ' + container.data('padding-horizontal') + 'px';
601 var border = container.data('border-width') + 'px solid ' + container.data('border-color');
602 var background_color = container.data('background-color');
603 var text_color = container.data('text-color');
604
605 var active_border = container.data('border-width') + 'px solid ' + container.data('active-border-color');
606 var active_background_color = container.data('active-background-color');
607 var active_text_color = container.data('active-text-color');
608
609 var hover_border = container.data('border-width') + 'px solid ' + container.data('hover-border-color');
610 var hover_background_color = container.data('hover-background-color');
611 var hover_text_color = container.data('hover-text-color');
612
613 WPUltimatePostGrid.grids[grid_id].pagination_style = {
614 margin: margin,
615 padding: padding,
616 border: border,
617 background_color: background_color,
618 text_color: text_color,
619 active_border: active_border,
620 active_background_color: active_background_color,
621 active_text_color: active_text_color,
622 hover_border: hover_border,
623 hover_background_color: hover_background_color,
624 hover_text_color: hover_text_color
625 }
626
627 pagination_items.each(function() {
628 var pagination_item = jQuery(this);
629
630 pagination_item
631 .css('margin', margin)
632 .css('padding', padding)
633 .css('border', border)
634 .css('background-color', background_color)
635 .css('color', text_color)
636 .hover(function() {
637 if(!pagination_item.hasClass('active')) {
638 pagination_item
639 .css('border', hover_border)
640 .css('background-color', hover_background_color)
641 .css('color', hover_text_color);
642 }
643 }, function() {
644 if(!pagination_item.hasClass('active')) {
645 pagination_item
646 .css('border', border)
647 .css('background-color', background_color)
648 .css('color', text_color);
649 }
650 })
651 .on('checkActiveFilter', function() {
652 if(pagination_item.hasClass('active')) {
653 pagination_item
654 .css('border', active_border)
655 .css('background-color', active_background_color)
656 .css('color', active_text_color);
657 } else {
658 pagination_item
659 .css('border', border)
660 .css('background-color', background_color)
661 .css('color', text_color);
662 }
663 }).trigger('checkActiveFilter');
664 });
665 };
666
667 WPUltimatePostGrid.insertPosts = function(grid_id, posts) {
668 var scrollV = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0,
669 scrollH = document.documentElement.scrollLeft || document.body.scrollLeft;
670
671 WPUltimatePostGrid.grids[grid_id].container.isotopewpupg('destroy');
672
673 WPUltimatePostGrid.grids[grid_id].container.append(posts);
674 WPUltimatePostGrid.grids[grid_id].container.isotopewpupg(WPUltimatePostGrid.grids[grid_id].args);
675
676 // Restore the scroll offset, should be flicker free
677 jQuery(window).scrollTop(scrollV);
678 document.documentElement.scrollLeft = document.body.scrollLeft = scrollH;
679
680 WPUltimatePostGrid.updatePosts(grid_id);
681 WPUltimatePostGrid.checkLinks(grid_id);
682 WPUltimatePostGrid.filterGrid(grid_id);
683
684 WPUltimatePostGrid.grids[grid_id].container.imagesLoaded( function() {
685 WPUltimatePostGrid.grids[grid_id].container.isotopewpupg('layout');
686 WPUltimatePostGrid.grids[grid_id].loading = false;
687 });
688 };
689
690 WPUltimatePostGrid.scrollTo = function(target) {
691 var scroll_to = target.offset().top - 50;
692 scroll_to = scroll_to < 0 ? 0 : scroll_to;
693
694 jQuery('html,body').animate({
695 scrollTop: scroll_to
696 }, 500);
697 };
698
699 jQuery(document).ready(function($) {
700 $('.wpupg-grid').each(function() {
701 WPUltimatePostGrid.initGrid($(this));
702 });
703
704 $('.wpupg-filter').each(function() {
705 var container = $(this);
706 var grid_id = container.data('grid');
707 var type = container.data('type');
708
709 WPUltimatePostGrid.grids[grid_id].filter_type = type;
710 WPUltimatePostGrid.grids[grid_id].filter_data = window['wpupg_filter_' + WPUltimatePostGrid.grids[grid_id].id];
711
712 var func = 'initFilter' + type.charAt(0).toUpperCase() + type.slice(1);
713 if(typeof WPUltimatePostGrid[func] == 'function') {
714 WPUltimatePostGrid[func](container);
715 }
716 });
717
718 $('.wpupg-pagination').each(function() {
719 var container = $(this);
720 var grid_id = container.data('grid');
721 var type = container.data('type');
722
723 WPUltimatePostGrid.grids[grid_id].pagination_type = type;
724
725 var func = 'initPagination' + type.charAt(0).toUpperCase() + type.slice(1);
726 if(typeof WPUltimatePostGrid[func] == 'function') {
727 WPUltimatePostGrid[func](container);
728 }
729 });
730 WPUltimatePostGrid.preFilterGrid();
731 WPUltimatePostGrid.restoreDeeplink();
732 });