PluginProbe
Lasso Lite – Affiliate Link Manager & Product Displays / 114
Lasso Lite – Affiliate Link Manager & Product Displays v114
158 157 155 156 154 153 152 151 150 149 148 trunk 0.9.9 104 105 106 107 108 109 110 111 112 113 114 115 All 57 releases
simple-urls / admin / assets / js / import-js.php

import-js.php in Lasso Lite – Affiliate Link Manager & Product Displays 114, at admin/assets/js/import-js.php

263 lines 8.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Declare view-js.php file
4 *
5 * @package view-js
6 */
7
8 ?>
9 <script>
10 let interval_timeout_init = 10;
11 let init_handle = setInterval(function () {
12 // Check lasso_helper load already.
13 if ( typeof lasso_lite_helper != "undefined") {
14 // Clearing the interval.
15 clearInterval(init_handle);
16 // Call the initializing function init_lasso_view
17 init_lasso_view();
18 }
19 }, interval_timeout_init);
20
21 /**
22 * Init init_lasso_view
23 */
24 function init_lasso_view () {
25 var monetize_id;
26 jQuery(document).ready(function() {
27 // At the begin, if search parameter available, set this value to search input
28 let search_parameter = lasso_lite_helper.get_url_parameter( 'search' );
29
30 if ( search_parameter ) {
31 jQuery('#search-links input').val( search_parameter );
32 }
33
34 // Form submit disabled
35 jQuery('form').submit(function() {
36 return false;
37 });
38
39 // *************************
40 // Pagination
41 // *************************
42 var container = jQuery('#report-content');
43 var pagination = jQuery('.pagination');
44 var search_term = "<?php echo $_GET['search'] ?? ''; // phpcs:ignore ?>";
45 var tab_filter = "<?php echo $_GET['filter'] ?? ''; // phpcs:ignore ?>";
46 var url_page_number = lasso_lite_helper.get_page_from_current_url();
47 var limit = 10;
48
49 function full_list_paginate(set_page) {
50 lasso_lite_helper.set_pagination_cache(lasso_lite_helper.get_page_name(), set_page);
51
52 var data = {
53 items: jQuery('#total-posts').val(),
54 displayedPages: 3,
55 itemsOnPage: limit,
56 cssStyle: 'light-theme',
57 prevText: '<i class="far fa-angle-double-left"></i> Previous',
58 nextText: 'Next <i class="far fa-angle-double-right"></i>',
59 onPageClick: function(pageNumber, event) {
60 var sortable = jQuery('.sortable-col.active');
61 var orderBy = '';
62 var orderType = '';
63 if(sortable) {
64 orderBy = sortable.attr('data-order-by');
65 orderType = sortable.attr('data-order-type');
66 }
67
68 lasso_lite_helper.set_pagination_cache(lasso_lite_helper.get_page_name(), pageNumber);
69 lasso_lite_helper.remove_page_number_out_of_url();
70
71 if(['asc', 'desc'].includes(orderType) && orderBy !== '') {
72 get_data_via_ajax(pageNumber, limit, orderBy, orderType);
73 } else {
74 get_data_via_ajax(pageNumber, limit);
75 }
76 }
77 };
78
79 if(set_page > 0) {
80 data.currentPage = set_page;
81 }
82 pagination.pagination(data);
83
84 return pagination;
85 }
86 full_list_paginate();
87
88 // *************************
89 // Search
90 // *************************
91 // Action when click search button
92 jQuery('#search-icon').unbind().click(function(){
93 get_data_via_ajax(1, limit);
94 });
95
96 // TYPE TO ADD TAGS TO SEARCH BAR
97 jQuery('#search-links input').off('focusout');
98 jQuery('#search-links input')
99 .on('focusout', function() {
100 if(this) {
101 var txt = this.value.replace(/[^a-zA-Z0-9\+\-\.\#]/g,' ');
102 search_term = txt.trim();
103 }
104 })
105 .on('keyup', function( e ) {
106 // WHEN ENTER IS PRESSED, SEARCH
107 if(e.which == 13) {
108 jQuery(this).focusout();
109 lasso_lite_helper.clear_notifications();
110 lasso_lite_helper.remove_page_number_out_of_url();
111 get_data_via_ajax(1, limit);
112 }
113 });
114
115 // *************************
116 // Main Report Generation
117 // *************************
118
119 // Get full url data via ajax
120 function get_data_via_ajax(page, limit, order_by = undefined, order_type = undefined, container_name = '') {
121 var link_type = '<?php echo $page; // phpcs:ignore ?>';
122 var t0 = performance.now();
123 var no_field_ids = [];
124
125 // Push search to url parameter
126 lasso_lite_helper.update_url_parameter('search', search_term);
127
128 // Apply filter import plugin
129 tab_filter = lasso_lite_helper.get_url_parameter( 'filter' );
130 container = jQuery('#report-content');
131
132 jQuery.ajax({
133 url: lassoLiteOptionsData.ajax_url,
134 type: 'post',
135 data: {
136 action: 'lasso_lite_import',
137 post_id: '<?php echo $_GET['post_id'] ?? ''; // phpcs:ignore ?>',
138 link_type: link_type,
139 pageNumber: page,
140 pageSize: limit,
141 order_by: order_by,
142 order_type: order_type,
143 search: search_term,
144 keyword: '<?php echo $_GET['keyword'] ?? ''; // phpcs:ignore ?>',
145 filter: tab_filter,
146 no_field_ids: no_field_ids
147 },
148 beforeSend: function() {
149 if(tab_filter != 'url-details') {
150 // Loading image
151 container.html(lasso_lite_helper.get_loading_image());
152 }
153
154 if( -1 === jQuery.inArray(tab_filter, [ "opportunities", "out-of-stock", "broken-links" ] ) ) {
155 tab_filter = '';
156 }
157 pagination.pagination('disable');
158 }
159 })
160 .done(function(response) {
161 var t1 = performance.now();
162 // console.log("Query response took " + (t1 - t0) + " milliseconds.");
163 if(response.success) {
164 var post = response.data.post;
165 var responseData = response.data;
166 var order_icon = (post.order_type == 'asc') ? ' <i class="fas fa-caret-up green"></i> ': ' <i class="fas fa-caret-down green"></i> ';
167 jQuery('table > thead').find('i').remove();
168 jQuery('table > thead').find('th[order-by="' + post.order_by + '"]')
169 .attr('order-type', post.order_type).append(order_icon);
170
171 var html = get_html(responseData.data, post);
172 container.html(html);
173
174 jQuery('.subsubsub').find('li.active').find('span').text(responseData.total.total);
175 jQuery('#total-posts').val(responseData.total.total);
176 if(jQuery("#js-report-result").length != 0) {
177 jQuery('#js-report-result').html(responseData.total.total.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") + " Found");
178 }
179
180 // import view popup
181 init_import_events();
182 render_filter_plugin_select(responseData.total.plugins);
183 } else {
184 container.html('Failed to load data.');
185 }
186 })
187 .fail(function(xhr) {
188 container.html('Failed to load data.');
189 })
190 .always(function(res) {
191 var page = 'data' in res ? res.data.page : 1;
192
193 // Don't change pagination if get custom fields of Lasso url
194 if(container_name != 'custom-fields') {
195 full_list_paginate(page);
196 }
197
198 pagination.pagination('enable');
199 });
200 }
201
202 // Initial get data
203 get_data_via_ajax(url_page_number, limit, undefined, undefined, '');
204
205 // Get html for full url data
206 function get_html(data, post) {
207 var html = '';
208 var default_image = '';
209 if(data.length > 0) {
210 for (let index = 0; index < data.length; index++) {
211 const element = data[index];
212 var collapse_id = index;
213 var icon = (element.count > 0) ? '<i class="fas fa-caret-down green"></i>' : '';
214 var image_url = (!element.thumbnail) ? default_image : element.thumbnail;
215 var image = `<img alt="${ element.post_title }" src="${ image_url }" loading="lazy" class="rounded border" width="50" height="50" />`;
216 var display_type = 'text-link';
217 var type = `<a class="lasso-list-btn">${ element.type }</a>`;
218 var status = `<a class="lasso-list-btn">${ element.status }</a>`;
219 var create_link = `<a href="${ element.link_slug }" target="_blank" class="pl-2"><i class="far fa-external-link-alt green"></i></a><a class="trash-lasso-modal pl-2" href="#"><i class="far fa-trash-alt red"></i></a>`;
220 var link_count = parseInt(element.count);
221 var toggle_checked = element.link_report_color == 'green' ? 'checked' : '';
222
223 html += `<?php include SIMPLE_URLS_DIR . '/admin/views/rows/import-url.php'; ?>`;
224 }
225 } else {
226 jQuery('#js-report-result').html("0 Found");
227
228 html = lasso_lite_helper.empty_html();
229 }
230
231 return html;
232 }
233
234 // *************************
235 // Import Page
236 // *************************
237 jQuery(document)
238 .on('change', '#filter-plugin', filter_import_plugin_change);
239
240 function filter_import_plugin_change() {
241 var selected_value = jQuery(this).val();
242
243 lasso_lite_helper.update_url_parameter('filter', selected_value); // Push filter to url parameter
244 lasso_lite_helper.clear_notifications();
245 lasso_lite_helper.remove_page_number_out_of_url();
246 get_data_via_ajax(1, limit);
247 }
248
249 function render_filter_plugin_select(plugins) {
250 var filter_plugin_select = jQuery('#filter-plugin');
251 var options = '<option value="">All Plugins</option>';
252
253 plugins.forEach(function(plugin_source) {
254 var selected = plugin_source == lasso_lite_helper.get_url_parameter( 'filter' ) ? 'selected' : '';
255 options += '<option '+ selected +' value="' + plugin_source + '">' + plugin_source + '</option>';
256 });
257
258 filter_plugin_select.html(options);
259 }
260 });
261 }
262 </script>
263