Styling
[jitsi-ansible.git] / files / index.html
1 <html itemscope itemtype="http://schema.org/Product" prefix="og: http://ogp.me/ns#" xmlns="http://www.w3.org/1999/html">
2 <!--
3
4 Copyright (C) 2020 8x8, Inc
5 Copyright (C) 2020 Free Software Foundation
6
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20
21 -->
22 <head>
23 <!--#include virtual="head.html" -->
24 <meta charset="utf-8">
25 <meta http-equiv="content-type" content="text/html;charset=utf-8">
26 <meta name="viewport" content="width=device-width, initial-scale=1.0">
27 <!--#include virtual="base.html" -->
28
29 <link rel="stylesheet" href="css/all.css?v=3729">
30
31 <style>
32 body {background: #222!important}
33 #fsflogo{
34 background: #800000;
35 }
36
37 #site-logo{
38 width:400px;
39 padding:40px;
40 margin: auto;
41 }
42
43 #fsfcustom{
44 color:black!important;
45 background: #fff;
46 width:680px;
47 margin: 30px auto;
48 padding:15px;
49 border-radius: 10px!important;
50 }
51
52 .header-text-title {
53 display: none
54 }
55
56 #fsfcustom p {
57 font-size:medium;
58 padding:10px;
59 }
60
61 #fsffooter a{
62 color:#75A7E7
63 }
64
65 #fsffooter{
66 font-size:larger;
67 background: #222;
68 height:200px;
69 }
70
71 #fsffooter .content{
72 padding-top:50px;
73 width:680px;
74 margin: auto;
75 }
76
77 #welcome_page{
78 min-height:0!important;
79 }
80
81 .header{
82 margin-bottom: 40px!important;
83 }
84
85 .welcome .welcome-page-settings{
86 position:relative;
87 }
88
89 .welcome .header-text{
90 margin-top:22px!important;
91 }
92 </style>
93
94 <script type="text/javascript">
95 /** @licstart The following is the entire license notice for the
96 * JavaScript code in this page
97 *
98 * Copyright (C) 8x8, Inc.
99 *
100 * Licensed under the Apache License, Version 2.0 (the \"License\");
101 * you may not use this file except in compliance with the License.
102 * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
103 *
104 * @licend The above is the entire license notice
105 * for the JavaScript code in this page.
106 */
107 </script>
108
109 <script>
110 // @license magnet:?xt=urn:btih:8e4f440f4c65981c5bf93c76d35135ba5064d8b7&dn=apache-2.0.txt Apache-2.0
111 // IE11 and earlier can be identified via their user agent and be
112 // redirected to a page that is known to have no newer js syntax.
113 if (window.navigator.userAgent.match(/(MSIE|Trident)/)) {
114 window.location.href = "static/recommendedBrowsers.html";
115 }
116
117 window.indexLoadedTime = window.performance.now();
118 console.log("(TIME) index.html loaded:\t", indexLoadedTime);
119 // XXX the code below listeners for errors and displays an error message
120 // in the document body when any of the required files fails to load.
121 // The intention is to prevent from displaying broken page.
122 var criticalFiles = [
123 "config.js",
124 "utils.js",
125 "do_external_connect.js",
126 "interface_config.js",
127 "logging_config.js",
128 "lib-jitsi-meet.min.js",
129 "app.bundle.min.js",
130 "all.css?v=3729"
131 ];
132 var loadErrHandler = function(e) {
133 var target = e.target;
134 // Error on <script> and <link>(CSS)
135 // <script> will have .src and <link> .href
136 var fileRef = (target.src ? target.src : target.href);
137 if (("SCRIPT" === target.tagName || "LINK" === target.tagName)
138 && criticalFiles.some(
139 function(file) { return fileRef.indexOf(file) !== -1 })) {
140 window.onload = function() {
141 // The whole complex part below implements page reloads with
142 // "exponential backoff". The retry attempt is passes as
143 // "rCounter" query parameter
144 var href = window.location.href;
145
146 var retryMatch = href.match(/.+(\?|&)rCounter=(\d+)/);
147 var retryCountStr = retryMatch ? retryMatch[2] : "0";
148 var retryCount = Number.parseInt(retryCountStr);
149
150 if (retryMatch == null) {
151 var separator = href.indexOf("?") === -1 ? "?" : "&";
152 var hashIdx = href.indexOf("#");
153
154 if (hashIdx === -1) {
155 href += separator + "rCounter=1";
156 } else {
157 var hashPart = href.substr(hashIdx);
158
159 href = href.substr(0, hashIdx)
160 + separator + "rCounter=1" + hashPart;
161 }
162 } else {
163 var separator = retryMatch[1];
164
165 href = href.replace(
166 /(\?|&)rCounter=(\d+)/,
167 separator + "rCounter=" + (retryCount + 1));
168 }
169
170 var delay = Math.pow(2, retryCount) * 2000;
171 if (isNaN(delay) || delay < 2000 || delay > 60000)
172 delay = 10000;
173
174 var showMoreText = "show more";
175 var showLessText = "show less";
176
177 document.body.innerHTML
178 = "<div style='"
179 + "position: absolute;top: 50%;left: 50%;"
180 + "text-align: center;"
181 + "font-size: medium;"
182 + "font-weight: 400;"
183 + "transform: translate(-50%, -50%)'>"
184 + "Uh oh! We couldn't fully download everything we needed :("
185 + "<br/> "
186 + "We will try again shortly. In the mean time, check for problems with your Internet connection!"
187 + "<br/><br/> "
188 + "<div id='moreInfo' style='"
189 + "display: none;'>" + "Missing " + fileRef
190 + "<br/><br/></div>"
191 + "<a id='showMore' style='"
192 + "text-decoration: underline;"
193 + "font-size:small;"
194 + "cursor: pointer'>" + showMoreText + "</a>"
195 + "&nbsp;&nbsp;&nbsp;"
196 + "<a id ='reloadLink' style='"
197 + "text-decoration: underline;"
198 + "font-size:small;"
199 + "'>reload now</a>"
200 + "</div>";
201
202 var reloadLink = document.getElementById('reloadLink');
203 reloadLink.setAttribute('href', href);
204
205 var showMoreElem = document.getElementById("showMore");
206 showMoreElem.addEventListener('click', function () {
207 var moreInfoElem
208 = document.getElementById("moreInfo");
209
210 if (showMoreElem.innerHTML === showMoreText) {
211 moreInfoElem.setAttribute(
212 "style",
213 "display: block;"
214 + "color:#FF991F;"
215 + "font-size:small;"
216 + "user-select:text;");
217 showMoreElem.innerHTML = showLessText;
218 }
219 else {
220 moreInfoElem.setAttribute(
221 "style", "display: none;");
222 showMoreElem.innerHTML = showMoreText;
223 }
224 });
225
226 window.setTimeout(
227 function () { window.location.replace(href); }, delay);
228
229 // Call extra handler if defined.
230 if (typeof postLoadErrorHandler === "function") {
231 postLoadErrorHandler(fileRef);
232 }
233 };
234 window.removeEventListener(
235 'error', loadErrHandler, true /* capture phase */);
236 }
237 };
238 window.addEventListener(
239 'error', loadErrHandler, true /* capture phase type of listener */);
240 // @license-end
241 </script>
242 <script><!--#include virtual="/config.js" --></script><!-- adapt to your needs, i.e. set hosts and bosh path -->
243 <!--#include virtual="connection_optimization/connection_optimization.html" -->
244 <script src="libs/do_external_connect.min.js?v=1"></script>
245 <script><!--#include virtual="/interface_config.js" --></script>
246 <script><!--#include virtual="/logging_config.js" --></script>
247 <script src="libs/lib-jitsi-meet.min.js?v=3729"></script>
248 <script src="libs/app.bundle.min.js?v=3729"></script>
249 <!--#include virtual="title.html" -->
250 <!--#include virtual="plugin.head.html" -->
251 <!--#include virtual="static/welcomePageAdditionalContent.html" -->
252 <!--#include virtual="static/settingsToolbarAdditionalContent.html" -->
253 </head>
254 <body>
255 <!--#include virtual="body.html" -->
256 <div id="fsflogo" >
257 <div id="site-logo"><a href="/" title="Home">
258 <img src="https://my.fsf.org/sites/default/files/fsf-logo_1.png" alt="Home" />
259 </a></div> </div>
260 <div id="fsfcustom">
261 <p>Welcome to the free (as in freedom) videoconferencing service for <a href="https://www.fsf.org/associate/">associate members</a> of the <a href="https://www.fsf.org/">Free Software Foundation</a>. Members can use their FSF account login credentials to start new conference rooms, and invite family, colleagues, and friends to join by sending them the room link. We recommend using a password for your conference for better security, you can find this option under the info button.</p>
262
263 <p>This service uses <a href="https://jitsi.org/jitsi-meet/">Jitsi Meet</a>, with some small changes made for the sake of privacy and <a href="https://www.gnu.org/philosophy/free-software-even-more-important.html">software freedom</a>. It does not use any third party servers for network initialization and does not recommend or link to proprietary services or programs.
264
265 <p><a href="https://fsf.org/join?pk_campaign=jitsi&pk_source=joinhome">Become an associate member</a> today, or support the FSF by making a <a href="https://fsf.org/donate?pk_campaign=jitsi&pk_source=donatehome">donation</a>.</p>
266 </div>
267 <div id="react"></div>
268
269 <div id="fsffooter">
270 <div class="content">
271 <p style="color: white">We prioritize your privacy and do not sell or distribute our contact lists. Read our full <a href="https://www.fsf.org/about/free-software-foundation-privacy-policy">privacy policy</a>.</p>
272 <p ><a href="https://weblabels.fsf.org/jitsi.member.fsf.org/CURRENT/" rel="jslicense">JavaScript license information</a></p>
273 </div>
274 </body>
275 </html>