From d14a5a8dc0cef4bfccb9065b1a435bb4e23b981c Mon Sep 17 00:00:00 2001 From: ankitg Date: Sat, 22 May 2010 15:30:59 +0530 Subject: [PATCH 01/19] first commit --- readme | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 readme diff --git a/readme b/readme new file mode 100644 index 000000000..e69de29bb From 58a2724c315f49f34ce503fc168b2a594e256a14 Mon Sep 17 00:00:00 2001 From: ankitg Date: Wed, 9 Jun 2010 22:49:29 +0530 Subject: [PATCH 02/19] link in query tab --- db_qbe.php | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/db_qbe.php b/db_qbe.php index 0b661c95f..4ef8bac26 100644 --- a/db_qbe.php +++ b/db_qbe.php @@ -167,6 +167,29 @@ function showColumnSelectCell($columns, $column_number, $selected = '') } ?> + $value) { + $tab_designer['link'] .= PMA_get_arg_separator('html') . urlencode($param) . '=' + . urlencode($value); + } + } + } + if (! empty($tab['fragment'])) { + $tab['link'] .= $tab['fragment']; + } +?> +
+ + Switch to +
+ +
+
From 12af64757baf59b9b00c4895cc3a9dc7902a567b Mon Sep 17 00:00:00 2001 From: ankitg Date: Wed, 9 Jun 2010 22:53:13 +0530 Subject: [PATCH 03/19] options added in designer --- pmd/scripts/move.js | 40 ++++++++++++ pmd/styles/default/style1.css | 25 +++++++ pmd_general.php | 120 +++++++++++++++++++++++++++++++++- 3 files changed, 183 insertions(+), 2 deletions(-) diff --git a/pmd/scripts/move.js b/pmd/scripts/move.js index a68f4746a..a8a38cd21 100644 --- a/pmd/scripts/move.js +++ b/pmd/scripts/move.js @@ -965,3 +965,43 @@ function getColorByTarget( target ) return color; } + +function Click_option(id_this) +{ + 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"; +} + +function Close_option() +{ + document.getElementById('pmd_options').style.visibility = "hidden"; +} + +function Select_all(id_this) +{ + var parent= document.form1; + for(i = 0; i < parent.elements.length; i++) { + if (parent.elements[i].type == "checkbox" && parent.elements[i].id.substring(0,(7 + id_this.length)) == 'select_' + id_this) { + if(document.getElementById('select_all_' + id_this).checked == true) + parent.elements[i].checked = true; + else + parent.elements[i].checked = false; + } + } + Re_load(); +} + +function Table_onover(id_this,val) +{ + 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"; + } +} \ No newline at end of file diff --git a/pmd/styles/default/style1.css b/pmd/styles/default/style1.css index b4f7ec33b..26e85e90e 100644 --- a/pmd/styles/default/style1.css +++ b/pmd/styles/default/style1.css @@ -147,6 +147,23 @@ form { color: #888888; } +.option_tab { + padding-left: 2px; + padding-right: 2px; + width: 5px; +} + +.select_all { + vertical-align: top; + padding-left: 2px; + padding-right: 2px; + cursor: default; + width: 1px; + color: #000000; + background-image: url(images/Header.png); + background-repeat: repeat-x; +} + .small_tab { vertical-align: top; background-color: #0064ea; @@ -372,6 +389,14 @@ a.M_butt:hover { width: 153px; } +#pmd_optionse { + position: absolute; + left: 636px; + top: 85px; + z-index: 1000; + width: 153px; +} + #layer_menu_sizer { background-image: url(../../images/resize.png); cursor: nw-resize; diff --git a/pmd_general.php b/pmd_general.php index 89988ddfa..1beadf139 100644 --- a/pmd_general.php +++ b/pmd_general.php @@ -187,6 +187,13 @@ for ($i = 0; $i < count($GLOBALS['PMD']["TABLE_NAME"]); $i++) { "> + '; + echo ''; + }?> + '; + }?> )"> + '; + echo ''; + }?> + '; + echo ' '; + } ?>
+ onmouseover="Table_onover('',0)" + onmouseout="Table_onover('',1)"> '; echo $GLOBALS['PMD_OUT']["TABLE_NAME_SMALL"][$i]; ?>
">
@@ -276,6 +296,13 @@ for ($i = 0; $i < count($GLOBALS['PMD']["TABLE_NAME"]); $i++) { ?>
+ + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Options
Where
Relation operator +
Value/
Subquery
+
Rename To
New Name
Aggregate
Operator +
Group By
Order By
+ + +
+
From dea405cfc3379c8e8e91e4b2446c63fdee16c8c0 Mon Sep 17 00:00:00 2001 From: ankitg Date: Wed, 23 Jun 2010 10:49:15 +0530 Subject: [PATCH 04/19] CSS for history tab --- pmd/styles/default/style1.css | 93 +++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) diff --git a/pmd/styles/default/style1.css b/pmd/styles/default/style1.css index 26e85e90e..693a796bd 100644 --- a/pmd/styles/default/style1.css +++ b/pmd/styles/default/style1.css @@ -403,3 +403,96 @@ a.M_butt:hover { width: 16px; height: 16px; } + +.panel { +position: fixed; +top: 50px; +right: 0; +display: none; +background: #000000; +border:1px solid #111111; +-moz-border-radius-topleft: 20px; +-webkit-border-top-left-radius: 20px; +-moz-border-radius-bottomleft: 20px; +-webkit-border-bottom-left-radius: 20px; +width: 330px; +height: auto; +padding: 30px 30px 30px 130px; +filter: alpha(opacity=85); +opacity: .85; +color:#FFF; + +} + +.panel p{ +margin: 0 0 15px 0; +padding: 0; +color: #cccccc; +} + +.panel a, .panel a:visited{ +margin: 0; +padding: 0; +color: #9FC54E; +text-decoration: none; +border-bottom: 1px solid #9FC54E; +} + +.panel a:hover, .panel a:visited:hover{ +margin: 0; +padding: 0; +color: #ffffff; +text-decoration: none; +border-bottom: 1px solid #ffffff; +} +.panel tr { + color:#CCC; + background-color:#B9E24B; +} + +a.trigger{ +position: fixed; +text-decoration: none; +top: 80px; right: 0; +font-size: 16px; +letter-spacing:-1px; +font-family: verdana, helvetica, arial, sans-serif; +color:#fff; +padding: 20px 40px 20px 15px; +font-weight: 700; +background:#333333 url(images/plus.png) 85% 55% no-repeat; +border:1px solid #444444; +-moz-border-radius-topleft: 20px; +-webkit-border-top-left-radius: 20px; +-moz-border-radius-bottomleft: 20px; +-webkit-border-bottom-left-radius: 20px; +-moz-border-radius-bottomright: 0px; +-webkit-border-bottom-right-radius: 0px; +display: block; +} + +a.trigger:hover{ +position: fixed; +text-decoration: none; +top: 80px; right: 0; +font-size: 16px; +letter-spacing:-1px; +font-family: verdana, helvetica, arial, sans-serif; +color:#fff; +padding: 20px 40px 20px 20px; +font-weight: 700; +background:#222222 url(images/plus.png) 85% 55% no-repeat; +border:1px solid #444444; +-moz-border-radius-topleft: 20px; +-webkit-border-top-left-radius: 20px; +-moz-border-radius-bottomleft: 20px; +-webkit-border-bottom-left-radius: 20px; +-moz-border-radius-bottomright: 0px; +-webkit-border-bottom-right-radius: 0px; +display: block; +} + +a.active.trigger { +background:#222222 url(images/minus.png) 85% 55% no-repeat; +} +a.test { font-weight: bold; color:#C06; } From ca3a49dfcff833168de8584cdd659ca6cc01b5d0 Mon Sep 17 00:00:00 2001 From: ankitg Date: Wed, 23 Jun 2010 11:01:48 +0530 Subject: [PATCH 05/19] .js file for history tab operatoins --- pmd/scripts/history.js | 81 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 pmd/scripts/history.js diff --git a/pmd/scripts/history.js b/pmd/scripts/history.js new file mode 100644 index 000000000..f254285c1 --- /dev/null +++ b/pmd/scripts/history.js @@ -0,0 +1,81 @@ +var history_array = []; + function history(ncolumn_name,nobj,ntab,nobj_no) { + var and_or; + var obj; + var tab; + var column_name; + var obj_no; + this.setcolumn_name = function (ncolumn_name) { + column_name = ncolumn_name; + }; + this.getcolumn_name = function() { + return column_name; + }; + this.set_and_or = function(nand_or) { + and_or = nand_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 obj; + }; + this.set_obj_no = function(nobj_no) { + obj_no = nobj_no; + }; + this.get_obj_no = function() { + return obj_no; + }; + + this.set_obj_no(nobj_no); + this.set_tab(ntab); + this.set_and_or(0); + this.set_obj(nobj); + this.setcolumn_name(ncolumn_name); +}; + +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_opearator; + }; + this.setquery(nquery); + this.setrelation_operator(nrelation_operator); +}; + +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); +}; +var aggregate = function(noperator) { + var operator; + this.set_operator = function(noperator) { + operator=noperator; + }; + this.set_operator(noperator); +}; From 2c80a5023bb8d7b21e5f2f955e5a70ae6119deb4 Mon Sep 17 00:00:00 2001 From: ankitg Date: Wed, 23 Jun 2010 11:15:16 +0530 Subject: [PATCH 06/19] added new images for history --- pmd/styles/default/images/minus.png | Bin 0 -> 48703 bytes pmd/styles/default/images/plus.png | Bin 0 -> 48663 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 pmd/styles/default/images/minus.png create mode 100644 pmd/styles/default/images/plus.png diff --git a/pmd/styles/default/images/minus.png b/pmd/styles/default/images/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..cf72f391937f7a54c495d15d25bd33ac67b327ff GIT binary patch literal 48703 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%0Da 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 u^M$=ClcxJ9)}QHFC13TIQ+eo=O@f^)F( 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 L{an^LB{Ts5Xf%c= literal 0 HcmV?d00001 From bc910761d6cd48a40c91bb8af38ae9402ad18c63 Mon Sep 17 00:00:00 2001 From: ankitg Date: Wed, 23 Jun 2010 11:19:23 +0530 Subject: [PATCH 07/19] .js file added for history --- pmd/scripts/history.js | 81 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 pmd/scripts/history.js diff --git a/pmd/scripts/history.js b/pmd/scripts/history.js new file mode 100644 index 000000000..f254285c1 --- /dev/null +++ b/pmd/scripts/history.js @@ -0,0 +1,81 @@ +var history_array = []; + function history(ncolumn_name,nobj,ntab,nobj_no) { + var and_or; + var obj; + var tab; + var column_name; + var obj_no; + this.setcolumn_name = function (ncolumn_name) { + column_name = ncolumn_name; + }; + this.getcolumn_name = function() { + return column_name; + }; + this.set_and_or = function(nand_or) { + and_or = nand_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 obj; + }; + this.set_obj_no = function(nobj_no) { + obj_no = nobj_no; + }; + this.get_obj_no = function() { + return obj_no; + }; + + this.set_obj_no(nobj_no); + this.set_tab(ntab); + this.set_and_or(0); + this.set_obj(nobj); + this.setcolumn_name(ncolumn_name); +}; + +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_opearator; + }; + this.setquery(nquery); + this.setrelation_operator(nrelation_operator); +}; + +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); +}; +var aggregate = function(noperator) { + var operator; + this.set_operator = function(noperator) { + operator=noperator; + }; + this.set_operator(noperator); +}; From f3d9b75c3503d87aff57d02feef7736bbbca98de Mon Sep 17 00:00:00 2001 From: ankitg Date: Wed, 23 Jun 2010 11:39:52 +0530 Subject: [PATCH 08/19] initalized h_tabs --- pmd_common.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pmd_common.php b/pmd_common.php index bb376fa9d..8d6ee8963 100644 --- a/pmd_common.php +++ b/pmd_common.php @@ -239,11 +239,13 @@ function get_script_tabs() $script_tabs = '' . "\n"; From 8a672bad12d08013ba3242ba457e790a49bbfe00 Mon Sep 17 00:00:00 2001 From: ankitg Date: Fri, 25 Jun 2010 09:46:08 +0530 Subject: [PATCH 09/19] history tab few changes --- pmd/scripts/history.js | 66 ++++++++++++++++-- pmd/scripts/move.js | 60 +++++++++++++++- pmd/styles/default/style1.css | 124 ++++++++++++++++++---------------- pmd_general.php | 44 +++++++++--- 4 files changed, 215 insertions(+), 79 deletions(-) diff --git a/pmd/scripts/history.js b/pmd/scripts/history.js index f254285c1..f90eb9015 100644 --- a/pmd/scripts/history.js +++ b/pmd/scripts/history.js @@ -1,14 +1,59 @@ var history_array = []; - function history(ncolumn_name,nobj,ntab,nobj_no) { +var tab_array = []; +function panel() { + $(".toggle_container").hide(); + $("h2.tiger").click(function(){ + $(this).toggleClass("active").next().slideToggle("slow"); + }); +} + +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 =''; + 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 += ''; + i++; + if(i >= history_array.length) { + break; + } + str += '
' + history_array[i].get_column_name() + '
'; + str += history_array[i].get_type() + '

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

'; + } + return str; +} + + function history(ncolumn_name,nobj,ntab,nobj_no,ntype) { var and_or; var obj; var tab; var column_name; var obj_no; - this.setcolumn_name = function (ncolumn_name) { + var type; + this.set_column_name = function (ncolumn_name) { column_name = ncolumn_name; }; - this.getcolumn_name = function() { + this.get_column_name = function() { return column_name; }; this.set_and_or = function(nand_or) { @@ -27,7 +72,7 @@ var history_array = []; tab = ntab; }; this.get_tab = function() { - return obj; + return tab; }; this.set_obj_no = function(nobj_no) { obj_no = nobj_no; @@ -35,12 +80,18 @@ var history_array = []; 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.setcolumn_name(ncolumn_name); + this.set_column_name(ncolumn_name); + this.set_type(ntype); }; var where = function (nrelation_operator,nquery) { @@ -77,5 +128,8 @@ var aggregate = function(noperator) { this.set_operator = function(noperator) { operator=noperator; }; + this.get_operator = function() { + return operator; + }; this.set_operator(noperator); }; diff --git a/pmd/scripts/move.js b/pmd/scripts/move.js index a8a38cd21..7784cfa7f 100644 --- a/pmd/scripts/move.js +++ b/pmd/scripts/move.js @@ -966,18 +966,21 @@ function getColorByTarget( target ) return color; } -function Click_option(id_this) +function Click_option(id_this,column_name,table_name) { - var left = Glob_X - (document.getElementById(id_this).offsetWidth>>1); + 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 = 'column_name'; + col_name = column_name; + tab_name = table_name; } function Close_option() { - document.getElementById('pmd_options').style.visibility = "hidden"; + document.getElementById('pmd_optionse').style.visibility = "hidden"; } function Select_all(id_this) @@ -1004,4 +1007,55 @@ function Table_onover(id_this,val) document.getElementById("id_zag_" + id_this).className="tab_zag"; document.getElementById("id_zag_" + id_this + "_2").className="tab_zag"; } +} + + +function add_object() { + var rel = document.getElementById('rel_opt'); + var sum = 0; + var init = history_array.length; + if (rel.value != '--') { + if (document.getElementsByName('Query').value == "") { + document.getElementById('hint').innerHTML = "value/subQuery is empty" ; + document.getElementById('hint').style.visibility = "visible"; + return; + } + var w = document.getElementById('rel_opt').value; + var p = document.getElementsByName('Query'); + var where_obj = new where(w,p.value);//make where object + history_array.push(new history(col_name,where_obj,tab_name,h_tabs[tab_name],"Where")); + sum = sum + 1; + } + 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[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[tab_name],"Aggregate")); + sum = sum + 1; + //make aggregate operator + } + if (document.getElementById('groupby').checked == true ) { + history_array.push(new history(col_name,'GroupBy',tab_name,h_tabs[tab_name],"Group By")); + sum = sum + 1; + document.getElementById('groupby').checked = false; + //make groupby + } + if (document.getElementById('orderby').checked == true) { + history_array.push(new history(col_name,'OrderBy',tab_name,h_tabs[tab_name],"Order By")); + sum = sum + 1; + document.getElementById('orderby').checked = false; + //make orderby + } + 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(); + } \ No newline at end of file diff --git a/pmd/styles/default/style1.css b/pmd/styles/default/style1.css index 693a796bd..c941b9c28 100644 --- a/pmd/styles/default/style1.css +++ b/pmd/styles/default/style1.css @@ -409,90 +409,96 @@ position: fixed; top: 50px; right: 0; display: none; -background: #000000; -border:1px solid #111111; --moz-border-radius-topleft: 20px; --webkit-border-top-left-radius: 20px; --moz-border-radius-bottomleft: 20px; --webkit-border-bottom-left-radius: 20px; -width: 330px; +background: #FFF; +border:1px solid #F5F5F5; +width: auto; height: auto; -padding: 30px 30px 30px 130px; -filter: alpha(opacity=85); -opacity: .85; +padding: 30px 170px 30px 30px; color:#FFF; - -} - -.panel p{ -margin: 0 0 15px 0; -padding: 0; -color: #cccccc; -} - -.panel a, .panel a:visited{ -margin: 0; -padding: 0; -color: #9FC54E; -text-decoration: none; -border-bottom: 1px solid #9FC54E; -} - -.panel a:hover, .panel a:visited:hover{ -margin: 0; -padding: 0; -color: #ffffff; -text-decoration: none; -border-bottom: 1px solid #ffffff; -} -.panel tr { - color:#CCC; - background-color:#B9E24B; +z-index:99; } a.trigger{ position: fixed; text-decoration: none; -top: 80px; right: 0; +top: 60px; right: 0; font-size: 16px; -letter-spacing:-1px; font-family: verdana, helvetica, arial, sans-serif; color:#fff; -padding: 20px 40px 20px 15px; +padding: 10px 40px 10px 15px; font-weight: 700; background:#333333 url(images/plus.png) 85% 55% no-repeat; border:1px solid #444444; --moz-border-radius-topleft: 20px; --webkit-border-top-left-radius: 20px; --moz-border-radius-bottomleft: 20px; --webkit-border-bottom-left-radius: 20px; --moz-border-radius-bottomright: 0px; --webkit-border-bottom-right-radius: 0px; display: block; } a.trigger:hover{ position: fixed; text-decoration: none; -top: 80px; right: 0; +top: 60px; right: 0; font-size: 16px; -letter-spacing:-1px; font-family: verdana, helvetica, arial, sans-serif; -color:#fff; -padding: 20px 40px 20px 20px; +color:#080808; +padding: 10px 40px 10px 15px; font-weight: 700; -background:#222222 url(images/plus.png) 85% 55% no-repeat; -border:1px solid #444444; --moz-border-radius-topleft: 20px; --webkit-border-top-left-radius: 20px; --moz-border-radius-bottomleft: 20px; --webkit-border-bottom-left-radius: 20px; --moz-border-radius-bottomright: 0px; --webkit-border-bottom-right-radius: 0px; +background:#fff696 url(images/plus.png) 85% 55% no-repeat; +border:1px solid #999; display: block; } a.active.trigger { background:#222222 url(images/minus.png) 85% 55% no-repeat; +z-index:999; } -a.test { font-weight: bold; color:#C06; } + +a.active.trigger:hover { +background:#fff696 url(images/minus.png) 85% 55% no-repeat; +z-index:999; +} + +h2.tiger{ + background-image: url(images/Header.png); + background-repeat: repeat-x; + padding: 1px; + font-weight: bold; + font-size:14px; + padding: 50 20 50 20px; + margin: 0 0 5px 0; + float: left; + color : #333; + text-align: center; +} + +h2.tiger a { + text-align: center; + color : #333; + display: block; +} + +h2.tiger a:hover { + color: #ccc; +} + +h2.active { + background-image: url(images/Header.png); + background-repeat: repeat-x; + padding: 1px; + background-position: left bottom; +} /*--When toggle is tigered, it will shift the image to the bottom to show its "opened" state--*/ + +.toggle_container { + margin: 0 0 5px; + padding: 0; + border-top: 1px solid #d6d6d6; + background: #83B0B8 ; + overflow: hidden; + font-size: 1.2em; + clear: both; +} + +.toggle_container .block { + background-color: #E7E7E7; + padding:40 15 40 15px; /*--Padding of Container--*/ + border:1px solid #999; + color:#000; +} \ No newline at end of file diff --git a/pmd_general.php b/pmd_general.php index 1beadf139..4bd67f094 100644 --- a/pmd_general.php +++ b/pmd_general.php @@ -28,6 +28,7 @@ $hidden = "hidden"; Designer + - + + @@ -298,9 +310,10 @@ for ($i = 0; $i < count($GLOBALS['PMD']["TABLE_NAME"]); $i++) { '; + echo 'onclick="Click_option(\'pmd_optionse\',\''.urlencode($tab_column[$t_n]["COLUMN_NAME"][$j]).'\',\''.$temp.'\')" >'; echo ' '; } ?> @@ -430,10 +443,11 @@ for ($i = 0; $i < count($GLOBALS['PMD']["TABLE_NAME"]); $i++) { - + - + + @@ -455,13 +469,13 @@ for ($i = 0; $i < count($GLOBALS['PMD']["TABLE_NAME"]); $i++) { - - + @@ -477,21 +491,21 @@ for ($i = 0; $i < count($GLOBALS['PMD']["TABLE_NAME"]); $i++) { - + - + @@ -506,6 +520,14 @@ for ($i = 0; $i < count($GLOBALS['PMD']["TABLE_NAME"]); $i++) {
OptionsOptions For
Where
Value/
Subquery
+
Rename To
New Name
Aggregate
Group By
Order By
+ value="" onclick="add_object()" /> + onclick="Close_option()" />
+ +
+
+
+ +
+
+ History From de28609ff984b3e3314f749893729bf88fddaf97 Mon Sep 17 00:00:00 2001 From: ankitg Date: Sat, 26 Jun 2010 16:42:29 +0530 Subject: [PATCH 10/19] history tab changes --- pmd/scripts/history.js | 2 +- pmd/scripts/move.js | 9 +++++---- pmd/styles/default/style1.css | 8 ++++++-- pmd_general.php | 20 ++++++++++---------- 4 files changed, 22 insertions(+), 17 deletions(-) diff --git a/pmd/scripts/history.js b/pmd/scripts/history.js index f90eb9015..56460034d 100644 --- a/pmd/scripts/history.js +++ b/pmd/scripts/history.js @@ -25,7 +25,7 @@ function display(init,final) { str =''; 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 += '

' + temp + '

'; str +='
\n'; while((history_array[i].get_tab() + '.' + history_array[i].get_obj_no()) == temp) { str +='
'; diff --git a/pmd/scripts/move.js b/pmd/scripts/move.js index 7784cfa7f..ff0acb806 100644 --- a/pmd/scripts/move.js +++ b/pmd/scripts/move.js @@ -973,7 +973,7 @@ function Click_option(id_this,column_name,table_name) // 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 = 'column_name'; + document.getElementById('option_col_name').innerHTML = 'Options For "' +column_name+ '" column'; col_name = column_name; tab_name = table_name; } @@ -1009,7 +1009,6 @@ function Table_onover(id_this,val) } } - function add_object() { var rel = document.getElementById('rel_opt'); var sum = 0; @@ -1020,11 +1019,12 @@ function add_object() { document.getElementById('hint').style.visibility = "visible"; return; } - var w = document.getElementById('rel_opt').value; var p = document.getElementsByName('Query'); - var where_obj = new where(w,p.value);//make where object + 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[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 @@ -1036,6 +1036,7 @@ function add_object() { var aggregate_obj = new aggregate(document.getElementById('operator').value) ; history_array.push(new history(col_name,aggregate_obj,tab_name,h_tabs[tab_name],"Aggregate")); sum = sum + 1; + document.getElementById('operator').value = '---'; //make aggregate operator } if (document.getElementById('groupby').checked == true ) { diff --git a/pmd/styles/default/style1.css b/pmd/styles/default/style1.css index c941b9c28..d7e81e595 100644 --- a/pmd/styles/default/style1.css +++ b/pmd/styles/default/style1.css @@ -464,6 +464,7 @@ h2.tiger{ font-size:14px; padding: 50 20 50 20px; margin: 0 0 5px 0; + width: 300px; float: left; color : #333; text-align: center; @@ -471,12 +472,14 @@ h2.tiger{ h2.tiger a { text-align: center; + text-decoration: none; color : #333; display: block; } h2.tiger a:hover { - color: #ccc; + color: #000; + background-image: url(images/Header_Linked.png); } h2.active { @@ -490,7 +493,8 @@ h2.active { margin: 0 0 5px; padding: 0; border-top: 1px solid #d6d6d6; - background: #83B0B8 ; + background: #FFF ; + width: 300px; overflow: hidden; font-size: 1.2em; clear: both; diff --git a/pmd_general.php b/pmd_general.php index 4bd67f094..ba1f54ebe 100644 --- a/pmd_general.php +++ b/pmd_general.php @@ -445,9 +445,8 @@ for ($i = 0; $i < count($GLOBALS['PMD']["TABLE_NAME"]); $i++) {
- + - @@ -520,14 +519,15 @@ for ($i = 0; $i < count($GLOBALS['PMD']["TABLE_NAME"]); $i++) {
Options For
Where
- -
-
-
- -
-
- History +'; + echo '
'; + echo '
'; + echo '
'; + echo '
'; + echo 'History'; +} ?> From 2c03eb298655b264b8f6acb3341030a70ee77a91 Mon Sep 17 00:00:00 2001 From: ankitg Date: Fri, 2 Jul 2010 12:10:56 +0530 Subject: [PATCH 11/19] new features in history tab --- pmd/images/and_icon.png | Bin 0 -> 3539 bytes pmd/images/or_icon.png | Bin 0 -> 50345 bytes pmd/scripts/history.js | 124 +++++++++++++++++++++++-- pmd/scripts/move.js | 10 +- pmd/styles/default/style1.css | 26 ++++-- pmd_general.php | 168 +++++++++++++++++++++++++++++++++- 6 files changed, 306 insertions(+), 22 deletions(-) create mode 100644 pmd/images/and_icon.png create mode 100644 pmd/images/or_icon.png diff --git a/pmd/images/and_icon.png b/pmd/images/and_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..bb51726b5156223ffce6346654ca9cb3eecc256e GIT binary patch literal 3539 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 literal 0 HcmV?d00001 diff --git a/pmd/images/or_icon.png b/pmd/images/or_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..fa76f3bb13cfe39555a382c8b60fc9ac92dc28ea GIT binary patch literal 50345 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

^xp03yN#>(x*NM13^?jHh^-Si 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 Bh2H=G literal 0 HcmV?d00001 diff --git a/pmd/scripts/history.js b/pmd/scripts/history.js index 56460034d..69564450b 100644 --- a/pmd/scripts/history.js +++ b/pmd/scripts/history.js @@ -1,7 +1,10 @@ var history_array = []; var tab_array = []; -function panel() { - $(".toggle_container").hide(); +var g_index; +function panel(index) { + if (!index) { + $(".toggle_container").hide(); + } $("h2.tiger").click(function(){ $(this).toggleClass("active").next().slideToggle("slow"); }); @@ -26,11 +29,23 @@ function display(init,final) { 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'; + str += '
\n'; while((history_array[i].get_tab() + '.' + history_array[i].get_obj_no()) == temp) { - str +='
'; - str += ''; + str +='
' + history_array[i].get_column_name() + '
'; - str += history_array[i].get_type() + '
'; + str += ''; + } + else { + str +=''; + } + str +=''; + } + else { + str += ''; + } i++; if(i >= history_array.length) { break; @@ -43,7 +58,97 @@ function display(init,final) { return str; } - function history(ncolumn_name,nobj,ntab,nobj_no,ntype) { +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); +} + +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() ; + } + return str; +} +function history_delete(index) { + history_array.splice(index,1); + var existingDiv = document.getElementById('ab'); + existingDiv.innerHTML = display(0,0); + panel(1); +} + +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.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.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.visibility = 'visible'; + } +} +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('eQuery').value = ""; + document.getElementById('erel_opt').value = '--'; + } + document.getElementById('query_where').style.visibility = 'hidden'; + } + var existingDiv = document.getElementById('ab'); + existingDiv.innerHTML = display(0,0); + panel(1); +} +function history(ncolumn_name,nobj,ntab,nobj_no,ntype) { var and_or; var obj; var tab; @@ -59,6 +164,9 @@ function display(init,final) { 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; }; @@ -107,7 +215,7 @@ var where = function (nrelation_operator,nquery) { return query; }; this.getrelation_operator = function() { - return relation_opearator; + return relation_operator; }; this.setquery(nquery); this.setrelation_operator(nrelation_operator); diff --git a/pmd/scripts/move.js b/pmd/scripts/move.js index ff0acb806..ae077edaf 100644 --- a/pmd/scripts/move.js +++ b/pmd/scripts/move.js @@ -1014,12 +1014,12 @@ function add_object() { var sum = 0; var init = history_array.length; if (rel.value != '--') { - if (document.getElementsByName('Query').value == "") { + if (document.getElementById('Query').value == "") { document.getElementById('hint').innerHTML = "value/subQuery is empty" ; document.getElementById('hint').style.visibility = "visible"; return; } - var p = document.getElementsByName('Query'); + 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[tab_name],"Where")); sum = sum + 1; @@ -1040,13 +1040,13 @@ function add_object() { //make aggregate operator } if (document.getElementById('groupby').checked == true ) { - history_array.push(new history(col_name,'GroupBy',tab_name,h_tabs[tab_name],"Group By")); + history_array.push(new history(col_name,'GroupBy',tab_name,h_tabs[tab_name],"GroupBy")); sum = sum + 1; document.getElementById('groupby').checked = false; //make groupby } if (document.getElementById('orderby').checked == true) { - history_array.push(new history(col_name,'OrderBy',tab_name,h_tabs[tab_name],"Order By")); + history_array.push(new history(col_name,'OrderBy',tab_name,h_tabs[tab_name],"OrderBy")); sum = sum + 1; document.getElementById('orderby').checked = false; //make orderby @@ -1057,6 +1057,6 @@ function add_object() { var existingDiv = document.getElementById('ab'); existingDiv.innerHTML = display(init,history_array.length); Close_option(); - panel(); + panel(0); } \ No newline at end of file diff --git a/pmd/styles/default/style1.css b/pmd/styles/default/style1.css index d7e81e595..d1ef1fa6d 100644 --- a/pmd/styles/default/style1.css +++ b/pmd/styles/default/style1.css @@ -411,7 +411,7 @@ right: 0; display: none; background: #FFF; border:1px solid #F5F5F5; -width: auto; +width: 350 px; height: auto; padding: 30px 170px 30px 30px; color:#FFF; @@ -457,20 +457,20 @@ z-index:999; } h2.tiger{ - background-image: url(images/Header.png); - background-repeat: repeat-x; + background-repeat: repeat-x; padding: 1px; font-weight: bold; font-size:14px; padding: 50 20 50 20px; margin: 0 0 5px 0; - width: 300px; + width: 250px; float: left; color : #333; text-align: center; } h2.tiger a { + background-image: url(images/Header.png); text-align: center; text-decoration: none; color : #333; @@ -487,22 +487,32 @@ h2.active { background-repeat: repeat-x; padding: 1px; background-position: left bottom; -} /*--When toggle is tigered, it will shift the image to the bottom to show its "opened" state--*/ +} .toggle_container { margin: 0 0 5px; padding: 0; border-top: 1px solid #d6d6d6; background: #FFF ; - width: 300px; + width: 250px; overflow: hidden; font-size: 1.2em; clear: both; } .toggle_container .block { - background-color: #E7E7E7; + background-color: #DBE4E8; padding:40 15 40 15px; /*--Padding of Container--*/ border:1px solid #999; color:#000; -} \ No newline at end of file +} + +.history_table { + text-align: center; + background-color: #9999CC; +} + +.history_table2 { + text-align: center; + background-color: #DBE4E8; +} diff --git a/pmd_general.php b/pmd_general.php index ba1f54ebe..d261a23ac 100644 --- a/pmd_general.php +++ b/pmd_general.php @@ -468,7 +468,7 @@ for ($i = 0; $i < count($GLOBALS['PMD']["TABLE_NAME"]); $i++) { - @@ -519,6 +519,172 @@ for ($i = 0; $i < count($GLOBALS['PMD']["TABLE_NAME"]); $i++) {
'; + 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() + '
Value/
Subquery
+
Rename To
+ + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
Rename To
New Name + +
+ + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + +
Aggregate
Operator + +
+ + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
Where
Opeartor +
Value/
Subquery
+
+ + +
+
+ '; From 10daf4da1b2a5354d7433cd8fc6f44fd6104c8dc Mon Sep 17 00:00:00 2001 From: ankitg Date: Wed, 7 Jul 2010 00:31:53 +0530 Subject: [PATCH 12/19] some changes plus comments added --- pmd/scripts/history.js | 121 +++++++++++++++++++++++++++++++++++++---- pmd/scripts/move.js | 13 +++++ 2 files changed, 123 insertions(+), 11 deletions(-) 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 += '

' + temp + '

'; @@ -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; From 64f1f5a0ea81c363f1a0d4454984ef3fb21bc7cf Mon Sep 17 00:00:00 2001 From: ankitg Date: Fri, 9 Jul 2010 03:33:14 +0530 Subject: [PATCH 13/19] store selected columns info --- pmd/scripts/history.js | 1 + pmd/scripts/move.js | 30 +++++++++++++++++++++++++++--- pmd_general.php | 7 ++++--- 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/pmd/scripts/history.js b/pmd/scripts/history.js index 26f552ec8..1632685c5 100644 --- a/pmd/scripts/history.js +++ b/pmd/scripts/history.js @@ -1,4 +1,5 @@ var history_array = []; // Global array to store history objects +var select_field = []; var g_index; /** diff --git a/pmd/scripts/move.js b/pmd/scripts/move.js index 9e9d91307..684db4595 100644 --- a/pmd/scripts/move.js +++ b/pmd/scripts/move.js @@ -983,15 +983,20 @@ function Close_option() document.getElementById('pmd_optionse').style.visibility = "hidden"; } -function Select_all(id_this) +function Select_all(id_this,owner) { var parent= document.form1; + var len = owner.length + 8; for(i = 0; i < parent.elements.length; i++) { if (parent.elements[i].type == "checkbox" && parent.elements[i].id.substring(0,(7 + id_this.length)) == 'select_' + id_this) { - if(document.getElementById('select_all_' + id_this).checked == true) + if(document.getElementById('select_all_' + id_this).checked == true) { parent.elements[i].checked = true; - else + store_column(parent.elements[i].id.substring(len),owner); + } + else { parent.elements[i].checked = false; + store_column(parent.elements[i].id.substring(len),owner); + } } } Re_load(); @@ -1009,6 +1014,25 @@ function Table_onover(id_this,val) } } +/* This function stores selected column information in select_field[] + * In case column is checked it add else it deletes + * + */ +function store_column(id_this,owner) { + var i = 0; + if (document.getElementById('select_' + owner + '.' + id_this).checked == true) { + select_field.push(id_this); + } + else { + for(i; i < select_field.length ;i++) { + if ( select_field[i] == id_this ) { + select_field.splice(i,1); + break; + } + } + } +} + /** * 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) diff --git a/pmd_general.php b/pmd_general.php index d261a23ac..064a6cc98 100644 --- a/pmd_general.php +++ b/pmd_general.php @@ -204,7 +204,7 @@ for ($i = 0; $i < count($GLOBALS['PMD']["TABLE_NAME"]); $i++) { echo ''; echo ''; + echo 'onclick="Select_all(\''. htmlspecialchars($t_n_url) .'\',\''.htmlspecialchars($GLOBALS['PMD_OUT']["OWNER"][$i]).'\')">'; }?> '; echo ''; + echo 'type="checkbox" id="select_'.htmlspecialchars($t_n_url).'.'.urlencode($tab_column[$t_n]["COLUMN_NAME"][$j]).'" '; + echo 'style="margin: 0px;" title="select_'.urlencode($tab_column[$t_n]["COLUMN_NAME"][$j]).'" '; + echo 'onclick="store_column(\''.urlencode($GLOBALS['PMD_OUT']["TABLE_NAME_SMALL"][$i]).'.'.urlencode($tab_column[$t_n]["COLUMN_NAME"][$j]).'\',\''.htmlspecialchars($GLOBALS['PMD_OUT']["OWNER"][$i]).'\')">'; }?> "> From 0d58ceb962650535343d4774d3c7f0e470bfd1c1 Mon Sep 17 00:00:00 2001 From: ankitg Date: Mon, 12 Jul 2010 08:25:46 +0530 Subject: [PATCH 14/19] Select part of Query builder complete with rename and aggregate operators --- pmd/scripts/history.js | 44 +++++++++++++++++++++++++++++++++++++++++- pmd/scripts/move.js | 39 +++++++++++++++++++++++-------------- pmd_general.php | 10 +++++----- 3 files changed, 73 insertions(+), 20 deletions(-) diff --git a/pmd/scripts/history.js b/pmd/scripts/history.js index 1632685c5..a80e25529 100644 --- a/pmd/scripts/history.js +++ b/pmd/scripts/history.js @@ -334,10 +334,52 @@ var rename = function(nrename_to) { var aggregate = function(noperator) { var operator; this.set_operator = function(noperator) { - operator=noperator; + operator = noperator; }; this.get_operator = function() { return operator; }; this.set_operator(noperator); }; + +function build_query() { + var q_select = "SELECT "; + var temp; + for(i = 0;i < select_field.length; i++) { + temp = check_aggregate(select_field[i]); + if (temp != "") { + q_select += temp; + temp = check_rename(select_field[i]); + q_select += temp + ","; + } + else { + temp = check_rename(select_field[i]); + q_select += select_field[i] + temp +","; + } + } + q_select = q_select.substring(0,q_select.length - 1); //PDF_save() + document.getElementById('hint').innerHTML = q_select; + document.getElementById('hint').style.visibility = "visible"; +} + +function check_aggregate(id_this) { + var i = 0; + for(i;i < history_array.length;i++) { + var temp = '\'' + history_array[i].get_tab() + '\'.\'' +history_array[i].get_column_name() +'\''; + if(temp == id_this && history_array[i].get_type() == "Aggregate") { + return history_array[i].get_obj().get_operator() + '(' + id_this +')'; + } + } + return ""; +} + +function check_rename(id_this) { + var i = 0; + for (i;i < history_array.length;i++) { + var temp = '\'' + history_array[i].get_tab() + '\'.\'' +history_array[i].get_column_name() +'\''; + if(temp == id_this && history_array[i].get_type() == "Rename") { + return " AS \'" + history_array[i].get_obj().getrename_to() +"\',"; + } + } + return ""; +} \ No newline at end of file diff --git a/pmd/scripts/move.js b/pmd/scripts/move.js index 684db4595..13018fe41 100644 --- a/pmd/scripts/move.js +++ b/pmd/scripts/move.js @@ -986,17 +986,28 @@ function Close_option() function Select_all(id_this,owner) { var parent= document.form1; - var len = owner.length + 8; + var i; for(i = 0; i < parent.elements.length; i++) { - if (parent.elements[i].type == "checkbox" && parent.elements[i].id.substring(0,(7 + id_this.length)) == 'select_' + id_this) { - if(document.getElementById('select_all_' + id_this).checked == true) { - parent.elements[i].checked = true; - store_column(parent.elements[i].id.substring(len),owner); - } - else { - parent.elements[i].checked = false; - store_column(parent.elements[i].id.substring(len),owner); - } + 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) + '\'.*'); + } + else { + for (i =0; i < select_field.length; i++) { + if (select_field[i] == ('\'' + id_this.substring(owner.length +1) + '\'.*')) { + select_field.splice(i,1); + } } } Re_load(); @@ -1018,14 +1029,14 @@ function Table_onover(id_this,val) * In case column is checked it add else it deletes * */ -function store_column(id_this,owner) { +function store_column(id_this,owner,col) { var i = 0; - if (document.getElementById('select_' + owner + '.' + id_this).checked == true) { - select_field.push(id_this); + if (document.getElementById('select_' + owner + '.' + id_this + '._' + col).checked == true) { + select_field.push('\'' + id_this + '\'.\'' + col +'\''); } else { for(i; i < select_field.length ;i++) { - if ( select_field[i] == id_this ) { + if (select_field[i] == ('\'' + id_this + '\'.\'' + col +'\'')) { select_field.splice(i,1); break; } diff --git a/pmd_general.php b/pmd_general.php index 064a6cc98..2c94c2d80 100644 --- a/pmd_general.php +++ b/pmd_general.php @@ -110,7 +110,7 @@ echo $script_tabs . $script_contr . $script_display_field; class="M_butt" target="_self" >keykey @@ -272,9 +272,9 @@ for ($i = 0; $i < count($GLOBALS['PMD']["TABLE_NAME"]); $i++) { if(isset($_REQUEST['query'])) { echo ''; echo ''; + echo 'onclick="store_column(\''.urlencode($GLOBALS['PMD_OUT']["TABLE_NAME_SMALL"][$i]).'\',\''.htmlspecialchars($GLOBALS['PMD_OUT']["OWNER"][$i]).'\',\''.urlencode($tab_column[$t_n]["COLUMN_NAME"][$j]).'\')">'; }?> "> @@ -311,10 +311,10 @@ for ($i = 0; $i < count($GLOBALS['PMD']["TABLE_NAME"]); $i++) { '; + echo 'onclick="Click_option(\'pmd_optionse\',\''.urlencode($tab_column[$t_n]["COLUMN_NAME"][$j]).'\',\''.$GLOBALS['PMD_OUT']["TABLE_NAME_SMALL"][$i].'\')" >'; echo ' '; } ?> From 5fce10df15de80ddf8db3ed68911401dc03c142f Mon Sep 17 00:00:00 2001 From: ankitg Date: Wed, 14 Jul 2010 04:16:25 +0530 Subject: [PATCH 15/19] query window --- pmd/images/query_builder.png | Bin 0 -> 49112 bytes pmd/scripts/history.js | 56 ++++++++++++++++++++++++----- pmd/scripts/move.js | 12 ++++--- pmd/styles/default/style1.css | 65 ++++++++++++++++++++++++++++++++++ pmd_general.php | 22 ++++++++++-- 5 files changed, 139 insertions(+), 16 deletions(-) create mode 100644 pmd/images/query_builder.png diff --git a/pmd/images/query_builder.png b/pmd/images/query_builder.png new file mode 100644 index 0000000000000000000000000000000000000000..6d0f5544b0d9fddb816310ca0acad025336d46f3 GIT binary patch literal 49112 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 SncoF%X7Y6Pb6Mw<&;$S&uK(Wv literal 0 HcmV?d00001 diff --git a/pmd/scripts/history.js b/pmd/scripts/history.js index a80e25529..1c76f15c6 100644 --- a/pmd/scripts/history.js +++ b/pmd/scripts/history.js @@ -342,7 +342,7 @@ var aggregate = function(noperator) { this.set_operator(noperator); }; -function build_query() { +function build_query(formtitle, fadin) { var q_select = "SELECT "; var temp; for(i = 0;i < select_field.length; i++) { @@ -357,15 +357,28 @@ function build_query() { q_select += select_field[i] + temp +","; } } - q_select = q_select.substring(0,q_select.length - 1); //PDF_save() - document.getElementById('hint').innerHTML = q_select; - document.getElementById('hint').style.visibility = "visible"; + q_select = q_select.substring(0,q_select.length - 1); + var box = document.getElementById('box'); + document.getElementById('filter').style.display='block'; + var btitle = document.getElementById('boxtitle'); + btitle.innerHTML = formtitle; + if(fadin) + { + gradient("box", 0); + fadein("box"); + } + else + { + box.style.display='block'; + } + document.getElementById('textSqlquery').innerHTML = q_select; +// document.getElementById('hint').style.visibility = "visible"; } function check_aggregate(id_this) { var i = 0; for(i;i < history_array.length;i++) { - var temp = '\'' + history_array[i].get_tab() + '\'.\'' +history_array[i].get_column_name() +'\''; + var temp = '`' + history_array[i].get_tab() + '`.`' +history_array[i].get_column_name() +'`'; if(temp == id_this && history_array[i].get_type() == "Aggregate") { return history_array[i].get_obj().get_operator() + '(' + id_this +')'; } @@ -376,10 +389,37 @@ function check_aggregate(id_this) { function check_rename(id_this) { var i = 0; for (i;i < history_array.length;i++) { - var temp = '\'' + history_array[i].get_tab() + '\'.\'' +history_array[i].get_column_name() +'\''; + var temp = '`' + history_array[i].get_tab() + '`.`' +history_array[i].get_column_name() +'`'; if(temp == id_this && history_array[i].get_type() == "Rename") { - return " AS \'" + history_array[i].get_obj().getrename_to() +"\',"; + return " AS `" + history_array[i].get_obj().getrename_to() +"`"; } } return ""; -} \ No newline at end of file +} +function gradient(id, level) +{ + var box = document.getElementById(id); + box.style.opacity = level; + box.style.MozOpacity = level; + box.style.KhtmlOpacity = level; + box.style.filter = "alpha(opacity=" + level * 100 + ")"; + box.style.display="block"; + return; +} + + +function fadein(id) +{ + var level = 0; + while(level <= 1) + { + setTimeout( "gradient('" + id + "'," + level + ")", (level* 1000) + 10); + level += 0.01; + } +} + +function closebox() +{ + document.getElementById('box').style.display='none'; + document.getElementById('filter').style.display='none'; +} diff --git a/pmd/scripts/move.js b/pmd/scripts/move.js index 13018fe41..26667f03e 100644 --- a/pmd/scripts/move.js +++ b/pmd/scripts/move.js @@ -33,6 +33,7 @@ var timeoutID; var layer_menu_cur_click = 0; var step = 10; var old_class; +var downer; //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ @@ -986,6 +987,7 @@ function Close_option() function Select_all(id_this,owner) { var parent= document.form1; + downer =owner; var i; 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 + '._') { @@ -1069,32 +1071,32 @@ function add_object() { } 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[tab_name],"Where")); + 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[tab_name],"Rename")); + 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[tab_name],"Aggregate")); + 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[tab_name],"GroupBy")); + 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('orderby').checked == true) { - history_array.push(new history(col_name,'OrderBy',tab_name,h_tabs[tab_name],"OrderBy")); + 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 diff --git a/pmd/styles/default/style1.css b/pmd/styles/default/style1.css index d1ef1fa6d..5a5c5d486 100644 --- a/pmd/styles/default/style1.css +++ b/pmd/styles/default/style1.css @@ -516,3 +516,68 @@ h2.active { text-align: center; background-color: #DBE4E8; } + +#filter { + display: none; + position: absolute; + top: 0%; + left: 0%; + width: 100%; + height: 100%; + background-color: #CCA; + z-index:10; + opacity:0.5; + filter: alpha(opacity=50); +} + +#box { + display: none; + position: absolute; + top: 20%; + left: 30%; + width: 500px; + height: 220px; + padding: 48px; + margin:0; + border: 1px solid black; + background-color: white; + z-index:101; + overflow: visible; +} + +#boxtitle { + position:absolute; + float:center; + top:0; + left:0; + width:593px; + height:20px; + padding:0; + padding-top:4px; + left-padding:8px; + margin:0; + border-bottom:4px solid #3CF; + background-color: #D0DCE0; //#09c; + color:black; + font-weight:bold; + padding-left: 2px; + font-family:"Times New Roman", Times, serif; + font-size:16px; + text-align:left; +} + +#tblfooter { + background-color: D3DCE3; + float: right; + padding-top:10px; + color: black; + font-weight: normal; +} + +input.btn { + color:#333; + font: bold 84%'trebuchet ms',helvetica,sans-serif; + background-color: #D0DCE0; +} + + diff --git a/pmd_general.php b/pmd_general.php index 2c94c2d80..a364e46f7 100644 --- a/pmd_general.php +++ b/pmd_general.php @@ -27,6 +27,7 @@ $hidden = "hidden"; + Designer