SLING-461 Move Sling Console to Apache Felix/FELIX-562 Move OSGi Console to Apache Felix

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@657024 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/webconsole/src/main/resources/res/ui/admin.js b/webconsole/src/main/resources/res/ui/admin.js
new file mode 100644
index 0000000..3fe3697
--- /dev/null
+++ b/webconsole/src/main/resources/res/ui/admin.js
@@ -0,0 +1,152 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+
+
+/* shuts down server after [num] seconds */
+function shutdown(num, formname, elemid) {
+	var elem;
+	var canCount = document.getElementById;
+	if (canCount) {
+	    elem = document.getElementById(elemid);
+	    canCount = (typeof(elem) != "undefined" && typeof(elem.innerHTML) != "undefined");
+	}
+	var secs=" second";
+	var ellipsis="...";
+	if (num > 0) {
+		if (num != 1) {
+			secs+="s";
+		}
+		if (canCount) {
+		    elem.innerHTML=num+secs+ellipsis;
+		}
+		setTimeout('shutdown('+(--num)+', "'+formname+'", "'+elemid+'")',1000);
+	} else {
+	    document[formname].submit();
+	}
+}
+
+/* aborts server shutdown and redirects to [target] */
+function abort(target) {
+    top.location.href=target;
+}
+
+/* checks if values of [pass1] and [pass2] match */
+function checkPasswd(form, pass0, pass1, pass2) {
+    var check = false;
+    check = (form[pass0].value != form[pass1].value);
+    if (!check) {
+        alert("Old and new password must be different.");
+        form[pass1].value="";
+        form[pass2].value="";
+        form[pass1].focus();
+    }
+    check = (form[pass1].value == form[pass2].value);
+    if (!check) {
+        alert("Passwords did not match. Please type again.");
+        form[pass1].value="";
+        form[pass2].value="";
+        form[pass1].focus();
+    }
+    return check;
+}
+
+/* displays a date in the user's local timezone */
+function localDate(time) {
+    var date = time ? new Date(time) : new Date();
+    document.write(date.toLocaleString());
+}
+
+/* shows the about screen  */
+function showAbout() {
+// Temporarily disabled, as thee is no about.html page (fmeschbe, 20070330)
+//    var arguments = ABOUT_VERSION+";"+ABOUT_JVERSION+";"+ABOUT_MEM+";"+ABOUT_USED+";"+ABOUT_FREE;
+//    if (window.showModalDialog) {
+//        window.showModalDialog("about.html", arguments, "help: no; status: no; resizable: no; center: yes; scroll: no");
+//    } else {
+//        aboutWin = window.open("about.html?a="+arguments, "about", "width=500,height=420,modal,status=no,toolbar=no,menubar=no,personalbar=no");
+//    }
+}
+
+//-----------------------------------------------------------------------------
+// Ajax Support
+
+// request object, do not access directly, use getXmlHttp instead
+var xmlhttp = null;
+function getXmlHttp() {
+	if (xmlhttp) {
+		return xmlhttp;
+	}
+	
+	if (window.XMLHttpRequest) {
+		xmlhttp = new XMLHttpRequest();
+	} else if (window.ActiveXObject) {
+		try {
+			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
+		} catch (ex) {
+			try {
+				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
+			} catch (ex) {
+			}
+		}
+	}
+	
+	return xmlhttp;
+}
+
+function sendRequest(/* String */ method, /* url */ url, /* function */ callback) {
+    var xmlhttp = getXmlHttp();
+    if (!xmlhttp) {
+        return;
+    }
+    
+    if (xmlhttp.readyState < 4) {
+    	xmlhttp.abort();
+  	}
+  	
+  	if (!method) {
+  		method = 'GET';
+  	}
+  	
+  	if (!url) {
+  		url = document.location;
+  	} else if (url.charAt(0) == '?') {
+  		url = document.location + url;
+  	}
+  	
+    xmlhttp.open(method, url);
+    xmlhttp.onreadystatechange = handleResult;
+    xmlhttp.priv_callback = callback;
+    xmlhttp.send(null);
+  	
+}
+
+function handleResult() {
+    var xmlhttp = getXmlHttp();
+    if (!xmlhttp || xmlhttp.readyState != 4) {
+        return;
+    }
+    
+    var result = xmlhttp.responseText;
+    if (!result) {
+        return;
+    }
+
+	if (xmlhttp.priv_callback) {
+	    var obj = eval('(' + result + ')');
+	    xmlhttp.priv_callback(obj);
+	}
+}