From 369b5d00f8474d2e82e371e565edf1891ca8bfc5 Mon Sep 17 00:00:00 2001 From: ankitg Date: Tue, 17 Aug 2010 00:23:57 +0530 Subject: [PATCH] minor bugsfixed documentation added --- pmd/scripts/history.js | 1444 +++++++++++++++++++++++++----------------------- pmd/scripts/move.js | 269 +++++---- pmd_general.php | 28 +- 3 files changed, 915 insertions(+), 826 deletions(-) rewrite pmd/scripts/history.js (85%) diff --git a/pmd/scripts/history.js b/pmd/scripts/history.js dissimilarity index 85% index d6d5ef324a..ace5bae652 100644 --- a/pmd/scripts/history.js +++ b/pmd/scripts/history.js @@ -1,679 +1,765 @@ -var history_array = []; // Global array to store history objects -var select_field = []; -var g_index; - -/** - * J-query function for panel, hides and shows toggle_container
- * - * @param index has value 1 or 0,decides wheter to hide toggle_container on load. -**/ - -function panel(index) { - if (!index) { - $(".toggle_container").hide(); - } - $("h2.tiger").click(function(){ - $(this).toggleClass("active").next().slideToggle("slow"); - }); -} - -/** - * Sorts history_array[] first then generates the HTML code for history tab,clubbing all objects of same tables together - * This function is called whenever changes are made in history_array[] - * - * @uses and_or() - * @uses history_edit() - * @uses history_delete() - * - * @param init starting index of unsorted array - * @param fianl last index of unsorted array - * -**/ - -function display(init,final) { - var str,i,j,k,sto; - for (i = init;i < final;i++) { - sto = history_array[i]; - var temp = history_array[i].get_tab() + '.' + history_array[i].get_obj_no(); - for(j = 0;j < i;j++){ - if(temp > (history_array[j].get_tab() + '.' + history_array[j].get_obj_no())) { - for(k = i;k > j;k--) { - history_array[k] = history_array[k-1]; - } - history_array[j] = sto; - break; - } - } - } - str =''; // string to store Html code for history tab - for ( var i=0; i < history_array.length; i++){ - var temp = history_array[i].get_tab() + '.' + history_array[i].get_obj_no(); - str += '

' + temp + '

'; - str += '
\n'; - while((history_array[i].get_tab() + '.' + history_array[i].get_obj_no()) == temp) { - str +='
'; - str += ''; - } - else { - str +=''; - } - str +=''; - } - else { - str += ''; - } - i++; - if(i >= history_array.length) { - break; - } - str += '
'; - if(history_array[i].get_and_or()){ - str +='' + history_array[i].get_column_name(); - if (history_array[i].get_type() == "GroupBy" || history_array[i].get_type() == "OrderBy") { - str += '' + history_array[i].get_type() + '
' + history_array[i].get_type() + '

'; - } - i--; - str += '

'; - } - return str; -} - -/** - * To change And/Or relation in history tab - * - * @uses panel() - * - * @param index index of history_array where change is to be made - * -**/ - -function and_or(index) { - if (history_array[index].get_and_or()) { - history_array[index].set_and_or(0); - } - else { - history_array[index].set_and_or(1); - } - var existingDiv = document.getElementById('ab'); - existingDiv.innerHTML = display(0,0); - panel(1); -} - -/** - * To display details of obects(where,rename,aggregate,groupby,orderby,having) - * - * @param index index of history_array where change is to be made - * -**/ - -function detail (index) { - var type = history_array[index].get_type(); - var str; - if (type == "Where") { - str = 'Where ' + history_array[index].get_column_name() + history_array[index].get_obj().getrelation_operator() + history_array[index].get_obj().getquery(); - } - if (type == "Rename") { - str = 'Rename ' + history_array[index].get_column_name() + ' To ' + history_array[index].get_obj().getrename_to(); - } - if (type == "Aggregate") { - str = 'Select ' + history_array[index].get_obj().get_operator() + '( ' + history_array[index].get_column_name() + ' )'; - } - if (type == "GroupBy") { - str = 'GroupBy ' + history_array[index].get_column_name() ; - } - if (type == "OrderBy") { - str = 'OrderBy ' + history_array[index].get_column_name() ; - } - if (type == "Having") { - str = 'Having '; - if (history_array[index].get_obj().get_operator() != 'None') { - str += history_array[index].get_obj().get_operator() + '( ' + history_array[index].get_column_name() + ' )'; - str += history_array[index].get_obj().getrelation_operator() + history_array[index].get_obj().getquery(); - } - else { - str = 'Having ' + history_array[index].get_column_name() + history_array[index].get_obj().getrelation_operator() + history_array[index].get_obj().getquery(); - } - } - return str; -} - -/** - * Deletes entry in history_array - * - * @uses panel() - * @uses display() - * @param index index of history_array[] which is to be deleted - * -**/ - -function history_delete(index) { - for(var k =0 ;k < from_array.length;k++){ - if(from_array[k] == history_array[index].get_tab()){ - from_array.splice(k,1); - break; - } - } - history_array.splice(index,1); - var existingDiv = document.getElementById('ab'); - existingDiv.innerHTML = display(0,0); - panel(1); -} - -/** - * To show where,rename,aggregate forms to edit a object - * - * @param index index of history_array where change is to be made - * -**/ - -function history_edit(index) { - g_index = index; - var type = history_array[index].get_type(); - if (type == "Where") { - document.getElementById('eQuery').value = history_array[index].get_obj().getquery(); - document.getElementById('erel_opt').value = history_array[index].get_obj().getrelation_operator(); - document.getElementById('query_where').style.left = '230px'; - document.getElementById('query_where').style.top = '330px'; - document.getElementById('query_where').style.position = 'absolute'; - document.getElementById('query_where').style.zIndex = '9'; - document.getElementById('query_where').style.visibility = 'visible'; - } - if (type == "Having") { - document.getElementById('hQuery').value = history_array[index].get_obj().getquery(); - document.getElementById('hrel_opt').value = history_array[index].get_obj().getrelation_operator(); - document.getElementById('hoperator').value = history_array[index].get_obj().get_operator(); - document.getElementById('query_having').style.left = '230px'; - document.getElementById('query_having').style.top = '330px'; - document.getElementById('query_having').style.position = 'absolute'; - document.getElementById('query_having').style.zIndex = '9'; - document.getElementById('query_having').style.visibility = 'visible'; - } - if (type == "Rename") { - document.getElementById('query_rename_to').style.left = '230px'; - document.getElementById('query_rename_to').style.top = '330px'; - document.getElementById('query_rename_to').style.position = 'absolute'; - document.getElementById('query_rename_to').style.zIndex = '9'; - document.getElementById('query_rename_to').style.visibility = 'visible'; - } - if (type == "Aggregate") { - document.getElementById('query_Aggregate').style.left = '530px'; - document.getElementById('query_Aggregate').style.top = '130px'; - document.getElementById('query_Aggregate').style.position = 'absolute'; - document.getElementById('query_Aggregate').style.zIndex = '9'; - document.getElementById('query_Aggregate').style.visibility = 'visible'; - } -} - -/** - * Make changes in history_array when Edit is clicked - * - * @uses panel() - * @uses display() - * - * @param index index of history_array where change is to be made -**/ - -function edit(type) { - if (type == "Rename") { - if (document.getElementById('e_rename').value != "") { - history_array[g_index].get_obj().setrename_to(document.getElementById('e_rename').value); - document.getElementById('e_rename').value = ""; - } - document.getElementById('query_rename_to').style.visibility = 'hidden'; - } - if (type == "Aggregate") { - if (document.getElementById('e_operator').value != '---') { - history_array[g_index].get_obj().set_operator(document.getElementById('e_operator').value); - document.getElementById('e_operator').value = '---'; - } - document.getElementById('query_Aggregate').style.visibility = 'hidden'; - } - if (type == "Where") { - if (document.getElementById('erel_opt').value != '--' && document.getElementById('eQuery').value !="") { - history_array[g_index].get_obj().setquery(document.getElementById('eQuery').value); - history_array[g_index].get_obj().setrelation_operator(document.getElementById('erel_opt').value); - } - document.getElementById('query_where').style.visibility = 'hidden'; - } - if (type == "Having") { - if (document.getElementById('hrel_opt').value != '--' && document.getElementById('hQuery').value !="") { - history_array[g_index].get_obj().setquery(document.getElementById('hQuery').value); - history_array[g_index].get_obj().setrelation_operator(document.getElementById('hrel_opt').value); - history_array[g_index].get_obj().set_operator(document.getElementById('hoperator').value); - } - document.getElementById('query_having').style.visibility = 'hidden'; - } - var existingDiv = document.getElementById('ab'); - existingDiv.innerHTML = display(0,0); - panel(1); -} - -/** - * history object closure - * - * @param ncolumn_name name of the column on which conditions are put - * @param nobj object details(where,rename,orderby,groupby,aggregate) - * @param ntab table name of the column on which conditions are applied - * @param nobj_no object no used for inner join - * @param ntype type of object - * -**/ - -function history(ncolumn_name,nobj,ntab,nobj_no,ntype) { - var and_or; - var obj; - var tab; - var column_name; - var obj_no; - var type; - this.set_column_name = function (ncolumn_name) { - column_name = ncolumn_name; - }; - this.get_column_name = function() { - return column_name; - }; - this.set_and_or = function(nand_or) { - and_or = nand_or; - }; - this.get_and_or = function() { - return and_or; - } - this.get_relation = function() { - return and_or; - }; - this.set_obj = function(nobj) { - obj = nobj; - }; - this.get_obj = function() { - return obj; - }; - this.set_tab = function(ntab) { - tab = ntab; - }; - this.get_tab = function() { - return tab; - }; - this.set_obj_no = function(nobj_no) { - obj_no = nobj_no; - }; - this.get_obj_no = function() { - return obj_no; - }; - this.set_type = function(ntype) { - type = ntype; - } - this.get_type = function() { - return type; - } - this.set_obj_no(nobj_no); - this.set_tab(ntab); - this.set_and_or(0); - this.set_obj(nobj); - this.set_column_name(ncolumn_name); - this.set_type(ntype); -}; - -/** - * where object closure, makes an object with all information of where - * - * @param nrelation_operator type of relation operator to be applied - * @param nquery stores value of value/sub-query - * -**/ - - -var where = function (nrelation_operator,nquery) { - var relation_operator; - var query; - this.setrelation_operator = function(nrelation_operator) { - relation_operator = nrelation_operator; - }; - this.setquery = function(nquery) { - query = nquery; - }; - this.getquery = function() { - return query; - }; - this.getrelation_operator = function() { - return relation_operator; - }; - this.setquery(nquery); - this.setrelation_operator(nrelation_operator); -}; - -var having = function (nrelation_operator,nquery,noperator) { - var relation_operator; - var query; - var operator; - this.set_operator = function(noperator) { - operator = noperator; - }; - this.setrelation_operator = function(nrelation_operator) { - relation_operator = nrelation_operator; - }; - this.setquery = function(nquery) { - query = nquery; - }; - this.getquery = function() { - return query; - }; - this.getrelation_operator = function() { - return relation_operator; - }; - this.get_operator = function() { - return operator; - }; - this.setquery(nquery); - this.setrelation_operator(nrelation_operator); - this.set_operator(noperator); -}; - -/** - * rename object closure,makes an object with all information of rename - * - * @param nrename_to new name information - * -**/ - -var rename = function(nrename_to) { - var rename_to; - this.setrename_to = function(nrename_to) { - rename_to = nrename_to; - }; - this.getrename_to =function() { - return rename_to; - }; - this.setrename_to(nrename_to); -}; - -/** - * aggregate object closure - * - * @param noperator aggregte operator - * -**/ - -var aggregate = function(noperator) { - var operator; - this.set_operator = function(noperator) { - operator = noperator; - }; - this.get_operator = function() { - return operator; - }; - this.set_operator(noperator); -}; - -function unique(arrayName) { - var newArray=new Array(); - label:for(var i=0; i 0) { - for (key3 in contr[K][key][key2]) { - parts1 = contr[K][key][key2][key3][0].split("."); - if(found(tab_left,parts1[1]) > 0) { - query += "\n" + 'LEFT JOIN '; - query += '`' + parts1[0] + '`.`' + parts1[1] + '` ON ' ; - query += '`' + parts[1] +'`.`' + key3 + '` = '; - query += '`' + parts1[1] + '`.`' + contr[K][key][key2][key3][1] + '` '; - t_tab_left.push(parts1[1]); - } - } - } - } - } - } - K = 0; - t_tab_left = unique (t_tab_left); - tab_used = add_array(t_tab_left,tab_used); - tab_left = remove_array(t_tab_left,tab_left); - t_tab_left = []; - for (K in contr) { - for (key in contr[K]) { - for (key2 in contr[K][key]){// table name - parts = key2.split("."); - if(found(tab_left,parts[1]) > 0) - { - for (key3 in contr[K][key][key2]) // field name - { - parts1 = contr[K][key][key2][key3][0].split("."); - if(found(tab_used,parts1[1]) > 0) { - query += "\n" + 'LEFT JOIN '; - query += '`' + parts[0] + '`.`' + parts[1] + '` ON ' ; - query += '`' + parts1[1] + '`.`' + contr[K][key][key2][key3][1] + '` = '; - query += '`' + parts[1] + '`.`' + key3 + '` '; - - t_tab_left.push(parts[1]); - } - } - } - } - } - } - t_tab_left = unique (t_tab_left); - tab_used = add_array(t_tab_left,tab_used); - tab_left = remove_array(t_tab_left,tab_left); - t_tab_left = []; - } - for (k in tab_left) { - quer += " , `" + tab_left[k] + "`"; - } - query = quer + query; - from_array = t_array; - return query; -} - /* document.write(key3+";"); //master_field - document.write(contr[K][key][key2][key3][0]+";"); // foreign_table - document.write(contr[K][key][key2][key3][1]+";"); //forieign_feild */ - -function add_array(add,arr){ - for( var i=0; i,which is for history elements uses {@link JQuery}. + * + * @param index has value 1 or 0,decides wheter to hide toggle_container on load. +**/ + +function panel(index) { + if (!index) { + $(".toggle_container").hide(); + } + $("h2.tiger").click(function(){ + $(this).toggleClass("active").next().slideToggle("slow"); + }); +} + +/** + * Sorts history_array[] first,using table name as the key and then generates the HTML code for history tab, + * clubbing all objects of same tables together + * This function is called whenever changes are made in history_array[] + * + * @uses and_or() + * @uses history_edit() + * @uses history_delete() + * + * @param {int} init starting index of unsorted array + * @param {int} final last index of unsorted array + * +**/ + +function display(init,final) { + var str,i,j,k,sto; + // this part sorts the history array based on table name,this is needed for clubbing all object of same name together. + for (i = init;i < final;i++) { + sto = history_array[i]; + var temp = history_array[i].get_tab() ;//+ '.' + history_array[i].get_obj_no(); for Self JOINS + for(j = 0;j < i;j++){ + if(temp > (history_array[j].get_tab())) {//+ '.' + history_array[j].get_obj_no())) { //for Self JOINS + for(k = i;k > j;k--) { + history_array[k] = history_array[k-1]; + } + history_array[j] = sto; + break; + } + } + } + // this part generates HTML code for history tab.adds delete,edit,and/or and detail features with objects. + str =''; // string to store Html code for history tab + for ( var i=0; i < history_array.length; i++){ + var temp = history_array[i].get_tab(); //+ '.' + history_array[i].get_obj_no(); for Self JOIN + str += '

' + temp + '

'; + str += '
\n'; + while((history_array[i].get_tab()) == temp) { //+ '.' + history_array[i].get_obj_no()) == temp) { + str +='
'; + str += ''; + } + else { + str +=''; + } + str +=''; + } + else { + str += ''; + } + i++; + if(i >= history_array.length) { + break; + } + str += '
'; + if(history_array[i].get_and_or()){ + str +='' + history_array[i].get_column_name(); + if (history_array[i].get_type() == "GroupBy" || history_array[i].get_type() == "OrderBy") { + str += '' + history_array[i].get_type() + '
' + history_array[i]. get_type() + '

'; + } + i--; + str += '

'; + } + return str; +} + +/** + * To change And/Or relation in history tab + * + * @uses panel() + * + * @param {int} index of history_array where change is to be made + * +**/ + +function and_or(index) { + if (history_array[index].get_and_or()) { + history_array[index].set_and_or(0); + } + else { + history_array[index].set_and_or(1); + } + var existingDiv = document.getElementById('ab'); + existingDiv.innerHTML = display(0,0); + panel(1); +} + +/** + * To display details of obects(where,rename,Having,aggregate,groupby,orderby,having) + * + * @param index index of history_array where change is to be made + * +**/ + +function detail (index) { + var type = history_array[index].get_type(); + var str; + if (type == "Where") { + str = 'Where ' + history_array[index].get_column_name() + history_array[index].get_obj().getrelation_operator() + history_array[index].get_obj().getquery(); + } + if (type == "Rename") { + str = 'Rename ' + history_array[index].get_column_name() + ' To ' + history_array[index].get_obj().getrename_to(); + } + if (type == "Aggregate") { + str = 'Select ' + history_array[index].get_obj().get_operator() + '( ' + history_array[index].get_column_name() + ' )'; + } + if (type == "GroupBy") { + str = 'GroupBy ' + history_array[index].get_column_name() ; + } + if (type == "OrderBy") { + str = 'OrderBy ' + history_array[index].get_column_name() ; + } + if (type == "Having") { + str = 'Having '; + if (history_array[index].get_obj().get_operator() != 'None') { + str += history_array[index].get_obj().get_operator() + '( ' + history_array[index].get_column_name() + ' )'; + str += history_array[index].get_obj().getrelation_operator() + history_array[index].get_obj().getquery(); + } + else { + str = 'Having ' + history_array[index].get_column_name() + history_array[index].get_obj().getrelation_operator() + history_array[index].get_obj().getquery(); + } + } + return str; +} + +/** + * Deletes entry in history_array + * + * @uses panel() + * @uses display() + * @param index index of history_array[] which is to be deleted + * +**/ + +function history_delete(index) { + for(var k =0 ;k < from_array.length;k++){ + if(from_array[k] == history_array[index].get_tab()){ + from_array.splice(k,1); + break; + } + } + history_array.splice(index,1); + var existingDiv = document.getElementById('ab'); + existingDiv.innerHTML = display(0,0); + panel(1); +} + +/** + * To show where,rename,aggregate,having forms to edit a object + * + * @param{int} index index of history_array where change is to be made + * +**/ + +function history_edit(index) { + g_index = index; + var type = history_array[index].get_type(); + if (type == "Where") { + document.getElementById('eQuery').value = history_array[index].get_obj().getquery(); + document.getElementById('erel_opt').value = history_array[index].get_obj().getrelation_operator(); + document.getElementById('query_where').style.left = '530px'; + document.getElementById('query_where').style.top = '130px'; + document.getElementById('query_where').style.position = 'absolute'; + document.getElementById('query_where').style.zIndex = '9'; + document.getElementById('query_where').style.visibility = 'visible'; + } + if (type == "Having") { + document.getElementById('hQuery').value = history_array[index].get_obj().getquery(); + document.getElementById('hrel_opt').value = history_array[index].get_obj().getrelation_operator(); + document.getElementById('hoperator').value = history_array[index].get_obj().get_operator(); + document.getElementById('query_having').style.left = '530px'; + document.getElementById('query_having').style.top = '130px'; + document.getElementById('query_having').style.position = 'absolute'; + document.getElementById('query_having').style.zIndex = '9'; + document.getElementById('query_having').style.visibility = 'visible'; + } + if (type == "Rename") { + document.getElementById('query_rename_to').style.left = '530px'; + document.getElementById('query_rename_to').style.top = '130px'; + document.getElementById('query_rename_to').style.position = 'absolute'; + document.getElementById('query_rename_to').style.zIndex = '9'; + document.getElementById('query_rename_to').style.visibility = 'visible'; + } + if (type == "Aggregate") { + document.getElementById('query_Aggregate').style.left = '530px'; + document.getElementById('query_Aggregate').style.top = '130px'; + document.getElementById('query_Aggregate').style.position = 'absolute'; + document.getElementById('query_Aggregate').style.zIndex = '9'; + document.getElementById('query_Aggregate').style.visibility = 'visible'; + } +} + +/** + * Make changes in history_array when Edit button is clicked + * checks for the type of object and then sets the new value + * @uses panel() + * @uses display() + * + * @param index index of history_array where change is to be made +**/ + +function edit(type) { + if (type == "Rename") { + if (document.getElementById('e_rename').value != "") { + history_array[g_index].get_obj().setrename_to(document.getElementById('e_rename').value); + document.getElementById('e_rename').value = ""; + } + document.getElementById('query_rename_to').style.visibility = 'hidden'; + } + if (type == "Aggregate") { + if (document.getElementById('e_operator').value != '---') { + history_array[g_index].get_obj().set_operator(document.getElementById('e_operator').value); + document.getElementById('e_operator').value = '---'; + } + document.getElementById('query_Aggregate').style.visibility = 'hidden'; + } + if (type == "Where") { + if (document.getElementById('erel_opt').value != '--' && document.getElementById('eQuery').value !="") { + history_array[g_index].get_obj().setquery(document.getElementById('eQuery').value); + history_array[g_index].get_obj().setrelation_operator(document.getElementById('erel_opt').value); + } + document.getElementById('query_where').style.visibility = 'hidden'; + } + if (type == "Having") { + if (document.getElementById('hrel_opt').value != '--' && document.getElementById('hQuery').value !="") { + history_array[g_index].get_obj().setquery(document.getElementById('hQuery').value); + history_array[g_index].get_obj().setrelation_operator(document.getElementById('hrel_opt').value); + history_array[g_index].get_obj().set_operator(document.getElementById('hoperator').value); + } + document.getElementById('query_having').style.visibility = 'hidden'; + } + var existingDiv = document.getElementById('ab'); + existingDiv.innerHTML = display(0,0); + panel(1); +} + +/** + * history object closure + * + * @param ncolumn_name name of the column on which conditions are put + * @param nobj object details(where,rename,orderby,groupby,aggregate) + * @param ntab table name of the column on which conditions are applied + * @param nobj_no object no used for inner join + * @param ntype type of object + * +**/ + +function history(ncolumn_name,nobj,ntab,nobj_no,ntype) { + var and_or; + var obj; + var tab; + var column_name; + var obj_no; + var type; + this.set_column_name = function (ncolumn_name) { + column_name = ncolumn_name; + }; + this.get_column_name = function() { + return column_name; + }; + this.set_and_or = function(nand_or) { + and_or = nand_or; + }; + this.get_and_or = function() { + return and_or; + } + this.get_relation = function() { + return and_or; + }; + this.set_obj = function(nobj) { + obj = nobj; + }; + this.get_obj = function() { + return obj; + }; + this.set_tab = function(ntab) { + tab = ntab; + }; + this.get_tab = function() { + return tab; + }; + this.set_obj_no = function(nobj_no) { + obj_no = nobj_no; + }; + this.get_obj_no = function() { + return obj_no; + }; + this.set_type = function(ntype) { + type = ntype; + } + this.get_type = function() { + return type; + } + this.set_obj_no(nobj_no); + this.set_tab(ntab); + this.set_and_or(0); + this.set_obj(nobj); + this.set_column_name(ncolumn_name); + this.set_type(ntype); +}; + +/** + * where object closure, makes an object with all information of where + * + * @param nrelation_operator type of relation operator to be applied + * @param nquery stores value of value/sub-query + * +**/ + + +var where = function (nrelation_operator,nquery) { + var relation_operator; + var query; + this.setrelation_operator = function(nrelation_operator) { + relation_operator = nrelation_operator; + }; + this.setquery = function(nquery) { + query = nquery; + }; + this.getquery = function() { + return query; + }; + this.getrelation_operator = function() { + return relation_operator; + }; + this.setquery(nquery); + this.setrelation_operator(nrelation_operator); +}; + + +/** + * Having object closure, makes an object with all information of where + * + * @param nrelation_operator type of relation operator to be applied + * @param nquery stores value of value/sub-query + * +**/ + +var having = function (nrelation_operator,nquery,noperator) { + var relation_operator; + var query; + var operator; + this.set_operator = function(noperator) { + operator = noperator; + }; + this.setrelation_operator = function(nrelation_operator) { + relation_operator = nrelation_operator; + }; + this.setquery = function(nquery) { + query = nquery; + }; + this.getquery = function() { + return query; + }; + this.getrelation_operator = function() { + return relation_operator; + }; + this.get_operator = function() { + return operator; + }; + this.setquery(nquery); + this.setrelation_operator(nrelation_operator); + this.set_operator(noperator); +}; + +/** + * rename object closure,makes an object with all information of rename + * + * @param nrename_to new name information + * +**/ + +var rename = function(nrename_to) { + var rename_to; + this.setrename_to = function(nrename_to) { + rename_to = nrename_to; + }; + this.getrename_to =function() { + return rename_to; + }; + this.setrename_to(nrename_to); +}; + +/** + * aggregate object closure + * + * @param noperator aggregte operator + * +**/ + +var aggregate = function(noperator) { + var operator; + this.set_operator = function(noperator) { + operator = noperator; + }; + this.get_operator = function() { + return operator; + }; + this.set_operator(noperator); +}; + +/** + * This function returns unique element from an array + * + * @param arraName array from which duplicate elem are to be removed. + * @return unique array + */ + +function unique(arrayName) { + var newArray=new Array(); + label:for(var i=0; i 0) { + for (key3 in contr[K][key][key2]) { + parts1 = contr[K][key][key2][key3][0].split("."); + if(found(tab_left,parts1[1]) > 0) { + query += "\n" + 'LEFT JOIN '; + query += '`' + parts1[0] + '`.`' + parts1[1] + '` ON ' ; + query += '`' + parts[1] +'`.`' + key3 + '` = '; + query += '`' + parts1[1] + '`.`' + contr[K][key][key2][key3][1] + '` '; + t_tab_left.push(parts1[1]); + } + } + } + } + } + } + K = 0; + t_tab_left = unique (t_tab_left); + tab_used = add_array(t_tab_left,tab_used); + tab_left = remove_array(t_tab_left,tab_left); + t_tab_left = []; + for (K in contr) { + for (key in contr[K]) { + for (key2 in contr[K][key]){// table name + parts = key2.split("."); + if(found(tab_left,parts[1]) > 0){ + for (key3 in contr[K][key][key2]){ + parts1 = contr[K][key][key2][key3][0].split("."); + if(found(tab_used,parts1[1]) > 0) { + query += "\n" + 'LEFT JOIN '; + query += '`' + parts[0] + '`.`' + parts[1] + '` ON ' ; + query += '`' + parts1[1] + '`.`' + contr[K][key][key2][key3][1] + '` = '; + query += '`' + parts[1] + '`.`' + key3 + '` '; + t_tab_left.push(parts[1]); + } + } + } + } + } + } + t_tab_left = unique (t_tab_left); + tab_used = add_array(t_tab_left,tab_used); + tab_left = remove_array(t_tab_left,tab_left); + t_tab_left = []; + } + for (k in tab_left) { + quer += " , `" + tab_left[k] + "`"; + } + query = quer + query; + from_array = t_array; + return query; +} + /* document.write(key3+";"); //master_field + document.write(contr[K][key][key2][key3][0]+";"); // foreign_table + document.write(contr[K][key][key2][key3][1]+";"); //forieign_feild */ +/** + * This function concatenates two array + * + * @params add array elements of which are pushed in + * @params arr array in which elemnets are added + */ +function add_array(add,arr){ + for( var i=0; i>1); - document.getElementById(id_this).style.left = left + 'px'; + var left = Glob_X - (document.getElementById(id_this).offsetWidth>>1); + document.getElementById(id_this).style.left = left + 'px'; // var top = Glob_Y - document.getElementById(id_this).offsetHeight - 10; - document.getElementById(id_this).style.top = (screen.height / 4) + 'px'; - document.getElementById(id_this).style.visibility = "visible"; - document.getElementById('option_col_name').innerHTML = 'Options For "' +column_name+ '" column'; - col_name = column_name; - tab_name = table_name; + document.getElementById(id_this).style.top = (screen.height / 4) + 'px'; + document.getElementById(id_this).style.visibility = "visible"; + document.getElementById('option_col_name').innerHTML = 'Options For "' +column_name+ '" column'; + col_name = column_name; + tab_name = table_name; } function Close_option() { - document.getElementById('pmd_optionse').style.visibility = "hidden"; + document.getElementById('pmd_optionse').style.visibility = "hidden"; } function Select_all(id_this,owner) { - var parent= document.form1; - downer =owner; - var i; - var tab = []; - for(i = 0; i < parent.elements.length; i++) { - if (parent.elements[i].type == "checkbox" && parent.elements[i].id.substring(0,(9 + id_this.length)) == 'select_' + id_this + '._') { - if(document.getElementById('select_all_' + id_this).checked == true) { - parent.elements[i].checked = true; - parent.elements[i].disabled = true; - var temp = '`' + id_this.substring(owner.length +1) + '`.*'; - } - else { - parent.elements[i].checked = false; - parent.elements[i].disabled = false; - } - } - } - if(document.getElementById('select_all_' + id_this).checked == true) { - select_field.push('`' + id_this.substring(owner.length +1) + '`.*'); - tab = id_this.split("."); - from_array.push(tab[1]); - - } - else { - for (i =0; i < select_field.length; i++) { - if (select_field[i] == ('`' + id_this.substring(owner.length +1) + '`.*')) { - select_field.splice(i,1); - - } - } - for(k =0 ;k < from_array.length;k++){ - if(from_array[k] == id_this){ - from_array.splice(k,1); - break; - } - } - } - Re_load(); + var parent= document.form1; + downer =owner; + var i; + var tab = []; + for(i = 0; i < parent.elements.length; i++) { + if (parent.elements[i].type == "checkbox" && parent.elements[i].id.substring(0,(9 + id_this.length)) == 'select_' + id_this + '._') { + if(document.getElementById('select_all_' + id_this).checked == true) { + parent.elements[i].checked = true; + parent.elements[i].disabled = true; + var temp = '`' + id_this.substring(owner.length +1) + '`.*'; + } + else { + parent.elements[i].checked = false; + parent.elements[i].disabled = false; + } + } + } + if(document.getElementById('select_all_' + id_this).checked == true) { + select_field.push('`' + id_this.substring(owner.length +1) + '`.*'); + tab = id_this.split("."); + from_array.push(tab[1]); + } + else { + for (i =0; i < select_field.length; i++) { + if (select_field[i] == ('`' + id_this.substring(owner.length +1) + '`.*')) { + select_field.splice(i,1); + } + } + for(k =0 ;k < from_array.length;k++){ + if(from_array[k] == id_this){ + from_array.splice(k,1); + break; + } + } + } + Re_load(); } -function Table_onover(id_this,val) +function Table_onover(id_this,val,buil) { - if(!val) { - document.getElementById("id_zag_" + id_this).className="tab_zag_2"; - document.getElementById("id_zag_" + id_this + "_2").className="tab_zag_2"; - } - else { - document.getElementById("id_zag_" + id_this).className="tab_zag"; - document.getElementById("id_zag_" + id_this + "_2").className="tab_zag"; - } + if(!val) { + document.getElementById("id_zag_" + id_this).className="tab_zag_2"; + if(buil) { + document.getElementById("id_zag_" + id_this + "_2").className="tab_zag_2"; + } + } + else { + document.getElementById("id_zag_" + id_this).className="tab_zag"; + if(buil) { + document.getElementById("id_zag_" + id_this + "_2").className="tab_zag"; + } + } } /* This function stores selected column information in select_field[] @@ -1044,26 +1044,26 @@ function Table_onover(id_this,val) * */ function store_column(id_this,owner,col) { - var i = 0; - var k = 0; - if (document.getElementById('select_' + owner + '.' + id_this + '._' + col).checked == true) { - select_field.push('`' + id_this + '`.`' + col +'`'); - from_array.push(id_this); - } - else { - for(i; i < select_field.length ;i++) { - if (select_field[i] == ('`' + id_this + '`.`' + col +'`')) { - select_field.splice(i,1); - break; - } - } - for(k =0 ;k < from_array.length;k++){ - if(from_array[k] == id_this){ - from_array.splice(k,1); - break; - } - } - } + var i = 0; + var k = 0; + if (document.getElementById('select_' + owner + '.' + id_this + '._' + col).checked == true) { + select_field.push('`' + id_this + '`.`' + col +'`'); + from_array.push(id_this); + } + else { + for(i; i < select_field.length ;i++) { + if (select_field[i] == ('`' + id_this + '`.`' + col +'`')) { + select_field.splice(i,1); + break; + } + } + for(k =0 ;k < from_array.length;k++){ + if(from_array[k] == id_this){ + from_array.splice(k,1); + break; + } + } + } } /** @@ -1080,67 +1080,66 @@ function store_column(id_this,owner,col) { **/ function add_object() { - var rel = document.getElementById('rel_opt'); - var sum = 0; - var init = history_array.length; - if (rel.value != '--') { - if (document.getElementById('Query').value == "") { - document.getElementById('hint').innerHTML = "value/subQuery is empty" ; - document.getElementById('hint').style.visibility = "visible"; - return; - } - var p = document.getElementById('Query'); - var where_obj = new where(rel.value,p.value);//make where object - history_array.push(new history(col_name,where_obj,tab_name,h_tabs[downer + '.' + tab_name],"Where")); - sum = sum + 1; - rel.value = '--'; - p.value = ""; - } - if (document.getElementById('new_name').value !="") { - var rename_obj = new rename(document.getElementById('new_name').value);//make Rename object - history_array.push(new history(col_name,rename_obj,tab_name,h_tabs[downer + '.' + tab_name],"Rename")); - sum = sum + 1; - document.getElementById('new_name').value = "" ; - } + var rel = document.getElementById('rel_opt'); + var sum = 0; + var init = history_array.length; + if (rel.value != '--') { + if (document.getElementById('Query').value == "") { + document.getElementById('hint').innerHTML = "value/subQuery is empty" ; + document.getElementById('hint').style.visibility = "visible"; + return; + } + var p = document.getElementById('Query'); + var where_obj = new where(rel.value,p.value);//make where object + history_array.push(new history(col_name,where_obj,tab_name,h_tabs[downer + '.' + tab_name],"Where")); + sum = sum + 1; + rel.value = '--'; + p.value = ""; + } + if (document.getElementById('new_name').value !="") { + var rename_obj = new rename(document.getElementById('new_name').value);//make Rename object + history_array.push(new history(col_name,rename_obj,tab_name,h_tabs[downer + '.' + tab_name],"Rename")); + sum = sum + 1; + document.getElementById('new_name').value = "" ; + } if (document.getElementById('operator').value != '---') { - var aggregate_obj = new aggregate(document.getElementById('operator').value) ; - history_array.push(new history(col_name,aggregate_obj,tab_name,h_tabs[downer + '.' + tab_name],"Aggregate")); - sum = sum + 1; - document.getElementById('operator').value = '---'; + var aggregate_obj = new aggregate(document.getElementById('operator').value) ; + history_array.push(new history(col_name,aggregate_obj,tab_name,h_tabs[downer + '.' + tab_name],"Aggregate")); + sum = sum + 1; + document.getElementById('operator').value = '---'; //make aggregate operator - } - if (document.getElementById('groupby').checked == true ) { - history_array.push(new history(col_name,'GroupBy',tab_name,h_tabs[downer + '.' +tab_name],"GroupBy")); - sum = sum + 1; - document.getElementById('groupby').checked = false; - //make groupby - } - if (document.getElementById('h_rel_opt').value != '--') { - if (document.getElementById('having').value == "") { - document.getElementById('hint').innerHTML = "value/subQuery is empty" ; - document.getElementById('hint').style.visibility = "visible"; - return; - } - var p = document.getElementById('having'); - var where_obj = new having(document.getElementById('h_rel_opt').value,p.value,document.getElementById('h_operator').value);//make where object - history_array.push(new history(col_name,where_obj,tab_name,h_tabs[downer + '.' + tab_name],"Having")); - sum = sum + 1; - document.getElementById('h_rel_opt').value = '--'; - document.getElementById('h_operator').value = '---'; - p.value = ""; //make having - } - if (document.getElementById('orderby').checked == true) { - history_array.push(new history(col_name,'OrderBy',tab_name,h_tabs[downer + '.' + tab_name],"OrderBy")); - sum = sum + 1; - document.getElementById('orderby').checked = false; + } + if (document.getElementById('groupby').checked == true ) { + history_array.push(new history(col_name,'GroupBy',tab_name,h_tabs[downer + '.' +tab_name],"GroupBy")); + sum = sum + 1; + document.getElementById('groupby').checked = false; + //make groupby + } + if (document.getElementById('h_rel_opt').value != '--') { + if (document.getElementById('having').value == "") { + document.getElementById('hint').innerHTML = "value/subQuery is empty" ; + document.getElementById('hint').style.visibility = "visible"; + return; + } + var p = document.getElementById('having'); + var where_obj = new having(document.getElementById('h_rel_opt').value,p.value,document.getElementById('h_operator').value);//make where object + history_array.push(new history(col_name,where_obj,tab_name,h_tabs[downer + '.' + tab_name],"Having")); + sum = sum + 1; + document.getElementById('h_rel_opt').value = '--'; + document.getElementById('h_operator').value = '---'; + p.value = ""; //make having + } + if (document.getElementById('orderby').checked == true) { + history_array.push(new history(col_name,'OrderBy',tab_name,h_tabs[downer + '.' + tab_name],"OrderBy")); + sum = sum + 1; + document.getElementById('orderby').checked = false; //make orderby - } - document.getElementById('hint').innerHTML = sum + "object created" ; + } + document.getElementById('hint').innerHTML = sum + "object created" ; document.getElementById('hint').style.visibility = "visible"; //output sum new objects created - var existingDiv = document.getElementById('ab'); - existingDiv.innerHTML = display(init,history_array.length); - Close_option(); - panel(0); - + var existingDiv = document.getElementById('ab'); + existingDiv.innerHTML = display(init,history_array.length); + Close_option(); + panel(0); } \ No newline at end of file diff --git a/pmd_general.php b/pmd_general.php index b7a1e1aad5..7f698f6e07 100644 --- a/pmd_general.php +++ b/pmd_general.php @@ -114,11 +114,14 @@ echo $script_tabs . $script_contr . $script_display_field; class="M_butt" target="_self" >keykey + '; + echo 'key'; }?> + > @@ -227,9 +230,9 @@ for ($i = 0; $i < count($GLOBALS['PMD']["TABLE_NAME"]); $i++) { onclick="Start_tab_upd('');"> + onmousedown="cur_click=document.getElementById('');"/ + onmouseover="Table_onover('',0, )" + onmouseout="Table_onover('',1,)"> '; + echo 'onmouseout="Table_onover(\''.htmlspecialchars($t_n_url).'\',1,1)">'; }?> @@ -810,15 +813,16 @@ if($_REQUEST['query']) { echo '
'; echo '
'; echo ''; - echo '
'; + echo ''; echo '
'; - echo ' '; + echo ' '; echo ' '; echo '

'; echo '
'; } ?> + -- 2.11.4.GIT