{{! Add the a11y route announcer }} {{! Tell CSS what we have enabled }} {{#if (can "use acls")}} {{document-attrs class="has-acls"}} {{/if}} {{#if (can "use nspaces")}} {{document-attrs class="has-nspaces"}} {{/if}} {{#if (can "use partitions")}} {{document-attrs class="has-partitions"}} {{/if}} {{! Tell CSS about our theme }} {{#each-in source.data as |key value|}} {{#if (and value (contains key (array "color-scheme" "contrast")))}} {{document-attrs class=(concat 'prefers-' key '-' value)}} {{/if}} {{/each-in}} {{! If ACLs are enabled try get a token }} {{#if (can "use acls")}} {{/if}} {{#if (not-eq route.currentName 'oauth-provider-debug')}} {{! redirect if we aren't on a URL with dc information }} {{#if (eq route.currentName 'index')}} {{did-insert (route-action 'replaceWith' 'dc.services.index' (hash dc=(env 'CONSUL_DATACENTER_LOCAL') ) )}} {{else}} {{! If we are notfound, guess the params we need }} {{#if (eq route.currentName 'notfound')}} {{/if}} {{! Make sure we guess and default to the right params when not found }} {{#let (if (can "use partitions") (or route.params.partition notfound.partition token.Partition 'default') 'default') (if (can "use nspaces") (or route.params.nspace notfound.nspace token.Namespace 'default') 'default') as |partition nspace|}} {{! Make sure we have enough to show the app chrome}} {{! Don't show anything until we have a list of DCs }} {{! Once we have a list of DCs make sure the DC we are asking for exists }} {{! If not use the DC that the UI is running in }} {{#let (or (get (object-at 0 (cached-model 'dc' (hash Name=notfound.dc ) )) 'Name') (get (object-at 0 (cached-model 'dc' (hash Name=route.params.dc ) )) 'Name') (env "CONSUL_DATACENTER_LOCAL") ) dcs.data as |dc dcs|}} {{#if (and (gt dc.length 0) dcs nspace partition)}} {{! figure out our current DC and convert it to a model }} {{#if dc.data}} {{#if error}} {{! If we got an error from anything, show an error page }} {{else}} {{! Otherwise show the rest of the app}} {{outlet}} {{! loading component for when we need it}} {{/if}} {{/if}} {{/if}} {{/let}} {{/let}} {{/if}} {{else}} {{! Routes with no main navigation }} {{outlet}} {{/if}}