6 <meta name=
"viewport" content=
"width=device-width, initial-scale=1">
7 <meta name=
"robots" content=
"noindex">
8 <link rel=
"icon" type=
"image/png" href=
"assets/favicon.png">
10 <link defer
rel=
"stylesheet" href=
"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/all.min.css">
11 <link defer
rel=
"stylesheet" href=
"https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.5/css/bulma.min.css">
12 <link href=
"https://fonts.googleapis.com/css?family=Lato|Raleway&display=swap" rel=
"stylesheet">
13 <link rel=
"stylesheet" href=
"app.css">
17 <div id=
"app" v-if=
"config">
19 <section class=
"first-line">
20 <div v-cloak
class=
"container">
22 <img v-if=
"config.logo" :
src=
"config.logo" />
23 <i v-if=
"config.icon" :
class=
"config.icon"></i>
25 <div class=
"dashboard-title">
26 <span class=
"headline">{{ config.subtitle }}
</span>
27 <h1>{{ config.title }}
</h1>
31 <div v-cloak
v-if=
"config.links" class=
"container-fluid">
32 <nav class=
"navbar" role=
"navigation" aria-label=
"main navigation">
33 <div class=
"container">
34 <div class=
"navbar-menu">
35 <div class=
"navbar-start">
36 <a v-for=
"link in config.links" class=
"navbar-item" :
href=
"link.url">
37 <i v-if=
"link.icon" style=
"margin-right: 6px;" :
class=
"link.icon"></i>
42 <a v-on:
click=
"vlayout = !vlayout" class=
"icon-button navbar-item"><i
43 :
class=
"['fas', vlayout ? 'fa-list' : 'fa-columns']"></i></a>
44 <div class=
"search-bar">
45 <label for=
"search" class=
"search-label"></label>
46 <input type=
"text" id=
"search" v-model=
"filter" />
55 <section id=
"main-section" class=
"section">
56 <div v-cloak
class=
"container">
57 <div v-if=
"offline" class=
"offline-message">
58 <i class=
"far fa-dizzy"></i>
59 <h1>You're offline bro.
<i class=
"fas fa-redo-alt" v-on:
click=
"checkOffline()"></i></h1>
62 <!-- Optional messages -->
63 <article v-if=
"config && config.message" class=
"message" :
class=
"config.message.style">
64 <div v-if=
"config.message.title" class=
"message-header">
65 <p>{{ config.message.title }}
</p>
67 <div v-if=
"config.message.content" class=
"message-body">
68 {{ config.message.content }}
72 <h2 v-if=
"filter"><i class=
"fas fa-search"></i> Search
</h2>
74 <!-- Horizontal layout -->
75 <div v-if=
"!vlayout || filter" class=
"columns is-multiline">
76 <template v-for=
"(group, index) in config.services">
77 <h2 v-if=
"!filter && group.name" class=
"column is-full"><i v-if=
"group.icon" :
class=
"group.icon"></i><span
80 <service v-for=
"item in group.items" v-bind:
item=
"item" class=
"column is-one-third-widescreen"
81 v-if=
"!filter || (item && (item.name.toLowerCase().includes(filter.toLowerCase()) || (item.tag && item.tag.toLowerCase().includes(filter.toLowerCase()))))">
86 <!-- Vertical layout -->
87 <div v-if=
"!filter && vlayout" class=
"columns is-multiline layout-vertical">
88 <div class=
"column is-one-third-widescreen" v-for=
"(group, index) in config.services">
89 <h2 v-if=
"!filter && group.name"><i v-if=
"group.icon" :
class=
"group.icon"></i><span v-else
>#
</span>
91 <service v-for=
"item in group.items" v-bind:
item=
"item"
92 v-if=
"!filter || (item && (item.name.toLowerCase().includes(filter.toLowerCase()) || (item.tag && item.tag.toLowerCase().includes(filter.toLowerCase()))))">
103 <footer class=
"footer">
104 <div class=
"container">
105 <div class=
"content has-text-centered">
106 <p>Created with
<span class=
"has-text-danger">❤️
</span> with
<a href=
"https://bulma.io/">bulma
</a>,
<a
107 href=
"https://vuejs.org/">vuejs
</a>
108 &
<a href=
"#">font awesome
</a> // Fork me on
<a href=
"https://github.com/bastienwirtz/homer"><i
109 class=
"fab fa-github-alt"></i></a></p>
114 <script src=
"https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.min.js"></script>
115 <script src=
"vendors/js-yaml.min.js"></script>
116 <script src=
"app.js"></script>