/** * Installation javascript for Gallery * * $Id$ */ function display_error(parentElt, text) { var div = document.createElement('div'); div.setAttribute('id', 'step2'); div.style.display = 'none'; div.style.position = 'relative'; div.innerHTML = '\ '+text+'\ '; parentElt.appendChild(div); Effect.Appear('div') } function open_http_request() { var http_request = false; if ( window.XMLHttpRequest ) { // Mozilla, Safari, ... http_request = new XMLHttpRequest(); if ( http_request.overrideMimeType) http_request.overrideMimeType('text/xml'); } else if ( windows.ActiveXObject ) { // IE try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch ( e ) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch ( e ) {} } } return http_request; } function begin_download() { var pane = document.getElementById('pane'); Effect.SlideUp('step1'); var step2 = document.createElement('div'); step2.setAttribute('id', 'step2'); step2.style.display = 'none'; step2.style.position = 'relative'; step2.innerHTML = '\

\ \
\ SiteComponents is downloading Gallery. Please wait.

\
\ '; pane.appendChild(step2); Effect.Appear('step2') var http_request = open_http_request(); if ( !http_request ) { display_error("Could not initiate download request. Please install manually."); return; } var statusTimer; http_request.onreadystatechange = function() { try { if ( http_request.readyState == 4 ) { if ( http_request.status == 200 ) { var xmldoc = http_request.responseXML; var resultCode = xmldoc.getElementsByTagName('resultcode').item(0).firstChild.data; var resultString = xmldoc.getElementsByTagName('resultstring').item(0).firstChild.data; if ( resultCode == 0 ) { // Success clearTimeout(statusTimer); begin_extraction(); return; } else { clearTimeout(statusTimer); display_error(resultString); return; } } else { display_error("There was a problem initiating the download request. Please install manually."); return; } } } catch ( e ) { display_error("There was a problem initiating the download request. Please install manually."); } }; http_request.open('GET', "?setup&command=download", true); http_request.send(null); statusTimer = setTimeout(update_download_status, 1000, document.getElementById('status')); } function update_download_status(elt) { var http_request = open_http_request(); if ( !http_request ) { setTimeout(update_download_status, 1000, elt); return; } http_request.onreadystatechange = function() { try { if ( http_request.readyState == 4 ) { if ( http_request.status == 200 ) { var xmldoc = http_request.responseXML; var resultCode = xmldoc.getElementsByTagName('resultcode').item(0).firstChild.data; var resultString = xmldoc.getElementsByTagName('resultstring').item(0).firstChild.data; if ( resultCode == 0 ) { // Success elt.innerHTML = (resultString / 1000) + " kB"; } } } } catch ( e ) { } setTimeout(update_download_status, 1000, elt); return; }; http_request.open('GET', "?setup&command=get_download_status", true); http_request.send(null); } function begin_extraction() { var pane = document.getElementById('pane'); Effect.SlideUp('step2'); var step3 = document.createElement('div'); step3.setAttribute('id', 'step3'); step3.style.display = 'none'; step3.style.position = 'relative'; step3.innerHTML = '\

\ \
\ Please wait while SiteComponents extracts the Gallery package.

\ '; pane.appendChild(step3); Effect.Appear('step3') var http_request = open_http_request(); if ( !http_request ) { display_error("Could not initiate extraction request. Please install manually."); return; } http_request.onreadystatechange = function() { try { if ( http_request.readyState == 4 ) { if ( http_request.status == 200 ) { var xmldoc = http_request.responseXML; var resultCode = xmldoc.getElementsByTagName('resultcode').item(0).firstChild.data; var resultString = xmldoc.getElementsByTagName('resultstring').item(0).firstChild.data; if ( resultCode == 0 ) { // Success show_installation(); return; } else { display_error(resultString); return; } } else { display_error("There was a problem initiating the extraction request. Please install manually."); return; } } } catch ( e ) { display_error("There was a problem initiating the extraction request. Please install manually."); } }; http_request.open('GET', "?setup&command=extract", true); http_request.send(null); } function show_installation() { var pane = document.getElementById('pane'); Effect.SlideUp('step3'); var step4 = document.createElement('div'); step4.setAttribute('id', 'step4'); step4.style.display = 'none'; step4.style.position = 'relative'; step4.innerHTML = '\ Initial installation complete.

\ Please visit the Gallery setup page to proceed.\ '; pane.appendChild(step4); Effect.Appear('step4') }