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 0000000000..e69de29bb2 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 0b661c95ff..4ef8bac261 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 a68f4746ac..a8a38cd21d 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 b4f7ec33b9..26e85e90ee 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 89988ddfa4..1beadf139c 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 26e85e90ee..693a796bd1 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 0000000000..f254285c1f --- /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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 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 0000000000..f254285c1f --- /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 bb376fa9d6..8d6ee89633 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 f254285c1f..f90eb90157 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 += ''; + 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 a8a38cd21d..7784cfa7fa 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 693a796bd1..c941b9c288 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 1beadf139c..4bd67f0949 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 f90eb90157..56460034d7 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 7784cfa7fa..ff0acb806f 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 c941b9c288..d7e81e595f 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 4bd67f0949..ba1f54ebe7 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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 N002ovPDHLkV1k~Kq%{Bl 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 zcmcHAbxb5t*C2e{WpH;GV35XL2X}|T-Q69A!CeP;cXxMpcX!vuVVURM?3?{#H=BI< zDs{WMZspvZX7#;&#w zmX5?iN-R*dbJ-vukQ;Ums%mcO7i+dwXvX-^*GDbyEiQYjwa#Z$YppigYpgf`4zvWU zH^$Ts;{Fce@6vIRSolAgAS1wVDdAFcQb=)^bF5-H-s;9{ns+dV$isgIr0V?)2}MCg zGYEkN>j@;eetOkzyNH!O*4}d@->mb=(yn~nC|a^wT5Oc1%u#$=l1un@G0oyQ48_jfQ-+BjMynqr3Ey2Riclt`7q`((6t#{b?2Dp7( zwdk?10dMwqd;v{vsdo*u2ZFkJ*W_ZN)B>Mj;rABx)2WRjQ8P!cA=m%jU%kv)dWk?t zAk(kvdXVjWhN1WepW&^pvFtw-@!p^&ZR>kkvO&Cb#tcxA^wPJp1n? zk0P$FFt4WgdG>-m2VQIZaJqbcwSP_@M|8PqwRfHG*UJ&{)1@b=rb}FK$BWDEsqgq) z#`6nak#a01KF&||zP}~jO}~-|l2*N{G+(XSp}a7Vi>^<7d|wB+U83GU#02Kson7_5 za{{!3d>D;56;>-@9(k*@13N)$?x}m*T$FM1`z9-r7+rdm^#B9`;A0?V)PQKo=Np#3nCqeOd z(XAr`b6bcUVkSR#qZ%rNNkeN%Eq$I*SlWnr>%F?;h@z5I6IE42X`eCt&42#l+^9i^kOZ19n-?{0YII8JE4(gV9zJ~c}T=>4a$Lv$# zp4IOKLW!`s7kZcs%v=8uqkG!}d=St`feAtJ2ljiMB zDa<$MP)9r%{j(qH(~#$A3vq>dfDhH@on)YO+REQ5-hgNm{Zh=i{csJ;{BQ1SfbOS6 z!_^M!m4|q^a+~STW+Hd^s^>J~vV8GZ=N+GkGmgU=)LDTt-HsotMLS9Mdm?jU{UUL0rPXyiBi4qqo#J_$N>D_`rVW8-ggJXakMFdH9^@j?HUC5^ouw=~wUw*L}w|doEj< z%$jiduxY#tu1oDo-wZlQm$uuMD-S z!NKV_>emZF+}iS|=*#Bl$Jcj=ulE0Gqt0i}0RiF0wYF4N`g(bIueh!a#_>_IN6`Ul zGsZ`F#=|F5o-^FT0IH~7`=pX#)S)C)nv>zkFsL=(H!EprZmzd|KUGv*4b9mEe&-60 ziaJ%L^{+mao}QJST3lbdzd8U7jx#6PuLrKLtqOxX^eJZ$e7U*OaQrr~(^S7@0=avn z;dN^c4+PnhPaf<(^@K0%mJm%4_fiU3Stk&JFJX0ZI-s%Oj=SupuXHC@!JmreaJ^F( z8ZGuxbv?E5<_jAhuTRQ>Y&;xX0lbg;Q=ZFtOFn)brVU*?Ax%5go;*Q#O`6lxR@qyJ z^RR0h;H`5cJOUtyys~Q>1^(-V7mkl5=8xuvubiwIWIlcygx*9^$Jsh*oex3t_%)H2 z+g6L^!51iNoCaz{E$82Z&ppaH&GZ4$)oL2cyo*yNNGwn~g`QT5bN-P~EKruxR=q!m z--6*%R%I(7H38eNfa?>wdYucj^OSXRlNSuexhnWNX#Bd4RnG0(8Xy!W( zITBkcD&Cfye%^uJ9ybEs993kL4WktQkw6O{NJO?qw$lh%yk2i0tW4je&>YS0!hCagGs)D$ibXEiUJq^19B#8Z zUV6*;n9aSI#u36P3qI(3M(BA+2Jq>DjMZ;^-a*#!fvRQwipb>)s}&~z^Clhjwu#(H8+0P72aB7Lc=C7D+na7k{4qe-YtJKV>5v()==>idbilpg#Hp2u~U8Z z7(Mr(P)*@@PPmTRc3T<_MswIKxc;Js(`E>`k%D;z+3v$R=AdoqeaD+YzWik3isS5H zW*<<$`RcMMu*j9njq174C^|;$nFihchyvZlf_x;gM)c%y5PpOU8Z#EtVm_aUG84S) zuOn4A$nWmv2r<$$wxEJvl1tvoit?D=Mu|1D?@zYj_8K2eduSNJ3d z5VwG&e}(23pe=g)h8slG_ z7U=&|yKb~BwSp1Gd|ME~znyl%LO@IPb6$&5^Vq2Ys?=pHB9dvEh(iFN&(k6QXD()5 z@|Np1*PMqnFuKMCEbonwLSfA@|C6})4DtDzFFBPx$(4T3znC#k*rJi{Mbuq0g6G?s zUh_$iuG`yuQDCg$o-tlgtfT-Xwv~XYTaDWbB_iIP6_&y;Vk(4JJ zjIj|`wlL`Nk-*23(1;YfXM;(K7H+?}iqqI<4@XxTg(zsF18McwugA&?2biA;hnCZS zErB_Blv{_l`r;vTN?M$!CbAl-bbW>xkyOA3a~pITt(S9AZX_MI zgLwWqY2y(>Fe9C=`&x%!fNo01bYVc4xmr7tt8g|*GZbDQHIC_r2aV7(JeaajH{DBc zIi+xDARG>9=Ho7q6hZ@$8PrE$0{0gl%mVj^z!}0c7kK?7h_NUQh>X3lIsTO>XsX() zqoB=_J{22I7&;xf{Cs6t?tr|}Vp#x+sXB@n8MIg$r7CfpQA^8rvA8pn3>wpoQ84Dz zGju(u%s5<6<&fWKbY#+zG^m+JASbdHF}|sbli}T(q7u%Y8sy>GgjTBiyo*PL+iRqu zF&BJ?hD~xdPk5J6T_m>0TAW+5QN;FziHfp^e3R5gOiVek#b!K5+B7Z$IjHJ;J`f6x zxg!c;RnjjwoPv@(_<)^xt+Y%EYgVAybi_!WeIdnldm3)eR+S51i{7ZRrVN1sEOTUc z9F3vRwjKeEg#m+F*d(!RZyO86@lAvmUzfWie|0x@1d^KU;^-r`4HOZ-myiQECC|7a z{m~zLY(3LsPJF)LoufNNvMjP=?%O9nqM+SAubFX%7h=-no|x$MzMK&Ab@wVoim=z% zPj5joE>%IVA56_5UP)E1QujVvBT3z&ab3LM6)_RqW;Lrfy27fEjmr(%j0 z^Aqg`;mCz$kx8?HK@z-(Fno|n-)scDCnQK7{??+$0uN0Pn7y+8z%bD%Tl_%WF3tu! z=%%U4wEltHZ8ex%3tB~60B6N$q@JHzn4e0ziIReV`*OH0*&*-&-2~)NzsFYpR=v;J zh;0@E@N1S6BK0cs|%u)wN)pqb7qW zT#&-Meb*d}Ugpxq1wU5@u#@c7!TH{xPj>jPRfTKR5ToapaevSm^I6VLh1H7Ro+pWW zBD93x=KyUc{a&yb%EZ=FuLM@cCO!Yk%MIp)qLd1Qp*^XlJa%93c6JOk&P|h>JU&1z zjX@bI_vEu|UNM)_1(n#9R-1fy({+z9X=Ug9RB56Mvf!;q(t&L#r?Fp1XjTL>PpO6N z$vjbkhANV?kg-UiUTUGkQtNMPFj80QgiHN_k#P9Fz*USvG!^P~RD-J-u4Eev4k#h6 zrJED<=gxlei#-08Uxz}#j{p%=Dc_w#EPcp>(WgAV1e`WkB;jgQ)G3Q6P50mDQ#$f1ehT;MeBQ=aR zz)*vEXjGAVWJ)=TUOm=WRhENSZcv}hmnkpe93tC84*bD1Y$y=zlOeaCon}YB zX}jL6LSnHVPmH{1o^)!T9eT}v=d_@!kGy)owhLHK7j^OqiES-Q5DTzYRLmVwc>XnWQZIbiinoT%ZD?ZE z?m1ND_w}4qWUbP8{@6F|DEV3HOf~;mD+uH{4Y19dao9lGg zJCJ5O#aL7c8kBSHlV4rrl<-TR*p0d|-!Lm;Xa7d2)tu`1wQKXl$FV_{hiJ2OhPD`v zNKFuAFi&+dXT^2$TqJN(R2o07 zh!|3(D)qMx0C0*n&1`PUk`8CO-vPyA!y7m~=PBryk7V-D?0zhz0bRr!iq&K(Zd8o=6i3JqN->KLbOxTbBp6y8gWC?C@Qj zF3lvh2P_AEKExfsfC5Ii^42d+J$%${grYXve^5NqQnJU7OqB1dirTDc*$4>?1{V#q zj}XP(H6WS$d0?c3jA}t`JN2NLWg?CAritFX#8~o#_Ue_j;vZS=OmDXOPTv-{ z$TW)^gLXohC34LQ8mJlE!n@(q{fe=X z5mSd-8qUA5bE@d;ITh7S+9ROu?P5s7d%R;KR=q}SB}R?o#lSc?#3IK$jrMnP!&isd zR3>v78gn`{E9BjJ@BO{4==Q$-&iHiiF$sFTICw<@PwbMJdbUbu33OXCRlx)Yn1b%v~Ca{^iOVzc{ats`*rUev#{Bta;%G1h8{eK1`O%5gH29^T?X zT#8)T4wxPFb#5XTAseO-w14#Hp3tQxZ{(foa?pS}X)mw~F~2)))td&90Z;c#gouhB zHBdNS=Ha$AEo`;V%RQBJ=jOQaT!4YjEn>A#HoA{X1?ZYu)ON@ow&Ke*xW7s_S@2Y~ zlOnn!BJ_CdyMMJtvcxbB=1!Xhcz{?HDXuuo$D!oBYLanuPyInHDA3>%7Nv!^ z@$OvG<1dcLcS~*L6?oD%U_|{0Q!Ra&PL|f(7nC%@>XzxHPAM%fQwTq)KsA_#%^q$Nd_ z?#@jTl}aO=tL!qI>sRErr>oxTy3QlQMHc7Fyyi!R=V?xOooDy0 z1zc85E>o;|@N&Pz%eh%cGxI3kyx{2LrOOXuPt>lfyRX0C&@=Q4C*8zt!CxVe1Q%~^ z33k~-OB7zkWU9;^hg$+TJ+gz9+ueG6DGnogQSAZRT;UZR5+i(UXg-S@tG=L;pqq}D zoon?vF96xKV!HU2yQXa~x*O9)u#?cok*C|LZ{#2QG(3gMq@7myb`=l9zl-2sN%+V7 z6MzJ>WerFc+CIR~vIzlSJ6nQlF<9&d-EHPgSpJJOrPbQq3yUT9x>8v+$#$NF5Gv)~e5Rdr3N-|8 zOY9du)8j3Pm##kEkKfqEyT@U9G*KU^oU5fAFN=2d*STo;{~cki`kx4TQ!}qeOdi{T zNepha^EZ{cx(KC#$+W4-W(}bC!B>}7&7Iohq|3l0-ryu$Tg8v7ACr|Fo)_sAwlJn@ ze_h#oR%+;U0_(~~+y0Z?B6e$Odz&|cw#udof;QuQQ}49O!N!IDap`U4zl6GYqbh$~ z*&vI3#bOAlA-q>GI;pt3dj1P5TW&EpvJK7n8f$H6QsqGVUsAsC=UOV8*0|iRJ5&iO zU{l8(p%EE-SS_8h1Qc}-Djcpg18&*R6RD8CXw8{*sNo|^q${JmB~a$v&Mu41^YUg{ z9Ht81R=2-^Ow-A}2R!<>%kDI+prEg!PIAX{vXW|}r>m)XM z{3=guf0^xIx0qLxc=m8UChUQ}e>$6Twm^9?3I8rrK(G(bIxLHGPfUFt<=?3D&;B?7z= zVqABsuHPGXX?ZHl_^~)-(v0|%8sFceM^u)e z(u&4ukgAw@4d*yZsB0+2D(xX*q)vJ2>Dvn}N%UXW9|i;stH8Xkz5r~k~sdHq%o5wZ6`D#ND9GTT}h(N75?ad|Gk+acADP7;ykyBfsEKJAdeTAwcMll75|ahxxMd7|IGk2UE+X#m6m z*mME%19!oO7dm+qpN%n$wuG*nR`)ImKtb z)EpzG&@NjzVDU5GN^gRR{I5ijexfmB^-Abh>^856rV>&J8l367RTNKKmetqTOo@9z z;qjx8cy`T?Lq>gj5Lq>b_?z*vvmU(?Dk-!v~{%+WT&flw%Q{>oL{_fM?1E-sVZuFr2AjgT(=GU-5VGQKg8wtUQZ6BG4;S zbPS`dP258FGgitjaghLcFbDjTiWQ-if3KV4MK7Dq+tmgRrA?<%Ws3od5KtXHQR*_Nkt@>v}^k3tUX z>`VlgeZ$}UGu-4%{$`7bbq2kLl7;WQ$KQ@mwf{YPuQTCa9N<@qD;33PH5|QrCbx}m zr_YKWeyWn8@fMx{yl5!hE;HbE;(Uz66^!#+ZRofD)M{V23%Lx&WX;m-;(gc=S;Re^ z#R*@;&7IPzg!A@6ly2Cp*080@|693LwMo!ai4n|RlX~kJYzqDb$QD!6vA_2MHt+4MX zWy>VDGoxaAu^Tt6a=Wuq#ZuyJR_;X1^Kg%UULNH!ZFY^fF=Vf6KRuB5PvdW|EY!O? zN)Ad{;lz~{@e(;zPv$#55qa$@`Zw_h23@zR zWs4KQ^~!Fue!&y{Qf&T^Kc_Vt&{`FeV^oK7gu6Y8A)9qzPuZtc)|uh^1n6$pd7H?K zlTvGJ@Zl|!2kit)R5APVRh5)%Ip4L3L)dc&J)n&4c5X_&{AOVUx@kk&dVnX)JmpQe z!Pu0Q4Swe*(c}|lgzB`Al;nYq7Lgl`@hpf0OY!#-!3K#Z+l)cUwD!ETm=T^J^H3h* z^CD%M2%q}mAPkjj@Y{Ak2-?>CavLvWV>5Z1tg)Z6Cx z(;)pMJ_9@Mn*_Pt zPMs|ImtPP=gsf*-i+r;uS9AIUlGqbW#>clbL88tR5P;u0e{UtS9hQy}!|oO+EUy*f zOS%0`j%Edtx21E5{SK27M{PLe`2%dGE_7GMgq4*x@FAHMoX5Ay_4h;-J>i~U+gNAR zwL@2{HCQ7*v2b*?qo)l~)58XuRcrZ48@XSUXGqb7i(`vp-hD&&(i{^cWryJ+lqiBz` zr%7<$9_T9r&$j03(3{XQCk0GjA6fJJjzUr;4iYemiX3mAhjg3(8xsjhg4o}m&+>Zu z6UxHuH_9{mIFv9gR6&LnoM)`npfDR-Aa~cdlkI#w*?t@r>Ah|JKj_&*JAzrTR~X{8 zTON>wZ(hjk=?D@3*v-A zSziMZE5Rd?1r%%RATBSTfT<@!Pz<0^b^<68N64b{>G-h`j~htm-X?21 zcRLCUuOgm>?0q|T$A)cJ2EMOt+Fry(IKZ~~JzZ_KZhU;k^VM>5lyP3W!e8u5vnBPQ zC2br$VGbpEm`p1>I!5nBL%bScFEz%*_L0)kjlfk7F< z%x{SJxMbCMhI4R6TF3$t_a4o1{o2UEZQ0!ayWuYNOvAgUtqecUtr#^rT-~(MLw1d4nEebM?SG%y`(4Dj{~0(EetG_ zxixRfQkvu3#nMyWAdHJ^@(fUD6T{!&Gr-d(?ls}HVs@~NUS1HRZyOX{blSN7s-M$x9M{G;H^0wR#zver~@C;tbT&1z4Bo$_w)qHm*PL`vuuZ6mZI zoYHp`c~`#?Z}ABroK#<)T_syn#d%k+vxb$tLglg*XYW6y2$C~E_7qeoWFDyaAw5OU{W}J05eDzBxrtTmnz0Ey6%sfYy7>EexGMK2JYxrdlVevGrDIyFIc+>$qY(v#T z)at-pfmoX-QuT|N!nPWoXK%QX!2rRNCmz8$EtIn(oQv7b;vICs8d}kxOFrO;M#j(* z0kml(`OzXsW0I6LEJ3kZMV5YQ5EP075VFpb)^0#&5Rp?8E}jLw)A(Ooi3@dX6KlDd z-otVb4&R*X?Bt6rRozwUSfNM|c|!DKk_yxjL&i?CQqPRwGb$Ga7Hm>#6rf(fp<#|P z0SVhInU1AdRK>QQ_kZS|WRPR!bxVuSXuWzg-3E~rtB3o3p z;jz#LcnItp*YMF`9NPLiZcn)`jV0{(%D9iX;9*1SDIo93ve4-3yqz1bVr%t}JQ6tPchaQY5+hloW zAm*i=Zxj<2nFg)E-57YQuolTR3;rd8QnA)I`8jz|4b$I?IN8onRLmNnW??i^dv5G- z)9tHS@D6QALNz1u`DP@3xh^W`bU~zbIusEcW22>Gwf6Py29Tr@iD{M&-`CMMTR&3r3A(&hYIy3MEcctkH(#O5im1K>Lev&E7xJ|aHo`(rh)DGUj z9a)LQ=b`JS+%r4;NpR!P=`Cqt7Kg6C7i87?s6kB!ENR@zTBB*1Q6jGNIhPVoU_YdmiY*GZoeD+lE z%3|`0VnWcmN6|sy?n)6~&c%ompN6a4Q#${MoKnFMYN#PE4Gf~btc1=?*g3?sja16k z_#q!SFs5aB=PsWn7w|JJbJGxXKW3$!d;j;{6-+%Lm7h<)pU=pqfA1ach;9uvRta7d zldDAKE9t}ltE(VN}4O zQ<)ca1x$&|cU1Fe64%(TxgQgp^5+j%_osDQ5EsTr9g@YAd(-_eDx`j}US;E++d#st zO~W;FGt|0Q5C1b`f5uWhMck`LoCVB2We%0|1IK20yp2+3jM7$XM&&c}j(f>sW9`tg z!v4Rg;$sOiFhJ=lE(Q*7MN7po>6S_BmS)n;3W~ARTa{_$l5Cc%szt$yCpX!B?&yVO zjdYK2d^ZWmSnCud+;z~eUsJ-t#2JytPx{0RPJv)ZkortVCD?@qosD8$+Svk5Rt4>{ zIo`%zFY6+JfSex%B}ic$g@tfRTMBLBGK5p??iS7J(Gwn24oMfw=_2$>qeFD6<7)j; z&v{a-@IP2E)M19|O``r5xWr|Z;A_{Cj+Lj|d1OZPiGCP~;^1^1yn54pOvvo?^G8tK zAbQS0cF+mY|B2fv2jC%`44|dNQW`CeO{s*;c+6;&d+!KcPQAv2XM3W%vlE5jZcRsX z`e-yq$mnWYJL@o5Qm$s_S{#S_ZQp){`xkb2=d zEgl}zULFwobme^ESxJajS*}IE$Vl&l>D9Zpre0)1rBi#D$|KzV#coPMJ++?5dG3wO zIDwRo1yqh6NCSf2ca9S785)f$JO*z@z0O&sg`yu-l7Re@vOnkM`+l7Txtq006sI_? zWqV@IBB3p)aup79yCWVe02NZIa!+g-xAC?+5t7K}+ZU3IvJ!>aq7|pvJ2}5uITgy3 z0^D!96^TDgb#;yjr+Dmb`BN~BkNd#ctk}X9#{7IK3x88saN-%?H~zj-Q3ESyPbA85 zxZpc~XiKU~^L3BQ{JhQozk#ZxEfg9cJK0X|i1dapP%bv>>aHcX=}kowkhi3A57Ys< ze)`VR{sii^*|(I^bA;r%1^tjhOkqn}p{4Bzu zE$igjxP`)pN-a*)VamaQIc0rZ(#CkdapHh&ACPOrkDr#f=|WDn@J~h6WpfGRi`69R zBZRNS5<}cABjV#bZDWSb!@VgvUlZfg2gprT;xq>_2c|Z>h?@fUC{}V`lH`y zOOz@6yYc`N`_!ZwpuGEE{fT|~2gAZaM|#N;2rHiL@;D5p{b^K!e7wq-`iDlQs_&(l;xuq}vOOV07w-7JX z1jpj;AR{>azi?_^(^BvbAw_kP!W<pOxNVhPkc21aeQd-pGOnSvk|R%o=x2GUha0rS48hh3OO1$9Pf)SNjVo={=n z$yq_DhfUa|Ggh-~`$Aqg?<;)tV<;smBVMAax`Y3Y2RK zR|29;OOlPZbrZuPFKRd!nU$sAaKkkQzAL>c{rPQiflko!AL8_fj>YxbR~mkTn{y2x zQM^RaOIha>W3vxN1jJij^E}teCTFKgW2NWGM^LjjT%9TYv89fzMi*Fv{j`y$|AeH= zNgP5e=rm6~8P-6%LpoNTvoyLvLO^@Kk4)olh;=Nbe=Lq^v2yyN=5NtTQ6lKCba0J# zR8%+nDO!G}B@nLK?CR|8&Feeh6)vsC1b40pZ#BsY5ru~<6SPIjIA=OLTxTX1A!UXi zIuJ40^X)nqj`rbNrWhkz8#<2;iBA<5V*3^Cl?3t?jNc7b8>m}q40P_qz>s*;TxWIx zEDxN?Si| zQR;KR9IwHc$@K#>y^7*vT!WbRh7U*g1LIGBmRI0Vf@FVEBzR>5APXwyxa}e_E7PcNf=rkFEY`r6%mYSOb8n2VtT) zi{qA}!Wh(Z{EheJ6_z*5i7iL4&yJ&u5s8WvB z|9GTHRO64RPF8%n_G1XK|BgueuZS@m+^r7CDa{(k|5)V0IqjZu&D~)gb7i8p?(=_{ z>EF6K?V7uwnz~+_FS!h>qnXse3}dkL&@RB>1Pm(&&*_t#iy zgOl1EaK?YTnLTVt4Ue8gDyx*lMy$LsCbg{?3C(=!OnSB;Dv!$h4Q?C68y)0I1y^M= zGFa(Z(N`%a)s>0TcoI7hSPpeL<&t?^HYH^Qx;s%e&|d1}XaCl=Qu2WF&3ZewswS0E zhaKZGHQCFo9zLsTVe@SgaJA zBR~;jy3$*SrZF^c>^o`(r=Mw6-P1zNeKBj5WHnMj82&Y1g+l32q49jTad3~`g>OPmG!Z!fZPD~4(t7AItvo#KH$j*g_qgk z_EV&zOX#J`|1+_^n6cj#_uM+pSb8Lv)&Ngm0sF!I8tXSk=o3-2%eE(o3#;GW9Hw&> z8#Q*)Mu~fzwHLHnU4h{nq!qd4*@M|IX()Xj1+tQ*&{C38EvF__fBbME;#1wWTMp!R zFWh)SY0@aWkWlbhETg5eg9IyctuhBm3xHw)-PrNw`}{(G=h~jsBE>k?tNUVH=hE#* zm>}EUZ#vMsSVR&_(r9{HHFvTCXK;<;#k6`TJ_wqW-&xlw_ePX{Kju1!;?5S?O=#19 z8(9eu7%z~^p|040&Bk;{Q5w)0N$rooz7g@B6_Qt+#R}qfIV{`ynf|DMR|;akg#da9 zh>~Buur4(%b$jj}B`>gjDsx>SKKdO^y+P||G;W{8w!P8XXAQCf>kL+Sf8;Xb4*S9l zW$RSODh1Q5!DTSQosPRey&O$n*?(U%;WfUcU0~)5@R62K3)?tR*nQe{9q}nNH!070 zl)h0P$fACgRi8@mO|l-)##A3RJje+96&w-NY^V`_ms!4yvo=ad-}sk~1C{fX;El#I zCezbMk)FwvGCF-oHFH9akdD8=2fV#}chTYe4Fu?0nCwpJUJ;g~)<5mhKdt)j{{NaF z5XtC-*_HT^!%co971w8Cd@rp>Z&c1G5~tKE8!wh+KOXw35Y96CV$QSMV>VQH{5_$Z zHIA0I54u#T17sZt1+u!S=fuf<;d%`%u3Pgxq6w#QqH#A^einMR_pdIRV{=*iA$U$1 zO~5E&J$ZG+6lE8-`p1~#iO3l*>kEjE_^r3nOMxCWRYZ0e{bl^LJB5&4Qi0`O- zw=^$4&15I<%f8r4zOG;vVLTzlj7C;aLcA%bb_g=Ev3=18HifME#D$@>+N(>xJlg}_6--;3ArHSrZ z9fp3m7a03MS4Lm4Wqi+H&qGO?7_0S&eGYNc2I9##_(3@c%+FYWrxHaTO|pam6mUiM z#?F4~2JVsGXW2<%*rsgkY&ybw+@Kt#u!*8VjdT;Y-I(zJa~jN`xN%O_Sh^I;x%NHC zYq00)l{=$Ns8XbNuhRbTT6D@aG8EvTCmN&N3^}MLp7rnz(i81jm%{W&LfyB!^l#!t z0)6sLQN6#R+_gBcd?J05c6^dcG5v(sr~|u^#I`;*6%iOxjBZI}Y`I0G4C7E=7w-OP%`UZCtmO3_3&28v^Ase_$3g5pcOj|<; z|K?g-$B`LnP1QCiG1+XYt=|bOQC|hKj>!_rQzNL^%uBWoFf5OhKi~K?UXwRlsSPXTjtwG$ zAGB$A4Ka@HP;?C|9AZ#t|Gf0wFCyN%SF=rKf3CI5mPybqC)a^1s5H^P)z#3Fh7Q>c zJl2y2U95!uz_*Qi_9;Z6zZ|ek?RXU~+Xlc@u0B&A;g)Srwx5-Wnz!AHrvd9K5P@}A z=8@@FoVm}m>FVErTcn?Ql$-JD6vs2MRXaYr!v=1j`8;>bwg(=cqCXNby_d9vX$CjPte^bbOVfN+XyulbS>6OwIrYi z;B=WM*Y1Z+DaE#?G|jBlLAf-|RhA1Hs9pC;FEg3XPspsw{qKeMF41(mPXJC+{pf5u z;;o|ow{zIZP_$TM7dFLHw9#AkkegKU2d;@SHYG)(IV(A43g`I!9 z(FPjd`4y~J)FUT;HctmLf57Hp+)u|TwqPwmZ%U@H2%sXCN?6ESqkd=>)y#gsI{t3N z6s@m8iVX8gy#SX-L|3XWg7Nm7=L&wepPdzGBNstOKT;X@nE5DKi8|*ix7UyrvVDMU zT9aU>Vsg(-^F3b~$@I;38drOAHREH2 z7DoC7a9+@bNQ$$Shm*H-ljcvl2!F_QMw#Lnw6S+14eyx;#9?dWwOH?~O99;yy|-R2 z5DF4%w9R5IS`NsY10FeN3?DQ2VdTet&D-<@0soJ*@|6WnKEnpBST-K=lNf* zl%q(O3-pN*WdKzjbL<|S>^RQ|qOMW6-bvW}`Ml;pbvW=l@%5LWo8bXW*f&?d0|*tI*Iq7R*|Zn$wc`Yac>CvExas-EXK1jx9<*N?`MLVT&!dx{ zT|;RVa6WSr!~FW@2njqr#NUY!PaN#NvlVS%YPY+>VHF381uq^Td~l{M2w8wF9+%JL zL#+}LBA*%t&x1T)5;|8CG`u*q^+;LC*5r9Cn`cdXb6L-p%C?DUw$Z&T^0ucxc;@L9 z^49gu-2C>&CcLJ*F#I4nPe%>d*+E(VxGt7jLV)%ZLk~iSXH2e6tgEz@k;_mHIxrU$(9D@$*-p+1SccoRnP|}*^@eJ$Y@eL@~nqf6B6!-e?NWIn~-rRVFvH{$8 zt3yM}^aH?G4uj@B(&J014bGl(}}U9mdSh;m`?ERK$pncZYJ{?#wx!(zFt;pWy*bc&4h&HR^t^WuQ3x>F~mUQ zw*RXD;{WP=6+4`tkg_CAt!}7!@5O!ohY7{WcT&|2G+mN&eb0`lG>1)VIF|gxL9=_& z#gw?eV`bO$Gb3-Cv45kKeX({_Q|bH1OUac>dzD7&pmt<|?zY$MTz+uJY4i zoc~%t{ROk?E1eg)1ENHS_j3M=mVRoiU|5<)Ewqey<|=|PJzc?Yn(sNbNuF2xeIDI8 z{6qoyYpj;)500G> zY~^Ni>N@3X@x3*Aa&tSYm-=R(Ee8W0!8W z4YaZP5C+q`A^Tf;c_Z0K14173vY+5{V5S8yQw}Zx2;qHEhue)a&Qr4~_+WXBE4NMS zb4Isla7;&;_x6e3U+sX^Qcg}ILjP0hf0S3&W(T=AdBtvfa|KlBUF&YHrr?tXovt{l zP9|VKuHW9?{?8t6ZSLj{E%-Bhxd$nvV!40jXk`x=JN;Ip4#+ENsNg1MtU!I91_jM0 zPO{Ad6~JYh-LD3Zmh9o42hE!zSCQEBDJL&zz+U*}5Ef`)$|)SkM+xd?v9IvrB}V3-V)guweb-@WF(9Jw_bhy=jqV}prWO8^{PQ)*YWo~`K^BiZjd!tzfK;)=+HMU$M zvC?jSXx6#uAGEqa#@Y`*|D7P6KLc60D6l8l!gi02)M*E90sez7PpRRoR%?#pT|Mw9 z#b2qL7i0x&OUr{S7Xe%MDuyq}tRnJpV3rGx9tjiV0(&@7v3BJz02+0v*Z&G7(0cacD!#D^p-j;2}rhMU_QT& za^S*6ul#KfFC+Ou=Vjg_&zq$ zwlzSQ@B`P5&&T~?nHhL6RWo&13`Ekju8899%$;rZo@m%ZiHCs#(@EsbsX!>F6V_Lr z6t57hvC?_4s6JSpY>DCLI?oSlItX~d;kKpGoq?mO+0;59shrE32pkVw7>3ynA*ir9 z8X3S8QL$a{QdJGay{0VN!Q0u6B`Zy_Tey3cuo7HZJ-&aMR~-U+fAG&4tIaX<{?(l; za4dCU=;L15k2v@{SB3JQh=kwb=me~WrvQ_JS(^&C^X{2k!hH`1no<^h#sIMGTG)?c z^z&n4SkmR&rLnVdrzKWbS$JPJ~x^N4_o+KMO^sXuGsWvLEVuUzx2SJ za1l^T>QU9LzvFsSX7IO1so+J-QB|4CxT%>O`(c^uUs+Oqpb}k+&^u_E(7aR}jxTV6 ztqxX`YdC#awt{I_s_ARohMgB^Z6Rd1c8+j!-@1oe(twI|vIQ=^;=4@nTUKU7t0%yH zXRlgo=YxJ##Vz+@q9Nf|f_B;kJ(yCy9ss{B@A5rqs>bC$u}@I}4PTKz?T`cmd&Zvs4p#&xjp5G6pcwTpni;HjkS2TN`$F~f+NiZKH)b6s5C>z36P&)c&p~#Zd>6-)HfD2sWo=i={4;GLy z7!uNKE_Y`MaFtgiG3&4$1y7Z<9rGxGP2s!Gj6N8K_*|9|iY!~vM$~#zdVISM+%!PuHD{Wv%kRd`tY!csBz`w#z zkLIG6hhfflG~*;u2hKevL^I;bOF|?*Ib_09c=PrmxqsdiG1)od*+P@v@*#pLNQIMF zWrG8qqAx_?7Yh_$3B4aA2us7=L;i%73xv_XME<{Y;(uz!ryat-UomHe&|TvqJeivi zRnjouDCpi=)*3lprH6TFnGnA=dWr!z>iA$Kr|`DKm-`3J%x%)?iSfLO8>uEr8<`!n z6Z(}{ef+%-MQe-h$i)0pU%yzYgAZu_wC??*7ON4hpp2vxp9vQ3)n!q5;;c@GB)uc0 zZGo+j7&!N8pYO6jChLp?pka%6D{~5|(?`@*n^r^BTctDifeduIfb9@DS%sJK zS%@VVp-||+i{zy3cdEax@+up6*S?*gN=UqEzK+$!Zj?f<&Se)1y>_g}Du*T87`ow8bV$^L=A%F^x4*3$mtr!$p_1wBvm%qi z>;(ZrK8Lbc0X&#kbXKnuxN4lmiBH15G;OVUi>?~kYyAH1QFA=a;dHT+Oj2aWZFt5Z zs41I$wg$qZ2Qdl|*y%MQ0_2YHjF+B?@MW8v5KfCxcQkX_@Fx>2+H73z1Cyg6ItnPf8D z?N}3USjqL~Fc&8>3vc&+so=Utt%2`8mXDil*XAV_)t_lsp32f~J-4WrT>eyPm!ExV zul;rZT0p)?jlg`TSzux|jHAutctsVdQ*8=$FAZ7WF>7ZJO!ANGD5^dk_rG`3`ub3S za(CG(vK^VSD);Be7xB5GE)*=2Rmm7I>=|I(osQM4&O19edlUWMPn<~dEgZwW*8QmH z%I2K;w*l)L^8d(yofEy)qeQ9J+nI(2;775X6Is1pM}&GQIz( z77MyO-G)JgyMnPOIYh0L?KLD;LwyGO3zPxUJMSiwoFY`Ctj_f@J{hHH&_mc|zQya) z%B^b__c|?0Myu@)I|3EmKEW#j_7AwW9bw+Bzgz=3bLjl9|0LA-+ny(43jja@I&ep5 z8h>%JiSG1^YAY9^dM?|^xhwvh0D62H)6vReTVbim0zLQN`{uwSqNl-u48SEoeiFg3 zfA|z3N4I3Lo;tQur#w385OLE29tE@*ww+oZv_zQ;hD~Od#v4I##D&|zOkDl?gH~W!o~=DuH}Yrd=JzE^)8G(hckQE45I)lq4RPq8H&SR==2a%1`+ppgGI>C2cvD;COyP1 zhpoV>m}nxRz8oi;^#i%v#_>-!k(EYgtpLYQU3(Q;J_|?-ojnU4SOWD~Z~rbaf!Mf* z1%5Ch>@6@A%(;I}>iaQKz0QvWa8&3myvluGtTVtmxl88oC2d|nSh7) z2`;d4U;EAWERJv!Zd3x`C%#dvnoc{5n&8K9UWfZ7M+W7Qo9;6*Z(|GU?`&MY3MtOt+efXL=qv4Nf33(&H!|v3cKpf%BVZ<8e zWqHnxbiQFll3Vy|JJov46#NvO8`mu%kp-4%107w*mN_|-`8rxv5<5(fd!IiDgC>cVOI zw^|T=1OCCpH;@{5eS@pA+js8q3g$c;dsn<#ADSL^p<8*ZZ|ei)x|w7_QC>6H+=i;L zx7Mt|jDp~Ij~qJl(O&|OvXEoSrQ)DnRA-h|SovH`I4@2-y;0#Qp-k zWej&uk2sdDI+}&TUlb`)=&BiZ!_3f9ktG^`14vwq_8Pt6B^j_qL* zJAShn4Kh|9!19}~S&U6zid@JZ5_d)*;x=%(;R;!M6`3J}{DdJSB1pqHBqQqx>U+0B ztYTm8)Gk0?8Jv^?`(l4^V6_W`J26~h%0^lIC-I4pX#!|qqv2GcCcojcQTFUPhrhT2 zh?|X=VTP2nI>fdv62&cy@K&Qo2MBiLPom?h1+nHY(1Hl9|4-PfpNOG}LW)uA1zthB z7Xn!h5`>Cn7h))Ay<(!kzU}R}X^{N6sILD&WssT_!4dPHn4oI`=hbt>01?OBWvJqo zd=BI)er6&iShrw&yPY*`BJvVMdKag-?Y(X6Uu9D{QdwOyZ4qvnN=%@>CG==v7Ek2eH*RFAlk5b! zyUZ5^f+#$8yx|XgTjZx-J0d59vpJFG-#m&lx?Hx|^wzM5Sw*9(U022s>u8?WfT9zD z>V1$u3K7_$f7vIPBxsrMuFfH1GJy4wZWEsSVb8b@6%RffYS|#udvyssNTLpLd9?Y_ zh+FE+=9Q@k;v7e>&J~B;E{SY771ioad?VqY@p*^iYHVSNhp_1<% zA@T?Wi)Z5)m`fSS#5?c7_yPx}^4;>YyL@byx5<1b zcg?Vs7{8i*T8(l<;~1tp5oSSz)dB3~&IREvu<1_nMOR|Ee^20qETQDKoU|%oe_QoU<2Um8{f?an4GQ?R=roPfRYi&~PRBZYf4Ned&EZZG^>9*0WZnqe7D5KhWexdym z_tPtO$x{A)f{l3nK0jcma;HjYkfkW|{H1I-&0^ZbobXw+g*pHR3{xI;CEI+ZFFRbsjtU0JTabHw$zOCRNq;+Qw6OrprI46=5@>vtdT~W`8jHP_FQ>55ynX7&zPQimhLv+wQpDt@ z4}IOe@!EVQ5ih{0T9{gkw_*M@lXHo+{!YP7~?cdoj*_@rJSKX2{?**fNHu|SmiuSvdW z|F+L+0aX_%` zj!1Gh8QspQpvo}Zm1 zO!U4X6nNB&b-FC9I=K?(6XwgnL3PeeuDMNQyc_Nx4yq2n|A`wt^2mQ@3q07fwW}jC zCGAMwdP-656p&irsk~}c-%-I@dqg+wCsj9h&|LK7$S64BsLG)F(b-*r&X#V~YQ{=j z_mUO-X7ge}$P074J_;IA=Lp2z@c#kfv1%rMa-|4)?r*eB*Hdlz69alDK`a8f#kWyx zGh-cFkD^^00kXyHv!m7cVO20~W9yOc!Y~D}8dos7uL$^~r(eC4EU1JRvii*Tho2g({fzAsYWcyx_c1Ps-#@hK) z6tP_tNBD<{dKBq|Z~kH%+KjBeOthDctcJFoG=0ejy)%ZQ1;t18HUSl#DWn!zUDwTJ zu&=@{phqF&X0=6*dPGXB@ukCohBZ^jApa&M$8RBd5Up=%hcG@#+C|dXM_HK4MF?L?S}$M`w(ooN-Is2+=X#3ZgXyNk6NSRuQ3C z>COLmxuXV|{l=BW8z-~p3jk`#P5a57`mr6iU6;>12vTaITe5EW4e7j!Yc0EcgIV+6 z7-XVox4u$hN=uoEhMd0R(kc|}8K>^m{YOL#Y!Qn>(ykZ<(kV&hkFDgJU|STrH3n2w zacY3)Yo6cjA6;L)`Gx?q9YMW)&0e_w`PmAV3-KOk^S#PejAAtvFW_=wih}$FUZ|XB zwIz`iymtRwZHNOxiRA4BT3Gt7d~QGD0$64C7@~j!+7T1Yf})6Mx^uK=ZNSkhIR9OZ zo$Z~4-k-sNZ=sPB;uQ_qE>Z)Z2rO<`PGXr-*kNTY3s_`IZwMo?64luNo`yLvymQq?`F~dQcKy*0b1-+0J%J}?)WWV}vmoS?>v7eoZ{YcC6o!*NdX8H&-j_n$Gh+}Yd<+%ec@brlz4Zfu(9b@{d+?&rok!+y zU==Ss)hq9{X$!;``DH9X`1x6hLiw_B(4XNDcLl4$E)xHrT{`W{C-8*@(s3|4vt|pN z0C-et>KTowAb3e~D-EjP5SiUO54?qEy7)L(Rh)f(1G!4IYa>H-B(wJUX^&v3*uKLcrodzLSWEZm(7yZ9n&3fSpUChHz-}ikxnXgjU z`v2R-{Vw_6Jk|g46YISHl>WNK|L+}C3_$Y2THZ->q0Z(ahl1KGd82Mr^+6*{ zpd{VkCI3Hu@K7`wP1xUed>ILgsOQYm#@^nwGBhe!ago|SJM$!BFc{B}QSUNNqd6g? zE}*}^%>0$LQ&WW`VzF3}m)?~DfFhy;7P3anR#a3BStRi!buOwFi1+FBj+{-oV4CPO z&G8z^2RQU`eLj$ za_qG-j4hybpzLuqQ_fRsr;#&3v(kdsd8TZd?XSD8{*JaO_mX&cczB!`6YN)t25a*K zE9Y`|OmF0&G;p9d9HUYlSt*w2V8t|tX;53e5S;yDhfv_~mv|r-4AOpiQF~x=_!#_p z+YuqRd@zvSYYyL6)E=Cs|y^CA?!%v}H?$G^Jn!Y^Gy59{8e_78HA zok3Ep2~1b%9`FEgGSVpX(WqPn;&#&aDqNDti8HDZqze?;*?f`MxPZ1h)1QmLT}6eR z$p5h!+m+n4$#%Jv+o@R`A(qtZcadj0V*>-x5{D1*J=kjwQ>A`??-1?f2Opk37`N}lXOMccd6S9bz3p@LQV-H(r)#vR`L?f!zVU&iuS&B>qU zq58yICqT{*(UvmyG+BW%k86D!9(OFsj%M%2dMBOR&E;U)3?k98bDi1(&c^QQ1AL=9U-jbH*`fOr>(A|(54cr$_1(IC^ye>m3H|tqKPDg5|6dBPC0MC5?q>-TNreh#XgTLTasl15joM?zx<`f7T zRbU{}$0~J^M8fu`i{8^24dn9lNILyWyaYZt<2%Q$5F5k_u0HpMv~tKHLsGqk&QJJ* zBf4Wo<(rHyMBD9Io3`+>@b`mm8z11mBm(m<#L;|784*Coll#uR&Lg0OA!3nO!I|(- zh}j%}um)_R?L*R(iQ2Mu4IGMJ!1m_2^=0m5yq}3^Eyha0Pp70!_L|MjL(6-EDekR|}{oJJ>U)6bw0F#S5ZmI=z`k>*X!MPpN@j(O!sp z>x|%r_dZqQScOL5tW-B4;mE3KKk$vre!+G?elT`$p}WoU4}R3M3t>fs!u>-Q0nh_t zuF(jaGyS5NnIVWGT-uw#N`)W+DB$&#_F{}oJ(CMs zTlWv42!kKBEMHFz=RjRouKl3+yaTm5!M^dxRzNrxQNsQ4wKzqiXvm=dp+Z54G~EY& zYe#&*+#Brf1;g%1J@TmPR~Pf?Vu0kCc9bXgo9U(r*UhHs0=VwWnm4l{_}7PUflmN4 zT7PGS0@J|;hl#Lxz9k(CEA<;C1F4I2Umn+>HfUEHvh4-;!3QYBAnXj@R`p?IBv!vs zi*d0l*m9}CZemR1?|0C+ytOGH%D(Ri4)Lmz!d7*7X;=MV{G^lgBSYNZFlMU=1QEPy zQ94FwUoEXU-kjoWFO8nbk^lBLJzG-7Qy?|&YK-yrhhKG2uya`~jI{x8wOsUfD>Mg+ znQamMroMXTfhCOE9&}R4(NAc%f)lJb4l}AB&U7r=2kQRRf7b9~7OrCH`wu9#X0vsc zN5qwyGn_GN(>^hv59Nq0cv0RpS%y*Y1ZeA__0+|N?AG}gtAiFXha%3v^{UA=OV!Mz!*M*oB(;sg&T_Mol)_w4jP zsy*fnA+3vZtdKVG(nV7epyNX7E(3`cwh<4%Ef8oKBAdn{Kg9f*$tzuB0v0eeOLO5AwvFsJfD5 z((~5dGo<4S}c-E5i!dZZDwC|Ga zd$gp%lH@T^dy$a6Mk=rWGs68Q-PE0%0ySCnk(z12)R@BRUfaTE4xoEdYjsFSxEa52 zk%Vl1QpwoKjMT zdu(Cgb={R&6@BRX+~L`NS$Vp*&Kf!}DG@6%^hj8xRCo9b6|18x>rKa8-JTBTFqwHe z9GvV)nRl4cK#*8@)WRdVDFj1UZUsk+h5Gt?XevL1>ZgI)BTZxLr#klJgNp4J{32cs zAJgo{{E8d zcnxLFCVy9tUFVS=51-VQyavu;DLU3 z?%j^3A}-=@a#_f~^y({Yeq*1T^DgLxp!`-#M(~>Y8Lj>&i%Hiox6_x0h=fk*)a*|(H@6K^Hl zaM4)0GtuWarb1o1c{RvQK89nAOk<5W8XsAvJ1yd2K!_rR~P9iVUW4<7O1qTrrunQB{Q& zJFRNJ&#zA(_UW{#cDCWF9b|}5|C;NCRB+A&xngIQPgJjjXRdQ+U2GzrJDxE0?fDW4 zjfiS}eWBvWg$d@CyR?pi>MYm%?=ARoVX?KPT5(VUL1XEn|tYTHC z-{jEe#B*85z5HF2h_I%N@q3tG_IwK3 zyh=w8`p#(b&H>8FeNetXMX%&EmW1_isdauBRz7G6m6`aA2vE_0fWGM~Fb%rc(Qi3^ ze!hpQw3WLhUyi?Ee*XujDA>619hCcN5aAg8RHeYojqiNpVK)a!TQvAv$`WeK4gZYV zW%TZ-`@3|L!L-Yp7#~O@YKL_}*za7^B_5mL>QV5rD-~sKujQkC$^oSn;}vk7&TVq+)9uh?@=fgF&Q{0M z3G*9^r+&cXvuYoRJ52ZOcPd4mYlAcqpX1k5)Us}7m+)tVw>|csR}S{t2B={7s7w!> z`TC4sxUGi`*PVu*P_+bgie(Ax;MdH>no-<`tNh7M%hJtrUQVpn*?X1V3afO679m)# zW!RoX#wA1;7{ZWYgAvY(HeX+a?Gl^_$WvZjn)gvQzrSmUw?0aU>fov12kdk}9$qK) z3A`;e;(9zf z;9^sLQM}W9yq*!L{-<0P5scqSQs-~49^(3en&uUQKs zctkua^>)jtUqqe1UMOmJ6@SGabMeb;&2m<9b8hi$^BuQPj?LrS>rWJ#9{uhau`^AT z@3u^hm~Vb(C7E9i8w&c!(K5DwU3|V!G4!(-_uW@*^cZ&{REmNLlGs3npQXhK>Uws4 zYFE!zP-*;vdq-7%7}k)XT6T)M=8$NV%1>&ro1CPiJpj8gUHv(Z7|TJ{3@&s2ATP$K zu9;@wUR%%J->TlpxxIOTHeqjbNZ3lOKi6}v)KJE+&^IHegJqkZ-0K=;^rrr8cYR)# zLusVKKr>sI{B!~FrB<@uCd)J)vpfRS${&9D zcgd({;(%GU?Ik#(EB_0A*hk(zAaOH(=h_MP36WA%{fWDCwvb#J&5P57J0wyx0Pe=sS;wQ$H2U1COy|^@B0HVc&TuwM3HrnoX|l;|nzY{2=GPlJM3`xfTEsNw!u!1pNwzit2)1z-1$ zF+~auJkBUf+Ua@l-IV^O0`H3``~*jY^l|eJYhZh}a}1ldNXX~bq`MJ)_X$a0EKzt< z1yQ{=KQ*STP!76)chs3?k5UH(Ttgnq+QqW*^i={~KemdQdGWoZL(Eos#H(tO7B=0y|SZzb3XSC36EElqM|sKY8&pGqOzTZl{K z^NwDuOSqb$mj`=gxH}^Dc)A?59*^6Eo{(2jtfek0Ftcyf=JsYxfrS;( zsrL7ZHcgkveGCeWdD)_(Zw0E`);fzKR!QRnsmNA*yC}%DiL-La98%?vAEv+wei-Y; zi~h-{1yo^)AeR+X?AhUC2F#-OfRco#>dqb2**fRE6E0~@)`(48yAwp~pci%Og#4?Q zZ;8mnTBV32MDpd(GI58au$}o?zE)6m63;tYmSC3m1&#~`x*NoAyjdYHjPCb2o*I*e zhH1y=zJ;DY|9VYVE2FpMI(n?oX!8bjQ6A(s8owgtNGZkcbq3+E2DhIoNV%DPruEbgX7n9%uN+*A@# zUJ-aEOyWgV{h*Ni%*89`9)NLeKf%V~r1ry@s$|2NLhXp!&4#<*IIB2kX(I(gOW3BW z^@eWM=bb-o{YdbM9=-A~Qsp=m+7RbDZyuE}qR_b`KVv*_Wh6aYeb4eWS!p<=J+>BR zZfG4Ogbw?)9V)XUWkdM>a?{7t1Wb?+9jvS3k7VSnq>h0GU z6P=rDb`Cx&yoxAwIh^kNV~BrBtr|cY2R_s`i4w=>4H-qCKI_O?Uf&>CGKH8}*LEg` zlD;Rsx8p;up?Tf=!8)8q^vju}E>sKuIvgMvvjF#qP&isnj4}z9R8^rjmRxElNmhrk zl$#%kXF3NyyKf;wTyL*}F28){vU_KqQR3wv&(FT$%a+tXpBJD%meYkNAmam2;q6UD zFuXJ|V~zdQe!4|gKt9XyS(|7Rn_tOB2nz|W@uf76b=RXXNEc&uv$cAl%~=-P3XGhi zt<#kQ9i!ws@HAH6^Ht4e>+KvXrm?UIZUCjYzlzxJ^-fv9D^A2!0+SlOuzevP(ym8?=VB~$dUT?s3iIO zX9;HXpcY-<1!U9v-^&+G-`|EN_V~q`8+iHTkWO2^eR;U@-kgtggmdU^_A9l_q0HTGI=rN;R;w$?(MskJ;b1o|Q9ZKJf?PKX5^Saibl7?uqck()iV`OfAa|iWywd z^Jg6C`NrM3bv-G_;rEY-wArsliD#CSWscX7H0?Phn`L}kUEc&tVhY4qqj6Avh$;nI zmTw_hE{k1XT(OhzY@HwTDCTnJgX9s5iZm(S{M#L_1`@Z%^PJ&>3S0TTwnM|+R{G@d z`GZA)Kc760f4jwhZlQ!dl7D>HD^MH|Uqo3Mqp5ei zu@faQm6^1#^Ek#NtAMQM?V_Tb_eDN`v7;+FKacVH(70iaOSQE@rynvs(5%PP#7DHa zQbr<{!K(6Jp37~n zyO3+@hNs~j!_?M@3atDWwlki znQ@wFRUstwEjyx=YO&V(2YYVA4m{NIqPs*JdHbt-ooEQdKD}x(Of`*|egRTVlPOH3 zwAW2w*gC@#vG>x>HHWTAt1vr$+=ExV>`ml(TP*Yr^Crx-EL&&vJ-3VpD+9|z62_z1 zwmal+g*rZ-Iet9ly2S-hO?%jU6Kk1y;`KWT-7RCommnr>T7oUJE^Y| z>n=pDG2SL)#w80Hg}jQQuh>bjxun*-SGxL{?>VL>vgQgW7u<_6ZXLuX&WexZGOUC4 z?(x06RMw+o34Y1jnj)z4G1GC;=oaoeeS^R8j$DE+qjOjj&CaSDBeBP{DG?)A$ww85 ztT{GzY1c^Mk0l#`I9#Wt8j$H_rgPlwJ3n{5R)+#hRI?g$JI7Qj$*kXX9xXf_iS*%= z;OOu3li!LsGnX+XYhEE*uVbN;Tfw4>PbD8ff8C!;IxE^;-ghN|J1n0pDkSaVRSHAbFVc;>grb83NT3%JM%4ItP6Oa^+Clu+w~hU~vqA z5|{Q{DUDi%-#b>=fB4`l_N+3Y6#q4%=PDYVTc7slSRaX=O{UP?wYgqd-7j};+Gvzz zjh5&v5K2zAFVKZAZoawDP-rl|0Ny9{klejWL8K{uR>#`TjGcCSaKZsyiesTBZ7mEh z;<1-};#VTWbzJ=!;TWiyTrF>$T#lkVTvlP$hb8F2yXkb^Tw}P54AlB~USKIdrVeC^ zHKyT^-)hwEi2~zgeIEwZx|)XO3F%wNGmcb@FWz6jzYS`|9;-t*-IeHr#qA0WE*^2T ze@$>@`h5i~v1sy!N6qu|(-Q)nz^HD}f$6v@E;~^Y|A{TjgIsh}S6&pV(&FDATU32q~OReb2Yx3`_o)$Tgvf69Yauc6E zi>(7T`x~OkN`iw3?h6g8j+4g+qzjm_57nNsq;_q*B9plA9$Jpgjs~Us1dB(l5z7HQ zP=((wi#@^b#Iu0L+_nMo39nvgoYJYLg;!&rmMiT%I|O69smNznIk6HgWD@p`8Gc0T z#KYI!8pvg=(Oo1@jlm3?s_G!X%f=7Pj*Pm{eiuI&CS7*EziVUf`FaCDrz06GNKIyy zpOePTm1!RCxKMd*^#bJNHSyW0#`9a8tn&jg=%z&T2U1&e3rh1->e1Zgtw6u`Fm2b? zIQ>6Br&qpOQV9pUSAdR6Vo5CD3(j&`5u85o&Gd*y15Ud4BW@g?(L%)2I6kk$TS|Rj zLdhP}M~<#W^!Hn~d3#nua@@QdfFH6>hO=PW@Mp%Zc#Xvk&XBjd7@ zVqlWVp&D#$bOO(f0e23ym4pvsK^RX3cw8ovKrSM;m^E88ES0>kb zcO=5KQ(}qo&xRuqr{*87mtwCd6~&PC9AIIm6Zl5*Nx0#be01)@l5KXvQ^9ZdE9PmG ze~r#}b-+=PTZO22trp4x=i)r){N6!WLcd2`e&^MDK-ILW;v8IuSnMrIE;Mj%ohPE- zjrZX%_2kiRrTf!?PeCkiJ~Nb>8vmH@bG5A!{PBhNXPhQ)TQ~Y0+ygH8pw<;WyAAbjB`qejUo+;5tE|~^67;`y&_SI+XrDkAX4-WTt zr(^M4t2$`7|E{8eE5x7YyO1913e{}NPgHZ^i|-~G=w#=)QHDFf4g$qV`ItZCBy8%u zAP9kb^3+x7dl;L=Qd+Df-@8|I3?uG`6@3vtO;xsb&7`{!pCjHJJ!J)zP%LMB#7el^ z7D6@cCC{yna(e1H5GbjP=$`RcqK?L3s{e?kEp$K3_s!$ONPg;>9}x>KN^Y)*1bDs0 z%2=RyrB9PA6^51-jA@Ko?Ke%?8Mk}#-WV}$75$j^)=S5yE+w(wYo53G?IdA=RO#j- znrX{p!_TSLy~!us>E33VFUD&KY-co@Pyr9#mb_LB;AN1y)Q=8xXUP5Bn%LDk9Dhj0 zqqSimd@7=v)=u$eZrL8J4;`v3-`?Fk<1(k(pg(xm(hRU!USbjTZ%E(v)>)DqY?OX$ zVj-P}ByoEuMnJV3csHk*GMhTVV4W@ntrO5Xm;~>ZV&iuqnGU7=@%I{PhTBPvoK}N_ z&41jfGg|icSPJn)!s=nFD_5P$fxNPLVtkIdWRlJC4qm-<&7ErvQaBu`A8WSJC@Sw* zezc<7ueeIgGJF)YA3iaef$$`K?LFvZ+k2k+AxAk_xn=+FAv0+F7eRCr&-S!OIgo2u z>oRTRE8CqvZ5>{prYKIqlQzuSFBCjLHyP-@zcR2t!-CJOv_G^MG!*U941o6Ood6XZ z$>|{e`?Ygs6|w4le<@w(;8ea2kI5V@(^cQ_c`3Q!jK%(->uJvdKTi9FX=Z5{xYS=8 zkBzrwxTg96<9B@~wl?hNuB1k9!w)n^N@aq6l8OW2Wa2S<~G@v68GB%dUKR{3{FE6}2Gi_ken@s$?pH zUM}jl0sPKkVtOkJby&6aR&L}}_IcgOG7}z$XHj!<*61sHuaHE=@{#hCxvyMB!|Jbh zWCPUH#K7IPm!1|pdQaUD=%3pb8aEs+hoiY7QhQbEM z*w7!-^e>X98NQ;grOAl2mU)MN;6D$0+u+11yHD-8-a*^SEnQD3(bMztJV!Bv=&!iyd{HCct#a4R)oZEVUUn|reKbAB7MJ>a8n8-y_O9_-Wu*2+PgUGEPGz{~w7D8~6vaQnOWcQdqU z-`S$87x6}+05bH>{fduvi*R8vi-VO`K=k8`JYVH?gP31k>ixgF_M5sGjBKmID<~e} z^KBrbPGoEi4i{l@iv)K)|%0O#q*w|bp z_-Z})yCPTgy=s@;XZ08p>Js)KYl4#W@Ixa9Xt)Ok{1rX~?#ZcN4QckWqaEqf+j*>{3weUF|zW-q)^rxd~QyuaPHw4f@3Edxy0A3UB5_Y^LI&1EDwJtgPQz|xYHd5C!%6Gt6)lM?#-`uhqaHMp z-exS>kY}Zwic5*=XqY&=l;$yGsivW zeRntZXpp z9O`^yO6GeQd(!GT^LegB_DF~3O_Ydlz0tO#@tC2juz*W(qd_|*ke{<##D!aI*kAP4 zqk|mb@nGvWM|VSvnG58W1kGt$>hO{BwcvJAPGr*tfxv#UjhWxRv)fpggc=MbuPPMy z#HXC;*2>nl45aQVptW7ozRGqj?$cf9GOqJ_TvGqI)m7)>;h6v}JLU|nTzl2FW5!+y zyJKu-Ggg<5w*Cq~m&4p4eqcj4h5bM1!%fWJ*kgA_t@vt(;D)VfF;b z@kpqh{*V?$-EwRWe)g~TAHyxz9=W;qhovT-bJ9j#U1e3Gt7cn5HYJ|UYESY3Eyu|& zo4nI-y^5wj>kKN|B{sM-=5*)M0L|rftS95tZi9%dGdtOtl9j%B8@sxel^nM1>liCE zjc8rdY^OZ<()qa^rX(_-+sLk{91OhJU=l4CR=+HAGTH2YR5ohx07O16>5NXGcZ5qJ zfqq55{p-8=V=9kN{;|qrcg4nCtLpMA(LT5Z)?jI6(3@3F*}->yM^#xtG}2EjI^IkAhRle5H_N{~rIlqpZG;R#DT<@*&9N5KMkwyAIOK2WLjI&O5CxhndH^`3}(C9g*r!7m;SoHKF|bjCR#mew%47aH~x9+r83XA0&#fwPO_Og+6$! z@0o&i6NxcZ_Y)lhDG8p#rFRSDdE^_5j@cP0YE@H8CY$0_^6Oc`@$IFWM!uCY2k)ET zS2p3T5*grpWPVoj%_5YxZcgjJ=_wH&(5oQarwU#|JdYQRa4T_FNLjUrdht}O^1~`| zrS(SZiLwUwuaq!mMXB|qT50^C|GU1OJwMjmME%<x%AGcwmqP~#UczR4uu;Fs|-1E2l9mA9L6y(qJv58uZG`zd> z^#|+;LnOg&RBj|i&0BqrRg%18uspIqw9R7NHzGn$!$}l;@&Z}26MIus^XcHu&>B?y z)VaOaV-xzi0;=^_6JH`L>lZGOPQ4CXSxdJhxd=L&AGWd(ONDfTrwEtxS7_0i*M-%FtXE7)0%6b7~AC=^K*G-+4RO`u~dA(h6ZwO%QLMg zoXRCj3a2B6c|N(VfOV2J(&Rr{R>tG5By^<6pF}$I#3xX3;?yST7b7%zZN}o*f>nA{ z$jDf#oMDPVVYZw6!Pv7FmpcRWJqDzlri=eVtLV6U?#Ztii%7c1`F8WlOis)nC%^5Zdoyu)_4x9cs>;Y?|M-p6Lq2_5>K+c z^X^z|agk?C)o5N@Q$m|4-!my%(k|_w+R|j5VG>yJ_SEgsTQu8F-0a|I|Gsq-c}_^u zLKKDf#af%Joj3z+H^~C?B)|24u^Lb2pF`L?t4cV})Xc{KQ18W{Ts$JK^gC2c`n z3=6<4$LK-$uZ`u`szs7DSZr8d!bZTmTI)HSB-K<}C37nn5`55^?~FGEdwR{HqrYX?F!uZZ60D5S1d zKONB=J$FG^uGNnDRZprpZb7=Q+nAYm^Oeqw&4t<4!)ev+C-qKA;cn*)UcDfc7B|ZN z`oh>#;E4+FKvnRu&K|}NHmmNHuA%McOO~~5(IKw~)tBCjwIR&qic^MlZO0N%+FtJW z)oje2F?3m|ZW(W!@5rn*`KYsf@I1Xev^3m@4;xgy5+>%?3MqQiq9;~gVOy4QXN6VQ zap$jvHCG^g9F|FqYt#}&5#3*EK?am;3s%m>W@IYsiJ@y{NzurP2raGS`|@PqX(rr44nsP(MK}-?Ya(W#D<1 zj)GX13XL{wK|bkOUaMYr*gmys*8BC6WaWH0eB#-SC(C8RoQJZrgN7lem!4Wy&n6cH z{Qn;DCR8i@F2v=I4io9$)9Kf#a#vONO2&lFx{!&|MH2^W>WD4S0Wwc zKqQepG{MuA55XX^qbAr=)dXfj)h9ZWjr_cb=6AXVW9 zk*Z1{1PrDIg&l+<5Xx{hG#rkGBS1e7u$BmCgz<88LYrX?eir1s(gZux=~Ofn%3v^5 z7)TY07YPbiS67F^5Z}^p6v{MT4?3Qy>_Jobk>uZbutXZci%g}HDITD2dGQVuZ@MNJ z{H@Thsb!w@)_DjJSLqtvYb7XL%^k8l%;BiYIK ze+fq-&@jZ$@V|+EhGU@LK>Q8Nck18v^pE-f3z#F}7cZ)}m)rN#;z)oJ-H7f)4?2y* z4E{fvITFxL6fbu?U5o6FClR4k4-y9Yd-6Z7@5ib+w%~XY`pcC6Uiz<7`Cl3Q=Kfzv z|05~42q3szTwGj$2mlgu-NnTPhyWll*Iis(fCvB*bKS+o1&9D3G1pyOT!07w5_8?f z#RZ4}ATifnTwH(%01|WE#l;1P03b2fU0hs%2mlgu-NnTPhyWll*Iis(fCvB*bKS+o z1&9D3G1pyOT!07w5_8?f#RZ4}ATifnTwH(%01|WE#l;1P03b2fU0hs%2mlgu-NnTP zhyWll*Iis(fCvB*|3`O;{BH9gdT@F>7@Q^!>$E)&IJd}mJ&e`Gsl~V_ni%1ZZ#$bo z`B+7hl*A&~FR%00i8mu43d-pgFZVj*U8Zf{487%B6NFukC1qLtvT%VNuTl+J#z^hPRFmpvZO@7 z+?+KrnRUj==c@w0g}0{=2>j)6YCzyutCM{(PPnb5Wgu^j%|^zCIIF;y&B>cilNzpX zi9C1PA-Y#qE2+ct%U4y@0I$m87gRbAOgy8eXYFP?ySrREY?*hcbWvt9U&A`{&|_z? zpkRAI6wk~WR?vCNyU@jzrdrHhh5ivg2VA<24J;kpq82qT082&|%djBP!JAyP2F7>m zybr}UtambRFV;(6kK#u>233p2hIDxgUb31qH6=?&hN9Nn&k}QqwLG3okvKk*@c@@}h9S>T_ z`T6#*M|SFiOpe>+%4&-}nxth^t;t@'; - 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 ff0acb806f..ae077edaf8 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 d7e81e595f..d1ef1fa6d4 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 ba1f54ebe7..d261a23ac1 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 69564450b5..26f552ec8d 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 ae077edaf8..9e9d913078 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 26f552ec8d..1632685c53 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 9e9d913078..684db4595c 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 d261a23ac1..064a6cc983 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 1632685c53..a80e255293 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 684db4595c..13018fe417 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 064a6cc983..2c94c2d800 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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 literal 0 HcmV?d00001 diff --git a/pmd/scripts/history.js b/pmd/scripts/history.js index a80e255293..1c76f15c67 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 13018fe417..26667f03e6 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 d1ef1fa6d4..5a5c5d486d 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 2c94c2d800..a364e46f7b 100644 --- a/pmd_general.php +++ b/pmd_general.php @@ -27,6 +27,7 @@ $hidden = "hidden"; + Designer

' + temp + '