{"version":3,"sources":["js/login.js"],"names":["cred","Credentials","doIntroButton","$","hide","logMsg","this","value","initLoginForm","doCancel","show","resetLoginForm","doForgot","which","attr","fs","loginFormSettings","confirm","window","open","pwdurl","doLoginSubmit","$form","currentForm","parms","method","wsmethod","returnFormat","pullFromLoginForm","injectIntoObject","id","ladda","ajax","dataType","url","wsurl","data","cache","success","handleLoginSubmit","error","handleLoginError","qXHR","textStatus","errorThrown","alert","RESULT","AUTHRESULTS","AUTHSUCCESSFUL","initRegForm","noaccessmsg","hasOwnProperty","rules","validation","focus","select","val","removeClass","document","ready","click","jQueryValidationBootstrapPatch","validate","pwd","minlength","required","messages","submitHandler","lname","birthdate","date","pattern"],"mappings":"AAAA,IAAIA,KAAO,IAAIC,YAiDf,SAASC,gBAIL,OAHAC,EAAE,UAAUC,OACZC,OAAO,wBAA0BC,KAAKC,MAAQ,cAC9CC,cAAcF,KAAKC,QACZ,EAUX,SAASE,WAKL,OAJAJ,OAAO,qCACPF,EAAE,cAAcC,OAChBD,EAAE,UAAUO,OACZC,kBACO,EAIX,SAASC,WACL,IAAIC,EAAQV,EAAE,sBAAsBW,KAAK,aACrCC,EAAKC,kBAAkBH,GAI3B,OAHAR,OAAO,4BACHY,QAAQ,oFACRC,OAAOC,KAAKJ,EAAGK,SACZ,EAIX,SAASC,gBACL,IAAIC,EAAQnB,EAAEG,KAAKiB,aACfV,EAAQS,EAAMR,KAAK,aACnBC,EAAKC,kBAAkBH,GACvBW,EAAQ,CACRC,OAAQV,EAAGW,SACXC,aAAc,QAElB3B,KAAK4B,kBAAkBN,GACvBtB,KAAK6B,iBAAiBL,GACtBnB,OAAO,8BAAgCL,KAAK8B,GAAK,KACjD3B,EAAE,0CACG4B,QACAA,MAAM,SACX5B,EAAE6B,KAAK,CACHC,SAAU,OACVC,IAAKnB,EAAGoB,MACRV,OAAQ,OACRW,KAAMZ,EACNa,OAAO,EACPC,QAASC,kBACTC,MAAOC,mBAKf,SAASA,iBAAiBC,EAAMC,EAAYC,GACxCzC,EAAE,0CAA0C4B,MAAM,QAClDc,MAAM,4DAA8DD,GACpEjC,iBAIJ,SAAS4B,kBAAkBH,GACvB,IAAIvB,EAAQV,EAAE,sBAAsBW,KAAK,aACrCC,EAAKC,kBAAkBH,GAC3BR,OAAO,kBAAoB+B,EAAKU,OAAS,oBAAsBV,EAAKW,YAAYC,gBAC5EZ,EAAKU,QACLzC,OAAO,sCACP4C,YAAYpC,IACLuB,EAAKW,YAAYC,gBACxB3C,OAAO,4CAA8CU,EAAGmC,aACxD/C,EAAE,0CAA0C4B,MAAM,QAClDc,MAAM9B,EAAGmC,aACTvC,mBAEAN,OAAO,0BACPF,EAAE,0CAA0C4B,MAAM,QAClDc,MAAM,4DACNlC,kBAKR,SAASH,cAAcK,GACnBV,EAAW,MAATU,EAAgB,sBAAwB,yBACrCH,OACAI,KAAK,YAAaD,GACvB,IAAIE,EAAKC,kBAAkBH,GACvBE,EAAGoC,eAAe,gBAClBhD,EAAE,OAAOiD,MAAM,UACfjD,EAAE,OAAOiD,MAAM,MAAOrC,EAAGsC,aAE7BlD,EAAE,+CAA+CC,OACjDD,EAAE,eAAiBU,GAAOH,OAC1BC,iBAIJ,SAASA,iBACL,IAAIE,EAAQV,EAAE,sBAAsBW,KAAK,aACrCC,EAAKC,kBAAkBH,QACV,IAANE,GACPZ,EAAEY,EAAGuC,OACAA,QACAC,SACTpD,EAAE,oBAAoBqD,IAAI,IAC1BrD,EAAE,4BAA4BsD,YAAY,yBAC1CtD,EAAE,0BAA0BC,OAC5BD,EAAE,qCAAqCsD,YAAY,iCA/JvDtD,EAAEuD,UAAUC,OAAM,WACdtD,OAAO,wCAGPF,EAAE,iBAAiByD,MAAM1D,eACzBC,EAAE,WAAWyD,MAAMhD,UACnBT,EAAE,WAAWyD,MAAMnD,UAGnBoD,iCACA1D,EAAE,yBAAyB2D,SAAS,CAChCV,MAAO,CACHW,IAAK,CACDC,UAAW,EACXC,UAAU,IAGlBC,SAAU,CACNH,IAAK,CACDC,UAAW,iDAGnBG,cAAe9C,gBAEnBlB,EAAE,uBAAuB2D,SAAS,CAC9BV,MAAO,CACHgB,MAAO,CACHH,UAAU,EACVD,UAAW,GAEfK,UAAW,CACPJ,UAAU,EACVK,MAAM,EACNC,QAAS,gDAGjBJ,cAAe9C","file":"login.js","sourcesContent":["var cred = new Credentials();\r\n\r\n$(document).ready(function() {\r\n logMsg('Hello. Starting up the login screen.');\r\n\r\n // Login:\r\n $('#intro button').click(doIntroButton);\r\n $('.forgot').click(doForgot);\r\n $('.cancel').click(doCancel);\r\n\r\n // Form validation:\r\n jQueryValidationBootstrapPatch();\r\n $('#loginWithCredentials').validate({\r\n rules: {\r\n pwd: {\r\n minlength: 6,\r\n required: true\r\n }\r\n },\r\n messages: {\r\n pwd: {\r\n minlength: 'Your password must be at least 6 characters.'\r\n }\r\n },\r\n submitHandler: doLoginSubmit\r\n });\r\n $('#loginWithBirthdate').validate({\r\n rules: {\r\n lname: {\r\n required: true,\r\n minlength: 2\r\n },\r\n birthdate: {\r\n required: true,\r\n date: true,\r\n pattern: /^\\d{1,2}[\\/\\-]\\d{1,2}[\\/\\-](\\d\\d|\\d\\d\\d\\d)$/\r\n }\r\n },\r\n submitHandler: doLoginSubmit\r\n });\r\n});\r\n\r\n/*\r\n *\r\n *\t\tINTRO SCREEN\r\n *\r\n */\r\n\r\n// Initializes login form based on which button was pushed on intro screen.\r\nfunction doIntroButton() {\r\n $('#intro').hide();\r\n logMsg('Go to login form for ' + this.value + '-accounts!');\r\n initLoginForm(this.value);\r\n return false;\r\n}\r\n\r\n/*\r\n *\r\n *\t\tLOGIN SCREEN(S)\r\n *\r\n */\r\n\r\n// Cancel button just clears out the form and goes back to intro screen.\r\nfunction doCancel() {\r\n logMsg('Canceling, go back to intro form.');\r\n $('.loginform').hide();\r\n $('#intro').show();\r\n resetLoginForm();\r\n return false;\r\n}\r\n\r\n// Forgot button will open password self-service page for appropriate user type\r\nfunction doForgot() {\r\n var which = $('.loginform:visible').attr('data-type');\r\n var fs = loginFormSettings[which];\r\n logMsg('Forgot Password clicked.');\r\n if (confirm('We can help you reset your password. Would you like to reset your password now?'))\r\n window.open(fs.pwdurl);\r\n return false;\r\n}\r\n\r\n// Login form submit handler sends credentials to appropriate authentication web service.\r\nfunction doLoginSubmit() {\r\n var $form = $(this.currentForm);\r\n var which = $form.attr('data-type');\r\n var fs = loginFormSettings[which];\r\n var parms = {\r\n method: fs.wsmethod,\r\n returnFormat: 'json'\r\n };\r\n cred.pullFromLoginForm($form);\r\n cred.injectIntoObject(parms);\r\n logMsg(\"Okay! Let's try logging in \" + cred.id + '!');\r\n $('.loginform:visible button[type=submit]')\r\n .ladda()\r\n .ladda('start');\r\n $.ajax({\r\n dataType: 'json',\r\n url: fs.wsurl,\r\n method: 'POST',\r\n data: parms,\r\n cache: false,\r\n success: handleLoginSubmit,\r\n error: handleLoginError\r\n });\r\n}\r\n\r\n// Login form handler for web service errors.\r\nfunction handleLoginError(qXHR, textStatus, errorThrown) {\r\n $('.loginform:visible button[type=submit]').ladda('stop');\r\n alert('Sorry, there was a problem while attempting to login!\\n\\n' + errorThrown);\r\n resetLoginForm();\r\n}\r\n\r\n// Receives data from authentication web service and acts accordingly based on 1. Success, 2. Authenticated but no access, 3. Bad credentials.\r\nfunction handleLoginSubmit(data) {\r\n var which = $('.loginform:visible').attr('data-type');\r\n var fs = loginFormSettings[which];\r\n logMsg('Login success? ' + data.RESULT + '. Authenticated? ' + data.AUTHRESULTS.AUTHSUCCESSFUL);\r\n if (data.RESULT) {\r\n logMsg('Sending them to registration form.');\r\n initRegForm(which);\r\n } else if (data.AUTHRESULTS.AUTHSUCCESSFUL) {\r\n logMsg('Authentication successful but no access. ' + fs.noaccessmsg);\r\n $('.loginform:visible button[type=submit]').ladda('stop');\r\n alert(fs.noaccessmsg);\r\n resetLoginForm();\r\n } else {\r\n logMsg('Authentication failed.');\r\n $('.loginform:visible button[type=submit]').ladda('stop');\r\n alert('The information you supplied does not match our records.');\r\n resetLoginForm();\r\n }\r\n}\r\n\r\n// Sets up appropriate login screen, sets validation and other UI.\r\nfunction initLoginForm(which) {\r\n $(which == 'nc' ? '#loginWithBirthdate' : '#loginWithCredentials')\r\n .show()\r\n .attr('data-type', which);\r\n var fs = loginFormSettings[which];\r\n if (fs.hasOwnProperty('validation')) {\r\n $('#id').rules('remove');\r\n $('#id').rules('add', fs.validation);\r\n }\r\n $('.loginform .e, .loginform .g, .loginform .s').hide();\r\n $('.loginform .' + which).show();\r\n resetLoginForm();\r\n}\r\n\r\n// Just the UI to reset when clearing a login form, even if it's already initialized but password was bad, for example.\r\nfunction resetLoginForm() {\r\n var which = $('.loginform:visible').attr('data-type');\r\n var fs = loginFormSettings[which];\r\n if (typeof fs != 'undefined')\r\n $(fs.focus)\r\n .focus()\r\n .select();\r\n $('.loginform input').val('');\r\n $('.loginform .has-feedback').removeClass('has-success has-error');\r\n $('.loginform .help-block').hide();\r\n $('.loginform .form-control-feedback').removeClass('glyphicon-ok glyphicon-remove');\r\n}\r\n"]}