//VARIABLES var mieAdSauceAdSetupObject = { bearerToken: '', websiteFK: null, websiteLocationFK: null, user: {}, website: {}, websiteLocation: {}, websites: [], websiteLocations: [] }; var mieAdSauceSettings = { websiteNameComboId: null, websiteLocationNameTypeComboId: null, websiteLocationIdHiddenId: null, adSizeTypeNameHiddenId: null, heightHiddenId: null, widthHiddenId: null, oldValueLoaded: false }; //EVENTS function websiteLocationChanged () { var websiteName = jQuery('#' + mieAdSauceSettings.websiteNameComboId).val(); var websiteLocationNameType = jQuery('#' + mieAdSauceSettings.websiteLocationNameTypeComboId).val(); for(var i = 0; i < mieAdSauceAdSetupObject.websites.length; i++) { if (websiteName == mieAdSauceAdSetupObject.websites[i].Name) { mieAdSauceAdSetupObject.website = mieAdSauceAdSetupObject.websites[i]; break; } } for(var i = 0; i < mieAdSauceAdSetupObject.websiteLocations.length; i++) { if (websiteLocationNameType == mieAdSauceAdSetupObject.websiteLocations[i].Name + ', ' + mieAdSauceAdSetupObject.websiteLocations[i].AdSizeTypeName) { mieAdSauceAdSetupObject.websiteLocation = mieAdSauceAdSetupObject.websiteLocations[i]; break; } } jQuery('#' + mieAdSauceSettings.websiteLocationIdHiddenId).val(mieAdSauceAdSetupObject.websiteLocation.Id); jQuery('#' + mieAdSauceSettings.adSizeTypeNameHiddenId).val(mieAdSauceAdSetupObject.websiteLocation.AdSizeType.Name); jQuery('#' + mieAdSauceSettings.heightHiddenId).val(mieAdSauceAdSetupObject.websiteLocation.AdSizeType.Height); jQuery('#' + mieAdSauceSettings.widthHiddenId).val(mieAdSauceAdSetupObject.websiteLocation.AdSizeType.Width); } function setData (username, password, websiteName, websiteLocationNameType, websiteLocationId, adSizeTypeName, height, width) { storeFormValues (websiteName, websiteLocationNameType, websiteLocationId, adSizeTypeName, height, width); getAdSauceBearerToken (username, password); } //REUSED FUNCTIONS function blockUI (message) { var top = (jQuery(window).height() / 2) - 15; jQuery('body').append('

' + message + '

'); } function unblockUI (){ jQuery('#blockUI').remove(); } function setWebsitesComboBoxData() { populateDropDown(jQuery('#' + mieAdSauceSettings.websiteNameComboId), mieAdSauceAdSetupObject.websites, 'Name', 'Name') } function setWebsiteLocationsComboBoxData(){ populateDropDown(jQuery('#' + mieAdSauceSettings.websiteLocationNameTypeComboId), mieAdSauceAdSetupObject.websiteLocations, ['Name', 'AdSizeTypeName'], ['Name', 'AdSizeTypeName']) } function updateWebsiteLocations() { var $webCombo = jQuery('#' + mieAdSauceSettings.websiteNameComboId); mieAdSauceAdSetupObject.websiteFK = getWebsitePK($webCombo.val()); getWebsiteLocations(); } function storeFormValues (websiteName, websiteLocationNameType, websiteLocationId, adSizeTypeName, height, width) { mieAdSauceSettings.websiteNameComboId = websiteName; mieAdSauceSettings.websiteLocationNameTypeComboId = websiteLocationNameType; mieAdSauceSettings.websiteLocationIdHiddenId = websiteLocationId; mieAdSauceSettings.adSizeTypeNameHiddenId = adSizeTypeName; mieAdSauceSettings.heightHiddenId = height; mieAdSauceSettings.widthHiddenId = width; } function getWebsitePK (websiteName) { for (var i = 0;i < mieAdSauceAdSetupObject.websites.length; i++) { if(mieAdSauceAdSetupObject.websites[i].Name == websiteName) return mieAdSauceAdSetupObject.websites[i].Id; } return 0; } function populateDropDown ($dropDown, dataList, displayMember, valueMember) { var oldValue = $dropDown.val(); var oldValueExist = false; $dropDown.html(''); var innerHTML = ''; innerHTML += ''; for (var i = 0; i < dataList.length; i++) { var value = ''; if(!(valueMember instanceof Array)){ value = dataList[i][valueMember]; } else { for (var j = 0; j < valueMember.length; j++) { if(j > 0) value += ', '; value += dataList[i][valueMember[j]]; } } var display = ''; if(!(displayMember instanceof Array)){ display = dataList[i][displayMember]; } else { for (var j = 0; j < displayMember.length; j++) { if(j > 0) display += ', '; display += dataList[i][displayMember[j]]; } } innerHTML += ''; if(value == oldValue && mieAdSauceSettings.oldValueLoaded == false) { oldValueExist = true; mieAdSauceSettings.oldValueLoaded = true; } } $dropDown.html(innerHTML); if(oldValueExist) { $dropDown.val(oldValue); updateWebsiteLocations(); } } //API CALLS function getAdSauceBearerToken ($username, $password) { var username = jQuery('#' + $username).val(); var password = jQuery('#' + $password).val(); blockUI('Logging In...'); jQuery.ajax({ type: 'POST', url: MyAjax.ajaxurl, data: {"action": "getBearerToken", "username": username, "password": password}, success: function(response) { unblockUI(); if(response.indexOf('error') != 0) { mieAdSauceAdSetupObject.bearerToken = response; getUserInfo(); } else { alert(response); } }, error: function(response){ unblockUI(); alert(response); } }); } function getUserInfo() { blockUI('Loading User Info...'); jQuery.ajax({ type: 'POST', url: MyAjax.ajaxurl, data: {"action": "getUserInfo", "bearerToken": mieAdSauceAdSetupObject.bearerToken}, success: function(response) { unblockUI(); if(response.indexOf('error') != 0) { var user = jQuery.parseJSON(response); mieAdSauceAdSetupObject.user = user; getWebsites(); } else { alert(response); } }, error: function(response){ unblockUI(); alert(response); } }); } function getWebsites() { blockUI('Loading Websites...'); jQuery.ajax({ type: 'POST', url: MyAjax.ajaxurl, data: {"action": "getWebsites", "bearerToken": mieAdSauceAdSetupObject.bearerToken, "userPK": mieAdSauceAdSetupObject.user.Id}, success: function(response) { unblockUI(); if(response.indexOf('error') != 0) { var websites = jQuery.parseJSON(response); mieAdSauceAdSetupObject.websites = websites; setWebsitesComboBoxData(); } else { alert(response); } }, error: function(response){ unblockUI(); alert(response); } }); } function getWebsiteLocations() { blockUI('Loading Locations...'); jQuery.ajax({ type: 'POST', url: MyAjax.ajaxurl, data: {"action": "getWebsiteLocations", "bearerToken": mieAdSauceAdSetupObject.bearerToken, "websitePK": mieAdSauceAdSetupObject.websiteFK}, success: function(response) { unblockUI(); if(response.indexOf('error') != 0) { var websiteLocations = jQuery.parseJSON(response); mieAdSauceAdSetupObject.websiteLocations = websiteLocations; setWebsiteLocationsComboBoxData(); } else { alert(response); } }, error: function(response){ unblockUI(); alert(response); } }); }