| @@ -1,21 +1,27 @@ | ||
| 1 | 1 | jQuery(document).ready(function ($) { |
| 2 | 2 | |
| 3 | 3 | $('button[name="tptn_cache_clear"]').on('click', function () { |
| 4 | - if (confirm(top_ten_admin_data.strings.confirm_message)) { | |
| 5 | - var $button = $(this); | |
| 4 | + var $button = $(this); | |
| 5 | + var networkWide = '1' === $button.attr('data-network-wide'); | |
| 6 | + var confirmMessage = networkWide && top_ten_admin_data.strings.network_confirm_message | |
| 7 | + ? top_ten_admin_data.strings.network_confirm_message | |
| 8 | + : top_ten_admin_data.strings.confirm_message; | |
| 9 | + | |
| 10 | + if (confirm(confirmMessage)) { | |
| 6 | 11 | var originalText = $button.text(); |
| 7 | 12 | var clearingText = top_ten_admin_data.strings.clearing_text ? top_ten_admin_data.strings.clearing_text : 'Clearing...'; |
| 8 | 13 | $button.prop('disabled', true).text(clearingText).append(' <span class="spinner is-active"></span>'); |
| 9 | - clearCache($button, originalText); | |
| 14 | + clearCache($button, originalText, networkWide); | |
| 10 | 15 | } |
| 11 | 16 | }); |
| 12 | 17 | |
| 13 | 18 | // Function to clear the cache. |
| 14 | - function clearCache($button, originalText) { | |
| 19 | + function clearCache($button, originalText, networkWide) { | |
| 15 | 20 | $.post(ajaxurl, { |
| 16 | 21 | action: 'tptn_clear_cache', |
| 17 | - security: top_ten_admin_data.security | |
| 22 | + security: top_ten_admin_data.security, | |
| 23 | + network_wide: networkWide ? '1' : '0' | |
| 18 | 24 | }, function (response) { |
| 19 | 25 | if (response.success) { |
| 20 | 26 | alert(response.data.message); |
| 21 | 27 | } else { |
| @@ -235,8 +241,45 @@ | ||
| 235 | 241 | }); |
| 236 | 242 | |
| 237 | 243 | $(function () { |
| 238 | 244 | var $tabsContainer = $("#dashboard-historical-visits"); |
| 245 | + if (!$tabsContainer.length) { | |
| 246 | + return; | |
| 247 | + } | |
| 248 | + | |
| 249 | + function loadDashboardTab($panel) { | |
| 250 | + if (!$panel.length || $panel.data('tptn-loaded') || $panel.data('tptn-loading')) { | |
| 251 | + return; | |
| 252 | + } | |
| 253 | + var $content = $panel.find('.tptn-dashboard-tab-content'); | |
| 254 | + if (!$content.length) { | |
| 255 | + return; | |
| 256 | + } | |
| 257 | + | |
| 258 | + $panel.data('tptn-loading', true).attr('aria-busy', 'true'); | |
| 259 | + $.post( | |
| 260 | + tptn_chart_data.tabs_url || ajaxurl, | |
| 261 | + { | |
| 262 | + action: 'tptn_dashboard_tab', | |
| 263 | + security: tptn_chart_data.security, | |
| 264 | + tab: $panel.data('tptn-tab'), | |
| 265 | + network: parseInt($tabsContainer.data('tptn-network'), 10) || 0 | |
| 266 | + }, | |
| 267 | + function (response) { | |
| 268 | + if (response && response.success && response.data && typeof response.data.html !== 'undefined') { | |
| 269 | + $content.html(response.data.html).data('tptn-loaded', true); | |
| 270 | + } else { | |
| 271 | + $content.html('<p>' + tptn_chart_data.tab_error + '</p>'); | |
| 272 | + } | |
| 273 | + }, | |
| 274 | + 'json' | |
| 275 | + ).fail(function () { | |
| 276 | + $content.html('<p>' + tptn_chart_data.tab_error + '</p>'); | |
| 277 | + }).always(function () { | |
| 278 | + $panel.data('tptn-loading', false).removeAttr('aria-busy'); | |
| 279 | + }); | |
| 280 | + } | |
| 281 | + | |
| 239 | 282 | $tabsContainer.tabs({ |
| 240 | 283 | create: function (event, ui) { |
| 241 | 284 | $(ui.tab.find("a")).addClass("nav-tab-active"); |
| 242 | 285 | }, |
| @@ -242,8 +285,9 @@ | ||
| 242 | 285 | }, |
| 243 | 286 | activate: function (event, ui) { |
| 244 | 287 | $(ui.oldTab.find("a")).removeClass("nav-tab-active"); |
| 245 | 288 | $(ui.newTab.find("a")).addClass("nav-tab-active"); |
| 289 | + loadDashboardTab(ui.newPanel); | |
| 246 | 290 | } |
| 247 | 291 | }); |
| 248 | 292 | |
| 249 | 293 | // Wait for the tabs to be fully initialized |