68 lines
2.4 KiB
JavaScript
68 lines
2.4 KiB
JavaScript
/*
|
|
* Copyright 2014 Google Inc.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
|
* use this file except in compliance with the License. You may obtain a copy of
|
|
* the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
* License for the specific language governing permissions and limitations under
|
|
* the License.
|
|
*/
|
|
|
|
/**
|
|
* This startup script is used when we run superdevmode from an app server.
|
|
*/
|
|
(function($wnd, $doc){
|
|
// document.head does not exist in IE8
|
|
var $head = $doc.head || $doc.getElementsByTagName('head')[0];
|
|
// Compute some codeserver urls so as the user does not need bookmarklets
|
|
var hostName = $wnd.location.hostname;
|
|
var serverUrl = 'http://' + hostName + ':9876';
|
|
var module = 'createusers';
|
|
var nocacheUrl = serverUrl + '/recompile-requester/' + module;
|
|
|
|
// Insert the superdevmode nocache script in the first position of the head
|
|
var devModeScript = $doc.createElement('script');
|
|
devModeScript.src = nocacheUrl;
|
|
|
|
// Everybody except IE8 does fire an error event
|
|
// This means that we do not detect a non running SDM with IE8.
|
|
if (devModeScript.addEventListener) {
|
|
var callback = function() {
|
|
// Don't show the confirmation dialogue twice (multimodule)
|
|
if (!$wnd.__gwt__sdm__confirmed &&
|
|
(!$wnd.__gwt_sdm__recompiler || !$wnd.__gwt_sdm__recompiler.loaded)) {
|
|
$wnd.__gwt__sdm__confirmed = true;
|
|
if ($wnd.confirm(
|
|
"Couldn't load " + module + " from Super Dev Mode\n" +
|
|
"server at " + serverUrl + ".\n" +
|
|
"Please make sure this server is ready.\n" +
|
|
"Do you want to try again?")) {
|
|
$wnd.location.reload();
|
|
}
|
|
}
|
|
};
|
|
devModeScript.addEventListener("error", callback, true);
|
|
}
|
|
|
|
var injectScriptTag = function(){
|
|
$head.insertBefore(devModeScript, $head.firstElementChild || $head.children[0]);
|
|
};
|
|
|
|
if (/loaded|complete/.test($doc.readyState)) {
|
|
injectScriptTag();
|
|
} else {
|
|
//defer app script insertion until the body is ready
|
|
if($wnd.addEventListener){
|
|
$wnd.addEventListener('load', injectScriptTag, false);
|
|
} else{
|
|
$wnd.attachEvent('onload', injectScriptTag);
|
|
}
|
|
}
|
|
})(window, document);
|