<main class="p-3 x-auto"> <div class="(( crate::https::ui::CSS_PAGE_HEADER ))"> <h2>Applications list</h2> </div> (% if apps.is_empty() %) <h5>No linked applications available</h5> (% else %) <div class="row row-cols-1 row-cols-sm-2 row-cols-md-3 g-3"> (% for app in apps %) <div class="col-md-3"> <div class="card text-center"> (% match app %) (% when AppLink::Oauth2 with { name, display_name, redirect_url, has_image } %) <a href="(( redirect_url ))" class="link-dark stretched-link mt-2"> (% if has_image %) <img src="/ui/images/oauth2/(( name ))" class="oauth2-img" alt="((display_name)) icon" id="(( name ))"> (% else %) <img src="/pkg/img/icon-oauth2.svg?v=((crate::https::cache_buster::get_cache_buster_key()))" class="oauth2-img" alt="missing-icon icon" id="(( name ))"> (% endif %) </a> <label for="(( name ))">(( display_name ))</label> (% endmatch %) </div> </div> (% endfor %) </div> (% endif %) </main>