You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by st...@apache.org on 2015/02/17 21:54:57 UTC

[08/26] incubator-taverna-server git commit: temporarily empty repository

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/27cbb9cb/server-webapp/src/main/resources/static/admin.js
----------------------------------------------------------------------
diff --git a/server-webapp/src/main/resources/static/admin.js b/server-webapp/src/main/resources/static/admin.js
deleted file mode 100644
index c2c41bf..0000000
--- a/server-webapp/src/main/resources/static/admin.js
+++ /dev/null
@@ -1,549 +0,0 @@
-// Wrappers round AJAX calls to simplify *most* of this stuff
-
-/** How to retrieve text asynchronously. */
-function getText(u, done) {
-	$.ajax({
-		type : "GET",
-		url : u,
-		async : true,
-		cache : false,
-		accept : "text/plain",
-		dataType : "text",
-		success : done
-	});
-}
-/** How to retrieve JSON asynchronously. */
-function getJSON(u, done) {
-	$.ajax({
-		type : "GET",
-		url : u,
-		async : true,
-		cache : false,
-		dataType : "json",
-		accept : "application/json",
-		success : done
-	});
-}
-/** How to send a PUT of text asynchronously. */
-function putText(u, val, done) {
-	$.ajax({
-		type : "PUT",
-		url : u,
-		async : false,
-		cache : false,
-		data : val,
-		contentType : "text/plain",
-		dataType : "text",
-		processData : false,
-		success : done,
-		error : function(jqXHR, textStatus, errorThrown) {
-			alert(errorThrown);
-		}
-	});
-}
-/** How to send a PUT of XML asynchronously. */
-function putXML(u, xml, done) {
-	$.ajax({
-		type : "PUT",
-		url : u,
-		async : false,
-		cache : false,
-		contentType : "application/xml",
-		data : new XMLSerializer().serializeToString(xml),
-		success : done,
-		error : function(jqXHR, textStatus, errorThrown) {
-			alert(errorThrown);
-		}
-	});
-}
-/** How to send a POST of XML asynchronously. */
-function postXML(u, xml, done) {
-	$.ajax({
-		type : "POST",
-		url : u,
-		async : false,
-		cache : false,
-		contentType : "application/xml",
-		data : new XMLSerializer().serializeToString(xml),
-		success : done,
-		error : function(jqXHR, textStatus, errorThrown) {
-			alert(errorThrown);
-		}
-	});
-}
-/** How to send a DELETE asynchronously. */
-function deleteUrl(u, done) {
-	$.ajax({
-		type : "DELETE",
-		url : u,
-		async : true,
-		cache : false,
-		success : done,
-		error : function(jqXHR, textStatus, errorThrown) {
-			alert(errorThrown);
-		}
-	});
-}
-
-/** Locates a URL with respect to the administrative REST interface. */
-function where(tail) {
-	return $("#admin")[0].href + "/" + tail;
-}
-
-// Make an XML element structure
-// Derived from hack on Stack Overflow, but with extra tinkering
-/** Function called to create a node in an XML structure. */
-var Node;
-/** Function called to create nodes in an XML structure from an array. */
-var NodeAll;
-(function() {
-	var doc = document.implementation.createDocument(null, null, null);
-	var adminNS = "http://ns.taverna.org.uk/2010/xml/server/admin/";
-	Node = function() {
-		var node = doc.createElementNS(adminNS, arguments[0]), child;
-		for ( var i = 1; i < arguments.length; i++) {
-			child = arguments[i];
-			if (child == undefined)
-				continue;
-			if (typeof child != 'object')
-				child = doc.createTextNode(child.toString());
-			node.appendChild(child);
-		}
-		return node;
-	};
-	NodeAll = function(wrapperElem, wrappedElem, elements) {
-		var node = doc.createElementNS(adminNS, wrapperElem);
-		for ( var i = 0; i < elements.length; i++) {
-			var child = doc.createElementNS(adminNS, wrappedElem);
-			var text = doc.createTextNode(elements[i]);
-			child.appendChild(text);
-			node.appendChild(child);
-		}
-		return node;
-	};
-})();
-
-/** The IDs of boolean-coupled buttons. */
-var buttonlist = [ "allowNew", "logFaults", "logWorkflows", "generateProvenance" ];
-/** The IDs of values that track server variables without setting things. */
-var readonlies = [ "invokationCount", "lastExitCode", "runCount", "startupTime", "operatingCount" ];
-/** The IDs of text/numeric-coupled entries. */
-var entries = [ "defaultLifetime", "executeWorkflowScript", "javaBinary",
-		"registrationPollMillis", "registrationWaitSeconds", "registryHost",
-		"registryPort", "runLimit", "runasPasswordFile", "serverForkerJar",
-		"serverWorkerJar", "usageRecordDumpFile", "operatingLimit",
-		"registryJar" ];
-/** Cached information about users. */
-var userinfo = [];
-/** Extra arguments to pass to the runtime. */
-var extraAry = [];
-
-/** How to update the read-only fields; will be called periodically */
-function updateRO() {
-	$.each(readonlies, function(idx, val) {
-		var widget = $("#" + val);
-		getText(where(val), function(data) {
-			widget.html(data);
-		});
-	});
-	getJSON(where("factoryProcessMapping"),
-			function(data) {
-				var ary = data.stringList.string;
-				var tbl = $("#factoryProcessMapping");
-				tbl.html("<tr><th>User<th>ID</tr>");
-				if (ary != undefined)
-					for ( var i = 0; i < ary.length - 1; i += 2)
-						tbl.append("<tr><td>" + ary[i] + "<td>" + ary[i + 1]
-								+ "</tr>");
-			});
-}
-
-/**
- * Generate a user row with suitable indices, but no content (it will be pushed
- * into the row later).
- */
-function userRowHTML(idx) {
-	// USER NAME
-	var content = "<td><span id='username" + idx
-			+ "' title='The login name of the user.'></span></td>";
-	// SYSTEM ID MAPPING
-	content += "<td><input id='userlocal"
-			+ idx
-			+ "' title='The system username to run workflows as, or blank for default.' /></td>";
-	// ENABLED
-	content += "<td><label title='Is this user allowed to log in?' for='useron"
-			+ idx + "'>Enabled</label>" + "<input type='checkbox' id='useron"
-			+ idx + "' /></td>";
-	// ADMIN
-	content += "<td><label title='Is this user an admin (allowed to access this page)?' for='useradmin"
-			+ idx
-			+ "'>Admin</label>"
-			+ "<input type='checkbox' id='useradmin"
-			+ idx + "' /></td>";
-	// SET PASSWORD
-	content += "<td><button title='Set the password for this user.' id='userpass"
-			+ idx + "'>Set Password</button></td>";
-	// DELETE
-	content += "<td><button title='Delete this user. Take care to not delete yourself!' id='userdel"
-			+ idx + "'>Delete</button></td>";
-
-	return "<tr id='usersep" + idx + "' class='userrows'>"
-			+ "<td colspan=6><hr></td></tr>" + "<tr id='userrow" + idx
-			+ "' class='userrows'>" + content + "</tr>";
-}
-
-/** How to get the list of permitted workflows; called on demand */
-function refreshWorkflows() {
-	var wftable = $("#workflows"), wfbut = $("#saveWorkflows"), wfbut1 = $("#emptyWorkflows"), wfref = $("#refreshWorkflows");
-	wfbut.button("disable");
-	wfbut1.button("disable");
-	wfref.button("disable");
-	getJSON(where("permittedWorkflowURIs"), function(data) {
-		var s = "";
-		$.each(data.stringList.string || [], function(idx, str) {
-			s += $.trim(str) + "\n";
-		});
-		wftable.val($.trim(s));
-		wfbut.button("enable");
-		wfbut1.button("enable");
-		wfref.button("enable");
-	});
-}
-/** How to set the list of permitted workflows; called when the user clicks */
-function saveWorkflows() {
-	var wftable = $("#workflows"), wfbut = $("#saveWorkflows"), wfbut1 = $("#emptyWorkflows");
-	var xml = NodeAll("stringList", "string", wftable.val().split("\n"));
-	wfbut.button("disable");
-	wfbut1.button("disable");
-	putXML(where("permittedWorkflowURIs"), xml, function() {
-		refreshWorkflows();
-	});
-}
-
-/** How to empty the list of permitted workflows; called when the user clicks */
-function emptyWorkflows() {
-        var wftable = $("#workflows"), wfbut = $("#saveWorkflows"), wfbut1 = $("#emptyWorkflows");
-        var xml = NodeAll("stringList", "string", "");
-        wfbut.button("disable");
-        wfbut1.button("disable");
-        putXML(where("permittedWorkflowURIs"), xml, function() {
-                refreshWorkflows();
-        });
-}
-
-/** How to update the table of users; called on demand */
-function refreshUsers() {
-	var usertable = $("#userList");
-	getJSON(where("users"), function(data) {
-		$(".userrows").remove();
-		userinfo = [];
-		$.each(data.userList.user, function(idx, url) {
-			usertable.append(userRowHTML(idx));
-			var i = idx;
-			userinfo[i] = {
-				url : url
-			};
-			getJSON(url, function(data) {
-				var model = userinfo[i].model = data.userDesc;
-				$("#username" + i).html(model.username);
-				$("#userlocal" + i).val(model.localUserId).change(function() {
-					updateUser(i, "localUserId", $(this).val());
-				});
-				$("#useron" + i).button().attr("checked", model.enabled)
-						.button("refresh").click(
-								function() {
-									updateUser(i, "enabled", $(this).attr(
-											"checked") == "checked");
-								});
-				$("#useradmin" + i).button().attr("checked", model.admin)
-						.button("refresh").click(
-								function() {
-									updateUser(i, "admin", $(this).attr(
-											"checked") == "checked");
-								});
-				$("#userpass" + i).button({
-					icons : {
-						primary : "ui-icon-alert"
-					}
-				}).click(function() {
-					updatePasswordUser(i);
-				});
-				$("#userdel" + i).button({
-					icons : {
-						primary : "ui-icon-trash"
-					},
-					text : false
-				}).click(function() {
-					deleteUser(i);
-				});
-			});
-			return true;
-		});
-	});
-}
-
-/** How to delete a user by index (with dialog) */
-function deleteUser(idx) {
-	$("#dialog-confirm").dialog({
-		modal : true,
-		autoOpen : false,
-		buttons : {
-			"OK" : function() {
-				$(this).dialog("close");
-				deleteUrl(userinfo[idx].url, function() {
-					refreshUsers();
-				});
-			},
-			"Cancel" : function() {
-				$(this).dialog("close");
-			}
-		}
-	});
-	$("#dialog-confirm").dialog("open");
-}
-
-/** How to update a user's password by index (with dialog) */
-function updatePasswordUser(idx) {
-	$("#change-password").val("");
-	$("#change-password2").val("");
-	$("#dialog-password").dialog({
-		modal : true,
-		autoOpen : false,
-		buttons : {
-			"OK" : function() {
-				$(this).dialog("close");
-				var pass = $("#change-password").val();
-				var pass2 = $("#change-password2").val();
-				$("#change-password").val("");
-				$("#change-password2").val("");
-				if (pass.equals(pass2))
-					updateUser(idx, "password", pass);
-			},
-			"Cancel" : function() {
-				$(this).dialog("close");
-				$("#change-password").val("");
-			}
-		}
-	});
-	$("#dialog-password").dialog("open");
-}
-
-/** How to set a specific field of a user record */
-function updateUser(idx, field, value) {
-	var model = userinfo[idx].model;
-	var xml = Node("userDesc", Node("username", model.username),
-			field == "password" ? Node("password", value) : undefined,
-			field == "localUserId" ? Node("localUserId", value)
-					: model.localUserId == undefined ? undefined : Node(
-							"localUserId", model.localUserId), Node("enabled",
-					field == "enabled" ? value : model.enabled), Node("admin",
-					field == "admin" ? value : model.admin));
-	putXML(userinfo[idx].url, xml, function() {
-		refreshUsers();
-	});
-}
-
-/** How to configure all the buttons and entries */
-function connectButtonsAndEntries() {
-	$.each(buttonlist, function(idx, val) {
-		var widget = $("#" + val);
-		var u = where(val);
-		widget.button();
-		getText(u, function(data) {
-			widget.attr('checked', (data + "") != "false");
-			widget.button("refresh");
-		});
-		widget.change(function() {
-			putText(u, widget.attr("checked") == "checked", function(data) {
-				widget.attr('checked', (data + "") != "false");
-				widget.button("refresh");
-				return true;
-			});
-		});
-	});
-	$.each(entries, function(idx, val) {
-		var widget = $("#" + val);
-		var u = where(val);
-		getText(u, function(data) {
-			widget.val(data);
-		});
-		widget.change(function() {
-			putText(u, widget.val(), function(data) {
-				widget.val(data);
-				return true;
-			});
-		});
-	});
-}
-
-/** What happens when the user tries to make a new user */
-function makeNewUser() {
-	var sysid = $("#newSysID").val();
-	var newuserinfo = {
-		admin : $("#newAdmin").attr("checked") == "checked",
-		enabled : $("#newEnabled").attr("checked") == "checked",
-		username : $("#newUsername").val(),
-		password : $("#newPassword").val()
-	};
-	// Blank out the password immediately!
-	$("#newPassword").val("");
-	if (sysid.length > 0) {
-		newuserinfo.localUserId = sysid;
-	}
-	if (newuserinfo.username == "" || newuserinfo.password == "") {
-		alert("Won't create user; need a username and a password!");
-		return;
-	}
-	var xml = newuserinfo = Node("userDesc", Node("username",
-			newuserinfo.username), Node("password", newuserinfo.password),
-			newuserinfo.localUserId == undefined ? undefined : Node(
-					"localUserId", newuserinfo.localUserId), Node("enabled",
-					newuserinfo.enabled), Node("admin", newuserinfo.admin));
-	postXML(where("users"), xml, function() {
-		refreshUsers();
-	});
-}
-
-/** Handle the extra arguments */
-function loadExtraArgs() {
-	getJSON(where("extraArguments"),
-			function(data) {
-				var rows = data.stringList.string || [];
-				if ((typeof rows) == "string")
-					rows = [ rows ];
-				$(".extraargrow").remove();
-				extraAry = rows;
-				var i;
-				function row() {
-					var buf = "<tr class='extraargrow'>";
-					for ( var i = 1; i < arguments.length; i++)
-						buf += "<td>" + arguments[i] + "</td>";
-					return $(arguments[0]).append(buf + "</tr>");
-				}
-				function delbutn(id, what) {
-					return "<button id='" + id + "' title='Delete this " + what
-							+ ".'>Del</button>";
-				}
-				for (i = 0; i < extraAry.length; i++) {
-					var rowid = "extradel" + i;
-					if (rows[i].match("^-D")) {
-						var m = rows[i].match("^-D([^=]*)=(.*)$");
-						row("#extraArguments-prop", delbutn(rowid,
-								"property assignment"), "<tt><b>-D</b>" + m[1]
-								+ "<b>=</b>" + m[2] + "</tt>");
-					} else if (rows[i].match("-E")) {
-						var m = rows[i].match("^-E([^=]*)=(.*)$");
-						row("#extraArguments-env", delbutn(rowid,
-								"environment assignment"), "<tt><b>-E</b>"
-								+ m[1] + "<b>=</b>" + m[2] + "</tt>");
-					} else {
-						var m = rows[i].match("^-J(.*)$");
-						row("#extraArguments-runtime", delbutn(rowid,
-								"runtime parameter"), "<tt><b>-J</b>" + m[1]
-								+ "</tt>");
-					}
-					$("#" + rowid).button({
-						icons : {
-							primary : "ui-icon-trash"
-						},
-						text : false
-					}).click(
-							(function(row) {
-								return function() {
-									extraAry.splice(row, 1);
-									var xml = NodeAll("stringList", "string",
-											extraAry);
-									putXML(where("extraArguments"), xml,
-											function() {
-												loadExtraArgs();
-											});
-								};
-							})(i));
-				}
-			});
-}
-
-/** Run a dialog for creating an extra argument. */
-function addExtraArg(dialogId, prefix, part1id, part2id) {
-	$(dialogId).dialog({
-		modal : true,
-		autoOpen : false,
-		buttons : {
-			"OK" : function() {
-				$(this).dialog("close");
-				var str = prefix + $(part1id).val();
-				if (part2id != undefined)
-					str += "=" + $(part2id).val();
-				extraAry.push(str);
-				var xml = NodeAll("stringList", "string", extraAry);
-				putXML(where("extraArguments"), xml, function() {
-					loadExtraArgs();
-				});
-			},
-			"Cancel" : function() {
-				$(this).dialog("close");
-			}
-		}
-	});
-	$(dialogId).dialog("open");
-}
-
-/** Start everything going on page load */
-$(function() {
-	// Must be done in this order because the accordion is inside a tab
-	$("#a-worker").accordion({
-		collapsible : true,
-		fillSpace : true,
-		autoHeight : false
-	});
-	$("#body").tabs({
-		selected : 0
-	});
-	$("#saveWorkflows").button({
-		disabled : true
-	}).click(function(event) {
-		saveWorkflows();
-		event.preventDefault();
-	});
-	$("#refreshWorkflows").button({
-		disabled : true
-	}).click(function(event) {
-		refreshWorkflows();
-		event.preventDefault();
-	});
-	$("#emptyWorkflows").button({
-                disabled : true
-        }).click(function(event) {
-                emptyWorkflows();
-                event.preventDefault();
-        });
-
-	// Make the link to the list of usage records point correctly
-	// Original plan called for browsable table, but that's too slow
-	$("#ur").attr("href", where("usageRecords"));
-
-	connectButtonsAndEntries();
-	updateRO();
-	setInterval(updateRO, 30000);
-	refreshUsers();
-	refreshWorkflows();
-	$("#newEnabled").button();
-	$("#newAdmin").button({
-		icons : {
-			primary : "ui-icon-alert"
-		}
-	});
-	$("#makeNewUser").button().click(function() {
-		makeNewUser();
-	});
-	$("#extra-prop-add").button().click(function() {
-		addExtraArg("#dialog-property", "-D", "#prop-key", "#prop-value");
-	});
-	$("#extra-env-add").button().click(function() {
-		addExtraArg("#dialog-environment", "-E", "#env-key", "#env-value");
-	});
-	$("#extra-run-add").button().click(function() {
-		addExtraArg("#dialog-runtime", "-J", "#runtime-value");
-	});
-	loadExtraArgs();
-});