Beispiel #1
0
    $fields = array("headings" => array("View", "Author", "Subject", "Date", "Followup", "Status", "Priority", "Owner", "Link"), "columns" => array("ticket", "author", "subject", "timestamp", "activity", "type", "priority", "assignment", "ticket"), "types" => array("view", "email", "normal", "open_date", "activity_date", "normal", "priority_view", "user", "attach"), "aligns" => array("center", "left", "left", "left", "left", "center", "center", "center", "center"));
} else {
    $fields = array("headings" => array("View", "Author", "Subject", "Date", "Followup", "Status", "Priority", "Owner"), "columns" => array("ticket", "author", "subject", "timestamp", "activity", "type", "priority", "assignment"), "types" => array("view", "email", "normal", "open_date", "activity_date", "normal", "priority_view", "user"), "aligns" => array("center", "left", "left", "left", "left", "center", "center", "center"));
}
/* set up defaults for viewing */
if ($type == "my") {
    $title = "My Tickets";
} else {
    $title = "{$type} Tickets";
}
/* count tickets */
$query = "SELECT COUNT(*) FROM {$dbprefix}tickets WHERE parent = '0'";
if ($type != 'All') {
    $query .= " AND type = '{$type}'";
}
$ticket_count = query2result($query);
/* paging controls */
if ($offset + $limit < $ticket_count) {
    $page_string = $offset + 1 . " to " . ($offset + $limit) . " of {$ticket_count}";
} else {
    $page_string = $offset + 1 . " to {$ticket_count} of {$ticket_count}";
}
/* start table */
?>

<table class="tbl" width="100%">
<tr>
	<td colspan="<?php 
