Revize 25
Přidáno uživatelem Tomáš Dulík před téměř 17 roky(ů)
freenetis/trunk/www/assets/images/_README.txt | ||
---|---|---|
The various assets directory are for assets and helpers for the various
|
||
QControls, including images, javascript files and popups.
|
||
|
||
Of course, these files can technically be anywhere in the docroot,
|
||
but the current directory location of /assets/* is meant to serve
|
||
as a centrally-available assets location for these QControl helpers.
|
||
|
||
If you want to move them (either individually or entirely),
|
||
be sure to update your configuration.inc.php to reflect the new
|
||
location(s) of the assets.
|
||
|
||
In short, feel free to add/modify as you wish.
|
||
|
||
And also, any additional QControl classes that you create or download which
|
||
may have their own assets should have their assets installed in one of these
|
||
subdirectories. And any additional other js, css, etc. assets for your
|
||
application could be placed here, as well.
|
||
|
||
Finally, note that within EACH asset type (e.g. css, images, js and php),
|
||
files in the _core subdirectory are intended to be part of Qcodo Core,
|
||
and rules concerning the upgrading/modification for these files follows
|
||
the same rules for Qcodo Core files everywhere else.
|
freenetis/trunk/www/assets/php/_core/calendar.php | ||
---|---|---|
<?php
|
||
function CastToInt($strNumber) {
|
||
settype($strNumber, "int");
|
||
return $strNumber;
|
||
}
|
||
|
||
if ((!array_key_exists("intTimestamp", $_GET)) || (!$_GET["intTimestamp"])) {
|
||
$intTimestamp = time();
|
||
} else
|
||
$intTimestamp = $_GET["intTimestamp"];
|
||
|
||
$intSelectedMonth = CastToInt(date("n", $intTimestamp));
|
||
$intSelectedDay = CastToInt(date("j", $intTimestamp));
|
||
$intSelectedYear = CastToInt(date("Y", $intTimestamp));
|
||
$intTimestamp = mktime(0,0,0, $intSelectedMonth, $intSelectedDay, $intSelectedYear);
|
||
$dttToday = mktime(0,0,0, date("n"), date("j"), date("Y"));
|
||
|
||
$intMonthStartsOn = CastToInt(date("w", mktime(0,0,0, $intSelectedMonth, 1, $intSelectedYear)));
|
||
$intMonthDays = CastToInt(date("t", $intTimestamp));
|
||
$intPreviousMonthDays = CastToInt(date("t", mktime(0,0,0, $intSelectedMonth - 1, 1, $intSelectedYear)));
|
||
|
||
$strQueryArgs = sprintf("&strFormId=%s&strId=%s", $_GET["strFormId"], $_GET["strId"]);
|
||
$strChangeCommand = sprintf('window.opener.document.forms["%s"].elements["%s"].value = "%s"; ',
|
||
$_GET["strFormId"],
|
||
$_GET["strId"],
|
||
date("M j Y", $intTimestamp));
|
||
$strChangeCommand .= sprintf('window.opener.document.forms["%s"].elements["%s_intTimestamp"].value = "%s"; ',
|
||
$_GET["strFormId"],
|
||
$_GET["strId"],
|
||
$intTimestamp);
|
||
$strChangeCommand .= sprintf('if (window.opener.document.forms["%s"].elements["%s"].onchange) window.opener.document.forms["%s"].elements["%s"].onchange();',
|
||
$_GET["strFormId"],
|
||
$_GET["strId"],
|
||
$_GET["strFormId"],
|
||
$_GET["strId"]);
|
||
?>
|
||
<html>
|
||
<head>
|
||
<title>Calendar</title>
|
||
<script type="text/javascript">
|
||
function selectDate(intTimestamp) {
|
||
document.location = "calendar.php?intTimestamp=" + intTimestamp + "<?php print($strQueryArgs); ?>";
|
||
}
|
||
|
||
function cancel() {
|
||
window.close();
|
||
}
|
||
|
||
function done() {
|
||
<?php print($strChangeCommand); ?>
|
||
window.close();
|
||
}
|
||
</script>
|
||
<style>
|
||
.main {
|
||
font-family: verdana, arial, helvetica, sans-serif;
|
||
font-size: 9px;
|
||
text-align: center;
|
||
color: #004d5d
|
||
}
|
||
|
||
A {
|
||
text-decoration: none;
|
||
}
|
||
|
||
.dropdown {
|
||
background-color: #e5e5e5;
|
||
font-family: arial, helvetica, sans-serif;
|
||
font-size: 8pt;
|
||
}
|
||
|
||
.button {
|
||
font-family: verdana, arial, helvetica, sans-serif;
|
||
font-size: 7.5pt;
|
||
font-weight: bold;
|
||
color: #ffffff;
|
||
background-color: #004d5d;
|
||
text-align: center;
|
||
vertical-align: middle;
|
||
height: 18px;
|
||
border: thin solid #223344;
|
||
}
|
||
|
||
.offMonth {
|
||
color: #999999;
|
||
background-color: #f0f0f0;
|
||
}
|
||
|
||
.onMonth {
|
||
color: #005599;
|
||
background-color: #e0f0f0;
|
||
}
|
||
|
||
.onMonthWeekend {
|
||
color: #80aabb;
|
||
background-color: #ffffff;
|
||
}
|
||
|
||
.selected {
|
||
color: #ffffff;
|
||
background-color: #ee0000;
|
||
}
|
||
|
||
.today {
|
||
color: #ffffff;
|
||
background-color: #80aabb;
|
||
}
|
||
</style>
|
||
</head>
|
||
<body><form method="get" name="myForm"><center>
|
||
<select name="dttMonth" class="dropdown" onchange="selectDate(document.myForm.dttMonth.options[document.myForm.dttMonth.selectedIndex].value)">
|
||
<?php
|
||
for ($intMonth = 1; $intMonth <= 12; $intMonth++) {
|
||
$intTimestampLabel = mktime(0,0,0, $intMonth, 1, $intSelectedYear);
|
||
$strLabel = date("F", $intTimestampLabel);
|
||
$strSelected = ($intMonth == $intSelectedMonth) ? "selected" : "";
|
||
printf('<option value="%s" %s>%s</option>', $intTimestampLabel, $strSelected, $strLabel);
|
||
}
|
||
?>
|
||
</select>
|
||
<select name="dttYear" class="dropdown" onchange="selectDate(document.myForm.dttYear.options[document.myForm.dttYear.selectedIndex].value)">
|
||
<?php
|
||
for ($intYear = 1970; $intYear <= 2010; $intYear++) {
|
||
$intTimestampLabel = mktime(0,0,0, $intSelectedMonth, 1, $intYear);
|
||
$strLabel = date("Y", $intTimestampLabel);
|
||
$strSelected = ($intYear == $intSelectedYear) ? 'selected="selected"' : '';
|
||
printf('<option value="%s" %s>%s</option>', $intTimestampLabel, $strSelected, $strLabel);
|
||
}
|
||
?>
|
||
</select>
|
||
<table cellspacing="2" cellpadding="2" border="0" class="main">
|
||
<tr>
|
||
<td>Su</td>
|
||
<td>Mo</td>
|
||
<td>Tu</td>
|
||
<td>We</td>
|
||
<td>Th</td>
|
||
<td>Fr</td>
|
||
<td>Sa</td>
|
||
</tr>
|
||
<?php
|
||
$intDaysBack = ($intMonthStartsOn == 0) ? 7 : $intMonthStartsOn;
|
||
$intIndex = 1 - $intDaysBack;
|
||
$intRowCount = 0;
|
||
|
||
while ($intRowCount < 6) {
|
||
print('<tr>');
|
||
for ($intDayOfWeek = 0; $intDayOfWeek <= 6; $intDayOfWeek++) {
|
||
if ($intIndex < 1) {
|
||
$intLabel = $intPreviousMonthDays + $intIndex;
|
||
$intTimestampLabel = mktime(0,0,0, $intSelectedMonth - 1, $intLabel, $intSelectedYear);
|
||
$strCssclass = "offMonth";
|
||
} else if ($intIndex > $intMonthDays) {
|
||
$intLabel = $intIndex - $intMonthDays;
|
||
$intTimestampLabel = mktime(0,0,0, $intSelectedMonth + 1, $intLabel, $intSelectedYear);
|
||
$strCssclass = "offMonth";
|
||
} else {
|
||
$intLabel = $intIndex;
|
||
$intTimestampLabel = mktime(0,0,0, $intSelectedMonth, $intLabel, $intSelectedYear);
|
||
$strCssclass = "onMonth";
|
||
if ((date("w", $intTimestampLabel) == 0) || (date("w", $intTimestampLabel) == 6))
|
||
$strCssclass = "onMonthWeekend";
|
||
else
|
||
$strCssclass = "onMonth";
|
||
}
|
||
|
||
if ($intTimestampLabel == $intTimestamp)
|
||
$strCssclass = "selected";
|
||
else if ($intTimestampLabel == $dttToday)
|
||
$strCssclass = "today";
|
||
|
||
printf('<td class="%s"><a class="%s" href="#" onclick="selectDate(%s)">%s</a></td>', $strCssclass, $strCssclass, $intTimestampLabel, $intLabel);
|
||
$intIndex++;
|
||
}
|
||
print('</tr>');
|
||
$intRowCount++;
|
||
}
|
||
?>
|
||
<tr>
|
||
<td colspan="7">Selected Day: <?php print(date("n/j/Y", $intTimestamp)); ?><br /> </td>
|
||
</tr>
|
||
</table>
|
||
<input type="button" class="button" name="Done" value="DONE" onclick="done()" />
|
||
<input type="button" class="button" name="Cancel" value="CANCEL" onclick="cancel()" />
|
||
</center></form></body></html>
|
||
<?php
|
||
//printf("Month Starts On: %s<br>Month Days: %s<br>Prev Month Days: %s", $intMonthStartsOn, $intMonthDays, $intPreviousMonthDays);
|
||
?>
|
freenetis/trunk/www/assets/php/_core/image_base.php | ||
---|---|---|
<?php
|
||
require('../../../includes/prepend.inc.php');
|
||
$strClassName = QApplication::PathInfo(0);
|
||
call_user_func(array($strClassName, 'Run'));
|
||
?>
|
freenetis/trunk/www/assets/php/_core/error_already_rendered_page.php | ||
---|---|---|
<?php print(str_replace("</script>", "</script>", $_POST["strHtml"])); ?>
|
freenetis/trunk/www/assets/php/_core/QFileAsset.tpl.php | ||
---|---|---|
<?php
|
||
if ($_CONTROL->File) {
|
||
if ($strUrl = $_CONTROL->GetWebUrl()) print('<a href="' . $strUrl . '" target="_blank">');
|
||
$_CONTROL->imgFileIcon->Render();
|
||
if ($strUrl) print ('</a>');
|
||
print('<br/>');
|
||
if ($_CONTROL->Enabled)
|
||
$_CONTROL->btnDelete->Render();
|
||
} else {
|
||
if ($strUrl = $_CONTROL->GetWebUrl()) print('<a href="' . $strUrl . '" target="_blank">');
|
||
$_CONTROL->imgFileIcon->Render();
|
||
if ($strUrl) print ('</a>');
|
||
print('<br/>');
|
||
if ($_CONTROL->Enabled)
|
||
$_CONTROL->btnUpload->Render();
|
||
}
|
||
?>
|
||
<?php if ($_CONTROL->Enabled) $_CONTROL->dlgFileAsset->Render(); ?>
|
freenetis/trunk/www/assets/php/_core/QFileAssetDialog.tpl.php | ||
---|---|---|
<?php $_CONTROL->lblMessage->Render(); ?>
|
||
<p><?php $_CONTROL->flcFileAsset->Render(); ?></p>
|
||
<?php $_CONTROL->lblError->Render(); ?>
|
||
<p>
|
||
<?php $_CONTROL->btnUpload->Render(); ?>
|
||
<?php $_CONTROL->btnCancel->Render(); ?>
|
||
<img src="<?php _p(__IMAGE_ASSETS__) ?>/spacer.png" width="150" height="1" alt=""/><?php $_CONTROL->objSpinner->Render(); ?>
|
||
</p>
|
freenetis/trunk/www/assets/php/_core/profile.php | ||
---|---|---|
<?php
|
||
require('../../../includes/prepend.inc.php');
|
||
$intDatabaseIndex = $_POST['intDatabaseIndex'];
|
||
$strProfileData = $_POST['strProfileData'];
|
||
$strReferrer = $_POST['strReferrer'];
|
||
|
||
$objProfileArray = unserialize(base64_decode($strProfileData));
|
||
$objProfileArray = QType::Cast($objProfileArray, QType::ArrayType);
|
||
if ((count($objProfileArray) % 2) != 0)
|
||
throw new Exception('Database Profiling data appears to have been corrupted.');
|
||
?>
|
||
<html>
|
||
<head>
|
||
<title>Qcodo Development Framework - Database Profiling Tool</title>
|
||
<style>
|
||
body { font-family: 'Arial' 'Helvetica' 'sans-serif'; font-size: 14px; }
|
||
a:link, a:visited { text-decoration: none; }
|
||
a:hover { text-decoration: underline; }
|
||
|
||
pre { font-family: 'Lucida Console' 'Courier New' 'Courier' 'monospaced'; font-size: 11px; line-height: 13px; }
|
||
.page { padding: 10px; }
|
||
|
||
.headingLeft {
|
||
background-color: #446644;
|
||
color: #ffffff;
|
||
padding: 10px 0px 10px 10px;
|
||
font-family: 'Verdana' 'Arial' 'Helvetica' 'sans-serif';
|
||
font-size: 18px;
|
||
font-weight: bold;
|
||
width: 70%;
|
||
vertical-align: middle;
|
||
}
|
||
.headingLeftSmall { font-size: 10px; }
|
||
.headingRight {
|
||
background-color: #446644;
|
||
color: #ffffff;
|
||
padding: 0px 10px 10px 10px;
|
||
font-family: 'Verdana' 'Arial' 'Helvetica' 'sans-serif';
|
||
font-size: 10px;
|
||
width: 30%;
|
||
vertical-align: middle;
|
||
text-align: right;
|
||
}
|
||
.title { font-family: 'Verdana' 'Arial' 'Helvetica' 'sans-serif'; font-size: 19px; font-style: italic; color: #330055; }
|
||
.code { background-color: #f4eeff; padding: 1px 10px 1px 10px; }
|
||
|
||
.function { font-family: 'Verdana' 'Arial' 'Helvetica' 'sans-serif'; font-size: 12px; font-weight: bold; }
|
||
.function_details { font-family: 'Verdana' 'Arial' 'Helvetica' 'sans-serif'; font-size: 10px; color: #777777; }
|
||
</style>
|
||
<script type="text/javascript">
|
||
function Toggle(spanId) {
|
||
var obj = document.getElementById(spanId);
|
||
|
||
if (obj) {
|
||
if (obj.style.display == "block") {
|
||
// Make INVISIBLE
|
||
obj.style.display = "none";
|
||
} else {
|
||
// Make VISIBLE
|
||
obj.style.display = "block";
|
||
}
|
||
}
|
||
}
|
||
|
||
function ShowAll() {
|
||
for (var intIndex = 1; intIndex < <?php _p(count($objProfileArray)); ?>; intIndex = intIndex + 2) {
|
||
var obj = document.getElementById('query' + intIndex);
|
||
obj.style.display = "block";
|
||
}
|
||
}
|
||
|
||
function HideAll() {
|
||
for (var intIndex = 1; intIndex < <?php _p(count($objProfileArray)); ?>; intIndex = intIndex + 2) {
|
||
var obj = document.getElementById('query' + intIndex);
|
||
obj.style.display = "none";
|
||
}
|
||
}
|
||
</script>
|
||
</head>
|
||
<body topmargin="0" leftmargin="0" marginheight="0" marginwidth="0">
|
||
|
||
<table border="0" cellspacing="0" width="100%">
|
||
<tr>
|
||
<td nowrap="nowrap" class="headingLeft"><span class="headingLeftSmall">Qcodo Development Framework <?= QCODO_VERSION ?><br /></span>Database Profiling Tool</div></td>
|
||
<td nowrap="nowrap" class="headingRight">
|
||
<b>Database Index:</b> <?php _p($intDatabaseIndex); ?>; <b>Database Type:</b> <?php _p(QApplication::$Database[$intDatabaseIndex]->Adapter); ?><br />
|
||
<b>Database Server:</b> <?php _p(QApplication::$Database[$intDatabaseIndex]->Server); ?>; <b>Database Name:</b> <?php _p(QApplication::$Database[$intDatabaseIndex]->Database); ?><br />
|
||
<b>Profile Generated From:</b> <?php _p($strReferrer); ?>
|
||
</td>
|
||
</tr>
|
||
</table><br />
|
||
|
||
<div class="page">
|
||
<?php
|
||
$intCount = count($objProfileArray) / 2;
|
||
if ($intCount == 0)
|
||
_p('<b>There were no queries that were performed.</b>', false);
|
||
else if ($intCount == 1)
|
||
_p('<b>There was 1 query that was performed.</b>', false);
|
||
else
|
||
printf('<b>There were %s queries that were performed.</b>', $intCount);
|
||
?>
|
||
<br />
|
||
<a href="javascript: ShowAll()" class="function_details">Show All</a>
|
||
|
|
||
<a href="javascript: HideAll()" class="function_details">Hide All</a>
|
||
<br /><br /><br />
|
||
<?php
|
||
for ($intIndex = 0; $intIndex < count($objProfileArray); $intIndex++) {
|
||
if ((count($objProfileArray[$intIndex]) > 3) &&
|
||
(array_key_exists('function', $objProfileArray[$intIndex][2])) &&
|
||
(($objProfileArray[$intIndex][2]['function'] == 'QueryArray') ||
|
||
($objProfileArray[$intIndex][2]['function'] == 'QuerySingle') ||
|
||
($objProfileArray[$intIndex][2]['function'] == 'QueryCount')))
|
||
$objDebugBacktrace = $objProfileArray[$intIndex][3];
|
||
else
|
||
$objDebugBacktrace = $objProfileArray[$intIndex][2];
|
||
$intIndex++;
|
||
$strQuery = $objProfileArray[$intIndex];
|
||
|
||
$objArgs = (array_key_exists('args', $objDebugBacktrace)) ? $objDebugBacktrace['args'] : array();
|
||
$strClass = (array_key_exists('class', $objDebugBacktrace)) ? $objDebugBacktrace['class'] : null;
|
||
$strType = (array_key_exists('type', $objDebugBacktrace)) ? $objDebugBacktrace['type'] : null;
|
||
$strFunction = (array_key_exists('function', $objDebugBacktrace)) ? $objDebugBacktrace['function'] : null;
|
||
$strFile = (array_key_exists('file', $objDebugBacktrace)) ? $objDebugBacktrace['file'] : null;
|
||
$strLine = (array_key_exists('line', $objDebugBacktrace)) ? $objDebugBacktrace['line'] : null;
|
||
?>
|
||
<span class="function">
|
||
Called by <?php _p($strClass . $strType . $strFunction . '(' . implode(', ', $objArgs) . ')'); ?>
|
||
</span>
|
||
|
|
||
<a href="javascript: Toggle('query<?php _p($intIndex); ?>')" class="function_details">Show/Hide</a>
|
||
<br />
|
||
<span class="function_details"><b>File: </b><?php _p($strFile); ?>; <b>Line: </b><?php _p($strLine); ?>
|
||
</span><br />
|
||
<div class="code" id="query<?php _p($intIndex); ?>" style="display: none"><pre><?php _p($strQuery); ?></pre></div>
|
||
<br /><br />
|
||
<?php
|
||
}
|
||
?>
|
||
|
||
</div>
|
||
</body>
|
||
</html>
|
freenetis/trunk/www/assets/php/_core/image_label.php | ||
---|---|---|
<?php
|
||
require('../../../includes/prepend.inc.php');
|
||
QImageLabel::Run();
|
||
?>
|
freenetis/trunk/www/assets/php/_core/image.php | ||
---|---|---|
<?php
|
||
require('../../../includes/prepend.inc.php');
|
||
QImageControl::Run();
|
||
?>
|
freenetis/trunk/www/assets/php/_core/error_page.php | ||
---|---|---|
<?php
|
||
/*
|
||
* error_page include file
|
||
*
|
||
* expects the following variables to be set:
|
||
* $__exc_strType
|
||
* $__exc_strMessage
|
||
* $__exc_strObjectType
|
||
* $__exc_strFilename
|
||
* $__exc_intLineNumber
|
||
* $__exc_strStackTrace
|
||
*
|
||
* optional:
|
||
* $__exc_strRenderedPage
|
||
* $__exc_objErrorAttributeArray
|
||
*/
|
||
|
||
$__exc_strMessageBody = htmlentities($__exc_strMessage);
|
||
$__exc_strMessageBody = str_replace(" ", " ", str_replace("\n", "<br/>\n", $__exc_strMessageBody));
|
||
$__exc_strMessageBody = str_replace(": ", ": ", $__exc_strMessageBody);
|
||
$__exc_objFileArray = file($__exc_strFilename);
|
||
?>
|
||
<html>
|
||
<head>
|
||
<title>PHP <?php _p($__exc_strType); ?> - <?php _p($__exc_strMessage); ?></title>
|
||
<style>
|
||
body { font-family: 'Arial' 'Helvetica' 'sans-serif'; font-size: 11px; }
|
||
a:link, a:visited { text-decoration: none; }
|
||
a:hover { text-decoration: underline; }
|
||
pre { font-family: 'Lucida Console' 'Courier New' 'Courier' 'monospaced'; font-size: 11px; line-height: 13px; }
|
||
.page { padding: 10px; }
|
||
.headingLeft { background-color: #440066; color: #ffffff; padding: 10px 0px 10px 10px; font-family: 'Verdana' 'Arial' 'Helvetica' 'sans-serif'; font-size: 18px; font-weight: bold; width: 70%; vertical-align: middle; }
|
||
.headingLeftSmall { font-size: 10px; }
|
||
.headingRight { background-color: #440066; color: #ffffff; padding: 0px 10px 10px 10px; font-family: 'Verdana' 'Arial' 'Helvetica' 'sans-serif'; font-size: 10px; width: 30%; vertical-align: middle; text-align: right; }
|
||
.title { font-family: 'Verdana' 'Arial' 'Helvetica' 'sans-serif'; font-size: 19px; font-style: italic; color: #330055; }
|
||
.code { background-color: #f4eeff; padding: 1px 10px 1px 10px; }
|
||
</style>
|
||
<script type="text/javascript">
|
||
function RenderPage(strHtml) { document.rendered.strHtml.value = strHtml; document.rendered.submit(); }
|
||
function ToggleHidden(strDiv) { var obj = document.getElementById(strDiv); var stlSection = obj.style; var isCollapsed = obj.style.display.length; if (isCollapsed) stlSection.display = ''; else stlSection.display = 'none'; }
|
||
</script>
|
||
</head>
|
||
<body bgcolor="white" topmargin="0" leftmargin="0" marginheight="0" marginwidth="0">
|
||
|
||
<table border="0" cellspacing="0" width="100%">
|
||
<tr>
|
||
<td nowrap="nowrap" class="headingLeft"><span class="headingLeftSmall"><?php _p($__exc_strType); ?> in PHP Script<br /></span><?php _p($_SERVER["PHP_SELF"]); ?></div></td>
|
||
<td nowrap="nowrap" class="headingRight">
|
||
<b>PHP Version:</b> <?php _p(PHP_VERSION); ?>; <b>Zend Engine Version:</b> <?php _p(zend_version()); ?>; <b>Qcodo Version:</b> <?php _p(QCODO_VERSION); ?><br />
|
||
<?php if (array_key_exists('OS', $_SERVER)) printf('<b>Operating System:</b> %s; ', $_SERVER['OS']); ?><b>Application:</b> <?php _p($_SERVER['SERVER_SOFTWARE']); ?>; <b>Server Name:</b> <?php _p($_SERVER['SERVER_NAME']); ?><br />
|
||
<b>HTTP User Agent:</b> <?php _p($_SERVER['HTTP_USER_AGENT']); ?></td>
|
||
</tr>
|
||
</table>
|
||
|
||
<div class="page">
|
||
<span class="title"><?php _p($__exc_strMessageBody, false); ?></span><br />
|
||
<form method="post" action="<?php _p(__VIRTUAL_DIRECTORY__ . __PHP_ASSETS__) ;?>/_core/error_already_rendered_page.php" target="blank" name="rendered"><input type="hidden" name="strHtml" value=""></form>
|
||
|
||
<b><?php _p($__exc_strType); ?> Type:</b>
|
||
<?php _p($__exc_strObjectType); ?>
|
||
<br /><br />
|
||
|
||
<?php
|
||
if (isset($__exc_strRenderedPage)) {
|
||
?>
|
||
<script type="text/javascript">RenderedPage = "<?php _p(PrepDataForScript($__exc_strRenderedPage), false); ?>";</script>
|
||
<b>Rendered Page:</b>
|
||
<a href="javascript:RenderPage(RenderedPage)">Click here</a> to view contents able to be rendered</a>
|
||
<br /><br />
|
||
<?php
|
||
}
|
||
?>
|
||
<b>Source File:</b>
|
||
<?php _p($__exc_strFilename); ?>
|
||
<b>Line:</b>
|
||
<?php _p($__exc_intLineNumber); ?>
|
||
<br /><br />
|
||
|
||
<div class="code">
|
||
<?php
|
||
_p('<pre>', false);
|
||
for ($__exc_intLine = max(1, $__exc_intLineNumber - 5); $__exc_intLine <= min(count($__exc_objFileArray), $__exc_intLineNumber + 5); $__exc_intLine++) {
|
||
if ($__exc_intLineNumber == $__exc_intLine)
|
||
printf("<font color=red>Line %s: %s</font>", $__exc_intLine, htmlentities($__exc_objFileArray[$__exc_intLine - 1]));
|
||
else
|
||
printf("Line %s: %s", $__exc_intLine, htmlentities($__exc_objFileArray[$__exc_intLine - 1]));
|
||
}
|
||
_p('</pre>', false);
|
||
?>
|
||
</div><br />
|
||
|
||
<?php
|
||
if (isset($__exc_objErrorAttributeArray))
|
||
foreach ($__exc_objErrorAttributeArray as $__exc_objErrorAttribute) {
|
||
printf("<b>%s:</b> ", $__exc_objErrorAttribute->Label);
|
||
$__exc_strJavascriptLabel = str_replace(" ", "", $__exc_objErrorAttribute->Label);
|
||
if ($__exc_objErrorAttribute->MultiLine) {
|
||
printf("\n<a href=\"javascript:ToggleHidden('%s')\">Show/Hide</a>",
|
||
$__exc_strJavascriptLabel);
|
||
printf('<br /><br /><div id="%s" class="code" style="Display: none;"><pre>%s</pre></div><br />',
|
||
$__exc_strJavascriptLabel,
|
||
htmlentities($__exc_objErrorAttribute->Contents));
|
||
} else
|
||
printf("%s\n<br /><br />\n", htmlentities($__exc_objErrorAttribute->Contents));
|
||
}
|
||
?>
|
||
|
||
<b>Call Stack:</b>
|
||
<br><br>
|
||
<div class="code">
|
||
<pre><?php _p($__exc_strStackTrace); ?></pre>
|
||
</div><br />
|
||
|
||
<b>Variable Dump:</b>
|
||
<a href="javascript:ToggleHidden('VariableDump')">Show/Hide</a>
|
||
<br /><br />
|
||
<div id="VariableDump" class="code" style="Display: none;">
|
||
<?php
|
||
_p('<pre>', false);
|
||
|
||
// Dump All Variables
|
||
foreach ($GLOBALS as $__exc_Key => $__exc_Value) {
|
||
// TODO: Figure out why this is so strange
|
||
if (isset($__exc_Key))
|
||
if ($__exc_Key != "_SESSION")
|
||
global $$__exc_Key;
|
||
}
|
||
|
||
$__exc_ObjVariableArray = get_defined_vars();
|
||
$__exc_ObjVariableArrayKeys = array_keys($__exc_ObjVariableArray);
|
||
sort($__exc_ObjVariableArrayKeys);
|
||
|
||
$__exc_StrToDisplay = "";
|
||
$__exc_StrToScript = "";
|
||
foreach ($__exc_ObjVariableArrayKeys as $__exc_Key) {
|
||
if ((strpos($__exc_Key, "__exc_") === false) && (strpos($__exc_Key, "_DATE_") === false) && ($__exc_Key != "GLOBALS") && !($__exc_ObjVariableArray[$__exc_Key] instanceof QForm)) {
|
||
try {
|
||
if (($__exc_Key == 'HTTP_SESSION_VARS') || ($__exc_Key == '_SESSION')) {
|
||
$__exc_ObjSessionVarArray = array();
|
||
foreach ($$__exc_Key as $__exc_StrSessionKey => $__exc_StrSessionValue) {
|
||
if (strpos($__exc_StrSessionKey, 'qform') !== 0)
|
||
$__exc_ObjSessionVarArray[$__exc_StrSessionKey] = $__exc_StrSessionValue;
|
||
}
|
||
$__exc_StrVarExport = htmlentities(var_export($__exc_ObjSessionVarArray, true));
|
||
} else if (($__exc_ObjVariableArray[$__exc_Key] instanceof QControl) || ($__exc_ObjVariableArray[$__exc_Key] instanceof QForm))
|
||
$__exc_StrVarExport = htmlentities($__exc_ObjVariableArray[$__exc_Key]->VarExport());
|
||
else
|
||
$__exc_StrVarExport = htmlentities(var_export($__exc_ObjVariableArray[$__exc_Key], true));
|
||
|
||
$__exc_StrToDisplay .= sprintf(" <a href=\"javascript:RenderPage(%s)\" title=\"%s\">%s</a>\n", $__exc_Key, $__exc_StrVarExport, $__exc_Key);
|
||
$__exc_StrToScript .= sprintf(" %s = \"<pre>%s</pre>\";\n", $__exc_Key, PrepDataForScript($__exc_StrVarExport));
|
||
} catch (Exception $__exc_objExcOnVarDump) {
|
||
$__exc_StrToDisplay .= sprintf(" Fatal error: Nesting level too deep - recursive dependency?\n", $__exc_objExcOnVarDump->Message);
|
||
}
|
||
}
|
||
}
|
||
|
||
_p($__exc_StrToDisplay . '</pre>', false);
|
||
printf('<script type="text/javascript">%s</script>', $__exc_StrToScript);
|
||
?>
|
||
</div><br />
|
||
|
||
<hr width="100%" size="1" color="#dddddd" />
|
||
<center><i><?php _p($__exc_strType); ?> Report Generated: <?php _p(date('l, F j Y, g:i:s A')); ?></i></center>
|
||
</font>
|
||
</div>
|
||
</body>
|
||
</html>
|
freenetis/trunk/www/assets/php/_README.txt | ||
---|---|---|
The various assets directory are for assets and helpers for the various
|
||
QControls, including images, javascript files and popups.
|
||
|
||
Of course, these files can technically be anywhere in the docroot,
|
||
but the current directory location of /assets/* is meant to serve
|
||
as a centrally-available assets location for these QControl helpers.
|
||
|
||
If you want to move them (either individually or entirely),
|
||
be sure to update your configuration.inc.php to reflect the new
|
||
location(s) of the assets.
|
||
|
||
In short, feel free to add/modify as you wish.
|
||
|
||
And also, any additional QControl classes that you create or download which
|
||
may have their own assets should have their assets installed in one of these
|
||
subdirectories. And any additional other js, css, etc. assets for your
|
||
application could be placed here, as well.
|
||
|
||
Finally, note that within EACH asset type (e.g. css, images, js and php),
|
||
files in the _core subdirectory are intended to be part of Qcodo Core,
|
||
and rules concerning the upgrading/modification for these files follows
|
||
the same rules for Qcodo Core files everywhere else.
|
freenetis/trunk/www/assets/css/template.css | ||
---|---|---|
b{font-size: 110%;}
|
||
em{color: red;}
|
||
|
||
#maincontainer{
|
||
padding-top: 10px;
|
||
width: 980px; /*Width of main container*/
|
||
margin: 0 auto; /*Center container on page*/
|
||
border-color: black;
|
||
border-width: 3px;
|
||
}
|
||
|
||
#topsection{
|
||
background: #EEEEEE;
|
||
height: 90px; /*Height of top section*/
|
||
}
|
||
|
||
.userlog{
|
||
padding-right: 10px;
|
||
text-align: right;
|
||
}
|
||
|
||
.userinfo{
|
||
background: grey;
|
||
width: 150px;
|
||
height: 100px;
|
||
margin-bottom: 10px;
|
||
}
|
||
|
||
.usermenu{
|
||
width: 150px;
|
||
}
|
||
|
||
#contentwrapper{
|
||
float: left;
|
||
width: 100%;
|
||
}
|
||
|
||
#contentcolumn{
|
||
margin-left: 170px; /*Set left margin to LeftColumnWidth*/
|
||
margin-bottom: 10px;
|
||
}
|
||
|
||
#leftcolumn{
|
||
float: left;
|
||
width: 170px; /*Width of left column*/
|
||
margin-left: -980px; /*Set left margin to -(MainContainerWidth)*/
|
||
padding: 10px 0px 10px 0px;
|
||
background: #C8FC98;
|
||
}
|
||
|
||
#footer{
|
||
clear: left;
|
||
width: 100%;
|
||
background: black;
|
||
color: #FFF;
|
||
text-align: center;
|
||
padding: 4px 0;
|
||
}
|
||
|
||
#footer a{
|
||
color: #FFFF80;
|
||
}
|
||
|
||
.innertube{
|
||
margin: 10px 10px 10px 10px;
|
||
}
|
||
|
||
.section{
|
||
font: 22px 'Verdana','Arial','Helvetica','Sans-Serif';
|
||
color: black;
|
||
font-weight: bold;
|
||
}
|
||
|
||
.subsection{
|
||
font: 16px 'Verdana','Arial','Helvetica','Sans-Serif';
|
||
color: black;
|
||
font-weight: bold;
|
||
}
|
||
|
||
.variable{
|
||
font: 14px 'Verdana','Arial','Helvetica','Sans-Serif';
|
||
color: black;
|
||
text-align: left;
|
||
font-weight: bold;
|
||
}
|
||
|
||
.value{
|
||
font: 14px 'Verdana','Arial','Helvetica','Sans-Serif';
|
||
color: black;
|
||
}
|
freenetis/trunk/www/assets/css/styles.css | ||
---|---|---|
/* These are all EXAMPLES -- they are meant to be updated/changed/modified */
|
||
TD, BODY { font: 12px 'Verdana','Arial','Helvetica','Sans-Serif'; text-align: left; }
|
||
TH { font: 12px 'Verdana','Arial','Helvetica','Sans-Serif'; text-align: left; font-weight: bold; }
|
||
.title { font: 30px 'Verdana','Arial','Helvetica','Sans-Serif'; font-weight: bold; margin-left: -2px;}
|
||
.title_action { font: 12px 'Verdana','Arial','Helvetica','Sans-Serif'; font-weight: bold; margin-bottom: -4px; }
|
||
.warning { color: #ff0000; }
|
||
.instructions { font: 9px 'Arial','Helvetica','Sans-Serif'; font-style: italic; }
|
||
.item_divider { line-height: 16px; }
|
||
.item_label { font: 12px 'Verdana','Arial','Helvetica','Sans-Serif'; padding-bottom: 4px; }
|
||
.item_label_disabled { font: 12px 'Verdana','Arial','Helvetica','Sans-Serif'; padding-bottom: 4px; color: #999999; }
|
||
|
||
.button { font: 10px 'Verdana','Arial','Helvetica','Sans-Serif'; font-weight: bold; }
|
||
.listbox { font: 12px 'Verdana','Arial','Helvetica','Sans-Serif'; width: 250px; }
|
||
.textbox { font: 12px 'Verdana','Arial','Helvetica','Sans-Serif'; width: 250px; }
|
||
|
||
.paginator_inactive_step { font-weight: bold; color: #aaaaaa; }
|
||
.paginator_active_step { font-weight: bold; color: #000000; text-decoration: none; }
|
||
.paginator_page { text-decoration: none; color: #000000; padding: 0px 3px 0px 3px; }
|
||
.paginator_selected_page { font-weight: bold; background-color: #ddccff; padding: 0px 3px 0px 3px; border: 1px; border-style: solid; }
|
||
|
||
.dashboard_top {width: 854px; margin-left: 170px; color: #000066; font: 30px 'Verdana','Arial','Helvetica','Sans-Serif'; font-weight: bold; height: 40px;}
|
||
.dashboard_pane {float: left; font-size: 10px; width: 160px;}
|
||
.dashboard_left {float: left; background-color: #eeeeff; width: 400px; height: 500px; margin-left: 10px; border-width: 1px; border-style: solid; border-color: black; padding: 10px; overflow: auto;}
|
||
.dashboard_right {float: left; background-color: #eeeeff; width: 400px; height: 500px; margin-left: 10px; border-width: 1px; border-style: solid; border-color: black; padding: 10px; overflow: auto;}
|
||
|
||
.file_asset_dbox { border: 1px solid #1c4a8c; background-color: #fff; padding: 20px; width: 400px; overflow: auto; }
|
||
.file_asset_dbox h1 { margin: 0; }
|
||
.file_asset_dbox input { padding: 3px; margin-right: 5px; }
|
freenetis/trunk/www/assets/css/_README.txt | ||
---|---|---|
The various assets directory are for assets and helpers for the various
|
||
QControls, including images, javascript files and popups.
|
||
|
||
Of course, these files can technically be anywhere in the docroot,
|
||
but the current directory location of /assets/* is meant to serve
|
||
as a centrally-available assets location for these QControl helpers.
|
||
|
||
If you want to move them (either individually or entirely),
|
||
be sure to update your configuration.inc.php to reflect the new
|
||
location(s) of the assets.
|
||
|
||
In short, feel free to add/modify as you wish.
|
||
|
||
And also, any additional QControl classes that you create or download which
|
||
may have their own assets should have their assets installed in one of these
|
||
subdirectories. And any additional other js, css, etc. assets for your
|
||
application could be placed here, as well.
|
||
|
||
Finally, note that within EACH asset type (e.g. css, images, js and php),
|
||
files in the _core subdirectory are intended to be part of Qcodo Core,
|
||
and rules concerning the upgrading/modification for these files follows
|
||
the same rules for Qcodo Core files everywhere else.
|
freenetis/trunk/www/assets/css/menus.css | ||
---|---|---|
/* ================================================================
|
||
This copyright notice must be untouched at all times.
|
||
|
||
The original version of this stylesheet and the associated (x)html
|
||
is available at http://www.cssplay.co.uk/menus/flyout_4level.html
|
||
Copyright (c) 2005-2007 Stu Nicholls. All rights reserved.
|
||
This stylesheet and the associated (x)html may be modified in any
|
||
way to fit your requirements.
|
||
=================================================================== */
|
||
.menu {
|
||
height:150px;
|
||
font-size:90%;
|
||
margin:0px 0px 50px 0px; /* this page only */
|
||
}
|
||
|
||
/* remove all the bullets, borders and padding from the default list styling */
|
||
.menu ul {
|
||
position:relative;
|
||
z-index:500;
|
||
padding:0;
|
||
margin:0;
|
||
list-style-type:none;
|
||
width:150px;
|
||
}
|
||
/* style the list items */
|
||
.menu li {
|
||
background:#d4d8bd url(../images/shade.gif);
|
||
height:26px;
|
||
/* for IE7 */
|
||
float:left;
|
||
}
|
||
.menu li.sub {background:#d4d8bd url(../images/sub.gif) no-repeat right center;}
|
||
|
||
/* get rid of the table */
|
||
.menu table {position:absolute; border-collapse:collapse; top:0; left:0; z-index:100; font-size:1em;}
|
||
|
||
/* style the links */
|
||
.menu a, .menu a:visited {
|
||
display:block;
|
||
text-decoration:none;
|
||
height:25px;
|
||
line-height:25px;
|
||
width:149px;
|
||
color:#000;
|
||
text-indent:5px;
|
||
border:1px solid #fff;
|
||
border-width:0 1px 1px 1px;
|
||
}
|
||
/* hack for IE5.5 */
|
||
* html .menu a, * html .menu a:visited {width:150px; w\idth:149px;}
|
||
/* style the link hover */
|
||
* html .menu a:hover {color:#efa; background:#aa7; position:relative;}
|
||
|
||
.menu li:hover {position:relative;}
|
||
|
||
/* For accessibility of the top level menu when tabbing */
|
||
.menu a:active, .menu a:focus {color:#efa; background:#aa7;}
|
||
|
||
/* retain the hover colors for each sublevel IE7 and Firefox etc */
|
||
.menu li:hover > a {color:#efa; background:#aa7;}
|
||
|
||
/* hide the sub levels and give them a positon absolute so that they take up no room */
|
||
.menu li ul {
|
||
visibility:hidden;
|
||
position:absolute;
|
||
top:-30px;
|
||
/* set up the overlap (minus the overrun) */
|
||
left:100px;
|
||
/* set up the overrun area */
|
||
padding:30px;
|
||
/* this is for IE to make it interpret the overrrun padding */
|
||
background:transparent url(../images/transparent.gif);
|
||
}
|
||
|
||
/* for browsers that understand this is all you need for the flyouts */
|
||
.menu li:hover > ul {visibility:visible;}
|
||
|
||
|
||
/* for IE5.5 and IE6 you need to style each level hover */
|
||
|
||
/* keep the third level+ hidden when you hover on first level link */
|
||
.menu ul a:hover ul ul{
|
||
visibility:hidden;
|
||
}
|
||
/* keep the fourth level+ hidden when you hover on second level link */
|
||
.menu ul a:hover ul a:hover ul ul{
|
||
visibility:hidden;
|
||
}
|
||
/* keep the fifth level hidden when you hover on third level link */
|
||
.menu ul a:hover ul a:hover ul a:hover ul ul{
|
||
visibility:hidden;
|
||
}
|
||
|
||
/* make the second level visible when hover on first level link */
|
||
.menu ul a:hover ul {
|
||
visibility:visible;
|
||
}
|
||
/* make the third level visible when you hover over second level link */
|
||
.menu ul a:hover ul a:hover ul{
|
||
visibility:visible;
|
||
}
|
||
/* make the fourth level visible when you hover over third level link */
|
||
.menu ul a:hover ul a:hover ul a:hover ul {
|
||
visibility:visible;
|
||
}
|
||
/* make the fifth level visible when you hover over fourth level link */
|
||
.menu ul a:hover ul a:hover ul a:hover ul a:hover ul {
|
||
visibility:visible;
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
freenetis/trunk/www/assets/js/_core/listbox.js | ||
---|---|---|
function __resetListBox(strFormId, strControlId) {
|
||
var objListBox = document.forms[strFormId].elements[strControlId];
|
||
objListBox.selectedIndex = -1;
|
||
if (objListBox.onchange)
|
||
objListBox.onchange();
|
||
};
|
freenetis/trunk/www/assets/js/_core/treenav.js | ||
---|---|---|
function treenavToggleImage(strControlId) {
|
||
var blnShow = treenavToggleDisplay(strControlId + "_sub", null, "block");
|
||
|
||
var objImage = document.getElementById(strControlId + "_image");
|
||
var strPath = qc.imageAssets + "/treenav_expanded.png";
|
||
var strPathNotExpanded = qc.imageAssets + "/treenav_not_expanded.png";
|
||
|
||
if (blnShow)
|
||
objImage.src = strPath;
|
||
else
|
||
objImage.src = strPathNotExpanded;
|
||
|
||
strActualControlId = strControlId.substr(0, strControlId.indexOf('_'));
|
||
qcodo.recordControlModification(strActualControlId, 'ItemExpanded', strControlId + ((blnShow) ? ' 1' : ' 0'));
|
||
};
|
||
|
||
function treenavToggleDisplay(mixControl, strShowOrHide, strDisplayStyle) {
|
||
// Toggles the display/hiding of the entire control (including any design/wrapper HTML)
|
||
// If ShowOrHide is blank, then we toggle
|
||
// Otherwise, we'll execute a "show" or a "hide"
|
||
var objControl; if (!(objControl = qcodo.getControl(mixControl))) return;
|
||
|
||
if (strShowOrHide) {
|
||
if (strShowOrHide == "show") {
|
||
objControl.style.display = strDisplayStyle;
|
||
return true;
|
||
} else {
|
||
objControl.style.display = "none";
|
||
return false;
|
||
};
|
||
} else {
|
||
if (objControl.style.display == "none") {
|
||
objControl.style.display = strDisplayStyle;
|
||
return true;
|
||
} else {
|
||
objControl.style.display = "none";
|
||
return false;
|
||
};
|
||
};
|
||
};
|
||
|
||
function treenavItemUnselect(strControlId, strStyleName) {
|
||
var objControl = document.getElementById(strControlId);
|
||
objControl.className = strStyleName;
|
||
objControl.onmouseout = function() {treenavItemSetStyle(strControlId, strStyleName);};
|
||
};
|
||
|
||
function treenavItemSetStyle(strControlId, strStyleName) {
|
||
var objControl = document.getElementById(strControlId);
|
||
objControl.className = strStyleName;
|
||
};
|
||
|
||
function treenavRedrawElement(strElementId, strHtml) {
|
||
document.getElementById(strElementId).innerHTML = strHtml;
|
||
};
|
freenetis/trunk/www/assets/js/_core/post.js | ||
---|---|---|
////////////////////////////////////////////
|
||
// PostBack and AjaxPostBack
|
||
////////////////////////////////////////////
|
||
|
||
qcodo.postBack = function(strForm, strControl, strEvent, strParameter) {
|
||
var objForm = document.getElementById(strForm);
|
||
objForm.Qform__FormControl.value = strControl;
|
||
objForm.Qform__FormEvent.value = strEvent;
|
||
objForm.Qform__FormParameter.value = strParameter;
|
||
objForm.Qform__FormCallType.value = "Server";
|
||
objForm.Qform__FormUpdates.value = this.formUpdates();
|
||
objForm.Qform__FormCheckableControls.value = this.formCheckableControls(strForm, "Server");
|
||
objForm.submit();
|
||
};
|
||
|
||
qcodo.formUpdates = function() {
|
||
var strToReturn = "";
|
||
for (var strControlId in qcodo.controlModifications)
|
||
for (var strProperty in qcodo.controlModifications[strControlId])
|
||
strToReturn += strControlId + " " + strProperty + " " + qcodo.controlModifications[strControlId][strProperty] + "\n";
|
||
qcodo.controlModifications = new Array();
|
||
return strToReturn;
|
||
};
|
||
|
||
qcodo.formCheckableControls = function(strForm, strCallType) {
|
||
var objForm = document.getElementById(strForm);
|
||
var strToReturn = "";
|
||
|
||
for (var intIndex = 0; intIndex < objForm.elements.length; intIndex++) {
|
||
if (((objForm.elements[intIndex].type == "checkbox") ||
|
||
(objForm.elements[intIndex].type == "radio")) &&
|
||
((strCallType == "Ajax") ||
|
||
(!objForm.elements[intIndex].disabled))) {
|
||
|
||
// CheckBoxList
|
||
if (objForm.elements[intIndex].id.indexOf('[') >= 0) {
|
||
if (objForm.elements[intIndex].id.indexOf('[0]') >= 0)
|
||
strToReturn += " " + objForm.elements[intIndex].id.substring(0, objForm.elements[intIndex].id.length - 3);
|
||
|
||
// RadioButtonList
|
||
} else if (objForm.elements[intIndex].id.indexOf('_') >= 0) {
|
||
if (objForm.elements[intIndex].id.indexOf('_0') >= 0)
|
||
strToReturn += " " + objForm.elements[intIndex].id.substring(0, objForm.elements[intIndex].id.length - 2);
|
||
|
||
// Standard Radio or Checkbox
|
||
} else {
|
||
strToReturn += " " + objForm.elements[intIndex].id;
|
||
};
|
||
};
|
||
};
|
||
|
||
if (strToReturn.length > 0)
|
||
return strToReturn.substring(1);
|
||
else
|
||
return "";
|
||
};
|
||
|
||
qcodo.ajaxQueue = new Array();
|
||
|
||
qcodo.postAjax = function(strForm, strControl, strEvent, strParameter, strWaitIconControlId) {
|
||
// alert(strForm + " " + strControl + " " + strEvent + " " + strParameter);
|
||
|
||
// Figure out if Queue is Empty
|
||
var blnQueueEmpty = false;
|
||
if (qcodo.ajaxQueue.length == 0)
|
||
blnQueueEmpty = true;
|
||
|
||
// Enqueue the AJAX Request
|
||
qcodo.ajaxQueue.push(new Array(strForm, strControl, strEvent, strParameter, strWaitIconControlId));
|
||
|
||
// If the Queue was originally empty, call the Dequeue
|
||
if (blnQueueEmpty)
|
||
qcodo.dequeueAjaxQueue();
|
||
};
|
||
|
||
qcodo.clearAjaxQueue = function() {
|
||
qcodo.ajaxQueue = new Array();
|
||
};
|
||
|
||
qcodo.objAjaxWaitIcon = null;
|
||
|
||
qcodo.dequeueAjaxQueue = function() {
|
||
if (qcodo.ajaxQueue.length > 0) {
|
||
strForm = this.ajaxQueue[0][0];
|
||
strControl = this.ajaxQueue[0][1];
|
||
strEvent = this.ajaxQueue[0][2];
|
||
strParameter = this.ajaxQueue[0][3];
|
||
strWaitIconControlId = this.ajaxQueue[0][4];
|
||
|
||
// Display WaitIcon (if applicable)
|
||
if (strWaitIconControlId) {
|
||
this.objAjaxWaitIcon = this.getWrapper(strWaitIconControlId);
|
||
if (this.objAjaxWaitIcon)
|
||
this.objAjaxWaitIcon.style.display = 'inline';
|
||
};
|
||
|
||
var objForm = document.getElementById(strForm);
|
||
objForm.Qform__FormControl.value = strControl;
|
||
objForm.Qform__FormEvent.value = strEvent;
|
||
objForm.Qform__FormParameter.value = strParameter;
|
||
objForm.Qform__FormCallType.value = "Ajax";
|
||
objForm.Qform__FormUpdates.value = qcodo.formUpdates();
|
||
objForm.Qform__FormCheckableControls.value = this.formCheckableControls(strForm, "Ajax");
|
||
|
||
var strPostData = "";
|
||
for (var i = 0; i < objForm.elements.length; i++) {
|
||
switch (objForm.elements[i].type) {
|
||
case "checkbox":
|
||
case "radio":
|
||
if (objForm.elements[i].checked) {
|
||
var strTestName = objForm.elements[i].name + "_";
|
||
if (objForm.elements[i].id.substring(0, strTestName.length) == strTestName)
|
||
strPostData += "&" + objForm.elements[i].name + "=" + objForm.elements[i].id.substring(strTestName.length);
|
||
else
|
||
// strPostData += "&" + objForm.elements[i].id + "=" + "1";
|
||
strPostData += "&" + objForm.elements[i].id + "=" + objForm.elements[i].value;
|
||
};
|
||
break;
|
||
|
||
case "select-multiple":
|
||
var blnOneSelected = false;
|
||
for (var intIndex = 0; intIndex < objForm.elements[i].options.length; intIndex++)
|
||
if (objForm.elements[i].options[intIndex].selected) {
|
||
strPostData += "&" + objForm.elements[i].name + "=";
|
||
strPostData += objForm.elements[i].options[intIndex].value;
|
||
};
|
||
break;
|
||
|
||
default:
|
||
strPostData += "&" + objForm.elements[i].id + "=";
|
||
|
||
// For Internationalization -- we must escape the element's value properly
|
||
var strPostValue = objForm.elements[i].value;
|
||
if (strPostValue) {
|
||
strPostValue = strPostValue.replace(/\%/g, "%25");
|
||
strPostValue = strPostValue.replace(/&/g, escape('&'));
|
||
strPostValue = strPostValue.replace(/\+/g, "%2B");
|
||
};
|
||
strPostData += strPostValue;
|
||
break;
|
||
};
|
||
};
|
||
|
||
var strUri = objForm.action;
|
||
|
||
var objRequest;
|
||
if (window.XMLHttpRequest) {
|
||
objRequest = new XMLHttpRequest();
|
||
} else if (typeof ActiveXObject != "undefined") {
|
||
objRequest = new ActiveXObject("Microsoft.XMLHTTP");
|
||
};
|
||
|
||
if (objRequest) {
|
||
objRequest.open("POST", strUri, true);
|
||
objRequest.setRequestHeader("Method", "POST " + strUri + " HTTP/1.1");
|
||
objRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
|
||
|
||
objRequest.onreadystatechange = function() {
|
||
if (!qcodo.unloadFlag && objRequest.readyState == 4) {
|
||
try {
|
||
var objXmlDoc = objRequest.responseXML;
|
||
// qcodo.logMessage(objRequest.responseText, true);
|
||
// alert('AJAX Response Received');
|
||
|
||
if (!objXmlDoc) {
|
||
alert("An error occurred during AJAX Response parsing.\r\n\r\nThe error response will appear in a new popup.");
|
||
var objErrorWindow = window.open('about:blank', 'qcodo_error','menubar=no,toolbar=no,location=no,status=no,scrollbars=yes,resizable=yes,width=1000,height=700,left=50,top=50');
|
||
objErrorWindow.focus();
|
||
objErrorWindow.document.write(objRequest.responseText);
|
||
return;
|
||
} else {
|
||
var intLength = 0;
|
||
|
||
// Go through Controls
|
||
var objXmlControls = objXmlDoc.getElementsByTagName('control');
|
||
intLength = objXmlControls.length;
|
||
|
Také k dispozici: Unified diff
Romanova verze freenetisu