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

Reply via email to