kenken999/php
0
1<?php2ini_set("display_errors","1");3ini_set("display_startup_errors","1");4include("include/dbcommon.php");5header("Expires: Thu, 01 Jan 1970 00:00:01 GMT");6 7 8include("include/reportfunctions.php");9 10 if( !Security::getUserName() )11 {12 $_SESSION["MyURL"]=$_SERVER["SCRIPT_NAME"]."?".$_SERVER["QUERY_STRING"];13 header("Location: ".GetTableLink("login", "", "message=expired"));14 return;15 }16 17Reload_Chart(postvalue("cname"));18$arr_join_tables = getChartTablesList();19 20include('include/xtempl.php');21$xt = new Xtempl();22 23if (@$_SESSION['webcharts']['settings']['title'] != "") {24 $title=@$_SESSION['webcharts']['settings']['title'];25 if(strlen($title)>25)26 $title=substr($title,0,25)."...";27 $xt->assign("chart_title",", "."Title".": ".$title);28} else {29 $xt->assign("chart_title","");30}31if (@$_SESSION['webcharts']['tables'][0] != "") {32 $stable=@$_SESSION['webcharts']['tables'][0];33 if(strlen($stable)>25)34 $stable=substr($stable,0,25)."...";35 36 $xt->assign("chart_table",", "."Table".": ".$stable);37} else {38 $xt->assign("chart_table","");39}40$xt->assign("b_is_chart_save",($_SESSION['webcharts']['tmp_active'] != "x")); 41$xt->assign("b_is_chart_name",($_SESSION['webcharts']['settings']['name'] != ""));42$xt->assign("chart_name",$_SESSION['webcharts']['settings']['name']);43$xt->assign("wr_pagestylepath", $wr_pagestylepath);44$h_includes = "";45$b_includes = "";46 47$h_includes .= '48 <link rel="stylesheet" href="'.GetRootPathForResources("include/css/jquery-ui.css").'" type="text/css">49 <link rel="stylesheet" href="'.GetRootPathForResources("include/css/dstyle.css").'" type="text/css">50 <link rel="stylesheet" href="'.GetRootPathForResources("include/fancybox/jquery.fancybox.css").'" type="text/css" media="screen">51 52 <script type="text/javascript" src="'.GetRootPathForResources("include/js/jquery.min.js").'"></script>53 <script type="text/javascript" src="'.GetRootPathForResources("include/js/jquery.dimensions.pack.js").'"></script>54 <script type="text/javascript" src="'.GetRootPathForResources("include/js/jquery.easing.js").'"></script>55 <script type="text/javascript" src="'.GetRootPathForResources("include/js/jquery.fancybox.pack.js").'"></script>56 <script type="text/javascript" src="'.GetRootPathForResources("include/js/jquery-ui.js").'"></script>57 <script type="text/javascript" src="'.GetRootPathForResources("include/js/json.js").'"></script>58'."\r\n";59 60$xt->assign("h_includes", $h_includes);61 62$fields = "";63for ($i=0; $i < count($arr_join_tables); $i++ ) {64 $t = $arr_join_tables[$i];65 $arr_fields = array();66 $arr_fields = WRGetNBFieldsList($t);67 for ($j=0; $j < count($arr_fields); $j++) 68 {69 $field=$arr_fields[$j];70 $disp_field=$t.".".$field;71 if(strlen($disp_field)>25)72 $disp_field=substr($disp_field,0,25)."...";73 $fields .= "<option value=\"".runner_htmlspecialchars($disp_field)."\">".$disp_field."</option>";74 }75}76$xt->assign("fields", $fields);77 78$b_includes .= '79<script type="text/javascript">80var timeout = 200;81var closetimer = 0;82var relation_stack = 0;83 84$(document).ready(function(){85 $("a#sql_query").fancybox({86 fitToView: false,87 autoSize: false,88 width : 800,89 height : 550,90 overlayShow: true91 });92 $("a#preview").fancybox({93 fitToView: false,94 autoSize: false,95 width : 820,96 height : 660,97 overlayShow: true98 });99 ';100 $b_includes .= alertDialog();101 $b_includes .= '102 function collect_input_data() {103// clean up all uncomplete rows104 $("td.field_value select").each(function(){105 if($(this).val()=="-1")106 $(this).trigger("change");107 });108 showNewRow();109 var output = {};110 output.group_by_condition = {};111 var j=0;112 $(".condition-row").each(function(){113 if ($(this).find("td.field_value select").val() != "-1" && $(this).find("td.field_value select").val() != null) 114 {115 output.group_by_condition[j] = {};116 $(this).find("input:text,select").each(function(){117 output.group_by_condition[j][$(this).attr("id")] = $(this).val();118 });119 j++;120 }121 });122 output.group_by_condition["group_by_toggle"] = $("#group_by_toggle").prop("checked").toString();123 124 return JSON.stringify(output); 125 }126 127 $("#sqlbtn").bind("click", function(){128 var output = collect_input_data();129 $.ajax({130 type: "POST",131 url: "'.GetTableLink("save-state").'",132 data: {133 name: "group_by_condition",134 web: "webcharts",135 str_xml: output,136 rnd: (new Date().getTime())137 },138 success: function(msg){139 if ( msg == "OK" ) {140 $("#sql_query").click();141 } else {142 $("#alert").html("<p>"+msg+"</p>").dialog("open");143 }144 }145 });146 });147 148 for (var i=1; i < 10; i++) {149 var tr_elem = $(".condition-row").eq(0).clone();150 $(tr_elem).find("input, select").each(function(){this.value="";});151 $(tr_elem).attr("id","cond_row_"+i);152 $(tr_elem).find("input, select").each(function(){153 this.disabled = true;154 });155 $("#table_wh").append(tr_elem);156 $(tr_elem).hide();157 }158 159 $("td.field_value select").change(function(){160 161 if ($(this).val() == "-1") 162 {163 $(this).parents("tr:first").find("input").each(function(){164 $(this).val("");165 });166 $(this).parents("tr:first").find("select").each(function()167 {168 var oldVal=$(this).val();169 $(this).val("-1");170 if(oldVal && oldVal!="-1")171 $(this).trigger("change");172 });173 $(this).parents("tr:first").hide();174 }175 else176 {177 enableRow($(this).parents("tr:first").get(0),true);178 showNewRow();179 }180 }); 181 182 183 $("#group_by_toggle").live("click", function(){184 var checked = $(this)[0].checked;185 $(".condition-row").each(function(){186 $(this).find("select#group_by_value").attr("disabled", !checked);187 $(this).find("input#having_value").attr("disabled", !checked);188 });189 });190 191 192 $("#row2")193 .css("cursor", "default")194 .css("font-weight", "bold");195 196 $("td[id^=row]").mouseover(function(){197 for(var i=0; i<=9; i++) {198 if(i == this.id.replace("row", "")) {199 $("td[id=row" + i + "]").css("background-color","#92BEEB");200 }201 else {202 $("td[id=row" + i + "]").css("background-color","#F4F7FB");203 }204 }205 });206 207'."\r\n";208 209$b_includes .= JumpTo();210 211if (count(GetUserGroups()) < 2 || isset( $_SESSION['webcharts']['settings']['status'] )212 && $_SESSION['webcharts']['settings']['status'] == "private" ) {213 $b_includes .= '$("td[id=row7]").hide();'."\r\n";214}215if (is_wr_project() || is_wr_custom()) {216 $b_includes .= '$("td[id=row1], td[id=row2]").hide();'."\r\n";217}218if($wr_is_standalone)219 $b_includes .= '$("td[id=row9]").hide();'."\n";220 221if ($_SESSION['webcharts']['settings']['title'] == "") {222 $b_includes .= '223 for (var i=2; i<=7; i++){224 $("td[id=row" + i + "]").hide();225 };226 '."\r\n";227}228 229$rLinks = "var rlinks = {};\r\n";230for($ri = 0; $ri < 10; $ri++)231 $rLinks.= "rlinks['".$ri."'] = '".GetTableLink("webchart".$ri)."';\r\n";232 233$b_includes .= '234 var activeXDetectRules = [235 {"name":"ShockwaveFlash.ShockwaveFlash.7"},236 {"name":"ShockwaveFlash.ShockwaveFlash.6"},237 {"name":"ShockwaveFlash.ShockwaveFlash"}238 ];239 var getActiveXObject = function(name){240 var obj = -1;241 try{242 obj = new ActiveXObject(name);243 }catch(err){244 obj = {activeXError:true};245 }246 return obj;247 };248 if(navigator.plugins && navigator.plugins.length>0)249 {250 var type = "application/x-shockwave-flash";251 var mimeTypes = navigator.mimeTypes;252 if(!mimeTypes || !mimeTypes[type] || !mimeTypes[type].enabledPlugin || !mimeTypes[type].enabledPlugin.description)253 {254 $("#previewbtn").parent("span").hide();255 $("#previewbtn").hide();256 }257 }258 else if(navigator.appVersion.indexOf("Mac")==-1 && window.execScript)259 {260 var isFlash = false;261 for(var i=0; i<activeXDetectRules.length; i++){262 var obj = getActiveXObject(activeXDetectRules[i].name);263 if(!obj.activeXError){264 isFlash = true;265 }266 }267 if(!isFlash){268 $("#previewbtn").parent("span").hide();269 $("#previewbtn").hide();270 }271 } 272 $("#nextbtn, #backbtn, td[id^=row], #savebtn, #saveasbtn, ,#previewbtn").click(function(){273 274 var flag = true;275 276 // no validation required 277 var URL = "'.GetTableLink("webchart").'";278 '.$rLinks.'279 if( this.id == "nextbtn" )280 URL = "'.GetTableLink("webchart3").'";281 if( this.id == "backbtn" )282 URL = "'.GetTableLink("webchart1").'";283 if( this.id == "saveasbtn" )284 URL = "'.GetTableLink("webchart6", "", "saveas=1").'"; 285 if( this.id.substr(0,3)=="row" && this.id != "row2" )286 URL = rlinks[this.id.replace(\'row\',\'\')];287 if( this.id == "row8" )288 URL = "'.GetTableLink("webreport").'";289 if( this.id == "row9" )290 URL = "'.GetTableLink("menu").'";291 292 var output = collect_input_data();293 var_save=0;294 if( this.id == "savebtn")295 var_save=1;296 if( this.id == "savebtn" || this.id == "previewbtn") {297 id=this.id;298 $.ajax({299 type: "POST",300 url: "'.GetTableLink("save-state").'",301 data: {302 save: var_save,303 web: "webcharts",304 name: "group_by_condition",305 str_xml: output,306 rnd: (new Date().getTime())307 },308 success: function(msg){309 if ( msg == "OK" ) {310 if( id == "savebtn")311 {312 $("#alert")313 .html("<p>'."Chart Saved".'</p>")314 .dialog("option", "close", function(){315 window.location = "'.GetTableLink("webreport").'";316 })317 .dialog("open"); 318 }319 else320 {321 $("#preview").click();322 }323 } else {324 $("#alert").html("<p>'."Some problems appear during saving".'</p>").dialog("open");325 }326 },327 error: function() {328 $("#alert").html("<p>'."Some problems appear during saving".'</p>").dialog("open");329 }330 });331 }332 thisid=this.id;333 if(this.id !="row2" && this.id !="savebtn" && this.id !="previewbtn") {334 $.ajax({335 type: "POST",336 url: "'.GetTableLink("save-state").'",337 data: {338 name: "group_by_condition",339 web: "webcharts",340 str_xml: output,341 rnd: (new Date().getTime())342 },343 success: function(msg){344 if ( msg == "OK" ) {345 window.location = URL;346 } else {347 $("#alert").html("<p>"+msg+"</p>").dialog("open");348 if( thisid == "row8" || thisid == "row9" )349 window.location=URL;350 }351 }352 });353 }354 });355});356 357 358 359function showNewRow()360{361 if( 0 != $("select[name=field_opt]:visible").filter( function() { 362 var value = $(this).val(); 363 return value == "-1" || value == null;364 } ).length )365 return;366 367 var firstHidden=$("select[name=field_opt]:hidden:first").parents("tr").get(0);368 369// append it to the end 370 $("#table_wh").append(firstHidden);371 enableRow(firstHidden,true);372}373 374function enableRow(tr,enable)375{376 $(tr).show();377 $("input, select",tr).each(function(){378 if(this.name=="field_opt")379 this.disabled=false;380 else if ((this.name == "group_by_value" || this.name == "having_value")) 381 this.disabled=!enable || !$("#group_by_toggle")[0].checked;382 else383 this.disabled = !enable;384 });385 if($("td.sort_dir select",tr).val() && $("td.sort_dir select",tr).val()!="-1")386 $("td.sort_order select",tr).show();387 else388 $("td.sort_order select",tr).hide();389 390}391</script>'."\r\n";392 393$arr = $_SESSION['webcharts']['group_by_condition'];394 395if ( !empty( $arr ) ){396 $b_includes .= '<script type="text/javascript">397 $(document).ready(function(){398 $("#group_by_toggle")[0].checked = '.($arr["group_by_toggle"]=='true'?"true":"false").';399 '."\r\n";400 401 foreach($arr as $i=>$tarr)402 {403 if(!is_numeric($i))404 continue;405 $b_includes .= '406 tr_elem = $(".condition-row").eq('.$i.');407 $(tr_elem).show();408 $(tr_elem).find("input, select").each(function(){409 if ((this.id == "group_by_value" || this.id == "having_value") && !$("#group_by_toggle")[0].checked) {410 return;411 }412 this.disabled = false;413 });414 $(tr_elem).find("select#field_opt").val(\''.jsreplace($arr[$i]['field_opt']).'\');415 $(tr_elem).find("input#filter_value").val(\''.jsreplace($arr[$i]['filter_value']).'\');416 $(tr_elem).find("input#first_or_value").val(\''.jsreplace($arr[$i]['first_or_value']).'\');417 $(tr_elem).find("input#second_or_value").val(\''.jsreplace($arr[$i]['second_or_value']).'\');418 $(tr_elem).find("input#third_or_value").val(\''.jsreplace($arr[$i]['third_or_value']).'\');419 sortDir = $(tr_elem).find("select#sort_dir").get(0);420 $(sortDir).val("'.($arr[$i]['sort_dir']).'");421 sortOrder=$(tr_elem).find("select#sort_order").get(0);422 sortOrder.options[sortOrder.options.length]=new Option("","'.($arr[$i]['sort_order']).'");423 $(sortOrder).val("'.($arr[$i]['sort_order']).'");424 $(tr_elem).find("select#group_by_value").val("'.($arr[$i]['group_by_value']).'");425 $(tr_elem).find("input#having_value").val("'.($arr[$i]['having_value']).'");426 if(!$(sortDir).val() || $(sortDir).val()=="-1")427 $(sortOrder).hide();428 else429 $(sortOrder).show();430 '."\r\n"; 431 }432 433 $b_includes .= '434/*435 tr_elem = $(".condition-row").eq('.(count($arr)-1).');436 $(tr_elem).show();437 $(tr_elem).find("input, select").each(function(){438 if ((this.id == "group_by_value" || this.id == "having_value") && !$("#group_by_toggle")[0].checked) {439 return;440 } 441 this.disabled = false;442 });443*/ 444 showNewRow();445 window.refillOrderCombos = function(combo,shift)446 {447 var newVal = parseInt($(combo).val());448 var changedElement=combo;449 var optionsFound=new Array();450 var optionsCount=0;451// find the options available452 $("td.sort_order select").each( function() {453 var curVal=parseInt($(this).val());454 if(curVal>0)455 {456 optionsFound[curVal]=true;457 optionsCount++;458 }459 });460 var oldVal=-1;461// find the hole462 for(i=1;i<optionsFound.length;i++)463 {464 if(!optionsFound[i])465 {466 oldVal=i;467 break;468 }469 }470// update all comboboxes 471 $("td.sort_order select").each( function() 472 {473// calc options list and control value474 var curVal=parseInt($(this).val());475 if(isNaN(curVal))476 curVal=-1;477// shift the value if needed478 if(shift)479 {480 var hole=oldVal;481 if(hole<0)482 hole=optionsFound.length;483 var bump=newVal;484 if(newVal<0)485 bump=optionsFound.length;486 if(hole<bump)487 {488 if(curVal>hole && curVal<=bump && this!=changedElement)489 curVal--;490 }491 else if(hole>bump)492 {493 if(curVal>=bump && curVal<hole && this!=changedElement)494 curVal++;495 }496 }497// recreate options498 this.length=0;499 this.options[0]=new Option("",-1);500 var largest=optionsCount;501 if(curVal<0)502 largest++;503 if(largest<1)504 largest=1;505 for(i=1;i<=largest;i++)506 this.options[i]=new Option(i,i);507 this.selectedIndex=curVal;508// update sort direction control509 var sort_dir=$("td.sort_dir select",$(this).parents("tr").get(0)).get(0);510 if(!sort_dir)511 return;512 if(curVal<0)513 {514 $(sort_dir).val("-1");515 }516 });517 }518 $("td.sort_order select").change(function(){519 refillOrderCombos(this,true);520 });521 refillOrderCombos($("td.sort_order:first select")[0],false);522 523 $("td.sort_dir select").change(function(){524 var sort_order=$("td.sort_order select",$(this).parents("tr").get(0)).get(0);525 if(!$(this).val() || $(this).val()=="-1")526 {527 $(sort_order).val("-1");528 $(sort_order).trigger("change");529 $(sort_order).hide();530 }531 else532 {533 if($(sort_order).val()>0)534 return;535 $(sort_order).show();536// count number of sort fields537 var optionsCount=0;538// find the options available539 $("td.sort_order select").each( function() {540 var curVal=parseInt($(this).val());541 if(curVal>0)542 {543 optionsCount++;544 }545 });546// set the max value547 $(sort_order).val(optionsCount+1);548 $(sort_order).trigger("change");549 }550 });551 showNewRow();552});553 554 555 </script>'."\r\n";556}557$xt->assign("chart_name_preview",$_SESSION['webcharts']['settings']['name']);558$xt->assign("b_includes", $b_includes);559 560$templatefile = GetTemplateName("", "webchart2");561$xt->display($templatefile);562?>