Author: saminda
Date: Thu Dec 13 09:32:44 2007
New Revision: 11096
Log:
Fixing JIRA-656
Modified:
trunk/wsas/java/modules/www/extensions/core/js/data_service.js
trunk/wsas/java/modules/www/extensions/core/xslt/data_service_add_query.xsl
Modified: trunk/wsas/java/modules/www/extensions/core/js/data_service.js
==============================================================================
--- trunk/wsas/java/modules/www/extensions/core/js/data_service.js
(original)
+++ trunk/wsas/java/modules/www/extensions/core/js/data_service.js Thu Dec
13 09:32:44 2007
@@ -413,15 +413,12 @@
}
//TODO: note edit query
-function editSpecificQuery(query, sql) {
+function editSpecificQuery(query, sql, type) {
if (query == null || query.length == 0) {
wso2.wsf.Util.alertWarning("Query id is required.");
return;
}
- if (sql == null || sql.length == 0) {
- wso2.wsf.Util.alertWarning("Sql statement is required.");
- return;
- }
+
var qArray = dataServiceObj.getElementsByTagName("query");
var qEle;
for (var i = 0; i < qArray.length; i++) {
@@ -430,19 +427,79 @@
break;
}
}
- var eSql;
- var sqlArray = qEle.getElementsByTagName("sql");
- for (i = 0; i < sqlArray.length; i++) {
- eSql = sqlArray[i];
- break;
- }
- if (eSql) {
- eSql.removeChild(eSql.childNodes.item(0));
- eSql.appendChild(rootDocument.createCDATASection(sql));
+ if (type == 'RDBMS' || type == 'JNDIDataSource') {
+ if (sql == null || sql.length == 0) {
+ wso2.wsf.Util.alertWarning("Sql statement is required.");
+ return;
+ }
+ var eSql;
+ var sqlArray = qEle.getElementsByTagName("sql");
+ for (i = 0; i < sqlArray.length; i++) {
+ eSql = sqlArray[i];
+ break;
+ }
+ if (eSql) {
+ eSql.removeChild(eSql.childNodes.item(0));
+ eSql.appendChild(rootDocument.createCDATASection(sql));
+ } else {
+ eSql = rootDocument.createElement('sql');
+ eSql.appendChild(rootDocument.createCDATASection(sql));
+ qEle.appendChild(eSql);
+ }
+ } else if (type == 'EXCEL') {
+ var eExcel;
+ var excelArray = qEle.getElementsByTagName('excel');
+ for (i = 0; i < excelArray.length; i++) {
+ eExcel = excelArray[i];
+ break;
+ }
+ if (eExcel) {
+ qEle.removeChild(eExcel);
+ }
+
+ eExcel = rootDocument.createElement("excel");
+ var workBookNameElement = rootDocument.createElement("workbookname");
+ var startingRowElement = rootDocument.createElement("startingrow");
+ var maxRowCountElement = rootDocument.createElement("maxrowcount");
+ var hasHeaderElement = rootDocument.createElement("hasheader");
+
+ var excelWBName =
document.getElementById('txtExcelWorkbookName').value;
+ var excelStartingRow =
document.getElementById('txtExcelStartingRow').value;
+ var excelMaxRowCount =
document.getElementById('txtExcelMaxRowCount').value;
+ if (excelWBName == null || excelWBName.length == 0) {
+ wso2.wsf.Util.alertWarning("Workbook name is required");
+ return;
+ }
+ if (excelStartingRow == null || excelStartingRow.length == 0) {
+ wso2.wsf.Util.alertWarning("Strart reading from is required.");
+ return;
+ }
+ if (excelMaxRowCount == null || excelMaxRowCount.length == 0) {
+ wso2.wsf.Util.alertWarning("Rows to read is required.");
+ return;
+ }
+ var obj = document.getElementById('txtExcelHeaderColumns');
+ var hasHeaderValue = obj[obj.selectedIndex].value;
+ if (hasHeaderValue == null || hasHeaderValue.length == 0) {
+ wso2.wsf.Util.alertWarning("Status of the headers available is
required.");
+ return;
+ }
+
workBookNameElement.appendChild(rootDocument.createTextNode(excelWBName));
+
startingRowElement.appendChild(rootDocument.createTextNode(excelStartingRow));
+
maxRowCountElement.appendChild(rootDocument.createTextNode(excelMaxRowCount));
+
hasHeaderElement.appendChild(rootDocument.createTextNode(hasHeaderValue));
+ //add as children to excel element
+ eExcel.appendChild(workBookNameElement);
+ eExcel.appendChild(startingRowElement);
+ eExcel.appendChild(maxRowCountElement);
+ eExcel.appendChild(hasHeaderElement);
+
+ qEle.appendChild(eExcel);
+ } else if (type == 'CSV') {
+ //do not do anything
} else {
- eSql = rootDocument.createElement('sql');
- eSql.appendChild(rootDocument.createCDATASection(sql));
- qEle.appendChild(eSql);
+ wso2.wsf.Util.alertWarning("Data Source type : " + type + " is
undefined.");
+ return;
}
var rArray = qEle.getElementsByTagName('result');
@@ -1127,7 +1184,7 @@
}
//TODO : note : add new output mapping.
-function addNewOutPutMappingForQuery(queryId, sql) {
+function addNewOutPutMappingForQuery(queryId, sql, type) {
if (!queryId) {
wso2.wsf.Util.alertWarning("Required queryId before adding output
mapping.");
return;
@@ -1146,22 +1203,62 @@
dataServiceObj.getElementsByTagName("data").item(0).appendChild(queryEle);
}
- var sqlArray = queryEle.getElementsByTagName('sql');
- var sqlEle = null;
- for (i = 0; i < sqlArray.length; i++) {
- sqlEle = sqlArray[i];
- break;
- }
- if (!sqlEle) {
- sqlEle = rootDocument.createElement("sql");
- sqlEle.appendChild(rootDocument.createTextNode(sql));
- queryEle.appendChild(sqlEle);
- } else {
- sqlEle.removeChild(sqlEle.childNodes.item(0));
- sqlEle.appendChild(rootDocument.createTextNode(sql));
+ if (type == "RDBMS" || type == "JNDIDataSource") {
+ var sqlArray = queryEle.getElementsByTagName('sql');
+ var sqlEle = null;
+ for (i = 0; i < sqlArray.length; i++) {
+ sqlEle = sqlArray[i];
+ break;
+ }
+ if (!sqlEle) {
+ sqlEle = rootDocument.createElement("sql");
+ sqlEle.appendChild(rootDocument.createTextNode(sql));
+ queryEle.appendChild(sqlEle);
+ } else {
+ sqlEle.removeChild(sqlEle.childNodes.item(0));
+ sqlEle.appendChild(rootDocument.createTextNode(sql));
+ }
+ } else if (type == "EXCEL") {
+ //filling the missing pieces
+ var eExcel;
+ var excelArray = queryEle.getElementsByTagName('excel');
+ for (i = 0; i < excelArray.length; i++) {
+ eExcel = excelArray[i];
+ break;
+ }
+ if (eExcel) {
+ queryEle.removeChild(eExcel);
+ }
+
+ eExcel = rootDocument.createElement("excel");
+ var workBookNameElement = rootDocument.createElement("workbookname");
+ var startingRowElement = rootDocument.createElement("startingrow");
+ var maxRowCountElement = rootDocument.createElement("maxrowcount");
+ var hasHeaderElement = rootDocument.createElement("hasheader");
+
+ var excelWBName =
document.getElementById('txtExcelWorkbookName').value;
+ var excelStartingRow =
document.getElementById('txtExcelStartingRow').value;
+ var excelMaxRowCount =
document.getElementById('txtExcelMaxRowCount').value;
+
+ var obj = document.getElementById('txtExcelHeaderColumns');
+ var hasHeaderValue = obj[obj.selectedIndex].value;
+ if (hasHeaderValue == null || hasHeaderValue.length == 0) {
+ wso2.wsf.Util.alertWarning("Status of the headers available is
required.");
+ return;
+ }
+
workBookNameElement.appendChild(rootDocument.createTextNode(excelWBName));
+
startingRowElement.appendChild(rootDocument.createTextNode(excelStartingRow));
+
maxRowCountElement.appendChild(rootDocument.createTextNode(excelMaxRowCount));
+
hasHeaderElement.appendChild(rootDocument.createTextNode(hasHeaderValue));
+ //add as children to excel element
+ eExcel.appendChild(workBookNameElement);
+ eExcel.appendChild(startingRowElement);
+ eExcel.appendChild(maxRowCountElement);
+ eExcel.appendChild(hasHeaderElement);
+
+ queryEle.appendChild(eExcel);
}
- //TODO : create the reslut element if not vailable
var resultArray = queryEle.getElementsByTagName('result');
var resultEle = null;
for (i = 0; i < resultArray.length; i++) {
@@ -1525,10 +1622,6 @@
var dataServiceNewQuery = false;
-//TODO
-//TODO
-//TODO
-
function addDataServiceQuery() {
dataServiceNewQuery = true;
Modified:
trunk/wsas/java/modules/www/extensions/core/xslt/data_service_add_query.xsl
==============================================================================
--- trunk/wsas/java/modules/www/extensions/core/xslt/data_service_add_query.xsl
(original)
+++ trunk/wsas/java/modules/www/extensions/core/xslt/data_service_add_query.xsl
Thu Dec 13 09:32:44 2007
@@ -175,7 +175,7 @@
</xsl:otherwise>
</xsl:choose>
<div>
- <input type="button"
onClick="addNewOutPutMappingForQuery(document.getElementById('txtDataServiceQueryId').value,
document.getElementById('txtDataServiceSQL').value); return false;" value="Add
New OutputMapping"/>
+ <input type="button"
onClick="addNewOutPutMappingForQuery(document.getElementById('txtDataServiceQueryId').value,
document.getElementById('txtDataServiceSQL') != null ?
document.getElementById('txtDataServiceSQL').value :
'{$dataSourceType}','{$dataSourceType}'); return false;" value="Add New
OutputMapping"/>
<xsl:if test="$groupByEle">
<input type="button"
onClick="removeResultElement(document.getElementById('txtDataServiceQueryId').value,document.getElementById('txtDataServiceWrapElement').value);
return false;" value="Clear Result"/>
</xsl:if>
@@ -190,21 +190,39 @@
</div>
<div>
<xsl:choose>
- <xsl:when test="$queryId and ($dataSourceType='RDBMS' or
$dataSourceType='JNDIDataSource')">
- <input type="button"
onClick="editSpecificQuery(document.getElementById('txtDataServiceQueryId').value,
document.getElementById('txtDataServiceSQL').value); return false;"
value="OK"/>
- <!--<input type="button"
onClick="removeTransientElements(); closeContainer('divDSAddQuery'); return
false;" value="Cancel"/>-->
- </xsl:when>
- <xsl:when test="not($queryId) and ($dataSourceType='RDBMS'
or $dataSourceType='JNDIDataSource')">
- <input type="button"
onClick="addNewQueryOK(document.getElementById('txtDataServiceQueryId').value);"
value="OK"/>
- <input type="button"
onClick="removeTransientElements();
removeTransientQuery(document.getElementById('txtDataServiceQueryId').value);
closeContainer('divDSAddQuery'); return false;" value="Cancel"/>
+ <xsl:when test="$dataSourceType='RDBMS' or
$dataSourceType='JNDIDataSource'">
+ <xsl:choose>
+ <xsl:when test="$queryId">
+ <input type="button"
onClick="editSpecificQuery(document.getElementById('txtDataServiceQueryId').value,
document.getElementById('txtDataServiceSQL').value,'{$dataSourceType}');
return false;" value="OK"/>
+ <!--<input type="button"
onClick="removeTransientElements(); closeContainer('divDSAddQuery'); return
false;" value="Cancel"/>-->
+ </xsl:when>
+ <xsl:otherwise>
+ <input type="button"
onClick="addNewQueryOK(document.getElementById('txtDataServiceQueryId').value);"
value="OK"/>
+ <input type="button"
onClick="removeTransientElements();
removeTransientQuery(document.getElementById('txtDataServiceQueryId').value);
closeContainer('divDSAddQuery'); return false;" value="Cancel"/>
+ </xsl:otherwise>
+ </xsl:choose>
</xsl:when>
<xsl:when test="$dataSourceType='EXCEL'">
- <input type="button" value="OK"
onClick="addNewQueryOK(document.getElementById('txtDataServiceQueryId').value);return
false;"/>
- <input type="button"
onClick="removeTransientElements();
removeTransientQuery(document.getElementById('txtDataServiceQueryId').value);
closeContainer('divDSAddQuery'); return false;" value="Cancel"/>
+ <xsl:choose>
+ <xsl:when test="$queryId">
+ <input type="button"
onClick="editSpecificQuery(document.getElementById('txtDataServiceQueryId').value,
'','{$dataSourceType}'); return false;" value="OK"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <input type="button" value="OK"
onClick="addNewQueryOK(document.getElementById('txtDataServiceQueryId').value);return
false;"/>
+ <input type="button"
onClick="removeTransientElements();
removeTransientQuery(document.getElementById('txtDataServiceQueryId').value);
closeContainer('divDSAddQuery'); return false;" value="Cancel"/>
+ </xsl:otherwise>
+ </xsl:choose>
</xsl:when>
<xsl:when test="$dataSourceType='CSV'">
- <input type="button"
onClick="addNewQueryOK(document.getElementById('txtDataServiceQueryId').value);return
false;" value="OK"/>
- <input type="button"
onClick="removeTransientElements();
removeTransientQuery(document.getElementById('txtDataServiceQueryId').value);closeContainer('divDSAddQuery');
return false;" value="Cancel"/>
+ <xsl:choose>
+ <xsl:when test="$queryId">
+ <input type="button"
onClick="editSpecificQuery(document.getElementById('txtDataServiceQueryId').value,
'','{$dataSourceType}'); return false;" value="OK"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <input type="button"
onClick="addNewQueryOK(document.getElementById('txtDataServiceQueryId').value);return
false;" value="OK"/>
+ <input type="button"
onClick="removeTransientElements();
removeTransientQuery(document.getElementById('txtDataServiceQueryId').value);closeContainer('divDSAddQuery');
return false;" value="Cancel"/>
+ </xsl:otherwise>
+ </xsl:choose>
</xsl:when>
</xsl:choose>
</div>
_______________________________________________
Wsas-java-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/wsas-java-dev