{{! 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}} {{! 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 (or notfound.dc route.params.dc (env "CONSUL_DATACENTER_LOCAL")) (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 |dc partition nspace|}} {{! Make sure we have enough to show the app chrome}} {{!FIXME}} {{#if (gt dc.length 0)}} {{! Don't show anything until we have a list of DCs }} {{#let dcs.data as |dcs|}} {{#if (and 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}} {{/if}} {{/let}} {{/if}}