// 90min-admin.js var nm_main = function($) { var NM = window.NM || {}; var leagues = NM.leagues.all, savedLeagues = NM.leagues.saved, savedCategories = NM.savedCategories, $settingsForm = $('#nm-settings-form'), $languageField = $('.nmin-settings-language', $settingsForm), $leaguesSelectbox = $('.nmin-settings-leagues', $settingsForm), $categoriesContainer = $('.nmin-settings-categories', $settingsForm), $authButton = $('.nm-authentication', $settingsForm), $authMessage = $('.nm-authentication-results', $settingsForm), $authSpinner = $('.nm-spinner', $settingsForm), selectedLanguageCode = $languageField.val(); NM.init = function() { // just populate NM.populateLeagues(selectedLanguageCode); NM.populateCategories(selectedLanguageCode); // also do this on language change event $languageField.change(function(e) { var languageCode = $(this).val(); // re-render the leagues selectbox NM.populateLeagues( languageCode ); NM.populateCategories( languageCode ); }); // setup click events for leagues $leaguesSelectbox.on('click', '.nm-opt-group input', function() { var leagueID = $(this).data('league-id'), isChecked = $(this).is(':checked'), $found = $leaguesSelectbox.find('.nm-opt-option[data-nm-league-id=' + leagueID + '] input'); $found.prop( 'checked', isChecked ); }); // auth form NM.setupAuthForm(); }; NM.setupAuthForm = function() { $authButton.click( function(e) { e.preventDefault(); // do not submit form var payload = { partner_id: $('.nmin-settings-partner-id', $settingsForm).val(), api_key: $('.nmin-settings-api-key', $settingsForm).val(), nonce: $('.nmin-settings-ajax-auth-nonce', $settingsForm).val(), action: '90min-auth' }; // start spinner var spinnerClass = 'nm-show'; $authSpinner.toggleClass(spinnerClass); // empty text $authMessage.empty(); console.log('before auth', payload); $.post( ajaxurl, payload, function(data) { var theHTML; $authSpinner.toggleClass(spinnerClass); if (data.success) { // theHTML = ' ' + NM.strings.auth.success; } else { theHTML = ' ' + NM.strings.auth.failure; } $authMessage.html( $('', { class: data.success ? 'nm-success nm-showanyway' : 'nm-failure nm-showanyway' }).append(theHTML) ); }); }); }; NM.populateCategories = function(languageCode) { if ( _.isEmpty(leagues) || !languageCode || !_.has(leagues, languageCode) ) return; // if this language has no categories, end if ( !_.has(leagues[languageCode], 'categories') ) return; // empty first $categoriesContainer.empty(); $.each( leagues[languageCode]['categories'], function(k, v) { var $theLabel = $('