]> git.ktnx.net Git - lsl.git/blobdiff - public/javascripts/lsl.js
add a splash screen
[lsl.git] / public / javascripts / lsl.js
index c594a444dab4075bfca9f90f6fcfc9c57b9488d6..fa6b4127fb6d9758d9523b785e5ab51f449a1924 100644 (file)
@@ -1,12 +1,19 @@
 "use strict";
 (function(){
+var uri_base, environment, devel_env;   // filled on page load from an HTML attribute
+var start_time = Date.now();
+
 var ui_icon_class_re = new RegExp('\\bui-icon-\\S+\\b');
 var uri_id_re = new RegExp('/(\\d+)$');
-var uri_base;   // filled on page load from an HTML attribute
 var lists_version = -1;
 var lists = [];
 var selected_list;
 
+function debug(...args) {
+    if (devel_env)
+        console.debug.apply(console, args);
+}
+
 function uri_id(uri) {
     var m = uri.match(uri_id_re);
     return m ? m[1] : null;
@@ -75,6 +82,26 @@ function select_list(new_selected_list) {
 }
 function load_lists() {
     $.get(uri_base + '/api/v1/list')
+    .always(()=>{
+        var splash = $('#splash');
+        if (splash.length) {
+            var dur = splash.css('transition-duration');
+            if (dur && dur.endsWith('s')) {
+                dur = 1000 * parseFloat(dur.substring(0, dur.length-1));
+            }
+            else
+                dur = 1000;
+
+            var now = Date.now();
+            window.setTimeout(() => {
+                splash.addClass('done');
+                debug('scheduling splash removal in '+dur+'ms');
+                window.setTimeout(()=>{ splash.remove(); }, dur);
+            },
+                Math.max(0, 500 - (now - start_time))
+            );
+        }
+    })
     .done(data => {
         lists_version = data.lists_version;
 
@@ -171,6 +198,9 @@ function handle_list_item_state_changed(ev) {
 }
 $(function(){
     uri_base = $('#page').attr('lsl-uri-base');
+    environment = $('#page').attr('lsl-environment');
+    devel_env = environment == 'development';
+
     $(document).ajaxStart(function(){
         $(document).addClass('blocked');
         window.setTimeout(