PageSourceSearch

https://cikisi.com/wp-content/themes/cikisi/js/cks-gt-tabs.js?ver=1.0

js cikisi.com collected 2026-10-05 07:10:11 UTC 2,813 bytes, 92 lines download raw bytes

1jQuery(function($){
2  var $wrap   = $('#gt-posts');
3  var $more   = $('#gt-more');
4  var $spin   = $('#gt-loading');
5
6  if (!$wrap.length) return;
7
8  var state = {
9    cat:  'all',
10    page: 1,
11    ppp:  (window.cikisiGT && cikisiGT.ppp) ? cikisiGT.ppp : 9,
12    type: (window.cikisiGT && cikisiGT.post_type) ? cikisiGT.post_type : 'guide-and-tools'
13  };
14
15  function showSpinner(on){ if ($spin.length) on ? $spin.show() : $spin.hide(); }
16  function renderMore(hasMore){
17    if (!hasMore) return $more.empty();
18    var label = (window.cikisiGT && cikisiGT.i18n && cikisiGT.i18n.load_more) ? cikisiGT.i18n.load_more : 'Load more';
19    $more.html(
20      '<button class="btn" id="gt-load-more" type="button">' + label + '</button>'
21    );
22  }
23
24  $more.on('click', '#gt-load-more', function(e){
25    e.preventDefault();
26    fetchPosts(state.cat, state.page + 1, true);
27  });
28
29  function setActiveTab(catSlug){
30    $('.tab__links-item').removeClass('_active');
31    var $m = $('.tab__links-item').filter(function(){ return $(this).data('cat') === catSlug; });
32    ($m.length ? $m : $('.tab__links-item[data-cat="all"]')).addClass('_active');
33  }
34
35  function fetchPosts(cat, page, append){
36    showSpinner(true);
37    if (!append) { $wrap.empty(); renderMore(false); }
38
39    $.ajax({
40      url:  cikisiGT.ajaxurl,
41      type: 'POST',
42      dataType: 'json',
43      data: {
44        action:   'cikisi_gt_filter',
45        nonce:    cikisiGT.nonce,
46        post_type: state.type,
47        category: cat,
48        page:     page,
49        ppp:      state.ppp
50      }
51    })
52    .done(function(res){
53      if (!res || !res.success || !res.data) {
54        if (!append) $wrap.html('<p>' + (cikisiGT.i18n.no_posts || 'No posts found.') + '</p>');
55        renderMore(false);
56        return;
57      }
58
59      if (append) {
60        var $incoming = $(res.data.html);
61        var $inInner  = $incoming.find('.blog__container-inner').length ? $incoming.find('.blog__container-inner') : $incoming;
62        var $currInner = $wrap.find('.blog__container-inner').length ? $wrap.find('.blog__container-inner') : $wrap;
63        $currInner.append($inInner.html());
64      } else {
65        $wrap.html(res.data.html);
66      }
67
68      state.cat  = cat;
69      state.page = page;
70      renderMore(!!res.data.has_more);
71    })
72    .fail(function(){
73      if (!append) $wrap.html('<p>' + (cikisiGT.i18n.error || 'There was an error loading posts.') + '</p>');
74      renderMore(false);
75    })
76    .always(function(){ showSpinner(false); });
77  }
78
79  // Tabs click
80  $('.tab__links').on('click', '.tab__links-item', function(e){
81    e.preventDefault();
82    var cat = $(this).data('cat') || 'all';
83    setActiveTab(cat);
84    fetchPosts(cat, 1, false);
85  });
86
87  // Initial load
88  (function init(){
89    setActiveTab('all');
90    fetchPosts('all', 1, false);
91  })();
92});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.