echo count($fields["headings"]);
?>
" align="center">
Beispiel #2
0
print "<input type=\"hidden\" name=\"author\" value='" . $ticket_info["author"] . "' />\n";
print "<input type=\"hidden\" name=\"priority\" value='" . $ticket_info["priority"] . "' />\n";
print "<input type=\"hidden\" name=\"subject\" value='" . $ticket_info["subject"] . "' />\n";
/* output ticket */
for ($loop = 0; $loop < count($fields["headings"]); $loop++) {
    print "<tr>\n";
    if ($fields["headings"][$loop] !== "<br />") {
        $fields["headings"][$loop] = $AppUI->_($fields["headings"][$loop]);
    }
    print "<td align=\"right\">" . $fields["headings"][$loop] . "</td>";
    print "<td align=\"left\" class=\"hilite\">" . format_field($ticket_info[$fields["columns"][$loop]], $fields["types"][$loop]) . "</td>\n";
    print "</tr>\n";
}
$ticket_info["assignment"];
/* output attachment indicator */
$attach_count = query2result("SELECT attachment FROM tickets WHERE ticket = '{$ticket}'");
if ($attach_count == 1) {
    print "<tr>\n";
    print "<td align=\"left\"><strong>Attachments</strong></td>";
    print "<td align=\"left\">This email had attachments which were removed.</td>\n";
    print "</tr>\n";
} else {
    if ($attach_count == 2) {
        $result = do_query("SELECT file_id, file_name from files, tickets where ticket = '{$ticket}'\n  and file_task = ticket and file_project = 0");
        if (number_rows($result)) {
            print "<tr>\n";
            print "<td align=\"left\"><b>Attachments</b></td>";
            print "<td align=\"left\">";
            while ($row = result2hash($result)) {
                echo "<a href='fileviewer.php?file_id=" . $row["file_id"] . "'>";
                echo $row["file_name"];
function format_field($value, $type, $ticket = NULL)
{
    global $CONFIG;
    global $AppUI;
    global $canEdit;
    switch ($type) {
        case "user":
            if ($value) {
                $output = query2result("SELECT CONCAT_WS(' ',contact_first_name,contact_last_name) as name FROM users u LEFT JOIN contacts ON u.user_contact = contact_id WHERE user_id = '{$value}'");
            } else {
                $output = "-";
            }
            break;
        case "status":
            if ($canEdit) {
                $output = create_selectbox("type_toggle", array("Open" => $AppUI->_("Open"), "Processing" => $AppUI->_("Processing"), "Closed" => $AppUI->_("Closed"), "Deleted" => $AppUI->_("Deleted")), $value);
            } else {
                $output = chooseSelectedValue("type_toggle", array("Open" => $AppUI->_("Open"), "Processing" => $AppUI->_("Processing"), "Closed" => $AppUI->_("Closed"), "Deleted" => $AppUI->_("Deleted")), $value);
            }
            break;
        case "priority_view":
            $priority = $CONFIG["priority_names"][$value];
            $color = $CONFIG["priority_colors"][$value];
            if ($value == 3) {
                $priority = "<strong>{$priority}</strong>";
            }
            if ($value == 4) {
                $priority = "<blink><strong>{$priority}</strong></blink>";
            }
            $output = "<font color=\"{$color}\">{$priority}</font>";
            break;
        case "priority_select":
            if ($canEdit) {
                $output = create_selectbox("priority_toggle", $CONFIG["priority_names"], $value);
            } else {
                $output = chooseSelectedValue("priority_toggle", $CONFIG["priority_names"], $value);
            }
            break;
        case "assignment":
            $options[0] = "-";
            $query = "SELECT user_id as id, CONCAT_WS(' ',contact_first_name,contact_last_name) as name FROM users u LEFT JOIN contacts ON u.user_contact = contact_id ORDER BY name";
            $result = do_query($query);
            while ($row = result2hash($result)) {
                $options[$row["id"]] = $row["name"];
            }
            if ($canEdit) {
                $output = create_selectbox("assignment_toggle", $options, $value);
            } else {
                $output = chooseSelectedValue("assignment_toggle", $options, $value);
            }
            break;
        case "view":
            if ($CONFIG["index_link"] == "latest") {
                $latest_value = query2result("SELECT ticket FROM tickets WHERE parent = '{$value}' ORDER BY ticket DESC LIMIT 1");
                if ($latest_value) {
                    $value = $latest_value;
                }
            }
            $output = "<a href=index.php?m=ticketsmith&a=view&ticket={$value}>{$value}&nbsp;";
            $output .= "<img src=images/icons/pencil.gif border=0></a>";
            break;
        case "attach":
            $output = "<A href=index.php?m=ticketsmith&a=attach&ticket={$value}>";
            $output .= "Link</a>";
            break;
        case "doattach":
            $output = "<A href=index.php?m=ticketsmith&a=attach&newparent={$value}&dosql=reattachticket&ticket={$ticket}>";
            $output .= "Link</a>";
            break;
        case "open_date":
            $output = get_time_ago($value);
            if ($CONFIG["warning_active"]) {
                if (time() - $value > $CONFIG["warning_age"] * 3600) {
                    $output = "<font color=\"" . $CONFIG["warning_color"] . "\"><xb>" . $output . "</strong></font>";
                }
            }
            break;
        case "activity_date":
            if (!$value) {
                $output = "<em>" . $AppUI->_('none') . "</em>";
            } else {
                $output = get_time_ago($value);
            }
            $latest_followup_type = query2result("SELECT type FROM tickets WHERE parent = '{$ticket}' ORDER BY timestamp DESC LIMIT 1");
            if ($latest_followup_type) {
                $latest_followup_type = preg_replace("/(\\w+)\\s.*/", "\\1", $latest_followup_type);
                $output .= " [{$latest_followup_type}]";
            }
            break;
        case "elapsed_date":
            $output = date($CONFIG["date_format"], $value);
            $time_ago = get_time_ago($value);
            $output .= " <em>({$time_ago})</em>";
            break;
        case "body":
            if ($CONFIG["wordwrap"]) {
                $value = word_wrap($value, 78);
            }
            $value = htmlspecialchars($value);
            $output = "<table width=\"100%\" border=\"1\" cellspacing=\"0\" cellpadding=\"10\">\n";
            $output .= "<tr><td bgcolor=\"" . $CONFIG["ticket_color"] . "\">\n<tt><pre>\n";
            $url_find = "/(http|https|ftp|news|telnet|finger)(:\\/\\/[^ \">\\t\\r\\n]*)/";
            $url_replace = "<a href=\"\\1\\2\" target=\"new\">";
            $url_replace .= "<span style=\"font-size: 10pt;\">\\1\\2</span></a>";
            $value = preg_replace($url_find, $url_replace, $value);
            $output .= stripslashes($value);
            $output .= "\n</pre></tt>\n</td></tr>\n</table>\n";
            break;
        case "followup":
            $output = "\n<tt>\n";
            $output .= "<textarea style='font-family: monospace;' name=\"followup\" wrap=\"hard\" cols=\"72\" rows=\"20\">\n";
            $signature = query2result("SELECT user_signature FROM users WHERE user_id = '{$AppUI->user_id}'");
            if ($signature) {
                $output .= "\n";
                $output .= "-- \n";
                $output .= $signature;
            }
            $output .= "\n\n";
            $output .= "---- " . $AppUI->_('Original message') . " ----\n\n";
            if ($CONFIG["wordwrap"]) {
                $value = word_wrap($value, 70, true);
            }
            $value = htmlspecialchars($value);
            $output .= $value;
            $output .= "\n</textarea>\n";
            $output .= "</tt>\n";
            break;
        case "subject":
            $value = preg_replace("/\\s*Re:\\s*/i", "", $value);
            $value = preg_replace("/(\\[\\#\\d+\\])(\\w+)/", "\\2", $value);
            $value = "Re: " . $value;
            $value = htmlspecialchars($value);
            @($output .= "<input type=\"text\" name=\"subject\" value=\"{$value}\" size=\"70\">\n");
            break;
        case "cc":
            $value = htmlspecialchars($value);
            $output = "<input type=\"text\" name=\"cc\" value=\"{$value}\" size=\"70\">";
            break;
        case "recipient":
            $value = htmlspecialchars($value);
            $output = "<input type=\"text\" name=\"recipient\" value=\"{$value}\" size=\"70\">";
            break;
        case "original_author":
            if ($value) {
                $value = preg_replace('/\\"/', '', $value);
                $output = htmlspecialchars($value);
            } else {
                $output = "<em>(" . $AppUI->_('original ticket author') . ")</em>";
            }
            break;
        case "email":
            if ($value) {
                $value = preg_replace('/\\"/', '', $value);
                $output = htmlspecialchars($value);
            } else {
                $output = "<em>" . $AppUI->_('none') . "</em>";
            }
            break;
        case 'ticket_company':
            $q = new DBQuery();
            $q->addTable('companies');
            $q->addQuery('companies.*');
            $q->addWhere('companies.company_id = ' . $value);
            $sql = $q->prepare();
            if (!db_loadObject($sql, $obj)) {
                // it all dies!
            }
            $output = '<a href="index.php?m=companies&a=view&company_id=' . $value . '">' . $obj->company_name . '</a>';
            break;
        case 'ticket_project':
            $q = new DBQuery();
            $q->addTable('projects');
            $q->addQuery('projects.*');
            $q->addWhere('projects.project_id = ' . $value);
            $sql = $q->prepare();
            if (!db_loadObject($sql, $obj)) {
                // it all dies!
            }
            $output = '<a href="index.php?m=projects&a=view&project_id=' . $value . '">' . $obj->project_name . '</a>';
            break;
        default:
            $output = $value ? htmlspecialchars($value) : "<em>" . $AppUI->_('none') . "</em>";
    }
    return $output;
}
Beispiel #4
0
 print "</th>\n";
 print "</tr>\n";
 /* start form */
 print "<form name='ticketform' action=\"index.php?m=ticketsmith&a=followup&ticket={$ticket}\" method=post>\n";
 /* get ticket */
 $ticket_info = query2hash("SELECT * FROM tickets WHERE ticket = {$ticket}");
 /* output From: line */
 print "<tr>\n";
 print "<td align=left><strong>" . $AppUI->_('From') . "</strong></td>";
 list($from_name, $from_email) = query2array("SELECT CONCAT_WS(' ',contact_first_name,contact_last_name) as name, contact_email as email FROM users u LEFT JOIN contacts ON u.user_contact = contact_id WHERE user_id = '{$AppUI->user_id}'");
 print "<td align=left>" . $from_name . " &lt;" . $from_email . "&gt;</td>\n";
 print "</tr>\n";
 /* output To: line */
 print "<tr>\n";
 print "<td align=left><strong>" . $AppUI->_('To') . "</strong></td>";
 $recipient = query2result("SELECT author FROM tickets WHERE ticket = '{$ticket_parent}'");
 print "<td align=left>" . format_field($recipient, "recipient") . "</td>\n";
 print "</tr>\n";
 /* output ticket */
 for ($loop = 0; $loop < count($fields["headings"]); $loop++) {
     print "<tr>\n";
     // do not translate if heading is "<br />"
     if ($fields["headings"][$loop] == "<br />") {
     } else {
         $fields["headings"][$loop] = $AppUI->_($fields["headings"][$loop]);
     }
     print "<td align=left><strong>" . $fields["headings"][$loop] . "</strong></td>";
     print "<td align=left>" . format_field($ticket_info[$fields["columns"][$loop]], $fields["types"][$loop]) . "</td>\n";
     print "</tr>\n";
 }
 /* output submit button */
Beispiel #5
0
require DP_BASE_DIR . '/modules/ticketsmith/config.inc.php';
require DP_BASE_DIR . '/modules/ticketsmith/common.inc.php';
/* set title */
$title = "Post Comment";
/* prepare ticket parent */
if (!$ticket_parent) {
    $ticket_parent = $ticket;
}
$author_name = dPgetParam($_POST, 'author_name', '');
$author_email = dPgetParam($_POST, 'author_email', '');
$comment = dPgetParam($_POST, 'comment', '');
$body = dPgetParam($_POST, 'body', '');
if (@$comment) {
    /* prepare fields */
    list($author_name, $author_email) = query2array("SELECT CONCAT_WS(' ',contact_first_name,contact_last_name) as name, contact_email as email FROM users u LEFT JOIN contacts ON u.user_contact = contact_id WHERE user_id = '{$AppUI->user_id}'");
    $subject = db_escape(query2result("SELECT subject FROM tickets WHERE ticket = '{$ticket_parent}'"));
    $comment = db_escape($comment);
    $author = $author_name . " <" . $author_email . ">";
    $timestamp = time();
    $body = escape_string($body);
    /* prepare query */
    $query = "INSERT INTO tickets (author, subject, body, timestamp, type, parent, assignment) ";
    $query .= "VALUES ('{$author}','{$subject}','{$comment}','{$timestamp}','Staff Comment','{$ticket_parent}','9999')";
    /* insert comment */
    do_query($query);
    /* update parent ticket's timestamp */
    do_query("UPDATE tickets SET activity = '{$timestamp}' WHERE ticket = '{$ticket_parent}'");
    /* return to ticket view */
    echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=index.php?m=ticketsmith&a=view&ticket={$ticket_parent}\">";
    exit;
} else {
Beispiel #6
0
    } else {
        $new_direction = $direction == 'ASC' ? 'DESC' : 'ASC';
    }
    echo '<th align="' . $fields['aligns'][$n] . '" style="padding: 4px">';
    echo '<a href="index.php?m=ticketsmith&type=' . $type . '&column=' . $fields['columns'][$n] . '&direction=' . $new_direction . '">';
    echo $AppUI->_($fields['headings'][$n]) . '</a></th>';
}
echo '</tr>';
/* output tickets */
if ($parent_count) {
    global $CONFIG;
    $nticks = 1;
    while ($row = result2hash($result)) {
        $value = $row['ticket'];
        if ($CONFIG['index_link'] == 'latest') {
            $latest_value = query2result("SELECT ticket FROM tickets WHERE parent = '{$value}' ORDER BY ticket DESC LIMIT 1");
            if ($latest_value) {
                $value = $latest_value;
            }
        }
        $action = "location.href = 'index.php?m=ticketsmith&a=view&ticket={$value}'";
        echo '<tr class="' . ($nticks % 2 == 1 ? 'first' : 'second') . '" onclick="' . $action . '" style="cursor:pointer">';
        echo '<td align="center"><img src="images/view.gif"></td>';
        for ($n = 1; $n < count($fields['headings']); $n++) {
            echo '<td align=' . $fields['aligns'][$n] . '>';
            //translate some information, some not
            if ($fields['headings'][$n] == 'Status') {
                echo $AppUI->_(format_field($row[$fields['columns'][$n]], $fields['types'][$n], $row[$fields['columns'][0]]));
            } else {
                echo format_field($row[$fields['columns'][$n]], $fields['types'][$n], $row[$fields['columns'][0]]);
            }