diff options
Diffstat (limited to 'Postman/Postman-Mail/postman_smtp.js')
-rw-r--r-- | Postman/Postman-Mail/postman_smtp.js | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/Postman/Postman-Mail/postman_smtp.js b/Postman/Postman-Mail/postman_smtp.js new file mode 100644 index 0000000..2e6d18f --- /dev/null +++ b/Postman/Postman-Mail/postman_smtp.js @@ -0,0 +1,89 @@ +jQuery(document).ready(function() { + postmanSmtpInit(); +}); + +function postmanSmtpInit() { + // define the PostmanMandrill class + var PostmanSmtp = function(name) { + this.slug = name; + } + + // behavior for handling the user's transport change + PostmanSmtp.prototype.handleTransportChange = function(transportName) { + if (transportName == 'default') { + hide('div.transport_setting'); + hide('div.authentication_setting'); + } else if (transportName == this.slug) { + show('div#smtp_config'); + var $choice = jQuery('select#input_auth_type').val(); + if ($choice == 'none') { + hide('div.authentication_setting'); + } else if ($choice != 'oauth2') { + show('div#password_settings'); + hide('div.authentication_setting.non-basic'); + } else { + hide('div.authentication_setting.non-oauth2'); + show('div#oauth_settings'); + } + } + } + + // behavior for handling the wizard configuration from the + // server (after the port test) + PostmanSmtp.prototype.handleConfigurationResponse = function(response) { + var transportName = response.configuration.transport_type; + if (!(transportName == this.slug || transportName == 'gmail_api')) { + hide('.wizard-auth-oauth2'); + hide('.wizard-auth-basic'); + return; + } + console.debug('prepping screen for smtp transport '); + if (response.configuration.display_auth == 'oauth2') { + show('p#wizard_oauth2_help'); + jQuery('p#wizard_oauth2_help').html( + response.configuration.help_text); + jQuery(postman_redirect_url_el).val( + response.configuration.redirect_url); + jQuery('#input_oauth_callback_domain').val( + response.configuration.callback_domain); + jQuery('#client_id').html(response.configuration.client_id_label); + jQuery('#client_secret').html( + response.configuration.client_secret_label); + jQuery('#redirect_url').html( + response.configuration.redirect_url_label); + jQuery('#callback_domain').html( + response.configuration.callback_domain_label); + } + redirectUrlWarning = response.configuration.dot_notation_url; + jQuery('#input_transport_type').val( + response.configuration.transport_type); + jQuery('#input_auth_type').val(response.configuration.auth_type); + jQuery('#input_enc_type').val(response.configuration.enc_type); + jQuery('#input_port').val(response.configuration.port); + + // hide the fields we don't use so validation + // will work + if (response.configuration.display_auth == 'oauth2') { + // where authentication is oauth2 + show('.wizard-auth-oauth2'); + hide('.wizard-auth-basic'); + } else if (response.configuration.display_auth == 'password') { + // where authentication is password + hide('.wizard-auth-oauth2'); + show('.wizard-auth-basic'); + } else { + // where authentication is none + hide('.wizard-auth-oauth2'); + hide('.wizard-auth-basic'); + } + } + + // add this class to the global transports + var transport = new PostmanSmtp('smtp'); + transports.push(transport); + + // since we are initialize the screen, check if needs to be + // modded by this transport + var transportName = jQuery('select#input_transport_type').val(); + transport.handleTransportChange(transportName); +}
\ No newline at end of file |