CoolFace
Apppublic

kenken999/php

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
webchart2.php562 linesDownload Raw Back to public
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?>