| /* |
| * 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. |
| */ |
| var org; |
| if (!org) { |
| org = {}; |
| } |
| else if (typeof org != "object") { |
| throw new Error("org already exists and is not an object"); |
| } |
| |
| if (!org.apache) { |
| org.apache = {}; |
| } |
| else if (typeof org.apache != "object") { |
| throw new Error("org.apache already exists and is not an object"); |
| } |
| |
| if (!org.apache.ode) { |
| org.apache.ode = {}; |
| } |
| else if (typeof org.apache.ode != "object") { |
| throw new Error("org.apache.ode already exists"); |
| } |
| |
| if(org.apache.ode.XHRObject){ |
| throw new Error("org.apache.ode.XHRObject already exists"); |
| } |
| |
| org.apache.ode.XHRObject = {}; |
| |
| (function (){ |
| var msxml_progid = [ |
| 'Microsoft.XMLHTTP', |
| 'MSXML2.XMLHTTP.3.0', |
| 'MSXML2.XMLHTTP' |
| ] |
| function createXhrObject(){ |
| var xhr; |
| try |
| { |
| // Instantiates XMLHttpRequest in non-IE browsers and assigns to http. |
| xhr = new XMLHttpRequest(); |
| } |
| catch(e) |
| { |
| for(var i=0; i<msxml_progid.length; ++i){ |
| try |
| { |
| // Instantiates XMLHttpRequest for IE and assign to http |
| xhr = new ActiveXObject(msxml_progid[i]); |
| break; |
| } |
| catch(e){} |
| } |
| } |
| finally |
| { |
| return xhr; |
| } |
| } |
| |
| function xhrSyncGetRequest(url, text){ |
| var request = createXhrObject(); |
| request.open('GET', url, false); |
| request.send(null); |
| |
| if (request.status == 200) { // Make sure there were no errors // Make sure the response is an XML document |
| if(text == true){ |
| return request.responseText; |
| } |
| if (request.getResponseHeader("Content-Type").match(/text\/xml/) != null || request.getResponseHeader("Content-Type").match(/application\/xml/) != null) { |
| return request.responseXML; |
| }else{ |
| return request.responseText; |
| } |
| |
| }else { |
| aler("Error occurred during the GET request"); |
| return null; |
| } |
| } |
| var ns = org.apache.ode.XHRObject; |
| ns.xhrSyncGetRequest = xhrSyncGetRequest; |
| |
| })(); |
| |
| if (org.apache.ode.DOMHelper) { |
| throw new Error("org.apache.ode.DOMHelper already exists"); |
| } |
| |
| // Utility methods for handling DOM in cross browser way. |
| org.apache.ode.DOMHelper = {}; |
| |
| (function(){ |
| |
| function getElementsByTagName(tagName, ns, prefix, scope){ |
| var elementListForReturn = scope.getElementsByTagName(prefix+":"+tagName); |
| if(elementListForReturn.length == 0){ |
| elementListForReturn = scope.getElementsByTagName(tagName); |
| if(elementListForReturn.length == 0){ |
| elementListForReturn = scope.getElementsByTagName("ns:"+tagName); |
| if(elementListForReturn.length == 0 && document.getElementsByTagNameNS){ |
| elementListForReturn = scope.getElementsByTagNameNS(ns, tagName); |
| } |
| } |
| } |
| |
| return elementListForReturn; |
| } |
| |
| // Find all Text nodes at or beneath the node n. |
| // Concatenate their content and return it as a string. |
| function getText(n){ |
| var strings = []; |
| getStrings(n, strings); |
| return strings.join(""); |
| |
| function getStrings(n, strings){ |
| if (n.nodeType == 3 /* Node.TEXT_NODE */) |
| strings.push(n.data); |
| else if (n.nodeType == 1 /* Node.ELEMENT_NODE */) { |
| for (var m = n.firstChild; m != null; m = m.nextSibling) { |
| getStrings(m, strings); |
| } |
| } |
| } |
| } |
| |
| var ns = org.apache.ode.DOMHelper; |
| ns.getElementsByTagName = getElementsByTagName; |
| ns.getText = getText; |
| })(); |
| |
| if(org.apache.ode.Widgets){ |
| throw new Error("org.apache.ode.Widgets already exists"); |
| } |
| |
| org.apache.ode.Widgets = {}; |
| |
| (function(){ |
| function operationConfirmation(msg, handleYes, handleNo){ |
| |
| var handleYesWrapper= function(){ |
| this.hide(); |
| handleYes(); |
| |
| } |
| |
| var handleNoWrapper = function(){ |
| this.hide(); |
| handleNo(); |
| |
| } |
| |
| var simpleDiag = new YAHOO.widget.SimpleDialog('confimationdialogue',{ |
| width:'350px', |
| fixedcenter:true, |
| visible:true, |
| draggable:true, |
| close:false, |
| text:msg, |
| icon:YAHOO.widget.SimpleDialog.ICON_WARN, |
| constraintoviewport:true, |
| buttons:[{ |
| text:'Yes', |
| handler:handleYesWrapper, |
| isDefault:true |
| },{ |
| text:'No', |
| handler:handleNoWrapper |
| }] |
| }); |
| |
| simpleDiag.setHeader('Apache ODE'); |
| simpleDiag.render('content'); |
| simpleDiag.show(); |
| |
| } |
| |
| function alert(msg, iconT){ |
| if(iconT == 'undefined') |
| iconT = YAHOO.widget.SimpleDialog.ICON_INFO; |
| |
| var handleOK = function(){ |
| this.hide(); |
| } |
| |
| var simpleAlert = new YAHOO.widget.SimpleDialog('alertbox',{ |
| width:'350px', |
| fixedcenter:true, |
| visible:true, |
| draggable:true, |
| close:false, |
| text:msg, |
| icon:iconT, |
| constraintoviewport:true, |
| buttons:[{text:'OK', |
| handler:handleOK, |
| isDefault:true}] |
| }); |
| |
| simpleAlert.setHeader('Apache ODE'); |
| simpleAlert.render('content'); |
| simpleAlert.show(); |
| } |
| |
| var ns = org.apache.ode.Widgets; |
| ns.operationConfirm = operationConfirmation; |
| ns.alert = alert; |
| })(); |
| |
| |
| |
| // Definition of Process Information processing class start from here. |
| // This class will be used to get the details of processes from ODE |
| // process management service and visualize them in Web interface. |
| // Process retiring, activation is also handle from this class. |
| if (org.apache.ode.ProcessHandling) { |
| throw new Error("org.apache.ode.ProcessHandling already exists"); |
| } |
| |
| org.apache.ode.ProcessHandling = {}; |
| |
| (function(){ |
| var processInfoNS = "http://www.apache.org/ode/pmapi/types/2006/08/02/"; |
| var processInfoNSPrefix = "ns"; |
| var processInfoTagName = "process-info"; |
| |
| function loadProcessInfo(){ |
| // Use ProcessManagementService to get the details about currently available |
| // processes in the engine. This method returns a XML document like following: |
| // <?xml version='1.0' encoding='UTF-8'?> |
| //<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> |
| // <soapenv:Body> |
| // <axis2ns8:listAllProcessesResponse xmlns:axis2ns8="http://www.apache.org/ode/pmapi"> |
| // <process-info-list> |
| // <ns:process-info xmlns:ns="http://www.apache.org/ode/pmapi/types/2006/08/02/"> |
| // <ns:pid>{http://ode/bpel/unit-test}HelloWorld2-3</ns:pid> |
| // <ns:status>ACTIVE</ns:status> |
| // <ns:version>3 |
| // </ns:version> |
| // <ns:definition-info> |
| // <ns:process-name xmlns:unit="http://ode/bpel/unit-test">unit:HelloWorld2 |
| // </ns:process-name> |
| // </ns:definition-info> |
| // <ns:deployment-info> |
| // <ns:package>HelloWorld2</ns:package> |
| // <ns:document>HelloWorld2.bpel |
| // </ns:document> |
| // <ns:deploy-date>2008-06-15T17:52:04.523+05:30</ns:deploy-date> |
| // </ns:deployment-info> |
| // <ns:instance-summary> |
| // <ns:instances state="ACTIVE" count="0"/> |
| // <ns:instances state="COMPLETED" count="0"/> |
| // <ns:instances state="ERROR" count="0"/> |
| // <ns:instances state="FAILED" count="0"/> |
| // <ns:instances state="SUSPENDED" count="0"/> |
| // <ns:instances state="TERMINATED" count="0"/> |
| // </ns:instance-summary> |
| // <ns:properties /> |
| // <ns:endpoints/> |
| // <ns:documents> |
| // <ns:document> |
| // <ns:name>HelloWorld2.bpel</ns:name> |
| // <ns:type>http://schemas.xmlsoap.org/ws/2004/03/business-process/ |
| // </ns:type> |
| // <ns:source>file:/home/milinda/programs/apache-tomcat-5.5.26/webapps/ode/WEB-INF/processes/HelloWorld2/HelloWorld2.bpel |
| // </ns:source> |
| // </ns:document> |
| // <ns:document> |
| // <ns:name>HelloWorld2.wsdl</ns:name> |
| // <ns:type>http://schemas.xmlsoap.org/wsdl/</ns:type> |
| // <ns:source> |
| // file:/home/milinda/programs/apache-tomcat-5.5.26/webapps/ode/WEB-INF/processes/HelloWorld2/HelloWorld2.wsdl |
| // </ns:source> |
| // </ns:document> |
| // <ns:document> |
| // <ns:name>HelloWorld2.cbp</ns:name> |
| // <ns:type>http://www.fivesight.com/schemas/2005/12/19/CompiledBPEL |
| // </ns:type> |
| // <ns:source>file:/home/milinda/programs/apache-tomcat-5.5.26/webapps/ode/WEB-INF/processes/HelloWorld2/HelloWorld2.cbp |
| // </ns:source> |
| // </ns:document> |
| // </ns:documents> |
| // </ns:process-info> |
| // </process-info-list> |
| // </axis2ns8:listAllProcessesResponse> |
| // </soapenv:Body> |
| //</soapenv:Envelope> |
| |
| try { |
| var listAllProcessesRes = ProcessManagementService.listAllProcesses(); |
| return listAllProcessesRes; |
| } |
| catch (e) { |
| if (typeof e == "string") { |
| alert("Exception Occurred " + e.toString()); |
| } |
| else { |
| alert("Exception Occurred!" + e); |
| } |
| return null; |
| } |
| } |
| |
| function InstanceSummary(activeIns, completedIns, errorIns, failedIns, suspendedIns, terminatedIns){ |
| this.activeInstances = activeIns; |
| this.completedInstances = completedIns; |
| this.errorInstances = errorIns; |
| this.failedInstances = failedIns; |
| this.suspendedInstances = suspendedIns; |
| this.terminatedInstances = terminatedIns; |
| } |
| |
| function Process( |
| pid, version, status, depDate, nameWithVer, processName, urlOfName, prefixOfName, instanceSummary){ |
| this.pid = pid; |
| this.version = version; |
| this.status = status; |
| this.depDate = depDate; |
| this.nameWithVer = nameWithVer; |
| this.processName = processName; |
| this.urlOfName = urlOfName; |
| this.prefixOfName = prefixOfName; |
| this.instanceSummary = instanceSummary; |
| } |
| |
| function processProcessInfoList(listAllProcessesRes){ |
| var returnInfoArray = []; |
| var processInfoList = org.apache.ode.DOMHelper.getElementsByTagName( |
| processInfoTagName, |
| processInfoNS, |
| processInfoNSPrefix, |
| listAllProcessesRes); |
| if(processInfoList.length == 0){ |
| return 0; |
| }else{ |
| |
| for(var i = 0; i < processInfoList.length; i++){ |
| var activeInstances = 0; |
| var completedInstances = 0; |
| var errorInstances = 0; |
| var failedInstances = 0; |
| var suspendedInstances = 0; |
| var terminatedInstances = 0; |
| |
| var scopeEle = processInfoList[i]; |
| |
| var pidEle = org.apache.ode.DOMHelper.getElementsByTagName("pid", processInfoNS, processInfoNSPrefix, scopeEle)[0]; |
| var pid = org.apache.ode.DOMHelper.getText(pidEle); |
| |
| var versionEle = org.apache.ode.DOMHelper.getElementsByTagName('version', processInfoNS, processInfoNSPrefix, scopeEle)[0]; |
| var version = org.apache.ode.DOMHelper.getText(versionEle); |
| |
| var statusEle = org.apache.ode.DOMHelper.getElementsByTagName('status', processInfoNS, processInfoNSPrefix, scopeEle)[0]; |
| var status = org.apache.ode.DOMHelper.getText(statusEle); |
| |
| var depInfoEle = org.apache.ode.DOMHelper.getElementsByTagName("deployment-info", processInfoNS, processInfoNSPrefix, scopeEle)[0]; |
| var depDateEle = org.apache.ode.DOMHelper.getElementsByTagName("deploy-date", processInfoNS, processInfoNSPrefix, scopeEle)[0]; |
| var depDate = org.apache.ode.DOMHelper.getText(depDateEle); |
| |
| var defInfoEle = org.apache.ode.DOMHelper.getElementsByTagName("definition-info", processInfoNS, processInfoNSPrefix, scopeEle)[0]; |
| var processNameEle = org.apache.ode.DOMHelper.getElementsByTagName("process-name", processInfoNS, processInfoNSPrefix, scopeEle)[0]; |
| var processName = org.apache.ode.DOMHelper.getText(processNameEle); |
| |
| var len = pid.length; |
| var endPos = pid.indexOf('}'); |
| var startPos = pid.indexOf('{'); |
| var nameWithVersion = pid.substr(++endPos, len); |
| var indexOfColon = processName.indexOf(':'); |
| var prefixOfName = processName.substring(0, indexOfColon); |
| var urlOfName = pid.substr(++startPos, (endPos - 2)); |
| |
| var instanceSummaryEle = org.apache.ode.DOMHelper.getElementsByTagName("instance-summary", processInfoNS, processInfoNSPrefix, scopeEle)[0]; |
| |
| for(var m = instanceSummaryEle.firstChild; m != null; m = m.nextSibling){ |
| var state = m.getAttribute("state"); |
| var count = m.getAttribute("count"); |
| if (state == 'ACTIVE') { |
| activeInstances = parseInt(count); |
| }else if (state == 'COMPLETED') { |
| completedInstances = parseInt(count); |
| }else if (state == 'ERROR') { |
| errorInstances = parseInt(count); |
| }else if (state == 'FAILED') { |
| failedInstances = parseInt(count); |
| }else if (state == 'SUSPENDED') { |
| suspendedInstances = parseInt(count); |
| }else if (state == 'TERMINATED') { |
| terminatedInstances = parseInt(count); |
| } |
| } |
| |
| var instanceSummary = new InstanceSummary( |
| activeInstances, |
| completedInstances, |
| errorInstances, |
| failedInstances, |
| suspendedInstances, |
| terminatedInstances); |
| |
| var processInfo = new Process(pid, |
| version, |
| status, |
| depDate, |
| nameWithVersion, |
| processName, |
| urlOfName, |
| prefixOfName, |
| instanceSummary); |
| |
| returnInfoArray[i] = processInfo; |
| } |
| } |
| |
| return returnInfoArray; |
| } |
| |
| function createProcessWidget(process, i){ |
| var retireBtnID = 'retire' + i; |
| var retierBtnVar = 'retireBtn' + i; |
| var activateBtnID = 'activate'+i; |
| var activateVar = 'activateBtn' + i; |
| var viewProDetID = 'viewProcessDet'+i; |
| var viewProDetVar = 'viewProcessDetVar'+i; |
| var active = "true"; |
| var retire = "false"; |
| if(process.status.toUpperCase() == 'ACTIVE'){ |
| active = "true"; |
| retire = "false"; |
| }else{ |
| active = "false"; |
| retire = "true"; |
| } |
| str = '<div class="yui-cms-item yui-panel selected"><div class="hd">'+ |
| process.pid + |
| '</div><div class="bd"><div class="fixed">'+ |
| '<table><tr><td class="alt"> Process Summary</td></tr><tr><th>' + |
| 'Deploy Date:</th><td>' + |
| process.depDate + |
| '</td><th>Status:</th><td>' + |
| process.status + |
| '</td><th>Version:</th><td>' + |
| process.version + |
| '</td></tr>' + |
| '<table><tr><td class="alt"> Instance Summary</td></tr><tr><th>Active:</th><td>' + |
| process.instanceSummary.activeInstances + |
| '</td><th>Terminated:</th><td>' + |
| process.instanceSummary.terminatedInstances + |
| '</td><th>Completed:</th><td>' + |
| process.instanceSummary.completedInstances + |
| '</td><th>Error:</th><td>' + |
| process.instanceSummary.errorInstances + |
| '</td><th>Failed:</th><td>' + |
| process.instanceSummary.failedInstances + |
| '</td><th>Suspended:</th><td>' + |
| process.instanceSummary.suspendedInstances + |
| '</td> </tr></table></table>' + |
| '</div></div><div class="ft">'+ |
| '<span id="'+ retireBtnID + |
| '" class="yui-button yui-push-button"><span class="first-child"><input type="button" name="'+ retireBtnID +'name" value="Retire"></span></span>'+ |
| '<span id="'+ activateBtnID + |
| '" class="yui-button yui-push-button"><span class="first-child"><input type="button" name="'+ activateVar +'name" value="Activate"></span></span>'+ |
| '<span id="'+ viewProDetID + |
| '" class="yui-button yui-push-button"><span class="first-child"><input type="button" name="'+ viewProDetVar +'name" value="Details"></span></span>'+ |
| '<script type="text/javascript">'+ |
| 'function '+retierBtnVar+'retireProcess(){org.apache.ode.ProcessHandling.retireProcess("'+ process.nameWithVer +'","'+ process.urlOfName +'","'+process.prefixOfName+'");}'+ |
| 'function '+activateVar+'activateProcess(){org.apache.ode.ProcessHandling.activateProcess("'+ process.nameWithVer +'","'+ process.urlOfName +'","'+process.prefixOfName+'");}'+ |
| 'function '+viewProDetVar+'viewProcessDetails(){org.apache.ode.ProcessHandling.viewProcessDetails("'+ process.nameWithVer +'","'+ process.urlOfName +'","'+process.prefixOfName+'");}'+ |
| |
| 'var ' + retierBtnVar + '=new YAHOO.widget.Button("'+ retireBtnID +'");'+ |
| retierBtnVar + '.addListener("click", '+retierBtnVar+'retireProcess); '+ |
| retierBtnVar+'.set("disabled",'+retire+');'+ |
| 'var ' + activateVar + '=new YAHOO.widget.Button("'+ activateBtnID + '");' + |
| activateVar+'.addListener("click", '+activateVar+'activateProcess); ' + |
| activateVar+'.set("disabled",'+active+');'+ |
| 'var ' + viewProDetVar + '=new YAHOO.widget.Button("'+ viewProDetID + '");' + |
| viewProDetVar+'.addListener("click", '+viewProDetVar+'viewProcessDetails); ' + |
| '</script>'+ |
| '</div> <div class="actions"><a href="#" class="accordionToggleItem"> </a>'+ |
| '</div><div class="actions"><a href="#" class="accordionToggleItem"> </a>'+ |
| '</div></div>' |
| |
| return str; |
| } |
| |
| function populateContentArea(){ |
| |
| var contentHTML = '<h2>Currently Deployed Processes</h2>'; |
| var processesInfo = loadProcessInfo(); |
| |
| var processArray = processProcessInfoList(processesInfo); |
| if (processArray != 0 ) { |
| for (var i = 0; i < processArray.length; i++) { |
| contentHTML += createProcessWidget(processArray[i], i); |
| } |
| }else{ |
| contentHTML += '<p>Currently no processes are available.</p>' |
| } |
| var content = document.getElementById('content'); |
| var newDiv = document.createElement('div'); |
| YAHOO.util.Dom.addClass(newDiv, 'myAccordion'); |
| var innerDiv = document.createElement('div'); |
| YAHOO.util.Dom.addClass(innerDiv, 'yui-cms-accordion multiple fade fixIE'); |
| innerDiv.innerHTML = contentHTML; |
| newDiv.appendChild(innerDiv); |
| if(content.firstChild){ |
| content.replaceChild(newDiv, content.firstChild); |
| }else{ |
| content.appendChild(newDiv); |
| } |
| |
| } |
| |
| function getStatistics(){ |
| function Statistics(numOfProces, active, terminated, error, failed, suspended, completed){ |
| this.numOfProcesses = numOfProces; |
| this.activeInst = active; |
| this.terminatedInst = terminated; |
| this.errorInst = error; |
| this.failedInst = failed; |
| this.suspendedInst = suspended; |
| this.completedInst = completed; |
| this.totalInst = active + terminated + error + failed + suspended + completed; |
| } |
| var stat; |
| var processes = processProcessInfoList(loadProcessInfo()); |
| var numOfProcesses = processes.length; |
| var _ter = 0; |
| var _act = 0; |
| var _error = 0; |
| var _fail = 0; |
| var _susp = 0; |
| var _com = 0; |
| if(numOfProcesses != 0){ |
| for(var i = 0; i < processes.length; i++){ |
| _act += processes[i].instanceSummary.activeInstances; |
| _ter += processes[i].instanceSummary.terminatedInstances; |
| _error += processes[i].instanceSummary.errorInstances; |
| _fail += processes[i].instanceSummary.failedInstances; |
| _susp += processes[i].instanceSummary.suspendedInstances; |
| _com += processes[i].instanceSummary.completedInstances; |
| } |
| stat = new Statistics(numOfProcesses, _act, _ter, _error, _fail, _susp, _com); |
| }else{ |
| stat = new Statistics(0,0,0,0,0,0,0); |
| } |
| return stat; |
| } |
| |
| function _populateContentArea(){ |
| setTimeout("populateContentArea()", 5000); |
| } |
| |
| function retireProcess(processName, url, prefix){ |
| try { |
| |
| function handleYes(){ |
| var response; |
| try{ |
| response = ProcessManagementService.setRetired(true, processName, url, prefix); |
| }catch(e){ |
| if (typeof(e) == "string") { |
| org.apache.ode.Widgets.alert("Exception occured:\n" + e.toString(), YAHOO.widget.SimpleDialog.ICON_ALARM); |
| } |
| else { |
| org.apache.ode.Widgets.alert("Exception occurred!", YAHOO.widget.SimpleDialog.ICON_ALARM); |
| } |
| } |
| var prefixWithName = prefix + ':' + processName; |
| var defInfoEle = org.apache.ode.DOMHelper.getElementsByTagName('definition-info', 'http://www.apache.org/ode/pmapi/types/2006/08/02/', 'ns', response)[0]; |
| |
| if (defInfoEle) { |
| var processNameEle = org.apache.ode.DOMHelper.getElementsByTagName('process-name', 'http://www.apache.org/ode/pmapi/types/2006/08/02/', 'ns', defInfoEle)[0]; |
| if (processNameEle) { |
| var proNameFromRes = org.apache.ode.DOMHelper.getText(processNameEle); |
| if (prefixWithName == proNameFromRes) { |
| org.apache.ode.ProcessHandling.populateContent(); |
| } |
| else { |
| org.apache.ode.Widgets.alert('Error occurred during retiring the process!', YAHOO.widget.SimpleDialog.ICON_ALARM); |
| } |
| } |
| }else{ |
| org.apache.ode.Widgets.alert('Error occurred during retiring the process!', YAHOO.widget.SimpleDialog.ICON_ALARM); |
| } |
| return true; |
| |
| } |
| |
| function handleNo(){ |
| org.apache.ode.Widgets..alert('Retiring cancelled!', YAHOO.widget.SimpleDialog.ICON_INFO); |
| } |
| var msg = 'Do you want to retire the process '+ processName + '?'; |
| org.apache.ode.Widgets.operationConfirm(msg, handleYes, handleNo); |
| } |
| catch (e) { |
| if (typeof(e) == "string") { |
| org.apache.ode.Widgets.alert("Exception occured:\n" + e.toString()); |
| } |
| else { |
| org.apache.ode.Widgets.alert("Exception occurred!"); |
| } |
| |
| } |
| return false; |
| } |
| |
| function activateProcess(processName, url, prefix){ |
| try { |
| function handleYes(){ |
| var response; |
| try{ |
| response = ProcessManagementService.activate(processName, url, prefix); |
| }catch(e){ |
| if (typeof(e) == "string") { |
| org.apache.ode.Widgets.alert("Exception occured:\n" + e.toString()); |
| } |
| else { |
| org.apache.ode.Widgets.alert("Exception occurred!"); |
| } |
| } |
| var prefixWithName = prefix + ':' + processName; |
| var defInfoEle = org.apache.ode.DOMHelper.getElementsByTagName('definition-info', 'http://www.apache.org/ode/pmapi/types/2006/08/02/', 'ns', response)[0]; |
| if (defInfoEle) { |
| var processNameEle = org.apache.ode.DOMHelper.getElementsByTagName('process-name', 'http://www.apache.org/ode/pmapi/types/2006/08/02/', 'ns', defInfoEle)[0]; |
| |
| if(processNameEle){ |
| var proNameFromRes = org.apache.ode.DOMHelper.getText(processNameEle); |
| if (prefixWithName == proNameFromRes) { |
| org.apache.ode.ProcessHandling.populateContent(); |
| }else{ |
| org.apache.ode.Widgets.alert('Error occurred while activating process!'); |
| } |
| } |
| }else{ |
| org.apache.ode.Widgets.alert('Error occurred while activating process!'); |
| } |
| } |
| |
| function handleNo(){ |
| org.apache.ode.Widgets.alert('Process Activation Cancelled!'); |
| } |
| |
| var msg = 'Do you want to activate the process '+ processName+'?'; |
| org.apache.ode.Widgets.operationConfirm(msg, handleYes, handleNo); |
| |
| }catch (e) { |
| if (typeof(e) == "string") { |
| org.apache.ode.Widgets.alert("Exception occured:\n" + e.toString()); |
| } |
| else { |
| org.apache.ode.Widgets.alert("Exception occurred!"); |
| } |
| } |
| return false; |
| } |
| |
| function viewProcessDetails(processName, url, prefix){ |
| var proPID = 'prodet'+processName; |
| var processDefURL = ''; |
| var processN = processName.substring(0, (processName.indexOf('-'))); |
| |
| var urlRequestURL = 'http://localhost:8080/ode/deployment/getProcessDefinition/' + processN ; |
| try{ |
| var response = ProcessManagementService.getProcessInfo(processName, url, prefix); |
| var processInfoEle = org.apache.ode.DOMHelper.getElementsByTagName( |
| processInfoTagName, |
| processInfoNS, |
| processInfoNSPrefix, |
| response)[0]; |
| |
| |
| |
| var handleSuccess = function(o){ |
| if(o.responseXML){ |
| var proDefURLEle = o.responseXML.getElementsByTagName('url')[0]; |
| var proDefURL = org.apache.ode.DOMHelper.getText(proDefURLEle); |
| |
| var handleSuccessIn = function(o){ |
| var myPanel = new YAHOO.widget.Panel(proPID, { |
| width:"600px", |
| fixedcenter: true, |
| underlay:"shadow", |
| close:true, |
| visible:true, |
| draggable: true, |
| zindex:4, |
| modal:true} ); |
| |
| myPanel.setHeader("Process Details: " + processName); |
| |
| var processInfoStr = ProcessManagementService.text.replace(/>/g, '>\n'); |
| processInfoStr = processInfoStr.replace(/<\//g, '\n</'); |
| processInfoStr = processInfoStr.replace(/>\n>\n<\//g, '>\n</'); |
| |
| var processDefStr = o.responseText; |
| processDefStr = processDefStr.replace(/<\//g, '\n</'); |
| processDefStr = processDefStr.replace(/>\n>\n<\//g, '>\n</'); |
| |
| var detailsTabs = new YAHOO.widget.TabView(); |
| |
| var proInfoTab = new YAHOO.widget.Tab( { |
| label: 'Process Info', |
| content:'<textarea id="proinfo" class="codepress html" style="width: 568px; height: 570px;"></textarea>' |
| |
| }); |
| detailsTabs.addTab(proInfoTab); |
| |
| var proDefTab = new YAHOO.widget.Tab({ |
| label: 'Process Definition', |
| content:'<textarea id="prodef" class="codepress html" style="width: 568px; height: 570px;"></textarea>', |
| active: true |
| }); |
| |
| detailsTabs.addTab(proDefTab); |
| |
| |
| var tabDiv = document.createElement('div'); |
| detailsTabs.appendTo(tabDiv); |
| |
| |
| myPanel.setBody(tabDiv); |
| myPanel.cfg.setProperty("underlay","matte"); |
| myPanel.render("content"); |
| var proInfoEle = document.getElementById('proinfo'); |
| proInfoEle.appendChild(document.createTextNode(processInfoStr)); |
| var proDefEle = document.getElementById('prodef'); |
| proDefEle.appendChild(document.createTextNode(processDefStr)); |
| } |
| |
| var handleFailureIn = function(o){ |
| org.apache.ode.Widgets.alert("Request Failed: Getting Process Definition."); |
| } |
| |
| var callbackIn = { |
| success: handleSuccessIn, |
| failure: handleFailureIn, |
| } |
| |
| var requestIn = YAHOO.util.Connect.asyncRequest('GET', proDefURL, callbackIn); |
| } |
| } |
| |
| var handleFailure = function(o){ |
| org.apache.ode.Widgets.alert("Request failed: Geting process definition URL"); |
| } |
| |
| var callback = { |
| success: handleSuccess, |
| failure: handleFailure, |
| } |
| |
| var request = YAHOO.util.Connect.asyncRequest('GET', urlRequestURL, callback); |
| |
| }catch(e){ |
| if (typeof(e) == "string") { |
| org.apache.ode.Widgets.alert("Exception occured in viewProcessDetails :\n" + e.toString()); |
| } |
| else { |
| org.apache.ode.Widgets.alert("Exception occurred in viewProcessDetails !"); |
| } |
| } |
| return false; |
| } |
| |
| var ns = org.apache.ode.ProcessHandling; |
| ns.loadProcessInfo = loadProcessInfo; |
| ns.processInfo = processProcessInfoList; |
| ns.activateProcess = activateProcess; |
| ns.retireProcess = retireProcess; |
| ns.populateContent = populateContentArea; |
| ns.viewProcessDetails = viewProcessDetails; |
| ns.stats = getStatistics; |
| |
| })(); |
| |
| if (org.apache.ode.InstanceHandling) { |
| throw new Error("org.apache.ode.InstanceHandling already exists"); |
| } |
| |
| org.apache.ode.InstanceHandling = {}; |
| |
| (function(){ |
| var instanceInfoNS = "http://www.apache.org/ode/pmapi/types/2006/08/02/"; |
| var instanceInfoNSPrefix = "ns"; |
| var instanceInfoTagName = "instance-info"; |
| |
| function loadInstanceInfo(){ |
| try { |
| var responseDoc = InstanceManagementService.listAllInstances(); |
| return responseDoc; |
| } |
| catch (e) { |
| if (typeof(e) == "string") { |
| org.apache.ode.Widgets.alert("Exception occured in loadInstanceInfo():\n" + e.toString()); |
| } |
| else { |
| org.apache.ode.Widgets.alert("Exception occurred in loadInstanceInfo()!"); |
| } |
| } |
| } |
| |
| function InstanceInfo(iid, pid, rootScope, siid, statusR, nameR, modelID, statusI, dateStarted, dateLastActive){ |
| this.iid = iid; |
| this.pid = pid; |
| this.rootScope = rootScope; |
| this.siid = siid; |
| this.statusR = statusR; |
| this.nameR = nameR; |
| this.modelID = modelID; |
| this.statuI = statusI; |
| this.dateStarted = dateStarted; |
| this.dateLastActive = dateLastActive; |
| } |
| |
| function processInstanceInfo(instanceInfoDoc){ |
| var returnInstanceArray = []; |
| var instanceInfoList = org.apache.ode.DOMHelper.getElementsByTagName( |
| instanceInfoTagName, |
| instanceInfoNS, |
| instanceInfoNSPrefix, |
| instanceInfoDoc); |
| if (instanceInfoList.length == 0){ |
| return 0; |
| }else{ |
| for(var i = 0; i < instanceInfoList.length; i++){ |
| var scopeEle = instanceInfoList[i]; |
| var iidEle = org.apache.ode.DOMHelper.getElementsByTagName('iid', instanceInfoNS, instanceInfoNSPrefix, scopeEle)[0]; |
| var iid = org.apache.ode.DOMHelper.getText(iidEle); |
| |
| var pidEle = org.apache.ode.DOMHelper.getElementsByTagName('pid', instanceInfoNS, instanceInfoNSPrefix, scopeEle)[0]; |
| var pid = org.apache.ode.DOMHelper.getText(pidEle); |
| |
| var rootScopeEle = org.apache.ode.DOMHelper.getElementsByTagName('root-scope', instanceInfoNS, instanceInfoNSPrefix, scopeEle)[0]; |
| var siid = rootScopeEle.getAttribute('siid'); |
| var statusR = rootScopeEle.getAttribute('status'); |
| var nameR = rootScopeEle.getAttribute('name'); |
| var modelID = rootScopeEle.getAttribute('modelId'); |
| |
| var statusIEle = org.apache.ode.DOMHelper.getElementsByTagName('status', instanceInfoNS, instanceInfoNSPrefix, scopeEle)[0]; |
| var statusI = org.apache.ode.DOMHelper.getText(statusIEle); |
| |
| var dateSEle = org.apache.ode.DOMHelper.getElementsByTagName('dt-started', instanceInfoNS, instanceInfoNSPrefix, scopeEle)[0]; |
| var dateStarted = org.apache.ode.DOMHelper.getText(dateSEle); |
| |
| var lastAEle = org.apache.ode.DOMHelper.getElementsByTagName('dt-last-active', instanceInfoNS, instanceInfoNSPrefix, scopeEle)[0]; |
| var lastActive = org.apache.ode.DOMHelper.getText(lastAEle); |
| |
| var instance = new InstanceInfo(iid, pid, rootScopeEle, siid, statusR, nameR, modelID, statusI, dateStarted, lastActive); |
| |
| returnInstanceArray[i] = instance; |
| } |
| } |
| |
| return returnInstanceArray; |
| } |
| |
| function createInstanceWidget(instance, i){ |
| var terminateBtnID = 'terminateIns'+i; |
| var terminateBtnVar = 'terminateVar'+i; |
| var suspendBtnID = 'suspendBtn' + i; |
| var suspenBtnVar = 'suspendBtnVar' + i; |
| var resumeBtnID = 'resumeBtn' + i; |
| var resumeBtnVar = 'resumeBtnVar' + i; |
| var _term = "false"; |
| var _susp = "false"; |
| var _resu = "true"; |
| if(instance.statuI.toUpperCase() == 'ACTIVE'){ |
| _term = "false"; |
| _susp = "false"; |
| _resu = "true"; |
| }else if(instance.statuI.toUpperCase() == 'COMPLETED' || instance.statuI.toUpperCase() == 'ERROR' |
| || instance.statuI.toUpperCase() == 'FAILED'){ |
| _term = "false"; |
| _susp = "true"; |
| _resu = "true"; |
| }else if(instance.statuI.toUpperCase() == 'SUSPENDED'){ |
| _term = "false"; |
| _susp = "true"; |
| _resu = "false"; |
| }else if(instance.statuI.toUpperCase() == 'TERMINATED'){ |
| _term = "true"; |
| _susp = "true"; |
| _resu = "true"; |
| } |
| |
| str = '<div class="yui-cms-item yui-panel selected"><div class="hd">Instance ID: '+ |
| instance.iid + |
| '</div><div class="bd"><div class="fixed">'+ |
| '<table><tr><td class="alt">Instance Summary</td></tr><tr><th>' + |
| 'Process:</th><td>' + instance.pid + '</td><th>Status:</th><td>' + |
| instance.statuI + '</td></tr><tr><th>Date Started:</th><td>' + |
| instance.dateStarted + '</td><th>Date Last Active</th><td>' + |
| instance.dateLastActive + '</td></tr></table>' + |
| '</div></div><div class="ft">'+ |
| '<span id="'+ terminateBtnID + |
| '" class="yui-button yui-push-button"><span class="first-child"><input type="button" name="'+ terminateBtnID +'name" value="Terminate"></span></span>'+ |
| '<span id="'+ suspendBtnID + |
| '" class="yui-button yui-push-button"><span class="first-child"><input type="button" name="'+ suspendBtnID +'name" value="Suspend"></span></span>'+ |
| '<span id="'+ resumeBtnID + |
| '" class="yui-button yui-push-button"><span class="first-child"><input type="button" name="'+ resumeBtnID +'name" value="Resume"></span></span>'+ |
| '<script type="text/javascript">'+ |
| 'function '+terminateBtnVar+'terminateIns(){org.apache.ode.InstanceHandling.terminateInstance("'+instance.iid +'");}'+ |
| 'function '+suspenBtnVar+'suspendIns(){org.apache.ode.InstanceHandling.suspendInstance("'+instance.iid +'");}'+ |
| 'function '+resumeBtnVar+'resumeIns(){org.apache.ode.InstanceHandling.resumeInstance("'+instance.iid +'");}'+ |
| |
| 'var ' + terminateBtnVar + '=new YAHOO.widget.Button("'+ terminateBtnID + '");'+ |
| terminateBtnVar + '.addListener("click", '+terminateBtnVar+'terminateIns); '+ |
| terminateBtnVar+ '.set("disabled",' + _term + ');'+ |
| 'var ' + suspenBtnVar + '=new YAHOO.widget.Button("'+ suspendBtnID + '");' + |
| suspenBtnVar+'.addListener("click", '+suspenBtnVar+'suspendIns); ' + |
| suspenBtnVar+ '.set("disabled",' + _susp + ');' + |
| 'var ' + resumeBtnVar + '=new YAHOO.widget.Button("'+ resumeBtnID + '");' + |
| resumeBtnVar+'.addListener("click", '+resumeBtnVar+'resumeIns); ' + |
| resumeBtnVar+ '.set("disabled",' + _resu + ');' + |
| '</script>'+ |
| '</div> <div class="actions"><a href="#" class="accordionToggleItem"> </a>'+ |
| '</div></div>' |
| |
| return str; |
| } |
| |
| function populateContentArea(){ |
| |
| var contentHTML = '<h2>Currently Available Instances</h2>'; |
| var instanceInfo = loadInstanceInfo(); |
| |
| var instanceArray = processInstanceInfo(instanceInfo); |
| if (instanceArray != 0 ) { |
| for (var i = 0; i < instanceArray.length; i++) { |
| contentHTML += createInstanceWidget(instanceArray[i], i); |
| } |
| }else{ |
| contentHTML += '<p>Currently no instances are available.</p>' |
| } |
| var content = document.getElementById('content'); |
| var newDiv = document.createElement('div'); |
| YAHOO.util.Dom.addClass(newDiv, 'myAccordion'); |
| var innerDiv = document.createElement('div'); |
| YAHOO.util.Dom.addClass(innerDiv, 'yui-cms-accordion multiple fade fixIE'); |
| innerDiv.innerHTML = contentHTML; |
| newDiv.appendChild(innerDiv); |
| if(content.firstChild){ |
| content.replaceChild(newDiv, content.firstChild); |
| }else{ |
| content.appendChild(newDiv); |
| } |
| |
| } |
| |
| function terminateInstance(instanceID){ |
| try { |
| |
| function handleYes(){ |
| var response; |
| try{ |
| response = InstanceManagementService.terminate(instanceID); |
| } catch (e) { |
| if (typeof(e) == "string") { |
| org.apache.ode.Widgets.alert("Exception occured:\n" + e.toString()); |
| } |
| else { |
| org.apache.ode.Widgets.alert("Exception occurred!"); |
| } |
| } |
| var insEle = org.apache.ode.DOMHelper.getElementsByTagName('instance-info', 'http://www.apache.org/ode/pmapi/types/2006/08/02/', 'ns', response)[0]; |
| if(insEle){ |
| var iidEle = org.apache.ode.DOMHelper.getElementsByTagName('iid', 'http://www.apache.org/ode/pmapi/types/2006/08/02/', 'ns', insEle)[0]; |
| if(iidEle){ |
| var iidFromRes = org.apache.ode.DOMHelper.getText(iidEle); |
| if (iidFromRes == instanceID) { |
| org.apache.ode.InstanceHandling.populateContent(); |
| }else{ |
| org.apache.ode.Widgets.alert('Error occurred during termination of instance!'); |
| } |
| }else{ |
| org.apache.ode.Widgets.alert('Error occurred during termination of instance!'); |
| } |
| }else{ |
| org.apache.ode.Widgets.alert('Error occurred during instance termination!'); |
| } |
| |
| } |
| function handleNo(){ |
| org.apache.ode.Widgets.alert('Instance terminating cancelled!'); |
| } |
| |
| var msg = 'Do you want to terminate instance '+ instanceID + '?'; |
| org.apache.ode.Widgets.operationConfirm(msg, handleYes, handleNo); |
| } catch (e) { |
| if (typeof(e) == "string") { |
| org.apache.ode.Widgets.alert("Exception occured:\n" + e.toString()); |
| } |
| else { |
| org.apache.ode.Widgets.alert("Exception occurred!"); |
| } |
| } |
| return false; |
| } |
| |
| function suspendInstance(instanceID){ |
| try { |
| function handleYes(){ |
| var response; |
| try{ |
| response = InstanceManagementService.suspend(instanceID); |
| } catch (e) { |
| if (typeof(e) == "string") { |
| org.apache.ode.Widgets.alert("Exception occured:\n" + e.toString()); |
| } |
| else { |
| org.apache.ode.Widgets.alert("Exception occurred!"); |
| } |
| } |
| var insEle = org.apache.ode.DOMHelper.getElementsByTagName('instance-info', 'http://www.apache.org/ode/pmapi/types/2006/08/02/', 'ns', response)[0]; |
| if(insEle){ |
| var iidEle = org.apache.ode.DOMHelper.getElementsByTagName('iid', 'http://www.apache.org/ode/pmapi/types/2006/08/02/', 'ns', insEle)[0]; |
| if(iidEle){ |
| var iidFromRes = org.apache.ode.DOMHelper.getText(iidEle); |
| if (iidFromRes == instanceID) { |
| org.apache.ode.InstanceHandling.populateContent(); |
| }else{ |
| org.apache.ode.Widgets.alert('Error occurred during suspending of instance!'); |
| } |
| }else{ |
| org.apache.ode.Widgets.alert('Error occurred during suspending of instance!'); |
| } |
| }else{ |
| org.apache.ode.Widgets.alert('Error occurred during instance suspending!'); |
| } |
| } |
| |
| function handleNo(){ |
| org.apache.ode.Widgets.alert('Instance suspending cancelled!'); |
| } |
| var msg = 'Do you want to suspend instance ' + instanceID + '?'; |
| org.apache.ode.Widgets.operationConfirm(msg, handleYes, handleNo); |
| } catch (e) { |
| if (typeof(e) == "string") { |
| org.apache.ode.Widgets.alert("Exception occured:\n" + e.toString()); |
| } |
| else { |
| org.apache.ode.Widgets.alert("Exception occurred!"); |
| } |
| } |
| |
| } |
| |
| function resumeInstance(instanceID){ |
| try { |
| function handleYes(){ |
| var response; |
| try{ |
| response = InstanceManagementService.resume(instanceID); |
| } catch (e) { |
| if (typeof(e) == "string") { |
| org.apache.ode.Widgets.alert("Exception occured:\n" + e.toString()); |
| } |
| else { |
| org.apache.ode.Widgets.alert("Exception occurred!"); |
| } |
| } |
| |
| var insEle = org.apache.ode.DOMHelper.getElementsByTagName('instance-info', 'http://www.apache.org/ode/pmapi/types/2006/08/02/', 'ns', response)[0]; |
| if(insEle){ |
| var iidEle = org.apache.ode.DOMHelper.getElementsByTagName('iid', 'http://www.apache.org/ode/pmapi/types/2006/08/02/', 'ns', insEle)[0]; |
| if(iidEle){ |
| var iidFromRes = org.apache.ode.DOMHelper.getText(iidEle); |
| if (iidFromRes == instanceID) { |
| org.apache.ode.InstanceHandling.populateContent(); |
| }else{ |
| org.apache.ode.Widgets.alert('Error occurred during resuming of instance!'); |
| } |
| }else{ |
| org.apache.ode.Widgets.alert('Error occurred during resuming of instance!'); |
| } |
| }else{ |
| org.apache.ode.Widgets.alert('Error occurred during instance resuming!'); |
| } |
| |
| } |
| |
| function handleNo(){ |
| org.apache.ode.Widgets.alert('Instance resuming cancelled!'); |
| } |
| |
| var msg = 'Do you want to resume instance'+ instanceID + '?'; |
| org.apache.ode.Widgets.operationConfirm(msg, handleYes, handleNo); |
| } catch (e) { |
| if (typeof(e) == "string") { |
| org.apache.ode.Widgets.alert("Exception occured:\n" + e.toString()); |
| } |
| else { |
| org.apache.ode.Widgets.alert("Exception occurred!"); |
| } |
| } |
| return false; |
| } |
| |
| var ns = org.apache.ode.InstanceHandling; |
| ns.terminateInstance = terminateInstance; |
| ns.suspendInstance = suspendInstance; |
| ns.resumeInstance = resumeInstance; |
| ns.populateContent = populateContentArea; |
| })(); |
| |
| if(org.apache.ode.DeploymentHandling){ |
| throw new Error("org.apache.ode.DeploymentHandling already exists"); |
| } |
| |
| org.apache.ode.DeploymentHandling = {}; |
| |
| (function(){ |
| var bundleDataUrl = 'http://localhost:8080/ode/deployment/bundles/'; |
| var packageDocsUrl = 'http://localhost:8080/ode/deployment/getBundleDocs/'; |
| |
| function loadDeployedPackages(){ |
| try{ |
| var response = DeploymentService.listDeployedPackages(); |
| return response; |
| }catch(e){ |
| if(typeof e == 'string'){ |
| org.apache.ode.Widgets.alert("Exception occured:\n" + e.toString()); |
| }else{ |
| org.apache.ode.Widgets.alert("Exception occurred in loadDeployedBundles."); |
| } |
| } |
| } |
| |
| function getDeployedPackages(){ |
| var packageNames = []; |
| var response = loadDeployedPackages(); |
| var names = response.getElementsByTagName('name'); |
| if (names.length != 0) { |
| for (var i = 0; i < names.length; i++) { |
| packageNames[i] = org.apache.ode.DOMHelper.getText(names[i]); |
| } |
| return packageNames; |
| }else{ |
| return 0; |
| } |
| |
| } |
| |
| function getProcesses(packageName){ |
| try{ |
| var processes = []; |
| var response = DeploymentService.listProcesses(packageName); |
| var ids = response.getElementsByTagName('id'); |
| if(ids.length != 0){ |
| for(var i =0; i < ids.length; i++){ |
| processes[i] = org.apache.ode.DOMHelper.getText(ids[i]); |
| } |
| return processes; |
| }else{ |
| return 0; |
| } |
| |
| }catch(e){ |
| if(typeof e == 'string'){ |
| org.apache.ode.Widgets.alert("Exception occured:\n" + e.toString()); |
| }else{ |
| org.apache.ode.Widgets.alert("Exception occurred in getProcesses."); |
| } |
| } |
| } |
| function getPackageContents(packageName){ |
| var contents = []; |
| var i = 0; |
| var url = packageDocsUrl + packageName; |
| try{ |
| var response = org.apache.ode.XHRObject.xhrSyncGetRequest(url, false); |
| }catch(e){ |
| org.apache.ode.Widgets.alert("Exception occurred during getting paackage contents."); |
| return null; |
| } |
| if(response != null && typeof response != 'string'){ |
| var processEle = response.getElementsByTagName('process')[0]; |
| for(var m = processEle.firstChild; m != null; m = m.nextSibling){ |
| if(m.localName != 'pid'){ |
| contents[i] = org.apache.ode.DOMHelper.getText(m); |
| i++; |
| } |
| |
| } |
| return contents; |
| }else{ |
| return null; |
| } |
| } |
| |
| function populateDeployedPackages(){ |
| var contentHtml = ''; |
| var deployedPacks = getDeployedPackages(); |
| for(var i = 0; i < deployedPacks.length; i++){ |
| var packageundepId = deployedPacks[i].replace(/-/, "_")+"undeployid"; |
| var packageundepVar = deployedPacks[i].replace(/-/,"_")+"undeployvar"; |
| var packageDetailsId = deployedPacks[i].replace(/-/,"_")+"detid"; |
| var packageDetailsVar = deployedPacks[i].replace(/-/,"_")+"detvar"; |
| contentHtml += '<div class="yui-cms-item yui-panel selected"><div class="hd">'+ |
| deployedPacks[i] + |
| '</div><div class="bd"><div class="fixed">'+ |
| '<table><tr class="alt"><td>Processes:</td></tr><tr><td>' |
| var processes = getProcesses(deployedPacks[i]); |
| if(processes != 0){ |
| for(var j = 0; j < processes.length; j++){ |
| contentHtml += processes[j]+', '; |
| } |
| }else{ |
| contentHtml += 'Error occurred during getting processes or no processes.'; |
| } |
| contentHtml += '</td></tr><tr class="alt"><td>Contents:</td></tr><tr><td>'; |
| var content = getPackageContents(deployedPacks[i]); |
| if(content != null){ |
| for(var k =0; k < content.length; k++){ |
| var strC = content[k]; |
| var index = strC.indexOf('/'); |
| contentHtml += strC.substr(index+1) + ", "; |
| } |
| }else{ |
| contentHtml += 'Error occurred during getting package Content or no content.' |
| } |
| contentHtml += '</td></tr></table></div></div><div class="ft">'+ |
| '<span id="'+ packageundepId + '" class="yui-button yui-push-button">'+ |
| '<span class="first-child"><input type="button" name="'+ packageundepVar + |
| 'name" value="Undeploy"></span></span>'+ |
| '<span id="'+ packageDetailsId + |
| '" class="yui-button yui-push-button"><span class="first-child">'+ |
| '<input type="button" name="'+ packageDetailsVar +'name" value="Details"></span></span>'+ |
| '<script type="text/javascript">'+ |
| 'function '+ packageundepVar + |
| 'undeployPackage(){org.apache.ode.DeploymentHandling.undeployPackage("'+ |
| deployedPacks[i] +'");}' + |
| 'function '+ packageDetailsVar + |
| 'viewDetails(){org.apache.ode.DeploymentHandling.viewPackDetails("'+ |
| deployedPacks[i] +'"'+ ');}' + |
| 'var ' + packageundepVar + '=new YAHOO.widget.Button("'+ packageundepId + '");'+ |
| packageundepVar + '.addListener("click", ' + packageundepVar + 'undeployPackage); '+ |
| 'var ' + packageDetailsVar + '=new YAHOO.widget.Button("'+ packageDetailsId + '");' + |
| packageDetailsVar +'.addListener("click", ' + packageDetailsVar + 'viewDetails); ' + |
| '</script>'+ |
| '</div> <div class="actions"><a href="#" class="accordionToggleItem"> </a>'+ |
| '</div></div>' |
| //alert(contentHtml); |
| |
| } |
| var deployed = document.getElementById('deployed'); |
| var newDiv = document.createElement('div'); |
| YAHOO.util.Dom.addClass(newDiv, 'myAccordion'); |
| var innerDiv = document.createElement('div'); |
| YAHOO.util.Dom.addClass(innerDiv, 'yui-cms-accordion multiple fade fixIE'); |
| innerDiv.innerHTML = contentHtml; |
| newDiv.appendChild(innerDiv); |
| if(deployed.firstChild){ |
| deployed.replaceChild(newDiv, deployed.firstChild); |
| }else{ |
| deployed.appendChild(newDiv); |
| } |
| |
| |
| } |
| |
| function viewPackDetails(packageName){ |
| var winID = 'deployedPack'+packageName; |
| var bundleDocs = []; |
| |
| bundleDocs = getPackageContents(packageName); |
| |
| var packPanel = new YAHOO.widget.Panel(winID, { |
| width:"600px", |
| fixedcenter:true, |
| underlay:"shadow", |
| close:true, |
| visible:true, |
| draggable:true, |
| zindex:4, |
| modal:true}); |
| |
| packPanel.setHeader("Package Details: " + packageName); |
| |
| var packDetTabs = new YAHOO.widget.TabView(); |
| |
| for(var j = 0; j < bundleDocs.length; j++){ |
| var activeS = false; |
| var strC = bundleDocs[j]; |
| if (j == 0){ |
| activeS = true; |
| } |
| var index = strC.indexOf('/'); |
| var docName = strC.substr(index+1); |
| var indexDot = docName.indexOf('.'); |
| var idTxt = docName.substr(0, (indexDot-1)) + j; |
| var textAreaStr = '<textarea id="'+ idTxt + '"` class="codepress html" style="width: 568px; height:570px;"></textarea>'; |
| packDetTabs.addTab(new YAHOO.widget.Tab({ |
| label:docName, |
| content:textAreaStr, |
| active:activeS})); |
| } |
| |
| var tabsDiv = document.createElement('div'); |
| packDetTabs.appendTo(tabsDiv); |
| |
| packPanel.setBody(tabsDiv); |
| packPanel.cfg.setProperty("underlay","matte"); |
| packPanel.render("content"); |
| |
| for(var k = 0; k < bundleDocs.length; k++){ |
| var strC = bundleDocs[k]; |
| var index = strC.indexOf('/'); |
| var docName = strC.substr(index+1); |
| var indexDot = docName.indexOf('.'); |
| var idTxt = docName.substr(0, (indexDot-1)) + k; |
| var bundleUrl = bundleDataUrl + strC; |
| var responseText = org.apache.ode.XHRObject.xhrSyncGetRequest(bundleUrl, true); |
| //var resStr = responseText.replace(/<\//g, '\n</'); |
| //resStr = resStr.replace(/>\n>\n<\//g, '>\n</'); |
| |
| if(typeof responseText == 'string'){ |
| var textAreaEle = document.getElementById(idTxt); |
| textAreaEle.appendChild(document.createTextNode(responseText)); |
| }else{ |
| org.apache.ode.Widgets.alert('Response Type not recognized for document: '+ docName); |
| } |
| } |
| } |
| |
| function undeployPackage(packageName){ |
| try{ |
| function handleYes(){ |
| var response; |
| try{ |
| response = DeploymentService.undeploy(packageName); |
| } catch (e) { |
| if (typeof(e) == "string") { |
| org.apache.ode.Widgets.alert("Exception occured:\n" + e.toString()); |
| } |
| else { |
| org.apache.ode.Widgets.alert("Exception occurred!"); |
| } |
| } |
| if(response == true){ |
| org.apache.ode.Widgets.alert('Package '+ packageName + 'undeployed successfully.'); |
| org.apache.ode.DeploymentHandling.populateDeployedPacks(); |
| }else{ |
| org.apache.ode.Widgets.alert('Error occurred during undeployment or undeplyment unsuccessful.'); |
| } |
| } |
| |
| function handleNo(){ |
| org.apache.ode.Widgets.alert('Package undeployment cancelled!'); |
| } |
| |
| var msg = 'Dou you want to undeploy package ' + packageName + '?'; |
| |
| org.apache.ode.Widgets.operationConfirm(msg,handleYes, handleNo); |
| |
| }catch(e){ |
| if(typeof e == 'string'){ |
| org.apache.ode.Widgets.alert("Exception occurred while undeploying the package: " + e.toString()); |
| }else{ |
| org.apache.ode.Widgets.alert("Exception occurred while undeploying the package."); |
| } |
| } |
| } |
| |
| var ns = org.apache.ode.DeploymentHandling; |
| ns.getDeployedPackages = getDeployedPackages; |
| ns.undeployPackage = undeployPackage; |
| ns.viewPackDetails = viewPackDetails; |
| ns.populateDeployedPacks = populateDeployedPackages; |
| })(); |
| |