<?php /** * @file detail.php * Page to edit an error report * @author Roland Hieber (roland.hieber@wilhelm-gym.net) * @date 22.10.2007 * * Copyright © 2007 Roland Hieber * * Permission is hereby granted, free of charge, to any person obtaining * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ require_once("mod_error-reporter/init.inc"); require_once("sec/secure.inc"); require_once("js.inc"); PageBlue(_c("error-reporter:Change an error report"), "mod_error-reporter"); if(!$cfgErrors->userHasAccess()) { printf("<p class='err'>%s</p>\n", ER_ERROR_ACCESS_DENIED); _PageBlue(); die(); } $getAction = @$_GET["action"]; $getUid = @intval($_GET["uid"]); $postSubmit = @$_POST["submit"]; isset($getUid) or die(); // Check if the specified report exists if(!is_object($doc->getErrorReportByID($getUid))) { echo sprintf("<p class='err'>%s</p>", _c("error-reporter:The specified error report does not exist!")); _PageBlue(); die(); } // Only admins or owners can view this page if(!($cfgErrors->userIsAdmin() or $doc->userIsOwner($getUid))) { echo sprintf("<p class='err'>%s</div>", _c("error-reporter:You are not allowed to edit this report.")); _PageBlue(); die(); } // Load old dataset $er = $doc->getErrorReportByID($getUid); $strOldComment = $er->getComment(); // Probably we have to update an error report if($getAction == "update" and $postSubmit == _c("Change")) { if($cfgErrors->userIsAdmin()) { $postComment = stripslashes(@$_POST["comment"]); $postCommentOld = stripslashes(@$_POST["comment_old"]); } // change the fields of the old dataset $er->setMachine(stripslashes(@$_POST["machine"])); $er->setText(stripslashes(@$_POST["text"])); $er->setVisibility(isset($_POST["hidden"]) ? true : false); // Do we have to change the comment and his owner? if($cfgErrors->userIsAdmin()) { if(@$_POST["comment_old"] != @$_POST["comment"]) { $er->setComment(stripslashes(@$_POST["comment"]), $_SESSION["act"]); } } // write into database, reload parent and close window if($doc->writeErrorReport($er) != -1) { js_try("opener.location.href = 'index.php';"); js_close(500); } else { printLastError(); _PageBlue(); die(); } } // output form $hidctrl = "input type='hidden'"; Title(_c("error-reporter:Change an error report")); echo sprintf("<form action='?action=update&uid=%d' method='post'>\n", $getUid); echo "<table>\n"; echo sprintf("<tr><td>%s</td><td>%s</td></tr>\n", _c("error-reporter:Reported by:"), q(erGetRealUserName($er->getOwner()))); echo sprintf("<tr><td>%s</td><td>%s</td></tr>\n", _c("error-reporter:Date:"), SmartDate($er->getDate())); echo sprintf("<tr><td>%s</td><td><{$GLOBALS["stdedt"]} name='machine' value='%s' /></td></tr>\n", _c("error-reporter:Affected machine:"), q($er->getMachine())); echo sprintf("<tr><td>%s</td><td><textarea name='text' cols='40' rows='7'>%s". "</textarea></td></tr>\n", _c("error-reporter:Text:"), $er->getText()); echo sprintf("<tr><td><label for='hidden'>%s</label></td><td><input type='checkbox' id='hidden' ". "name='hidden' value='true'%s /></td></tr>\n", _c("error-reporter:Hidden:"), $er->isHidden() ? " checked='checked'" : ""); if($cfgErrors->userIsAdmin()) { echo sprintf("<tr><td>%s</td><td><textarea name='comment' cols='40' rows='3'>%s</textarea>", _c("error-reporter:Comment:"), $er->getComment()); if($er->getComment() != "") { echo sprintf("<input type='hidden' name='comment_old' value='%s' /></td></tr>\n", $strOldComment); echo sprintf("<tr><td>%s</td><td>%s</td></tr>\n", _c("error-reporter:Comment written by:"), erGetRealUserName($er->getCommentOwner())); } } echo sprintf("<tr><td /><td><{$GLOBALS["smlbtn"]} value='%s' /></td></tr>\n", _("Change")); echo "</table></form><p />\n"; _PageBlue(); ?>