diff options
Diffstat (limited to 'sca-java-1.x/branches/sca-java-1.5.2/modules/domain-manager/src/main/resources/workspace-gadget.html')
-rw-r--r-- | sca-java-1.x/branches/sca-java-1.5.2/modules/domain-manager/src/main/resources/workspace-gadget.html | 232 |
1 files changed, 232 insertions, 0 deletions
diff --git a/sca-java-1.x/branches/sca-java-1.5.2/modules/domain-manager/src/main/resources/workspace-gadget.html b/sca-java-1.x/branches/sca-java-1.5.2/modules/domain-manager/src/main/resources/workspace-gadget.html new file mode 100644 index 0000000000..3b8a32c940 --- /dev/null +++ b/sca-java-1.x/branches/sca-java-1.5.2/modules/domain-manager/src/main/resources/workspace-gadget.html @@ -0,0 +1,232 @@ +<!-- + * 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> + +<link rel="stylesheet" type="text/css" href="manager.css"> +</head> + +<body> + <div id="workspace"> + + <form id="workspaceForm"> + <div id="contributions" ></div> + <br> + ><a href="" id="addContributionLink">Add</a> + <a href="" id="deleteContributionLink">Delete</a> + </form> + + <div id="newContribution" style="visibility: hidden;"> + <form id="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 id="addContributionButton" type="button" value="Add" /> + </form> + </div> + + </div> +</body> + +<script type="text/javascript"> + + //@Reference + var workspace = new tuscany.sca.Reference("workspace"); + + var gadget = gadget(window, document); + if (gadget.showDependencies == null) { + gadget.showDependencies = true; + } + + var workspaceForm = elementByID(gadget, 'workspaceForm'); + var contributionsElement = elementByID(gadget, 'contributions'); + var newContributionElement = elementByID(gadget, 'newContribution'); + var newContributionForm = elementByID(gadget, 'newContributionForm'); + + var suggestedContributions = new Array(); + + 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>'; + if (gadget.showDependencies) { + contributions += '<th>Dependencies</td>'; + } + if (gadget.showDeployables) { + contributions += '<th>Deployable Composites</th>'; + } + contributions += '</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); + } + + if (gadget.showDependencies) { + contributions += '<td class=tdw>' + dependencies + problems + ' </td>'; + } + if (gadget.showDeployables) { + contributions += '<td class=tdw>' + deployables + '</td>'; + } + contributions += '</tr>'; + } + contributions += '</table>'; + contributionsElement.innerHTML = contributions; + } + } + + 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(workspaceForm.contributions); + for (var i=0; i < contributions.length; i++) { + if (contributions[i].checked) { + var id = contributions[i].value; + alert("hey " + id); + workspace.del(id, deleteContributionResponse); + } + } + return false; + } + + function deleteContributionResponse() { + getContributions(); + } + + function addContribution() { + var id = newContributionForm.contributionID.value; + var location = 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() { + newContributionForm.contributionID.value = ""; + 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 == newContributionForm.contributionID.value) { + var location = uri.substring(uri.indexOf(':') +1); + locations[location] = location; + } + } + return array(locations); + } + + function toggleNewContribution() { + var visibility = newContributionElement.style.visibility; + if (visibility == 'hidden') { + newContributionElement.style.visibility = 'visible'; + } else { + newContributionElement.style.visibility = 'hidden'; + } + return false; + } + + elementByID(gadget, 'deleteContributionLink').onclick = deleteContribution; + elementByID(gadget, 'addContributionLink').onclick = toggleNewContribution; + elementByID(gadget, 'addContributionButton').onclick = addContribution; + + getContributions(); + getSuggestedContributions(); + suggest(newContributionForm.contributionID, suggestContributionIDs); + suggest(newContributionForm.contributionLocation, suggestContributionLocations); + +</script> +</html> |