8cb0587b8d832eff7322c595c8547e4655569119 max Mon Oct 18 07:22:55 2021 -0700 fixing LOVD otto job, also must check for total size, I forgot at the time the most basic check. No redmine yet, email from Bob diff --git src/hg/js/hgHubConnect.js src/hg/js/hgHubConnect.js index 5e906ef..23b62f7 100644 --- src/hg/js/hgHubConnect.js +++ src/hg/js/hgHubConnect.js @@ -1,45 +1,95 @@ -// make div1 visible and hide div2, used to show two different intro texts -// in the public/my hubs tab and the hub develop tab -function toggleTwoDivs(div1, div2) { - div1.style.display = "block"; - div2.style.display = "none"; +function makeIframe(ev) { + /* It's unusual to show script output in an iframe. But this solution has a few advantages: + * - We can show a "waiting" message while the data loads + * - The user knows where the results will appear, it looks like a dialog box and covers the page + */ + ev.stopPropagation(); + var validateText = document.getElementById('validateHubUrl'); + validateText.value=$.trim(validateText.value); + var hubUrl = $('#validateHubUrl').val(); + if(!validateUrl(hubUrl)) { + alert('Invalid hub URL'); + return; + } + + hgsid = document.querySelector("input[name='hgsid']").value; + var myUrl = window.location.href.split("#")[0].split("?")[0]; // strip off hgsid and tab-name + var waitUrl = myUrl + '?hgsid=' + hgsid + '&hgHub_do_hubCheck=1'; + var node = document.createElement('iframe'); + node.setAttribute('src', waitUrl); + node.setAttribute('width', document.documentElement.clientWidth-100+'px'); + node.setAttribute('height', document.documentElement.clientHeight-100+'px'); + node.style.position = 'absolute'; + node.style.top = '50px'; + node.style.left = '50px'; + node.style.border = '3px solid darkgrey'; + node.id = 'checkerFrame'; + // first show the loading page + document.body.appendChild(node); + + // when the waiting page has finished loading, load the hub checker page + var finalUrl = waitUrl + '&validateHubUrl='+hubUrl; + var alreadyRun = false; + node.addEventListener("load", function() { + if (! alreadyRun) + node.setAttribute('src', finalUrl); + alreadyRun = true; // because 'load' fires again when finalUrl is loaded + }); + return false; +} + +function closeIframe() { + var theFrame = window.parent.document.getElementById('checkerFrame'); + theFrame.parentNode.removeChild(theFrame); +} + +function reloadIframe() { + document.getElementById("content").innerHTML = "Re-loading hub..."; + window.parent.document.getElementById('checkerFrame').src += ''; + } // hover effect to highlight table rows $(function() { $(".hubList tr").hover( function() { $(this).addClass("hoverRow"); }, function() { $(this).removeClass("hoverRow"); }); }); // initializes the tabs - with cookie option // cookie option requires jquery.cookie.js $(function() { $("#tabs").tabs({ cookie: { name: 'hubTab_cookie', expires: 30 } }); }); +// make sure that a click onto "Public Hubs" doesn't jump to the tabs. +//$(document).ready(function() { + //$('a[href^="tabs-"]').on('click', function(e) { + //e.preventDefault(); + //}); +//}); // creates keyup event; listening for return key press $(document).ready(function() { $('#hubUrl').bind('keypress', function(e) { // binds listener to url field if (e.which === 13) { // listens for return key e.preventDefault(); // prevents return from also submitting whole form if (validateUrl($('#hubUrl').val())) $('input[name="hubAddButton"]').focus().click(); // clicks AddHub button } }); $('#validateHubUrl').bind('keypress', function(e) { // binds listener to url field if (e.which === 13) { // listens for return key e.preventDefault(); // prevents return from also submitting whole form if (validateUrl($('#validateHubUrl').val())) $('input[name="hubValidateButton"]').focus().click(); // clicks Validate Url button