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 rel=
"stylesheet" href=
"https://use.fontawesome.com/releases/v5.7.2/css/all.css"
11 integrity=
"sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin=
"anonymous">
12 <link rel=
"stylesheet" href=
"https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.css">
13 <link href=
"https://fonts.googleapis.com/css?family=Lato|Raleway" rel=
"stylesheet">
14 <link rel=
"stylesheet" href=
"app.css">
18 <div id=
"app" v-if=
"config">
20 <section class=
"first-line">
21 <div v-cloak
class=
"container">
23 <img v-if=
"config.logo" :
src=
"config.logo" />
24 <i v-if=
"config.icon" :
class=
"config.icon"></i>
26 <div class=
"dashboard-title">
27 <span class=
"headline">{{ config.subtitle }}
</span>
28 <h1>{{ config.title }}
</h1>
32 <div v-cloak
v-if=
"config.links" class=
"container-fluid">
33 <nav class=
"navbar" role=
"navigation" aria-label=
"main navigation">
34 <div class=
"container">
35 <div class=
"navbar-menu">
36 <div class=
"navbar-start">
37 <a v-for=
"link in config.links" class=
"navbar-item" :
href=
"link.url">
38 <i v-if=
"link.icon" style=
"margin-right: 6px;" :
class=
"link.icon"></i>
43 <a v-on:
click=
"vlayout = !vlayout" class=
"icon-button navbar-item"><i
44 :
class=
"['fas', vlayout ? 'fa-list' : 'fa-columns']"></i></a>
45 <div class=
"search-bar">
46 <label for=
"search" class=
"search-label"></label>
47 <input type=
"text" id=
"search" v-model=
"filter" />
56 <section id=
"main-section" class=
"section">
57 <div v-cloak
class=
"container">
58 <div v-if=
"offline" class=
"offline-message">
59 <i class=
"far fa-dizzy"></i>
60 <h1>You're offline bro.
<i class=
"fas fa-redo-alt" v-on:
click=
"checkOffline()"></i></h1>
63 <!-- Optional messages -->
64 <article v-if=
"config && config.message" class=
"message" :
class=
"config.message.style">
65 <div v-if=
"config.message.title" class=
"message-header">
66 <p>{{ config.message.title }}
</p>
68 <div v-if=
"config.message.content" class=
"message-body">
69 {{ config.message.content }}
73 <h2 v-if=
"filter"><i class=
"fas fa-search"></i> Search
</h2>
75 <!-- Horizontal layout -->
76 <div v-if=
"!vlayout || filter" class=
"columns is-multiline">
77 <template v-for=
"(group, index) in config.services">
78 <h2 v-if=
"!filter && group.name" class=
"column is-full"><i v-if=
"group.icon" :
class=
"group.icon"></i><span
81 <service v-for=
"item in group.items" v-bind:
item=
"item" class=
"column is-one-third-widescreen"
82 v-if=
"!filter || (item && (item.name.toLowerCase().includes(filter.toLowerCase()) || (item.tag && item.tag.toLowerCase().includes(filter.toLowerCase()))))">
87 <!-- Vertical layout -->
88 <div v-if=
"!filter && vlayout" class=
"columns is-multiline layout-vertical">
89 <div class=
"column is-one-third-widescreen" v-for=
"(group, index) in config.services">
90 <h2 v-if=
"!filter && group.name"><i v-if=
"group.icon" :
class=
"group.icon"></i><span v-else
>#
</span>
92 <service v-for=
"item in group.items" v-bind:
item=
"item"
93 v-if=
"!filter || (item && (item.name.toLowerCase().includes(filter.toLowerCase()) || (item.tag && item.tag.toLowerCase().includes(filter.toLowerCase()))))">
104 <footer class=
"footer">
105 <div class=
"container">
106 <div class=
"content has-text-centered">
107 <p>Created with
<span class=
"has-text-danger">❤️
</span> with
<a href=
"https://bulma.io/">bulma
</a>,
<a
108 href=
"https://vuejs.org/">vuejs
</a>
109 &
<a href=
"#">font awesome
</a> // Fork me on
<a href=
"https://github.com/bastienwirtz/homer"><i
110 class=
"fab fa-github-alt"></i></a></p>
115 <script src=
"https://cdn.jsdelivr.net/npm/vue@2.6.2/dist/vue.min.js"></script>
116 <script src=
"vendors/js-yaml.min.js"></script>
117 <script src=
"app.js"></script>