diff options
author | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2008-07-30 07:59:46 +0000 |
---|---|---|
committer | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2008-07-30 07:59:46 +0000 |
commit | 744d23fe6f4a293015272943f90b78a8825a5f16 (patch) | |
tree | dd33900e9e05c35dae9b24415ee56aa33ef25db9 /java/sca/modules/domain-manager/src/main/resources/workspace-gadget.html | |
parent | c51cbe1053a881ebc6719e0d76b632646f9740e6 (diff) |
Started to refactor the domain manager UI into smaller independently reusable widgets. Tested OK with Firefox 2 and 3 and Safari 3, still debugging a javascript error with IE 7. Changed the HTTP binding to implement OptimizableBinding as was done for the Atom Binding, to allow Widgets to get the correct reference binding URIs from the target services. This is temporary until the domain manager app is migrated from SCADomain to NodeFactory.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@680931 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca/modules/domain-manager/src/main/resources/workspace-gadget.html')
-rw-r--r-- | java/sca/modules/domain-manager/src/main/resources/workspace-gadget.html | 203 |
1 files changed, 203 insertions, 0 deletions
diff --git a/java/sca/modules/domain-manager/src/main/resources/workspace-gadget.html b/java/sca/modules/domain-manager/src/main/resources/workspace-gadget.html new file mode 100644 index 0000000000..41e5d6b475 --- /dev/null +++ b/java/sca/modules/domain-manager/src/main/resources/workspace-gadget.html @@ -0,0 +1,203 @@ +<!-- + * 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. +--> +<html> +<head> +<title>SCA Domain - Contributions</title> + +<script type="text/javascript" src="../workspace-gadget/workspace-gadget.js"></script> +<script type="text/javascript" src="utils.js"></script> + +<script language="JavaScript"> + + //@Reference + var workspace = new Reference("workspace"); + + function getContributions() { + workspace.get("", getContributionsResponse); + } + + function getContributionsResponse(feed) { + if (feed != null) { + var entries = feed.getElementsByTagName("entry"); + var contributions = ""; + contributions += '<table width="100%">'; + contributions += '<tr><th>Contribution</th><th>Dependencies</td><th>Deployable Composites</th></tr>'; + for (var i=0; i<entries.length; i++) { + var id = entries[i].getElementsByTagName("id")[0].firstChild.nodeValue; + var location = entries[i].getElementsByTagName("link")[0].getAttribute("href"); + var content = ''; + if (entries[i].getElementsByTagName("content")[0].firstChild != null) { + content = entries[i].getElementsByTagName("content")[0].firstChild.nodeValue; + } + + contributions += '<tr>'; + contributions += '<td><input name="contributions" type="checkbox" value="' + id + '">' + + '<a href=\"' + location + '\">' + id + '</a></td>'; + + var dependencies = ''; + var bs = content.indexOf('<span id="dependencies">'); + if (bs != -1) { + var es = content.indexOf('</span>', bs); + dependencies = content.substring(bs, es + 7); + } + + var deployables = ''; + var bs = content.indexOf('<span id="deployables">'); + if (bs != -1) { + var es = content.indexOf('</span>', bs); + deployables = content.substring(bs, es + 7); + } + + var problems = ""; + var bs = content.indexOf('<span id="problems" '); + if (bs != -1) { + var es = content.indexOf('</span>', bs); + if (dependencies.length != 0) { + problems = '<br>'; + } + problems += content.substring(bs, es + 7); + } + + contributions += '<td class=tdw>' + dependencies + problems + ' </td>'; + contributions += '<td class=tdw>' + deployables + '</td>'; + contributions += '</tr>'; + } + contributions += '</table>'; + document.getElementById("contributions").innerHTML = contributions; + } + } + + var suggestedContributions = new Array(); + + function getSuggestedContributions() { + workspace.get("?suggestions=true", getSuggestedContributionsResponse); + } + + function getSuggestedContributionsResponse(feed) { + suggestedContributions = new Array(); + if (feed != null) { + var entries = feed.getElementsByTagName("entry"); + for (var i=0; i<entries.length; i++) { + var id = entries[i].getElementsByTagName("id")[0].firstChild.nodeValue; + var location = entries[i].getElementsByTagName("link")[1].getAttribute("href"); + suggestedContributions[i] = id + ':' + location; + } + } + } + + function deleteContribution() { + var contributions = array(document.workspaceForm.contributions); + for (var i=0; i < contributions.length; i++) { + if (contributions[i].checked) { + var id = contributions[i].value; + workspace.del(id, deleteContributionResponse); + } + } + } + + function deleteContributionResponse() { + getContributions(); + } + + function addContribution() { + var id = document.newContributionForm.contributionID.value; + var location = document.newContributionForm.contributionLocation.value; + var entry = '<entry xmlns="http://www.w3.org/2005/Atom">' + + '<title>Contribution - ' + id +'</title>' + + '<id>' + id + '</id>' + + '<link href="' + location + '" />' + + '</entry>'; + workspace.post(entry, addContributionResponse); + } + + function addContributionResponse() { + document.newContributionForm.contributionID.value = ""; + document.newContributionForm.contributionLocation.value = ""; + getContributions(); + } + + function suggestContributionIDs() { + var ids = new Array(); + for (var i=0; i<suggestedContributions.length; i++) { + var uri = suggestedContributions[i]; + var id = uri.substring(0, uri.indexOf(':')); + ids[id] = id; + } + return array(ids); + } + + function suggestContributionLocations() { + var locations = new Array(); + for (var i=0; i<suggestedContributions.length; i++) { + var uri = suggestedContributions[i]; + var id = uri.substring(0, uri.indexOf(':')); + if (id == document.newContributionForm.contributionID.value) { + var location = uri.substring(uri.indexOf(':') +1); + locations[location] = location; + } + } + return array(locations); + } + + function init() { + getContributions(); + getSuggestedContributions(); + suggest(document.newContributionForm.contributionID, suggestContributionIDs); + suggest(document.newContributionForm.contributionLocation, suggestContributionLocations); + } + +</script> + +<link rel="stylesheet" type="text/css" href="manager.css"> +</head> + +<body onload="init()"> + <div id="workspace"> + + <span class=hd1> + SCA Domain<br><br> + Contributions</b> <a href="/workspace/"><img src="icons/feed-icon.png" border="0"></a> </span> + <br><br> + Here is the list of SCA contributions currently available in your SCA domain. + <br><br> + + <form name="workspaceForm"> + <div id="contributions" ></div> + <br> + <input type="button" onClick="deleteContribution()" value="Delete" /> + </form> + + <br><br> + + <form name="newContributionForm"> + <table width="100%"> + <tr><th>Add Contribution</th></tr> + <tr><td>Add an SCA contribution containing your application artifacts to the SCA domain.</td></tr> + </table> + <br> + <table> + <tr><td>Contribution URI:</td><td><input type="text" name="contributionID" size="50"/></td></td><td>e.g. yourcontrib, http://yourcontrib</td></tr> + <tr><td>Location:</td><td><input type="text" name="contributionLocation" size="50"/></td></td><td>e.g. http://host/yourjar.jar, file:/yourdir, file:/yourjar.jar</td></tr> + </table> + <input type="button" onClick="addContribution()" value="Add" /> + </form> + + </div> +</body> +</html> |