// 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 = $('