PageSourceSearch

https://helcom.fi/wp-content/themes/helcom-teema/js/cpt-widget.js?ver=20151215

js helcom.fi collected 2026-09-24 09:00:43 UTC 5,641 bytes, 152 lines download raw bytes

1(function($) {
2  var renderTableHtml = function(form, callback) {
3    if (!callback) callback = null;
4    var formData = form.serialize();
5    $.ajax({
6      type: "POST",
7      url: ajaxurl,
8      data: formData,
9      success: function(html) {
10        var tableContainerEl = form.find(".table-container").first();
11        tableContainerEl.html("");
12        var tableNode = tableContainerEl.append(html);
13        attachFormEventHandlers(form, tableNode);
14        attachSideMenuEventHandlers(form);
15        if (callback) callback(tableContainerEl);
16      }
17    });
18  };
19  var attachSideMenuEventHandlers = function(form) {
20    // only for publications
21    if (
22      $(form)
23        .find(".cpt-widget-interface")
24        .val() !== "2"
25    ) {
26      return;
27    }
28
29    $(".sidemenu-publications-tag-tree .tag-link").off("click");
30    $(".sidemenu-publications-tag-tree .tag-link").on("click", function(e) {
31      e.preventDefault();
32      $(".sidemenu-publications-cat-tree .cat-link").removeClass("selected");
33      $(".sidemenu-publications-tag-tree .tag-link").removeClass("selected");
34      $(this).addClass("selected");
35      var catEl = $(form).find(".cpt-widget-category");
36      catEl.val("");
37      var tagEl = $(form).find(".cpt-widget-tag");
38      tagEl.val($(this).data("termid"));
39      $(".table-container").html(
40        '<div class="cpt-loader" style="text-align:center"><img class="svg" src="/wp-content/themes/helcom-teema/dist/images/loader.svg" /></div>'
41      );
42      $("html, body").animate(
43        {
44          scrollTop: $("#inner-content").offset().top
45        },
46        500
47      );
48      renderTableHtml(form);
49    });
50
51    $(".sidemenu-publications-cat-tree .cat-link").off("click");
52    $(".sidemenu-publications-cat-tree .cat-link").on("click", function(e) {
53      e.preventDefault();
54      $(".sidemenu-publications-cat-tree .cat-link").removeClass("selected");
55      $(".sidemenu-publications-tag-tree .tag-link").removeClass("selected");
56      $(this).addClass("selected");
57      var tagEl = $(form).find(".cpt-widget-tag");
58      tagEl.val("");
59      var catEl = $(form).find(".cpt-widget-category");
60      catEl.val($(this).data("catid"));
61      $(".table-container").html(
62        '<div class="cpt-loader" style="text-align:center"><img class="svg" src="/wp-content/themes/helcom-teema/dist/images/loader.svg" /></div>'
63      );
64      $("html, body").animate(
65        {
66          scrollTop: $("#inner-content").offset().top
67        },
68        500
69      );
70      renderTableHtml(form);
71    });
72  };
73  var attachFormEventHandlers = function(form, tableNode) {
74    $(tableNode)
75      .find(".sortable")
76      .on("click", function(e) {
77        e.preventDefault();
78        var col = $(this);
79        var orderKeyInputEl = $(form).find(".cpt-widget-order-key");
80        var orderByInputEl = $(form).find(".cpt-widget-order-by");
81        var orderInputEl = $(form).find(".cpt-widget-order");
82        var pagedInputEl = $(form).find(".cpt-widget-paged");
83        if (
84          orderKeyInputEl.val() ===
85            (col.data("order-key") ? col.data("order-key") : "") &&
86          orderByInputEl.val() === col.data("order-by")
87        ) {
88          if (orderInputEl.val() === col.data("order")) {
89            return;
90          } else {
91            var order = orderInputEl.val() === "asc" ? "desc" : "asc";
92            orderInputEl.val(order);
93            renderTableHtml(form, function(tableNode) {
94              tableNode.find(".sortable").removeClass("asc");
95              tableNode.find(".sortable").removeClass("desc");
96              tableNode.find(".sortable").each(function() {
97                var col = $(this);
98                if (
99                  (col.data("order-key") ? col.data("order-key") : "") ===
100                    orderKeyInputEl.val() &&
101                  col.data("order-by") === orderByInputEl.val()
102                ) {
103                  col.addClass(order);
104                }
105              });
106            });
107            return;
108          }
109        }
110        if (pagedInputEl) pagedInputEl.val(1);
111        orderKeyInputEl.val(col.data("order-key"));
112        orderByInputEl.val(col.data("order-by"));
113        renderTableHtml(form);
114      });
115    $(tableNode)
116      .find("a.page-numbers")
117      .on("click", function(e) {
118        e.preventDefault();
119        var link = $(this);
120        var pagedInputEl = $(form).find(".cpt-widget-paged");
121        var currentPage = pagedInputEl.val() ? parseInt(pagedInputEl.val()) : 1;
122        if (link.hasClass("prev")) {
123          if (currentPage > 1) {
124            pagedInputEl.val(currentPage - 1);
125            renderTableHtml(form);
126          }
127        } else if (link.hasClass("next")) {
128          pagedInputEl.val(currentPage + 1);
129          renderTableHtml(form);
130        } else if (!link.hasClass("current")) {
131          pagedInputEl.val(parseInt(link.text()));
132          renderTableHtml(form);
133        }
134        return false;
135      });
136  };
137  $(".cpt-widget-form").each(function() {
138    var form = $(this);
139    form.on('submit', function(e){
140      e.preventDefault();
141
142      var tableContainerEl = form.find(".table-container").first();
143      tableContainerEl.html("");
144      var html = '<div class="cpt-loader" style="text-align:center"><img class="svg" src="/wp-content/themes/helcom-teema/dist/images/loader.svg" /></div>';
145      var tableNode = tableContainerEl.append(html);
146  
147      renderTableHtml(form);
148      return false;
149    });
150    renderTableHtml(form);
151  });
152})(jQuery);

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.