;(function($){ $( document ).on( 'change', '#report_type,#report_period,#input_based', function(){ var url = quads_localize_data.rest_url + 'quads-adsense/get_report_adsense'; var report_type = $('#report_type').val(); var report_period = $('#report_period').val(); var input_based = (typeof $('#input_based').val() !== "undefined")?$('#input_based').val():''; var pub_id = $('#pub_id').val(); var data ={account_id:pub_id,report_type:report_type,report_period:report_period,input_based:input_based}; if($.trim(report_type) !='' & $.trim(report_period) !='' ) { $('#quads_reports_canvas').html('
'); $.ajax({ url: url, type: 'post', data: JSON.stringify(data), headers: { 'Accept': 'application/json', 'Content-Type': 'application/json', 'X-WP-Nonce': quads_localize_data.nonce, }, success: function (response, status, XHR) { quads_display_report(response); }, error: function (request, status, error) { }, }); }else{ $('#quads_reports_canvas').html('

Please select Report type and Duration

'); } } ); $( document ).on( 'click', '#quads-connect-adsense', function(){ if ( $( this ).hasClass( 'disabled_adsense_link' ) ) return; if ( 'undefined' != typeof window.quadsMapiConnect ) { window.quadsMapiConnect(); } } ); // Unique instance of "quadsMapiConnectClass" var INSTANCE = null; var quadsMapiConnectClass = function( content, options ) { this.options = {}; this.AUTH_WINDOW = null; this.modal = $( '#gadsense-modal' ); this.frame = null; if ( 'undefined' == typeof content || ! content ) { content = 'confirm-code'; } this.setOptions( options ); this.init(); this.show( content ); return this; }; quadsMapiConnectClass.prototype = { constructor: quadsMapiConnectClass, // Set options, for re-use of existing instance for a different purpose. setOptions: function( options ) { var defaultOptions = { autoads: false, onSuccess: false, onError: false, }; if ( 'undefined' == typeof options ) { options = defaultOptions; } this.options = $.extend( {}, defaultOptions, options); }, // Tasks to do after a successful connection. exit: function(){ if ( this.options.onSuccess ) { if ( 'function' == typeof this.options.onSuccess ) { this.options.onSuccess( this ); } } else { window.location.reload(); } }, // Initialization - mostly binding events. init: function(){ var that = this; // Close the modal and hide errors. $( document ).on( 'click', '#gadsense-modal .dashicons-dismiss', function(){ $( '#mapi-code' ).val( '' ); $( '#gadsense-modal, #gadsense-modal-error' ).css( 'display', 'none' ); } ); // Confirm code for account connection. $( document ).on( 'click', '#quads-mapi-confirm-code', function(){ var code = $( '#mapi-code' ).val(); if ( '' == code ) return; $( '.gadsense-overlay' ).css( 'display', 'block' ); $( '#gadsense-modal-error' ).hide(); var data = { action: 'quads_gadsense_mapi_confirm_code', code: code, nonce: quads.nonce, }; $.ajax({ url: ajaxurl, type: 'post', data: data, success:function(response, status, XHR){ if ( null !== that.AUTH_WINDOW ) { that.AUTH_WINDOW.close(); } $( '#mapi-code' ).val( '' ); if ( response.status && true === response.status && response['token_data'] ) { that.getAccountDetails( response['token_data'] ); } else { /** * Connection error handling. */ $( '.gadsense-overlay' ).css( 'display', 'none' ); $( '#mapi-code' ).val( '' ); $( '#mapi-autoads' ).prop( 'checked', false ); $( '#gadsense-modal-content-inner .dashicons-dismiss' ).trigger( 'click' ); if ($.parseJSON(response.response_body).error === 'invalid_grant') { $('#gadsense-modal-error').show(); $('#gadsense-reopen-connect').one('click', function (event) { event.preventDefault(); $('#gadsense-modal-error').hide(); that.show(); }); } } }, error:function(request, status, error){ $( '#gadsense-loading-overlay' ).css( 'display', 'none' ); }, }); } ); // Account selection $( document ).on( 'click', '.gadsense-modal-content-inner[data-content="account-selector"] button', function( ev ) { var adsenseID = $( '#mapi-select-account' ).val(); var tokenData = false; var tokenString = $( '.gadsense-modal-content-inner[data-content="account-selector"] input.token-data' ).val(); var details = false; var detailsString = $( '.gadsense-modal-content-inner[data-content="account-selector"] input.accounts-details' ).val(); try { tokenData = JSON.parse( tokenString ); } catch ( Ex ) { console.error( 'Bad token data : ' + tokenString ); } try { details = JSON.parse( detailsString ); } catch ( Ex ) { console.error( 'Bad account details : ' + detailsString ); } if ( details && JSON ) { $( '.gadsense-overlay' ).css( 'display', 'block' ); var data = { action: 'quads_gadsense_mapi_select_account', nonce: quads.nonce, account : details[ adsenseID ], 'token_data': tokenData, }; if ( $( '#mapi-autoads' ).prop( 'checked' ) ) { data['autoads'] = 1; } $.ajax({ url: ajaxurl, type: 'post', data: data, success:function(response, status, XHR){ if ( response.status && true === response.status ) { INSTANCE.exit(); } else { console.log( response ); } }, error:function(request, status, error){ $( '#gadsense-loading-overlay' ).css( 'display', 'none' ); }, }); } } ); }, show: function( content ) { if ( 'undefined' == typeof content ) { content = 'confirm-code'; } this.switchContent( content ); if ( 'confirm-code' == content ) { // Open Google authentication in a child window. this.modal.css( 'display', 'block' ); var oW = $( window ).width(), oH = $( window ).height(), w = Math.min( oW, oH ) * 0.8, h = Math.min( oW, oH ) * 0.8, l = (oW - w) / 2, t = (oH - h) / 2, args = 'resize=1,titlebar=1,width=' + w + ',height=' + h + ',left=' + l + ',top=' + t; this.AUTH_WINDOW = window.open( quads_adsense.auth_url, 'quadsOAuth2', args ); } }, // Get account info based on a newly obtained token. getAccountDetails: function( tokenData ){ var data = { action: 'quads_gadsense_mapi_get_details', nonce: quads.nonce, }; data['token_data'] = tokenData; if ( $( '#mapi-autoads' ).prop( 'checked' ) ) { data['autoads'] = 1; } $.ajax({ url: ajaxurl, type: 'post', data: data, success:function(response, status, XHR){ if ( response.status && true === response.status ) { if ( response['adsense_id'] ) { INSTANCE.exit(); } else if ( response['token_data'] ) { INSTANCE.switchContent( 'account-selector' ); INSTANCE.frame.find( 'select' ).html( response.html ); INSTANCE.frame.find( 'input.token-data' ).val( JSON.stringify( response['token_data'] ) ); INSTANCE.frame.find( 'input.accounts-details' ).val( JSON.stringify( response['details'] ) ); } else { INSTANCE.switchContent( 'error' ); INSTANCE.frame.find( '.error-message' ).text( JSON.stringify( response ) ); } } else { if ( response['raw']['errors'][0]['message'] ) { INSTANCE.switchContent( 'error' ); INSTANCE.frame.find( '.error-message' ).text( response['raw']['errors'][0]['message'] ); if ( 'undefined' != typeof quads.connectErrorMsg[response['raw']['errors'][0]['reason']] ) { INSTANCE.frame.find( '.error-description' ).html( quads.connectErrorMsg[response['raw']['errors'][0]['reason']] ); } else { INSTANCE.frame.find( '.error-message' ).append( ' (' + response['raw']['errors'][0]['reason'] + ')' ); } } else if ( response['raw']['message'] ) { INSTANCE.frame.find( '.error-message' ).text( response['raw']['errors'][0]['message'] ); } } }, error:function(request, status, error){ $( '#gadsense-loading-overlay' ).css( 'display', 'none' ); }, }); }, // Switch between frames in the modal container. switchContent: function( content ) { if ( this.modal.find( '.gadsense-modal-content-inner[data-content="' + content + '"]' ).length ) { this.modal.find( '.gadsense-modal-content-inner' ).css( 'display', 'none' ); this.frame = this.modal.find( '.gadsense-modal-content-inner[data-content="' + content + '"]' ); this.frame.css( 'display', 'block' ); $( '.gadsense-overlay' ).css( 'display', 'none' ); } }, // Show the modal frame with a given content. // Hide the modal frame hide: function(){ this.switchContent( 'confirm-code' ); this.modal.css( 'display', 'none' ); }, }; window.quadsMapiConnectClass = quadsMapiConnectClass; // Shortcut function. window.quadsMapiConnect = function( content, options ) { if ( 'undefined' == typeof content || ! content ) { content = 'confirm-code'; } if ( 'undefined' == typeof options ) { options = {}; } if ( null === INSTANCE ) { INSTANCE = new quadsMapiConnectClass( content, options ); } else { INSTANCE.show( content, options ); } } $(function(){ // Move the the pop-up outside of any form. $( '#wpwrap' ).append( $( '#gadsense-modal' ) ); }); })(window.jQuery); function quads_display_report(response){ var report_type = document.getElementById('report_type').value; if(report_type == 'top_device_type') { var data_length = response.length; var datasets =[]; var dates_array = []; var desktop_total =0; var tablet_total =0; var mobile_total =0; for (index = 0; index < data_length; ++index) { if(!dates_array.includes(response[index][0]) ) { dates_array.push(response[index][0]); } if (response[index][1] == 'Desktop') { desktop_total += parseFloat(response[index][2]); } else if (response[index][1] == 'Tablet') { tablet_total += parseFloat(response[index][2]); } else if (response[index][1] == 'HighEndMobile') { mobile_total += parseFloat(response[index][2]); } } datasets= [{ data: [ desktop_total.toFixed(2),tablet_total.toFixed(2),mobile_total.toFixed(2) ], backgroundColor: [ 'red', 'green', 'blue', ], label: 'Top Earning Device type' }]; var config = { type: 'pie', data: { datasets: datasets, labels: [ 'Desktop', 'Tablet', 'Mobile', ] }, options: { legend: { position: 'bottom', }, hover: { mode: 'nearest', intersect: true }, responsive: true } }; }else { var data_length = response.length; var dates_array = []; var data = []; for (index = 0; index < data_length; ++index) { var date = new Date((response[index][0])); var month = date.toLocaleString('default', { month: 'short' }); var New_date_formate = date.getDate()+' '+month+' '+date.getUTCFullYear(); if (!dates_array.includes(New_date_formate)) { dates_array.push(New_date_formate); } data.push(response[index][1]); } datasets = [{ label: 'Earnings', backgroundColor: 'red', borderColor: 'red', data: data, fill: false, }]; var config = { type: 'line', data: { labels: dates_array, datasets: datasets }, options: { legend: { position: 'bottom', }, hover: { mode: 'nearest', intersect: true }, responsive: true, tooltips: { mode: 'index', intersect: false, }, plugins: { title: { display: true, text: 'Chart.js Line Chart' }, }, scales: { xAxes: { display: true, scaleLabel: { display: true, labelString: 'Month' } }, yAxes: { display: true, scaleLabel: { display: true, labelString: 'Value' } } } } }; } quadsDrawChart(config); } function quadsDrawChart(config){ if(document.getElementById("quads_canvas")) document.getElementById("quads_canvas").outerHTML = ""; var new_canvas = "" + " "; document.getElementById('quads_reports_canvas').innerHTML = new_canvas; if(window.myPieChart ) { window.myPieChart.update(); } // Get the context of the canvas element we want to select var ctx = document.getElementById('quads_canvas'); // ctx.clearRect(0, 0, canvas.width, canvas.height); window.myPieChart = new Chart(ctx, config); }import countryTranslations from "./countries.js"; import interfaceTranslations from "./interface.js"; export { countryTranslations, interfaceTranslations }; const allTranslations = { ...countryTranslations, ...interfaceTranslations }; export default allTranslations; .redux-container-datetime .redux-datetime-container .input_wrapper, .redux-container-datetime .redux-datetime-container .single_wrapper { display: block; position: relative; margin: 0 4px 0 5px; padding: 0; width: 25%; max-width: 25%; min-width: 70px; float: left; clear: none; height: 57px; -webkit-box-sizing: border-box; box-sizing: border-box; vertical-align: baseline; } .redux-container-datetime .redux-datetime-container .single_wrapper { width: 50% !important; max-width: 50% !important; } .redux-container-datetime .redux-datetime-container label { display: block; position: relative; font-size: 12px !important; text-align: left; color: #999999; margin: 4px 0 2px 0 !important; cursor: default; } .redux-container-datetime .redux-datetime-container .redux-date-picker { width: 100%; } .redux-container-datetime .redux-datetime-container .redux-time-picker { width: 100%; } .ui-tpicker-grid-label { background: none; border: none; margin: 0; padding: 0; } .ui-timepicker-div .ui-widget-header { margin-bottom: 8px; } .ui-timepicker-div dl { text-align: left; } .ui-timepicker-div dl dt { float: left; clear: left; padding: 0 0 0 5px; } .ui-timepicker-div dl dd { margin: 0 10px 10px 40%; } .ui-timepicker-div td { font-size: 90%; } .ui-timepicker-div .ui_tpicker_unit_hide { display: none; } .ui-timepicker-div .ui_tpicker_time .ui_tpicker_time_input { background: none; color: inherit; border: none; outline: none; border-bottom: solid 1px #555; width: 95%; } .ui-timepicker-div .ui_tpicker_time .ui_tpicker_time_input:focus { border-bottom-color: #aaa; } .ui-timepicker-div.ui-timepicker-oneLine { padding-right: 2px; } .ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_time, .ui-timepicker-div.ui-timepicker-oneLine dt { display: none; } .ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_time_label { display: block; padding-top: 2px; } .ui-timepicker-div.ui-timepicker-oneLine dl { text-align: right; } .ui-timepicker-div.ui-timepicker-oneLine dl dd, .ui-timepicker-div.ui-timepicker-oneLine dl dd > div { display: inline-block; margin: 0; } .ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_millisec:before, .ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_microsec:before { content: "."; display: inline-block; } .ui-timepicker-div.ui-timepicker-oneLine dd.ui_tpicker_minute:before, .ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_second:before { content: ":"; display: inline-block; } .ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_unit_hide, .ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_unit_hide:before { display: none; } .ui-timepicker-div .ui-widget-header { margin-bottom: 8px; } .ui-timepicker-div .ui-slider { position: relative; text-align: left; } .ui-timepicker-div .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; -ms-touch-action: none; touch-action: none; } .ui-timepicker-div .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: 0.7em; display: block; border: 0; background-position: 0 0; } .ui-timepicker-div .ui-slider.ui-state-disabled .ui-slider-handle, .ui-timepicker-div .ui-slider.ui-state-disabled .ui-slider-range { -webkit-filter: inherit; filter: inherit; } .ui-timepicker-div .ui-slider-horizontal { height: 0.8em; } .ui-timepicker-div .ui-slider-horizontal .ui-slider-handle { top: -0.3em; margin-left: -0.6em; } .ui-timepicker-div .ui-slider-horizontal .ui-slider-handle { top: -0.3em; margin-left: -0.6em; } .ui-timepicker-div .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } .ui-timepicker-div .ui-slider-horizontal .ui-slider-range-min { left: 0; } .ui-timepicker-div .ui-slider-horizontal .ui-slider-range-max { right: 0; } .ui-timepicker-div .ui-slider-vertical { width: 0.8em; height: 100px; } .ui-timepicker-div .ui-slider-vertical .ui-slider-handle { left: -0.3em; margin-left: 0; margin-bottom: -0.6em; } .ui-timepicker-div .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } .ui-timepicker-div .ui-slider-vertical .ui-slider-range-min { bottom: 0; } .ui-timepicker-div .ui-slider-vertical .ui-slider-range-max { top: 0; } .ui-timepicker-rtl { direction: rtl; } .ui-timepicker-rtl dl { text-align: right; padding: 0 5px 0 0; } .ui-timepicker-rtl dl dt { float: right; clear: right; } .ui-timepicker-rtl dl dd { margin: 0 40% 10px 10px; } /*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlZHV4LWRhdGV0aW1lLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRVE7QUFBQTtDQUVJO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTs7QUFHSjtDQUNJO0NBQ0E7O0FBR0o7Q0FDRTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTs7QUFHRjtDQUNJOztBQUdKO0NBQ0k7OztBQU1aO0NBQ0k7Q0FDQTtDQUNBO0NBQ0E7OztBQUlBO0NBQ0k7O0FBR0o7Q0FDSTs7QUFFQTtDQUNJO0NBQ0E7Q0FDQTs7QUFHSjtDQUNJOztBQUlSO0NBQ0k7O0FBR0o7Q0FDSTs7QUFHSjtDQUNHO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTs7QUFFQTtDQUNJOztBQUlQO0NBQ0k7O0FBRUE7QUFBQTtDQUVJOztBQUdKO0NBQ0k7Q0FBZ0I7O0FBR3BCO0NBQ0k7O0FBRUE7QUFBQTtDQUVJO0NBQ0E7O0FBR0o7QUFBQTtDQUVJO0NBQ0E7O0FBS1I7QUFBQTtDQUVJO0NBQ0E7O0FBR0o7QUFBQTtDQUVJOztBQUlSO0NBQ0k7O0FBR0E7Q0FDSTtDQUNBOztBQUVBO0NBQ0k7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7O0FBR0o7Q0FDSTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7O0FBR0o7Q0FFSTs7QUFJUjtDQUNJOztBQUVBO0NBQ0k7Q0FDQTs7QUFHSjtDQUNJO0NBQ0E7O0FBR0o7Q0FDSTtDQUNBOztBQUdKO0NBQ0k7O0FBR0o7Q0FDSTs7QUFJWjtDQUNJO0NBQ0E7O0FBRUE7Q0FDSTtDQUNBO0NBQ0E7O0FBR0o7Q0FDSTtDQUNBOztBQUdKO0NBQ0k7O0FBR0o7Q0FDSTs7O0FBS1o7Q0FDSTs7QUFFQTtDQUNJO0NBQ0E7O0FBRUE7Q0FDSTtDQUNBOztBQUdKO0NBQ0kiLCJmaWxlIjoicmVkdXgtZGF0ZXRpbWUuY3NzIn0= */ /*# sourceMappingURL=redux-datetime.css.map */ Deals – CompareInsight

Find a store, Browse Coupons and Get CASHBACK

[advanced_search]

feacherd store of the month

[coupon_stats]
[coupes_categories_slider]

Deal Of the Day

[dynamic_products]

Today's Top Cupons & Offers

[coupons_dashboard]

Best Cashbak Offers & Cupons

Added to wishlistRemoved from wishlist 0
Add to compare
Laptop Cooling Pad with 12 Quiet Fans, Slim Portable for 12-17.3 Inch Laptop Cooler Stand, RGB Lighting, with 5 Height Adjustable, Gaming Cooling Fan Pad, USB/Type-C & Phone Holder (LCD)
Added to wishlistRemoved from wishlist 0
Add to compare
$22.99
Added to wishlistRemoved from wishlist 0
Add to compare
Laptop Bed Tray Table, Laptop Stand, Portable Lap Desks with Foldable Legs, Reading Desk for Sofa Couch Floor – Medium
Added to wishlistRemoved from wishlist 0
Add to compare
$13.56
Added to wishlistRemoved from wishlist 0
Add to compare
Adjustable Laptop Stand, Tall, Strong, Airflow, Suitable for 13.3-17.3 Inch Laptops, Lift Screen to Eye Level for Video Conferences
Added to wishlistRemoved from wishlist 0
Add to compare
$29.91
Added to wishlistRemoved from wishlist 0
Add to compare
UGREEN Vertical Laptop Stand Holder Desk Dual Aluminum Dock Compatible with MacBook Pro Air Laptop Stand Desktop Adjustable, Lenovo Ideapad, Surface Book, HP Notebook, Dell Chromebook Up to 17.3 Inch
Added to wishlistRemoved from wishlist 0
Add to compare
$26.99
Added to wishlistRemoved from wishlist 0
Add to compare
Amazon Basics Sturdy and Portable Ergonomic Laptop Stand for Desk, Adjustable Riser, Fits all Laptops and Notebooks up to 17.3 Inch, Silver, 10 x 8.7 x 6 in
Added to wishlistRemoved from wishlist 0
Add to compare
$29.82
Added to wishlistRemoved from wishlist 0
Add to compare
Perixx PERIBOARD-512B Wired Ergonomic USB Keyboard – Bulky 19.1×9.3×2 inches Split Design – Black – NDAA Compliant – US English
Added to wishlistRemoved from wishlist 0
Add to compare
$48.71

Today's Top Cupons & Offers

Price Comparision

Get cashback points for every purchase and you can redeem it in buying anything.

AI Insights

Get smart, data-driven insights to make better shopping decisions.

Cashback

Earn instant cashback rewards on your everyday purchases.
CompareInsight
Logo
Compare items
  • Total (0)
Compare
0