4 <link rel="stylesheet" href="css/materialize.min.css">
16 #splash-screen-content {
25 /* border: 8px solid red; */
28 filter: blur(15px) contrast(127%) brightness(80%);
35 box-shadow: inset 0 0 100px black;
42 flex-direction: column;
43 background-color: white;
55 .power-button:active {
64 div#console .terminal {
66 background-color: rgba(0,0,0,0.8);
73 div#console .terminal text {
81 <script src="js/jquery-3.4.1.min.js"></script>
82 <script src="js/moment-with-locales.js"></script>
83 <script src="js/jquery-ui.min.js"></script>
84 <script src="js/materialize.min.js"></script>
85 <!-- <script src="js/lightdm-sample.js"></script> -->
86 <script src="js/theme.js"></script>
89 <!-- Debug Console -->
90 <div id="console" class="row">
95 <input type="checkbox" checked="true">
96 <span class="lever"></span>
103 <div class="input-field col ">
104 <input id="inputEvent" >
105 <label for="inputEvent">Event</label>
107 <a id="buttonTrigger" class="waves-effect waves-light btn">Trigger</a>
112 <div contentEditable="true" class="terminal"></div>
115 <!-- End Debug Console -->
117 <div id="splash-screen">
118 <!--TODO autogenerate this content -->
119 <img class="splash-screen-img" src="images/splash-screen.jpg">
120 <div class="vignette"></div>
121 <div id="splash-screen-content">
122 <!--Content will be generated here -->
128 <div class="container">
129 <div class="row" style="margin-top: 35vh;"></div>
133 <div class="input-field col s4 offset-s4">
134 <select id="selectUser"></select>
139 <!-- Password field -->
141 <div class="input-field col s4 offset-s4">
142 <input id="inputPassword" type="password">
143 <label for="inputPassword">Password</label>
146 <!-- End Password field -->
159 <!-- Window Manager Select -->
160 <div class="input-field col s2 offset-s1">
161 <select id="selectSession"></select>
162 <label>Select Session</label>
164 <!-- End Window Manager Select -->
166 <div class="col right">
168 <!-- Hibernate Button -->
169 <div id="buttonHibernate" class="col S4">
170 <svg viewBox="0 0 297.613 297.613" width="40px" height="40px" class="power-button">
172 <path d="M148.807,50.869c-4.971,0-9,4.029-9,9v46.438c0,4.971,4.029,9,9,9s9-4.029,9-9V59.869
173 C157.807,54.898,153.777,50.869,148.807,50.869z"/>
174 <path d="M178.859,127.754c2.303,0,4.606-0.879,6.364-2.636L212.17,98.17c3.515-3.515,3.515-9.213,0-12.728
175 c-3.515-3.515-9.213-3.515-12.728,0l-26.948,26.948c-3.515,3.515-3.515,9.213,0,12.728
176 C174.252,126.875,176.556,127.754,178.859,127.754z"/>
177 <path d="M237.744,139.807h-46.438c-4.971,0-9,4.029-9,9s4.029,9,9,9h46.438c4.971,0,9-4.029,9-9S242.715,139.807,237.744,139.807z"
179 <path d="M185.22,172.493c-3.515-3.515-9.213-3.515-12.728,0c-3.515,3.515-3.515,9.213,0,12.728l26.95,26.95
180 c1.757,1.757,4.061,2.636,6.364,2.636s4.606-0.879,6.364-2.636c3.515-3.515,3.515-9.213,0-12.728L185.22,172.493z"/>
181 <path d="M148.807,182.307c-4.971,0-9,4.029-9,9v46.438c0,4.971,4.029,9,9,9s9-4.029,9-9v-46.438
182 C157.807,186.336,153.777,182.307,148.807,182.307z"/>
183 <path d="M112.391,172.495l-26.948,26.948c-3.515,3.515-3.515,9.213,0,12.728c1.757,1.757,4.061,2.636,6.364,2.636
184 s4.606-0.879,6.364-2.636l26.948-26.948c3.515-3.515,3.515-9.213,0-12.728C121.604,168.98,115.905,168.98,112.391,172.495z"/>
185 <path d="M115.307,148.807c0-4.971-4.029-9-9-9H59.869c-4.971,0-9,4.029-9,9s4.029,9,9,9h46.438
186 C111.277,157.807,115.307,153.777,115.307,148.807z"/>
187 <path d="M98.17,85.443c-3.515-3.515-9.213-3.515-12.728,0c-3.515,3.515-3.515,9.213,0,12.728l26.95,26.95
188 c1.757,1.757,4.061,2.636,6.364,2.636s4.606-0.879,6.364-2.636c3.515-3.515,3.515-9.213,0-12.728L98.17,85.443z"/>
189 <path d="M148.807,0C66.754,0,0,66.754,0,148.807s66.754,148.807,148.807,148.807s148.807-66.754,148.807-148.807
190 S230.859,0,148.807,0z M148.807,279.613C76.68,279.613,18,220.934,18,148.807S76.68,18,148.807,18s130.807,58.68,130.807,130.807
191 S220.934,279.613,148.807,279.613z"/>
194 <!-- <img id="buttonHibernate" class="right power-button" src="images/hibernate.svg" width="40px" height="40px"> -->
196 <!-- End Hibernate Button -->
197 <!-- Restart Button -->
198 <div id="buttonRestart" class="col s4">
199 <svg class="power-button" height="40px" width="40px" viewBox="0 0 1000 1000" >
201 <path d="M506,984.1c-98.1,0-192.5-29.2-273.1-84.4C154.1,845.9,93.6,770.9,
202 57.6,682.9c-9.9-24.3-17.9-49.6-23.7-75.2c-3.2-13.9,5.5-27.7,
203 19.4-30.9c13.9-3.2,27.7,5.5,30.9,19.4c5.2,22.8,12.3,45.4,21.2,67.1C137.5,
204 742,191.6,809,262,857.2c72,49.3,156.4,75.3,244,75.3c238.5,0,432.5-194,
205 432.5-432.5c0-238.5-194-432.5-432.5-432.5c-87.6,0-172,26-244,75.3C191.7,191,
206 137.5,257.9,105.4,336.5C100,349.7,85,356,71.8,
207 350.7c-13.2-5.4-19.5-20.4-14.1-33.6c35.9-88,96.5-162.9,
208 175.2-216.8c80.6-55.2,175-84.3,273.1-84.3c129.3,0,250.8,50.4,
209 342.3,141.8C939.6,249.1,990,370.7,990,500c0,129.3-50.4,250.9-141.8,
210 342.3C756.8,933.7,635.2,984.1,506,984.1z"/>
211 <path d="M82.3,352.6c-10.5,0-20.3-6.5-24.1-16.8L11.6,211.6c-5-13.3,1.8-28.2,
212 15.1-33.2c13.3-5,28.2,1.8,33.2,15.1l38.5,102.8l106.2-26.1c13.8-3.4,27.8,
213 5.1,31.2,18.9c3.4,13.8-5.1,27.8-18.9,31.2L88.4,351.8C86.4,352.3,84.3,
218 <!-- <img id="buttonRestart" class="power-button" src="images/restart.svg" width="40px" height="40px"> -->
220 <!-- End Restart Button -->
221 <!-- Shutdown Button -->
222 <div id="buttonShutdown" class="col s4">
224 <svg class="power-button" height="40px" width="40px" viewBox="0 0 56 56">
226 <path d="M35.31,5.042c-0.532-0.155-1.085,0.15-1.24,0.68s0.149,
227 1.085,0.68,1.24C44.906,9.932,52,19.405,52,30c0,13.233-10.767,
228 24-24,24S4,43.233,4,30C4,19.392,11.105,9.915,21.279,
229 6.953c0.53-0.154,0.835-0.709,0.681-1.239
230 c-0.153-0.53-0.708-0.839-1.239-0.681C9.698,8.241,2,18.508,2,
232 11.663,26,26,26s26-11.663,26-26
233 C54,18.522,46.314,8.26,35.31,5.042z"/>
234 <path d="M28,27c0.553,0,1-0.447,1-1V1c0-0.553-0.447-1-1-1s-1,
236 26.553,27.447,27,28,27z"/>
239 <!-- <img id="buttonShutdown" class="power-button" src="images/shutdown.svg" width="40px" height="40px"> -->
241 <!-- End Shutdown Button -->
249 const log = new logger();
252 const greeter = new LoginManager();
254 // called after greeter and lightdm are initialized
255 $(greeter).ready(function() {
256 let $user = $("#selectUser");
257 let $session = $("#selectSession");
258 let $password = $("#inputPassword");
260 greeter.fillUserSelect($user);
261 greeter.fillSessionSelect($session);
264 /* Bind shutdown, restart hibernate and suspend to the
265 appropriate buttons */
266 $("#buttonPoweroff").click(function() {
269 $("#buttonRestart").click(function() {
272 $("#hibernate").click(function() {
277 $password.keypress((e) => {
278 // user has typed, remove placeholder and invalid class
279 $password.prop("placeholder", "").removeClass("invalid");
281 /* attempt authentication, 'grant' event will be emitted on sucecss
282 and 'deny' will be emitted on failure */
283 if (e.keyCode == 13) {
284 let username = $user.children("option:selected").val();
285 let pass = $password.val();
286 log.debug("attempt authenticate with: " + username + " " + pass);
287 greeter.auth(username, pass);
293 // when the user is authenticated do transitions and login
294 $(greeter).on("grant", () => {
295 let session_key = $session.children("option:selected").val();
296 greeter.login(session_key);
299 // inform the user that the credentials are invalid
300 $password.removeClass("valid").addClass("invalid");
301 $password.val("").prop("placeholder", "Incorrect Password");
304 $(greeter.splash).on("active", function() {
305 $(".active-appear").fadeIn();
306 }).on("inactive", function() {
307 $(".active-appear").fadeOut();
315 * Define this fuction so lightdm doesnt crash, gets resassigned
318 window.authentication_complete = function() {