<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Web App Start-up with Validation and Bailout if Need Be in ArcGIS Web AppBuilder Questions</title>
    <link>https://community.esri.com/t5/arcgis-web-appbuilder-questions/web-app-start-up-with-validation-and-bailout-if/m-p/352443#M9352</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Larry,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you have time and interest I'm wrestling with the asynchronous nature of javascript and the problems introduced with the posting of an EXT.JS web form to get and validate the user name and password.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Using the code below I raise the following form but have two problems.&amp;nbsp; The form is not active and seems to be hidden behind the Loading div??&amp;nbsp; &lt;SPAN style="line-height: 1.5;"&gt;how can I turn off the loading widget and is it plausible that the form is inactive because it is behind the loading div.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;IMG alt="LoginFormAndLoading.png" class="image-1 jive-image" src="https://community.esri.com/legacyfs/online/101494_LoginFormAndLoading.png" style="height: auto;" /&gt;&lt;/P&gt;&lt;P&gt;Anyway - here is my implementation of the code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;index.html, body:&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;IMG alt="indexGraphic.png" class="image-2 jive-image" src="https://community.esri.com/legacyfs/online/101510_indexGraphic.png" style="width: 620px; height: 136px;" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;

( function waitForAPI() {&amp;nbsp; 


&amp;nbsp; if (typeof require === 'undefined') {
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (window.console) {&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log('Waiting for API to be loaded.');&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; setTimeout(waitForAPI, 100);&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&amp;nbsp; 
&amp;nbsp; } 
&amp;nbsp; else 
&amp;nbsp; {&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; validateCredentials();&amp;nbsp; 
&amp;nbsp; }&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp; function validateCredentials() {&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; require([&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'dojo/aspect',&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'dojo/Deferred',&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'jimu/utils'], 
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; function (aspect, Deferred, jimuUtils) {&amp;nbsp; 

&amp;nbsp; aspect.around(jimuUtils, 'createWebMap', function(originalMethod) {&amp;nbsp; 
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return function(portalUrl, itemId, mapDiv, options) {&amp;nbsp; 

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var mapDeferred = new Deferred(); 
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; var authDefer = new Deferred();
&amp;nbsp;&amp;nbsp; var authResult = null;


&amp;nbsp;&amp;nbsp; // Set up the authorization deferrer:
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; authDefer.then(


&amp;nbsp; //Callback after resolution of the deferrer
&amp;nbsp; function (authResult) {


&amp;nbsp; //ServiceStatus &amp;lt; 0 indicates the call to the service is incomplete.&amp;nbsp; 0 indicates Cancel, &amp;gt; 0 indicates the service has executed, See Result for success or failure)
&amp;nbsp; //authResult =&amp;nbsp; { ServiceStatus: N, ServiceResult: "STRING", bIsAuth: Bool };

&amp;nbsp;&amp;nbsp; if (authResult.bIsAuth) { 
&amp;nbsp;&amp;nbsp; 
&amp;nbsp; originalMethod.call(jimuUtils, portalUrl, itemId, mapDiv, options).then(function(deferred) {&amp;nbsp; 
&amp;nbsp;&amp;nbsp; mapDeferred.resolve(deferred);&amp;nbsp; 
&amp;nbsp;&amp;nbsp; return;&amp;nbsp; 
&amp;nbsp; });&amp;nbsp; 
&amp;nbsp;&amp;nbsp; } 
&amp;nbsp;&amp;nbsp; else 
&amp;nbsp;&amp;nbsp; {&amp;nbsp; 
&amp;nbsp; map.remove();&amp;nbsp; 
&amp;nbsp; mapDeferred.reject();&amp;nbsp; 

&lt;SPAN&gt;&amp;nbsp; window.location.assign("&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://localhost/wab1/NotAuthorized.html" rel="nofollow noopener noreferrer" target="_blank"&gt;http://localhost/wab1/NotAuthorized.html&lt;/A&gt;&lt;SPAN&gt;");&amp;nbsp; &lt;/SPAN&gt;
&amp;nbsp; confirm('Credentials not Valid');&amp;nbsp; 
&amp;nbsp;&amp;nbsp; }&amp;nbsp; 
&amp;nbsp;&amp;nbsp; 
&amp;nbsp; }
&amp;nbsp; );


&amp;nbsp; // Call this with authDefer and wait for resolution
&amp;nbsp; r5AuthMod.Authenticate("EPAOSC_Token", authDefer);

&amp;nbsp; return mapDeferred;
&amp;nbsp; //return authDefer;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; });&amp;nbsp; 
&amp;nbsp; }&amp;nbsp; 
})();&amp;nbsp; &lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Dec 2021 16:32:52 GMT</pubDate>
    <dc:creator>DavidPlume1</dc:creator>
    <dc:date>2021-12-11T16:32:52Z</dc:date>
    <item>
      <title>Web App Start-up with Validation and Bailout if Need Be</title>
      <link>https://community.esri.com/t5/arcgis-web-appbuilder-questions/web-app-start-up-with-validation-and-bailout-if/m-p/352438#M9347</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi - I'd like to locate logic in my application start-up to call a service and authenticate a user on that service.&amp;nbsp; If the user is OK then finish app start up.&amp;nbsp; If not OK then show message, stop loading and cleanup.&amp;nbsp; Where should this login be located?&amp;nbsp; More robustly, you could have code to dialog with the user until the user gives the correct credentials or chooses cancel.&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In Firebug I can see lots of potential locations - seems like index.html,&amp;nbsp; function loadingCallback() would be the best location but I'm open to other suggestions.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Importantly - on bailout what would be the best way to dispose of all of the WAB objects and leave the user in a sensible space?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 May 2015 23:58:18 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-web-appbuilder-questions/web-app-start-up-with-validation-and-bailout-if/m-p/352438#M9347</guid>
      <dc:creator>DavidPlume1</dc:creator>
      <dc:date>2015-05-08T23:58:18Z</dc:date>
    </item>
    <item>
      <title>Re: Web App Start-up with Validation and Bailout if Need Be</title>
      <link>https://community.esri.com/t5/arcgis-web-appbuilder-questions/web-app-start-up-with-validation-and-bailout-if/m-p/352439#M9348</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;David,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; I would say do this in an asp.net wrapper so that the WAB code is never touched until the user is authenticated. I do this for some of JS API apps using Forms Authentication.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 09 May 2015 00:49:44 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-web-appbuilder-questions/web-app-start-up-with-validation-and-bailout-if/m-p/352439#M9348</guid>
      <dc:creator>RobertScheitlin__GISP</dc:creator>
      <dc:date>2015-05-09T00:49:44Z</dc:date>
    </item>
    <item>
      <title>Re: Web App Start-up with Validation and Bailout if Need Be</title>
      <link>https://community.esri.com/t5/arcgis-web-appbuilder-questions/web-app-start-up-with-validation-and-bailout-if/m-p/352440#M9349</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;David,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Another approach is to add a reference to a JavaScript file from index.html right after the simpleLoader.js:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&amp;lt;script type="text/javascript" src="validateCredentials.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;validateCredentials.js&lt;/STRONG&gt; would look something like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;(function waitForAPI() {
&amp;nbsp; if (typeof require === 'undefined') {
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (window.console) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log('Waiting for API to be loaded.');
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; setTimeout(waitForAPI, 100);
&amp;nbsp;&amp;nbsp;&amp;nbsp; return;
&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp; validateCredentials();
&amp;nbsp; }
&amp;nbsp; 
&amp;nbsp; function validateCredentials() {
&amp;nbsp;&amp;nbsp;&amp;nbsp; require([
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'dojo/aspect',
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'dojo/Deferred',
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'jimu/utils'], 
&amp;nbsp;&amp;nbsp;&amp;nbsp; function (aspect, Deferred, jimuUtils) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; aspect.around(jimuUtils, 'createWebMap', function(originalMethod) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return function(portalUrl, itemId, mapDiv, options) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var mapDeferred = new Deferred();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var success = checkCredentials();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (success) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; originalMethod.call(jimuUtils, portalUrl, itemId, mapDiv, options).then(function(deferred) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mapDeferred.resolve(deferred);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; map.remove();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mapDeferred.reject();
&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; window.location.assign("&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://www.arcgis.com/home/" rel="nofollow noopener noreferrer" target="_blank"&gt;http://www.arcgis.com/home/&lt;/A&gt;&lt;SPAN&gt;");&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; confirm('Credentials not Valid');
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; function checkCredentials() {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Put your code here.&amp;nbsp; Return true if credentials are valid, false otherwise.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return false;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return mapDeferred;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });
&amp;nbsp;&amp;nbsp;&amp;nbsp; });
&amp;nbsp; }
})();
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Larry&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 16:32:50 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-web-appbuilder-questions/web-app-start-up-with-validation-and-bailout-if/m-p/352440#M9349</guid>
      <dc:creator>LarryStout</dc:creator>
      <dc:date>2021-12-11T16:32:50Z</dc:date>
    </item>
    <item>
      <title>Re: Web App Start-up with Validation and Bailout if Need Be</title>
      <link>https://community.esri.com/t5/arcgis-web-appbuilder-questions/web-app-start-up-with-validation-and-bailout-if/m-p/352441#M9350</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Robert,&amp;nbsp; that just goes to show how one can get so wrapped up in one framework they loose their brain and forget about all the other tools in their toolbox.&amp;nbsp; Thanks!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 09 May 2015 19:22:32 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-web-appbuilder-questions/web-app-start-up-with-validation-and-bailout-if/m-p/352441#M9350</guid>
      <dc:creator>DavidPlume1</dc:creator>
      <dc:date>2015-05-09T19:22:32Z</dc:date>
    </item>
    <item>
      <title>Re: Web App Start-up with Validation and Bailout if Need Be</title>
      <link>https://community.esri.com/t5/arcgis-web-appbuilder-questions/web-app-start-up-with-validation-and-bailout-if/m-p/352442#M9351</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Larry,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Excellent - I think this was just what I had in mind.&amp;nbsp; Thank you for your thoughtful code example!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;David.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 09 May 2015 19:25:51 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-web-appbuilder-questions/web-app-start-up-with-validation-and-bailout-if/m-p/352442#M9351</guid>
      <dc:creator>DavidPlume1</dc:creator>
      <dc:date>2015-05-09T19:25:51Z</dc:date>
    </item>
    <item>
      <title>Re: Web App Start-up with Validation and Bailout if Need Be</title>
      <link>https://community.esri.com/t5/arcgis-web-appbuilder-questions/web-app-start-up-with-validation-and-bailout-if/m-p/352443#M9352</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Larry,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you have time and interest I'm wrestling with the asynchronous nature of javascript and the problems introduced with the posting of an EXT.JS web form to get and validate the user name and password.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Using the code below I raise the following form but have two problems.&amp;nbsp; The form is not active and seems to be hidden behind the Loading div??&amp;nbsp; &lt;SPAN style="line-height: 1.5;"&gt;how can I turn off the loading widget and is it plausible that the form is inactive because it is behind the loading div.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;IMG alt="LoginFormAndLoading.png" class="image-1 jive-image" src="https://community.esri.com/legacyfs/online/101494_LoginFormAndLoading.png" style="height: auto;" /&gt;&lt;/P&gt;&lt;P&gt;Anyway - here is my implementation of the code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;index.html, body:&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;IMG alt="indexGraphic.png" class="image-2 jive-image" src="https://community.esri.com/legacyfs/online/101510_indexGraphic.png" style="width: 620px; height: 136px;" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;

( function waitForAPI() {&amp;nbsp; 


&amp;nbsp; if (typeof require === 'undefined') {
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (window.console) {&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log('Waiting for API to be loaded.');&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; setTimeout(waitForAPI, 100);&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&amp;nbsp; 
&amp;nbsp; } 
&amp;nbsp; else 
&amp;nbsp; {&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; validateCredentials();&amp;nbsp; 
&amp;nbsp; }&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp; function validateCredentials() {&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; require([&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'dojo/aspect',&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'dojo/Deferred',&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'jimu/utils'], 
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; function (aspect, Deferred, jimuUtils) {&amp;nbsp; 

&amp;nbsp; aspect.around(jimuUtils, 'createWebMap', function(originalMethod) {&amp;nbsp; 
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return function(portalUrl, itemId, mapDiv, options) {&amp;nbsp; 

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var mapDeferred = new Deferred(); 
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; var authDefer = new Deferred();
&amp;nbsp;&amp;nbsp; var authResult = null;


&amp;nbsp;&amp;nbsp; // Set up the authorization deferrer:
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; authDefer.then(


&amp;nbsp; //Callback after resolution of the deferrer
&amp;nbsp; function (authResult) {


&amp;nbsp; //ServiceStatus &amp;lt; 0 indicates the call to the service is incomplete.&amp;nbsp; 0 indicates Cancel, &amp;gt; 0 indicates the service has executed, See Result for success or failure)
&amp;nbsp; //authResult =&amp;nbsp; { ServiceStatus: N, ServiceResult: "STRING", bIsAuth: Bool };

&amp;nbsp;&amp;nbsp; if (authResult.bIsAuth) { 
&amp;nbsp;&amp;nbsp; 
&amp;nbsp; originalMethod.call(jimuUtils, portalUrl, itemId, mapDiv, options).then(function(deferred) {&amp;nbsp; 
&amp;nbsp;&amp;nbsp; mapDeferred.resolve(deferred);&amp;nbsp; 
&amp;nbsp;&amp;nbsp; return;&amp;nbsp; 
&amp;nbsp; });&amp;nbsp; 
&amp;nbsp;&amp;nbsp; } 
&amp;nbsp;&amp;nbsp; else 
&amp;nbsp;&amp;nbsp; {&amp;nbsp; 
&amp;nbsp; map.remove();&amp;nbsp; 
&amp;nbsp; mapDeferred.reject();&amp;nbsp; 

&lt;SPAN&gt;&amp;nbsp; window.location.assign("&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://localhost/wab1/NotAuthorized.html" rel="nofollow noopener noreferrer" target="_blank"&gt;http://localhost/wab1/NotAuthorized.html&lt;/A&gt;&lt;SPAN&gt;");&amp;nbsp; &lt;/SPAN&gt;
&amp;nbsp; confirm('Credentials not Valid');&amp;nbsp; 
&amp;nbsp;&amp;nbsp; }&amp;nbsp; 
&amp;nbsp;&amp;nbsp; 
&amp;nbsp; }
&amp;nbsp; );


&amp;nbsp; // Call this with authDefer and wait for resolution
&amp;nbsp; r5AuthMod.Authenticate("EPAOSC_Token", authDefer);

&amp;nbsp; return mapDeferred;
&amp;nbsp; //return authDefer;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; });&amp;nbsp; 
&amp;nbsp; }&amp;nbsp; 
})();&amp;nbsp; &lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 16:32:52 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-web-appbuilder-questions/web-app-start-up-with-validation-and-bailout-if/m-p/352443#M9352</guid>
      <dc:creator>DavidPlume1</dc:creator>
      <dc:date>2021-12-11T16:32:52Z</dc:date>
    </item>
    <item>
      <title>Re: Web App Start-up with Validation and Bailout if Need Be</title>
      <link>https://community.esri.com/t5/arcgis-web-appbuilder-questions/web-app-start-up-with-validation-and-bailout-if/m-p/352444#M9353</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;David,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've been offline for a couple of days.&amp;nbsp; It looks like Robert has answered your question.&amp;nbsp; His answers are usually better than mine.&amp;nbsp; I wish we had several of him.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Are you set now?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Larry&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 May 2015 17:59:22 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-web-appbuilder-questions/web-app-start-up-with-validation-and-bailout-if/m-p/352444#M9353</guid>
      <dc:creator>LarryStout</dc:creator>
      <dc:date>2015-05-22T17:59:22Z</dc:date>
    </item>
    <item>
      <title>Re: Web App Start-up with Validation and Bailout if Need Be</title>
      <link>https://community.esri.com/t5/arcgis-web-appbuilder-questions/web-app-start-up-with-validation-and-bailout-if/m-p/352445#M9354</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Larry,&lt;/P&gt;&lt;P&gt;Thanks very much - yes, I'm good.&amp;nbsp; I wish we had several of both of you!&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 May 2015 18:02:01 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-web-appbuilder-questions/web-app-start-up-with-validation-and-bailout-if/m-p/352445#M9354</guid>
      <dc:creator>DavidPlume1</dc:creator>
      <dc:date>2015-05-22T18:02:01Z</dc:date>
    </item>
    <item>
      <title>Re: Web App Start-up with Validation and Bailout if Need Be</title>
      <link>https://community.esri.com/t5/arcgis-web-appbuilder-questions/web-app-start-up-with-validation-and-bailout-if/m-p/352446#M9355</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for your valueble input now can you please guide how to disable some tools in WAB. And also I want to know how to validate user in WAB page as the page is .html and don't have any server side validation. I mean if i have url of index.html it can not check if user has loged in or not&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 23 May 2015 06:48:53 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-web-appbuilder-questions/web-app-start-up-with-validation-and-bailout-if/m-p/352446#M9355</guid>
      <dc:creator>shafitrumboo</dc:creator>
      <dc:date>2015-05-23T06:48:53Z</dc:date>
    </item>
    <item>
      <title>Re: Web App Start-up with Validation and Bailout if Need Be</title>
      <link>https://community.esri.com/t5/arcgis-web-appbuilder-questions/web-app-start-up-with-validation-and-bailout-if/m-p/352447#M9356</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;David,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am newbie. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Similar to yours " I'd like to locate logic in my application start-up to call a service and authenticate a user on that service.&amp;nbsp; If the user is OK then finish app start up". &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have seen you have scuccessfully&amp;nbsp; implemented that part.&amp;nbsp; I would appreciate if you could share in detail so that I can start implementing it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Kumar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 11 Aug 2015 01:56:19 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-web-appbuilder-questions/web-app-start-up-with-validation-and-bailout-if/m-p/352447#M9356</guid>
      <dc:creator>KumarHarish</dc:creator>
      <dc:date>2015-08-11T01:56:19Z</dc:date>
    </item>
  </channel>
</rss>

