function formelement_durationselect($tableName, $tableData, $element, $data) { $item = $tableData[$tableName][$element]; $v = ''; if ($data !== NULL) { $v = $data[$element]; } echo dateselect(fieldName($tableName, $element), $v, TRUE); }
function adform($data, $mode) { if ($data[PHPADS_ADELEMENT_ENABLED] == 1) { $isen = 'checked="checked"'; } else { $isen = ''; } $expires = dateselect('ad_expires', $data[PHPADS_ADELEMENT_ENDDATE]); if ($data[PHPADS_ADELEMENT_ENDDATE] == '99999999') { $noexpires = 'checked="checked"'; } else { $noexpires = ''; } $starts = dateselect('ad_starts', $data[PHPADS_ADELEMENT_STARTDATE]); echo '<script src="ckeditor/ckeditor.js"></script>'; echo 'You can edit any of the following properties for Ad ' . $data[PHPADS_ADELEMENT_ID] . ':'; echo '<form method="post" action="admin.php">'; echo '<input type="hidden" name="action" value="' . $mode . '" />'; echo '<table width="550" border="1" cellspacing="0" cellpadding="1">'; if ($mode == 'edit') { echo '<input type="hidden" name="id" value="' . $data[PHPADS_ADELEMENT_ID] . '" />'; } elseif ($mode == 'add') { echo '<tr><td><b>Custom Ad ID:</b><br /><span class="smalltext">Letters and numbers only<br />Leave blank if no custom ID</span></td><td><input type="text" name="ad_custom_id" size="30" /></td></tr>'; } echo '<tr><td><b>Ad Name:</b></td><td><input type="text" name="ad_name" value="' . $data[PHPADS_ADELEMENT_NAME] . '" size="30" /></td></tr>'; echo '<tr><td><b>Is Enabled?</b></td><td><input type="checkbox" ' . $isen . ' name="ad_en" value="1" /> Ad is Enabled</td></tr>'; echo '<tr><th>Ad Type:</th><td><select name="ad_type" id="ad_type"><option value="' . PHPADS_ADTYPE_IMAGE . '"' . ($data[PHPADS_ADELEMENT_ADTYPE] == PHPADS_ADTYPE_IMAGE ? ' selected="selected"' : '') . '>Image</option><option value="' . PHPADS_ADTYPE_OTHER . '"' . ($data[PHPADS_ADELEMENT_ADTYPE] == PHPADS_ADTYPE_OTHER ? ' selected="selected"' : '') . '>Other</option></select></td><tr>'; echo '<tr class="otherrow"><th>Other ad format:</th><td><textarea class="ckeditor" name="otherinfo" wrap="virtual" cols="50" rows="10">' . $data[PHPADS_ADELEMENT_OTHERCONTENT] . '</textarea></td></tr>'; echo '<tr class="imagerow"><td><b>Link URL:</b></td><td><input type="text" name="ad_link" value="' . $data[PHPADS_ADELEMENT_LINK_URI] . '" size="30" /></td></tr>'; echo '<tr class="imagerow"><td><b>Image URL:</b></td><td><input type="text" name="ad_image" value="' . $data[PHPADS_ADELEMENT_IMAGE_URI] . '" size="30" /></td></tr>'; echo '<tr><td><b>Image Width:</b></td><td><input type="text" name="ad_width" value="' . $data[PHPADS_ADELEMENT_WIDTH] . '" size="4" /></td></tr>'; echo '<tr><td><b>Image Height:</b></td><td><input type="text" name="ad_height" value="' . $data[PHPADS_ADELEMENT_HEIGHT] . '" size="4" /></td></tr>'; echo '<tr><td><b>Weight:</b></td><td><input type="text" name="ad_weight" value="' . $data[PHPADS_ADELEMENT_WEIGHTING] . '" size="4" /></td></tr>'; if ($mode == 'edit') { echo '<tr><td><b>Impressions:</b> ' . $data[PHPADS_ADELEMENT_IMPRESSIONS] . ' <b>C/T:</b> ' . $data[PHPADS_ADELEMENT_CLICKTHRUS] . '</td><td><input type="checkbox" name="ad_reset" value="1" /> Reset to Zero</td></tr>'; } echo '<tr><td><b>Impressions Remaining:</b><br /><span class="smalltext">Set to <b>-1</b> for unlimited</span></td><td><input type="text" name="ad_remain" value="' . $data[PHPADS_ADELEMENT_REMAINING] . '" size="4" /></td></tr>'; echo '<tr><th>Starts</th><td>' . $starts . '</td></tr>'; echo '<tr><td><b>Expires:</b></td><td>' . $expires . ' <input type="checkbox" name="ad_noexpires" ' . $noexpires . ' value="1" /> Never Expires</td></tr>'; echo '</table>'; echo '<br /><div align="center"><input type="submit" name="save" value="Save" /> <input type="submit" name="cancel" value="Cancel" />'; if ($mode == 'edit') { echo '<br /><br /><input type="checkbox" name="confirm_delete" value="1" /> Check to Confirm Delete<br /><input type="submit" name="delete" value="Delete This Ad" /><br /><br /><br /><span class="smalltext">Ad Preview:</span><br />'; if ($data[PHPADS_ADELEMENT_ADTYPE] == PHPADS_ADTYPE_OTHER) { echo '<div width="' . $data[PHPADS_ADELEMENT_WIDTH] . '" height="' . $data[PHPADS_ADELEMENT_HEIGHT] . '">' . $data[PHPADS_ADELEMENT_OTHERCONTENT] . '</div>'; } elseif ($data[PHPADS_ADELEMENT_ADTYPE] == PHPADS_ADTYPE_IMAGE) { echo '<a href="' . $data[PHPADS_ADELEMENT_LINK_URI] . '" target="_blank"><img src="' . $data[PHPADS_ADELEMENT_IMAGE_URI] . '" alt="' . $data[PHPADS_ADELEMENT_NAME] . '" width="' . $data[PHPADS_ADELEMENT_WIDTH] . '" height="' . $data[PHPADS_ADELEMENT_HEIGHT] . '" border="0" /></a>'; } } echo '</div></form>'; echo '<script>$(".' . ($data[PHPADS_ADELEMENT_ADTYPE] == PHPADS_ADTYPE_OTHER ? 'image' : 'other') . 'row").hide();$("#ad_type").change(function(){ $("."+($(this).val()==' . PHPADS_ADTYPE_OTHER . '?"image":"other")+"row").hide();$("."+($(this).val()==' . PHPADS_ADTYPE_OTHER . '?"other":"image")+"row").show(); }); CKEDITOR.instances.editor1.setData( "' . str_replace('"', '\\"', $data[PHPADS_ADELEMENT_OTHERCONTENT]) . '" );</script>'; }
flush(); $first = 1; $sql = ""; foreach ($packages as $pkg) { if ($first == 1) { $first = 0; } else { $sql .= "UNION\n"; } $sql .= "SELECT '" . $pkg . "', COUNT(jobid) AS jobcount, SUM(nproc*TIME_TO_SEC(walltime))/3600.0 AS cpuhours, COUNT(DISTINCT(username)) AS users, COUNT(DISTINCT(groupname)) AS groups FROM Jobs WHERE system LIKE '" . $_POST['system'] . "' AND ( "; if (isset($pkgmatch[$pkg])) { $sql .= $pkgmatch[$pkg]; } else { $sql .= "script LIKE '%" . $pkg . "%' OR software LIKE '%" . $package . "%'"; } $sql .= " ) AND ( " . dateselect("start", $_POST['start_date'], $_POST['end_date']) . " )"; $sql .= "\n"; } $sql .= " ORDER BY " . $_POST['order'] . " DESC"; #echo "<PRE>\n".$sql."</PRE>\n"; $result = db_query($db, $sql); while ($result->fetchInto($row)) { $rkeys = array_keys($row); echo "<TR>"; foreach ($rkeys as $rkey) { $data[$rkey] = array_shift($row); echo "<TD align=\"right\"><PRE>" . $data[$rkey] . "</PRE></TD>"; } echo "</TR>\n"; ob_flush(); flush();
function get_bucketed_metric($db, $system, $xaxis, $metric, $start_date, $end_date) { $query = "SELECT " . xaxis_column($xaxis) . ",COUNT(jobid) AS jobcount"; if (columns($metric, $system) != "") { $query .= "," . columns($metric, $system); } if ($xaxis == "walltime" || $xaxis == "walltime_req") { $query .= ",MIN(TIME_TO_SEC(" . $xaxis . ")) AS hidden"; } elseif ($xaxis == "nproc_bucketed") { $query .= ",MIN(nproc) AS hidden"; } else { $query .= ",MIN(" . $xaxis . ") AS hidden"; } $query .= " FROM Jobs WHERE (" . sysselect($system) . ") AND (" . dateselect("start", $start_date, $end_date) . ")"; if (clause($xaxis, $metric) != "") { $query .= " AND " . clause($xaxis, $metric); } if ($xaxis == "nproc_bucketed") { $query .= " GROUP BY nproc"; } else { $query .= " GROUP BY " . $xaxis; } $query .= " ORDER BY hidden;"; #print "<PRE>".$query."</PRE>\n"; return db_query($db, $query); }
echo "<TD align=\"right\"><PRE>" . $data[$key] . "</PRE></TD>"; } echo "</TR>\n"; } echo "</TABLE>\n"; ob_flush(); flush(); # job info echo "<H3>Jobs</H3>\n"; $sql = "SELECT jobid"; foreach ($keys as $key) { if (isset($_POST[$key]) && $key != 'jobid' && $key != 'start_date' && $key != 'end_date') { $sql .= "," . $key; } } $sql .= " FROM Jobs WHERE ( script IS NOT NULL AND ( script NOT LIKE '%TMPDIR%' AND script NOT LIKE '%/tmp%' AND script NOT LIKE '%PFSDIR%' ) AND walltime_req > '1:00:00' ) AND system LIKE '" . $_POST['system'] . "' AND ( " . dateselect("submit", $_POST['start_date'], $_POST['end_date']) . " ) ORDER BY start_ts;"; # echo "<PRE>".$sql."</PRE>\n"; $result = db_query($db, $sql); echo "<TABLE border=\"1\">\n"; $ncols = 1; $col[0] = "jobid"; echo "<TR><TH>jobid</TH>"; foreach ($keys as $key) { if ($key != 'start_date' && $key != 'end_date') { echo "<TH>" . $key . "</TH>"; $col[$ncols] = $key; $ncols++; } } echo "</TR>\n"; while ($result->fetchInto($row)) {
$packages = software_list(); # regular expressions for different software packages $pkgmatch = software_match_list(); $keys = array_keys($_POST); if (isset($_POST['system'])) { $db = db_connect(); foreach ($keys as $key) { if ($key != 'system' && $key != 'start_date' && $key != 'end_date') { echo "<H3><CODE>" . $key . "</CODE></H3>\n"; $sql = "SELECT " . xaxis_column("month") . ", COUNT(jobid) AS jobcount, SUM(nproc*TIME_TO_SEC(walltime))/3600.0 AS cpuhours, SUM(TIME_TO_SEC(cput))/3600.0 AS cpuhours_alt, COUNT(DISTINCT(username)) AS users, COUNT(DISTINCT(groupname)) AS groups FROM Jobs WHERE system LIKE '" . $_POST['system'] . "' AND ( "; if (isset($pkgmatch[$key])) { $sql .= $pkgmatch[$key]; } else { $sql .= "script LIKE '%" . $key . "%' OR software LIKE '%" . $key . "%'"; } $sql .= " ) AND ( " . dateselect("start", $_POST['start_date'], $_POST['end_date']) . " ) GROUP BY month;"; #echo "<PRE>".htmlspecialchars($sql)."</PRE>"; $result = db_query($db, $sql); echo "<TABLE border=1>\n"; echo "<TR><TH>month</TH><TH>jobcount</TH><TH>cpuhours</TH><TH>cpuhours_alt</TH><TH>users</TH><TH>groups</TH></TR>\n"; while ($result->fetchInto($row)) { $rkeys = array_keys($row); echo "<TR>"; foreach ($rkeys as $rkey) { $data[$rkey] = array_shift($row); echo "<TD align=\"right\"><PRE>" . $data[$rkey] . "</PRE></TD>"; } echo "</TR>\n"; } echo "</TABLE>\n"; }
$title .= " after " . $_POST['start_date']; } else { if (isset($_POST['end_date']) && $_POST['end_date'] != "") { $title .= " before " . $_POST['end_date']; } } } } } else { $title = "Most active users"; } page_header($title); $keys = array_keys($_POST); if (isset($_POST['system'])) { $db = db_connect(); $sql = "SELECT username, groupname, COUNT(jobid) AS jobcount, SUM(nproc*TIME_TO_SEC(walltime))/3600 AS cpuhrs FROM Jobs WHERE system LIKE '" . $_POST['system'] . "' AND ( " . dateselect("submit", $_POST['start_date'], $_POST['end_date']) . " ) GROUP BY username ORDER BY " . $_POST['order'] . " DESC LIMIT " . $_POST['limit']; # echo "<PRE>".$sql."</PRE>\n"; $result = db_query($db, $sql); echo "<TABLE border=\"1\">\n"; echo "<TR><TH>user</TH><TH>group</TH><TH>job count</TH><TH>CPU-hours</TH></TR>\n"; while ($result->fetchInto($row)) { echo "<TR>"; $rkeys = array_keys($row); foreach ($rkeys as $key) { $data[$key] = array_shift($row); echo "<TD align=\"right\"><PRE>" . htmlspecialchars($data[$key]) . "</PRE></TD>"; } echo "</TR>\n"; } echo "</TABLE>\n"; db_disconnect($db);
foreach ($keys as $key) { if ($key != 'system' && $key != 'start_date' && $key != 'end_date') { echo "<H3><CODE>" . $key . "</CODE></H3>\n"; $sql = "SELECT " . xaxis_column("walltime") . ",COUNT(jobid) AS jobcount, SUM(nproc*TIME_TO_SEC(walltime))/3600.0 AS cpuhours, SUM(TIME_TO_SEC(cput))/3600.0 AS cpuhours_alt,MIN(TIME_TO_SEC(walltime)) AS hidden FROM Jobs WHERE system LIKE '" . $_POST['system'] . "' AND username IS NOT NULL AND ( script IS NOT NULL AND "; if (isset($pkgmatch[$key])) { $sql .= $pkgmatch[$key]; } else { $sql .= "script LIKE '%" . $key . "%' OR software LIKE '%" . $key . "%'"; } $sql .= " ) AND ( " . dateselect("start", $_POST['start_date'], $_POST['end_date']) . " ) GROUP BY walltime UNION SELECT 'TOTAL:' AS walltime,COUNT(jobid) AS jobcount, SUM(nproc*TIME_TO_SEC(walltime))/3600.0 AS cpuhours, SUM(TIME_TO_SEC(cput))/3600.0 AS alt_cpuhours, 100000000 AS hidden FROM Jobs WHERE system LIKE '" . $_POST['system'] . "' AND username IS NOT NULL AND ( "; if (isset($pkgmatch[$key])) { $sql .= $pkgmatch[$key]; } else { $sql .= "script LIKE '%" . $key . "%' OR software LIKE '%" . $key . "%'"; } $sql .= " ) AND ( " . dateselect("start", $_POST['start_date'], $_POST['end_date']) . " ) ORDER BY hidden;"; #echo "<PRE>".htmlspecialchars($sql)."</PRE>"; $result = db_query($db, $sql); echo "<TABLE border=1>\n"; echo "<TR><TH>walltime</TH><TH>jobcount</TH><TH>cpuhours</TH><TH>cpuhours_alt</TH></TR>\n"; while ($result->fetchInto($row)) { $rkeys = array_keys($row); echo "<TR>"; foreach ($rkeys as $rkey) { if ($rkey != "hidden") { $data[$rkey] = array_shift($row); echo "<TD align=\"right\"><PRE>" . $data[$rkey] . "</PRE></TD>"; } } echo "</TR>\n"; }
} } } else { $title = "Jobs by user"; } page_header($title); $keys = array_keys($_POST); if (isset($_POST['username'])) { $db = db_connect(); $sql = "SELECT jobid,username"; foreach ($keys as $key) { if (isset($_POST[$key]) && $key != 'jobid' && $key != 'username' && $key != 'start_date' && $key != 'end_date') { $sql .= "," . $key; } } $sql .= " FROM Jobs WHERE username = '******'username'] . "' AND system LIKE '" . $_POST['system'] . "' AND ( " . dateselect("submit", $_POST['start_date'], $_POST['end_date']) . " ) ORDER BY submit_ts;"; # echo "<PRE>".$sql."</PRE>\n"; $result = db_query($db, $sql); echo "<TABLE border=\"1\">\n"; $col[0] = "jobid"; $col[1] = "username"; $ncols = 2; echo "<TR><TH>jobid</TH><TH>username</TH>"; foreach ($keys as $key) { if ($key != 'jobid' && $key != 'username' && $key != 'start_date' && $key != 'end_date') { echo "<TH>" . $key . "</TH>"; $col[$ncols] = $key; $ncols++; } } echo "</TR>\n";
} } } else { $title = "Jobs on node"; } page_header($title); $keys = array_keys($_POST); if (isset($_POST['node'])) { $db = db_connect(); $sql = "SELECT jobid"; foreach ($keys as $key) { if (isset($_POST[$key]) && $key != 'jobid' && $key != 'node' && $key != 'start_date' && $key != 'end_date') { $sql .= "," . $key; } } $sql .= " FROM Jobs WHERE hostlist REGEXP '" . $_POST['node'] . "' AND system LIKE '" . $_POST['system'] . "' AND ( " . dateselect("start", $_POST['start_date'], $_POST['end_date']) . " ) ORDER BY start_ts;"; # echo "<PRE>".$sql."</PRE>\n"; $result = db_query($db, $sql); echo "<TABLE border=\"1\">\n"; $ncols = 1; $col[0] = "jobid"; echo "<TR><TH>jobid</TH>"; foreach ($keys as $key) { if ($key != 'node' && $key != 'start_date' && $key != 'end_date') { echo "<TH>" . $key . "</TH>"; $col[$ncols] = $key; $ncols++; } } echo "</TR>\n"; while ($result->fetchInto($row)) {