]> git.immae.eu Git - github/bastienwirtz/homer.git/blame - index.html
Merge pull request #27 from traeblain/feature-burger
[github/bastienwirtz/homer.git] / index.html
CommitLineData
09763dbf
BW
1<!DOCTYPE html>
2<html>
e41196e7 3
09763dbf
BW
4<head>
5 <meta charset="utf-8">
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">
9 <title>Homer</title>
ab76270c
BW
10 <link defer rel="stylesheet" href="vendors/font-awesone.min.css">
11 <link defer rel="stylesheet" href="vendors/bulma.min.css">
09763dbf
BW
12 <link rel="stylesheet" href="app.css">
13</head>
e41196e7 14
09763dbf 15<body>
51956c3a 16 <div id="app" v-if="config" :class="[isDark ? 'is-dark' : 'is-light', !config.footer ? 'no-footer': '']">
e41196e7
BW
17 <div id="bighead">
18 <section class="first-line">
9baec9ae 19 <div v-cloak class="container">
e41196e7
BW
20 <div class="logo">
21 <img v-if="config.logo" :src="config.logo" />
22 <i v-if="config.icon" :class="config.icon"></i>
23 </div>
24 <div class="dashboard-title">
9baec9ae
BW
25 <span class="headline">{{ config.subtitle }}</span>
26 <h1>{{ config.title }}</h1>
e41196e7
BW
27 </div>
28 </div>
29 </section>
9baec9ae 30 <div v-cloak v-if="config.links" class="container-fluid">
e41196e7
BW
31 <nav class="navbar" role="navigation" aria-label="main navigation">
32 <div class="container">
7cc525b2
T
33 <div class="navbar-brand">
34 <a role="button"
35 class="navbar-burger" :class="{ 'is-active': showMenu }"
36 aria-label="menu" aria-expanded="false"
37 v-on:click="toggleMenu()">
38 <span aria-hidden="true"></span>
39 <span aria-hidden="true"></span>
40 <span aria-hidden="true"></span>
41 </a>
42 </div>
43 <div class="navbar-menu" :class="{ 'is-active': showMenu }">
e41196e7 44 <div class="navbar-start">
56c69e0d 45 <a v-for="link in config.links" class="navbar-item" :href="link.url" :target="link.target">
e41196e7
BW
46 <i v-if="link.icon" style="margin-right: 6px;" :class="link.icon"></i>
47 {{ link.name }}
48 </a>
49 </div>
7cc525b2
T
50 <div class="navbar-end">
51 <div class="navbar-item">
5323df4a
BW
52 <a
53 v-on:click="toggleTheme()"
54 aria-label="Toggle dark mode"
7cc525b2 55 class="icon-button"
5323df4a 56 ><i class="fas fa-adjust"></i>
7cc525b2
T
57 </a>
58 <a v-on:click="toggleLayout()" class="icon-button"><i
59 :class="['fas', vlayout ? 'fa-list' : 'fa-columns']"></i></a>
60 <div class="search-bar">
61 <label for="search" class="search-label"></label>
62 <input type="text" id="search" v-model="filter" />
63 </div>
e41196e7 64 </div>
09763dbf
BW
65 </div>
66 </div>
67 </div>
e41196e7
BW
68 </nav>
69 </div>
09763dbf 70 </div>
09763dbf 71
e41196e7 72 <section id="main-section" class="section">
9baec9ae
BW
73 <div v-cloak class="container">
74 <div v-if="offline" class="offline-message">
75 <i class="far fa-dizzy"></i>
76 <h1>You're offline bro. <i class="fas fa-redo-alt" v-on:click="checkOffline()"></i></h1>
77 </div>
78 <div v-else>
79 <!-- Optional messages -->
80 <article v-if="config && config.message" class="message" :class="config.message.style">
81 <div v-if="config.message.title" class="message-header">
82 <p>{{ config.message.title }}</p>
83 </div>
84 <div v-if="config.message.content" class="message-body">
85 {{ config.message.content }}
86 </div>
87 </article>
09763dbf 88
9baec9ae 89 <h2 v-if="filter"><i class="fas fa-search"></i> Search</h2>
09763dbf 90
4877ec98
BW
91 <!-- Horizontal layout -->
92 <div v-if="!vlayout || filter" class="columns is-multiline">
93 <template v-for="(group, index) in config.services">
94 <h2 v-if="!filter && group.name" class="column is-full"><i v-if="group.icon" :class="group.icon"></i><span
95 v-else>#</span>
96 {{ group.name }}</h2>
97 <service v-for="item in group.items" v-bind:item="item" class="column is-one-third-widescreen"
98 v-if="!filter || (item && (item.name.toLowerCase().includes(filter.toLowerCase()) || (item.tag && item.tag.toLowerCase().includes(filter.toLowerCase()))))">
99 </service>
100 </template>
101 </div>
102
103 <!-- Vertical layout -->
104 <div v-if="!filter && vlayout" class="columns is-multiline layout-vertical">
105 <div class="column is-one-third-widescreen" v-for="(group, index) in config.services">
106 <h2 v-if="!filter && group.name"><i v-if="group.icon" :class="group.icon"></i><span v-else>#</span>
107 {{ group.name }}</h2>
108 <service v-for="item in group.items" v-bind:item="item"
109 v-if="!filter || (item && (item.name.toLowerCase().includes(filter.toLowerCase()) || (item.tag && item.tag.toLowerCase().includes(filter.toLowerCase()))))">
110 </service>
09763dbf
BW
111 </div>
112 </div>
4877ec98
BW
113
114
09763dbf
BW
115 </div>
116 </div>
e41196e7 117 </section>
5323df4a
BW
118 <footer class="footer">
119 <div class="container">
51956c3a
BW
120 <div class="content has-text-centered" v-if="config.footer" v-html="config.footer">
121
5323df4a
BW
122 </div>
123 </div>
124 </footer>
e41196e7 125 </div>
09763dbf 126
ab76270c 127 <script src="vendors/vue.min.js"></script>
e41196e7
BW
128 <script src="vendors/js-yaml.min.js"></script>
129 <script src="app.js"></script>
09763dbf 130</body>
e41196e7
BW
131
132</html>