print "</tr>\n"; /* depth select */ print "<tr>\n"; print "<td align=\"right\"><strong>" . $AppUI->_('Depth') . "</strong></td>\n"; print "<td>"; $depth_choices = array("All" => $AppUI->_("All Tickets"), "Open" => $AppUI->_("Open Parents"), "Closed" => $AppUI->_("Closed Parents"), "Deleted" => $AppUI->_("Deleted Parents"), "Child" => $AppUI->_("Followups") . " & " . $AppUI->_("Comments")); $depth_selectbox = create_selectbox("search_depth", $depth_choices, $search_depth); print "{$depth_selectbox}\n"; print "</td>\n"; print "</tr>\n"; /* sort select */ print "<tr>\n"; print "<td align=\"right\"><strong>" . $AppUI->_('Sort By') . "</strong></td>\n"; print "<td>"; $sort_choices = array("ticket" => $AppUI->_("Ticket"), "author" => $AppUI->_("Author"), "subject" => $AppUI->_("Subject"), "timestamp" => $AppUI->_("Date"), "activity" => $AppUI->_("Activity"), "type" => $AppUI->_("Type"), "priority" => $AppUI->_("Priority"), "assignment" => $AppUI->_("Owner")); $sort_selectbox = create_selectbox("sort_column", $sort_choices, $sort_column); print $sort_selectbox; print " <input type=\"radio\" name=\"sort_direction\" value=\"ASC\"> " . $AppUI->_('Ascending'); print " <input type=\"radio\" name=\"sort_direction\" value=\"DESC\" checked> " . $AppUI->_('Descending'); print "</td>\n"; print "</tr>\n"; /* submit button */ print "<tr>\n"; print "<td><br /></td>\n"; print '<td><input type="submit" value="' . $AppUI->_('Search') . '"></td>'; print "</tr>\n"; /* output footer */ print "<tr>\n"; print "<td><br /></td>\n"; print "<td><a href=index.php?m=ticketsmith>" . $AppUI->_('Return to ticket list') . "</a></td>\n"; print "</tr>\n";
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} "; $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; }