diff --git a/pmd/scripts/history.js b/pmd/scripts/history.js
index 69564450b..26f552ec8 100644
--- a/pmd/scripts/history.js
+++ b/pmd/scripts/history.js
@@ -1,6 +1,12 @@
-var history_array = [];
-var tab_array = [];
+var history_array = []; // Global array to store history objects
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();
@@ -10,6 +16,19 @@ function panel(index) {
});
}
+/**
+ * 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++) {
@@ -25,7 +44,7 @@ function display(init,final) {
}
}
}
- str ='';
+ 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 += '
';
@@ -57,7 +76,16 @@ function display(init,final) {
}
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);
@@ -70,6 +98,13 @@ function and_or(index) {
panel(1);
}
+/**
+ * To display details of obects(where,rename,aggregate,groupby,orderby)
+ *
+ * @param index index of history_array where change is to be made
+ *
+**/
+
function detail (index) {
var type = history_array[index].get_type();
var str;
@@ -90,13 +125,30 @@ function detail (index) {
}
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) {
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();
@@ -105,21 +157,35 @@ function history_edit(index) {
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 == "Rename") {
- //var left = screen.availWidth/2 ;
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") {
- var left = Glob_X - (document.getElementById('query_Aggregate').offsetWidth>>1);
- document.getElementById('query_Aggregate').style.left = left + 'px';
- document.getElementById('query_Aggregate').style.top = (screen.height / 4) + 'px';
+ 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 != "") {
@@ -139,8 +205,6 @@ function edit(type) {
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('eQuery').value = "";
- document.getElementById('erel_opt').value = '--';
}
document.getElementById('query_where').style.visibility = 'hidden';
}
@@ -148,6 +212,18 @@ function edit(type) {
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;
@@ -202,6 +278,14 @@ function history(ncolumn_name,nobj,ntab,nobj_no,ntype) {
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;
@@ -221,6 +305,13 @@ var where = function (nrelation_operator,nquery) {
this.setrelation_operator(nrelation_operator);
};
+/**
+ * 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) {
@@ -231,6 +322,14 @@ var rename = function(nrename_to) {
};
this.setrename_to(nrename_to);
};
+
+/**
+ * aggregate object closure
+ *
+ * @param noperator aggregte operator
+ *
+**/
+
var aggregate = function(noperator) {
var operator;
this.set_operator = function(noperator) {
diff --git a/pmd/scripts/move.js b/pmd/scripts/move.js
index ae077edaf..9e9d91307 100644
--- a/pmd/scripts/move.js
+++ b/pmd/scripts/move.js
@@ -1009,6 +1009,19 @@ function Table_onover(id_this,val)
}
}
+/**
+ * This function builds object and adds them to history_array
+ * first it does a few checks on each object, then makes an object(where,rename,groupby,aggregate,orderby)
+ * then a new history object is made and finally all these history objects are addded to history_array[]
+ *
+ * @uses where()
+ * @uses history()
+ * @uses aggregate()
+ * @uses rename()
+ * @uses panel()
+ * @uses display()
+**/
+
function add_object() {
var rel = document.getElementById('rel_opt');
var sum = 0;