2014-03-23 16:03:30 -04:00
< ? php
/*******************************************************************************
2015-09-12 00:46:46 -04:00
* Title : Help Desk Software HESK
2016-04-18 18:57:07 -04:00
* Version : 2.6 . 7 from 18 th April 2016
2015-09-12 00:46:46 -04:00
* Author : Klemen Stirn
* Website : http :// www . hesk . com
********************************************************************************
* COPYRIGHT AND TRADEMARK NOTICE
* Copyright 2005 - 2015 Klemen Stirn . All Rights Reserved .
* HESK is a registered trademark of Klemen Stirn .
* The HESK may be used and modified free of charge by anyone
* AS LONG AS COPYRIGHT NOTICES AND ALL THE COMMENTS REMAIN INTACT .
* By using this code you agree to indemnify Klemen Stirn from any
* liability that might arise from it ' s use .
* Selling the code for this program , in part or full , without prior
* written consent is expressly forbidden .
* Using this code , in part or full , to create derivate work ,
* new scripts or products is expressly forbidden . Obtain permission
* before redistributing this software over the Internet or in
* any other medium . In all cases copyright and header must remain intact .
* This Copyright is in full effect in any country that has International
* Trade Agreements with the United States of America or
* with the European Union .
* Removing any of the copyright notices without purchasing a license
* is expressly forbidden . To remove HESK copyright notice you must purchase
* a license for this script . For more information on how to obtain
* a license please visit the page below :
* https :// www . hesk . com / buy . php
*******************************************************************************/
2014-09-14 01:14:54 -04:00
define ( 'MINIMUM_REFRESH_THRESHOLD_IN_SECONDS' , 1 );
2014-03-23 16:03:30 -04:00
/* Check if this is a valid include */
2015-09-12 00:46:46 -04:00
if ( ! defined ( 'IN_SCRIPT' )) {
die ( 'Invalid attempt' );
}
2014-03-23 16:03:30 -04:00
/* List of staff */
2015-09-12 00:46:46 -04:00
if ( ! isset ( $admins )) {
$admins = array ();
$res2 = hesk_dbQuery ( " SELECT `id`,`name` FROM ` " . hesk_dbEscape ( $hesk_settings [ 'db_pfix' ]) . " users` ORDER BY `name` ASC " );
while ( $row = hesk_dbFetchAssoc ( $res2 )) {
$admins [ $row [ 'id' ]] = $row [ 'name' ];
}
2014-03-23 16:03:30 -04:00
}
/* List of categories */
2015-07-03 22:23:09 -04:00
$orderBy = $modsForHesk_settings [ 'category_order_column' ];
2014-03-23 16:03:30 -04:00
$hesk_settings [ 'categories' ] = array ();
2015-09-12 00:46:46 -04:00
$res2 = hesk_dbQuery ( 'SELECT `id`, `name` FROM `' . hesk_dbEscape ( $hesk_settings [ 'db_pfix' ]) . 'categories` WHERE ' . hesk_myCategories ( 'id' ) . ' ORDER BY `' . $orderBy . '` ASC' );
while ( $row = hesk_dbFetchAssoc ( $res2 )) {
$hesk_settings [ 'categories' ][ $row [ 'id' ]] = $row [ 'name' ];
2014-03-23 16:03:30 -04:00
}
/* Current MySQL time */
$mysql_time = hesk_dbTime ();
/* Get number of tickets and page number */
$result = hesk_dbQuery ( $sql_count );
2015-09-12 00:46:46 -04:00
$total = hesk_dbResult ( $result );
2014-03-23 16:03:30 -04:00
2014-09-06 22:19:59 -04:00
//-- Precondition: The panel has already been created, and there is NO open <div class="panel-body"> tag yet.
echo '<div class="panel-body">' ;
2015-09-12 00:46:46 -04:00
if ( $total > 0 ) {
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
/* This query string will be used to browse pages */
if ( $href == 'show_tickets.php' ) {
#$query = 'status='.$status;
2014-03-23 16:03:30 -04:00
$query = '' ;
2015-09-12 00:46:46 -04:00
$query .= 's' . implode ( '=1&s' , array_keys ( $status )) . '=1' ;
$query .= '&p' . implode ( '=1&p' , array_keys ( $priority )) . '=1' ;
$query .= '&category=' . $category ;
$query .= '&sort=' . $sort ;
$query .= '&asc=' . $asc ;
$query .= '&limit=' . $maxresults ;
$query .= '&archive=' . $archive [ 1 ];
$query .= '&s_my=' . $s_my [ 1 ];
$query .= '&s_ot=' . $s_ot [ 1 ];
$query .= '&s_un=' . $s_un [ 1 ];
$query .= '&cot=' . $cot ;
$query .= '&g=' . $group ;
$query .= '&page=' ;
} else {
$query = 'q=' . $q ;
$query .= '&what=' . $what ;
$query .= '&category=' . $category ;
$query .= '&dt=' . urlencode ( $date_input );
$query .= '&sort=' . $sort ;
$query .= '&asc=' . $asc ;
$query .= '&limit=' . $maxresults ;
$query .= '&archive=' . $archive [ 2 ];
$query .= '&s_my=' . $s_my [ 2 ];
$query .= '&s_ot=' . $s_ot [ 2 ];
$query .= '&s_un=' . $s_un [ 2 ];
$query .= '&page=' ;
}
$pages = ceil ( $total / $maxresults ) or $pages = 1 ;
if ( $page > $pages ) {
$page = $pages ;
}
$limit_down = ( $page * $maxresults ) - $maxresults ;
$prev_page = ( $page - 1 <= 0 ) ? 0 : $page - 1 ;
$next_page = ( $page + 1 > $pages ) ? 0 : $page + 1 ;
$autorefreshInSeconds = $_SESSION [ 'autorefresh' ] / 1000 ;
2014-09-14 00:55:28 -04:00
$autorefresh = '' ;
2014-09-14 01:14:54 -04:00
if ( $autorefreshInSeconds >= MINIMUM_REFRESH_THRESHOLD_IN_SECONDS ) {
2015-09-12 00:46:46 -04:00
$autorefresh = ' | ' . $hesklang [ 'autorefresh' ] . ' ' . $autorefreshInSeconds . ' ' . $hesklang [ 'abbr' ][ 'second' ];
2014-09-14 01:14:54 -04:00
?>
< script >
2015-09-12 00:46:46 -04:00
( function () {
setTimeout ( " location.reload(true); " , < ? php echo $_SESSION [ 'autorefresh' ]; ?> );
2014-09-14 01:14:54 -04:00
})();
</ script >
< ? php }
2015-09-12 00:46:46 -04:00
echo sprintf ( $hesklang [ 'tickets_on_pages' ], $total , $pages ) . $autorefresh . ' <br />' ;
if ( $pages > 1 ) {
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
/* List pages */
2014-09-03 22:07:30 -04:00
echo ' < div class = " row " >
2014-09-07 21:42:47 -04:00
< div class = " col-md-6 col-sm-12 text-right nu-rtlFloatLeft " >
2014-09-03 22:07:30 -04:00
< ul class = " pagination " style = " margin: 0 " > ' ;
2015-09-12 00:46:46 -04:00
if ( $pages > 7 ) {
if ( $page > 2 ) {
echo '<li><a href="' . $href . '?' . $query . '1">«</a></li>' ; // <<
}
if ( $prev_page ) {
echo '<li><a href="' . $href . '?' . $query . $prev_page . '">‹</a></li>' ; // <
}
}
for ( $i = 1 ; $i <= $pages ; $i ++ ) {
if ( $i <= ( $page + 5 ) && $i >= ( $page - 5 )) {
if ( $i == $page ) {
echo '<li class="active"><a href="#">' . $i . '</a></li> ' ;
} else {
echo '<li><a href="' . $href . '?' . $query . $i . '">' . $i . '</a></li>' ;
}
}
}
if ( $pages > 7 ) {
if ( $next_page ) {
echo '<li><a href="' . $href . '?' . $query . $next_page . '">›</a></li>' ; // >
}
if ( $page < ( $pages - 1 )) {
echo '<li><a href="' . $href . '?' . $query . $pages . '">»</a></li>' ; // >>
}
}
2014-09-03 22:07:30 -04:00
echo ' </ ul >
</ div >
2014-09-07 21:42:47 -04:00
< div class = " col-md-6 col-sm-12 text-left " >
2015-09-12 00:46:46 -04:00
< div class = " form-inline " > ' . $hesklang[' jump_page '] . '
< select class = " form-control " name = " myHpage " id = " myHpage " onchange = " javascript:window.location= \ '' . $href . '?' . $query . ' \ '+document.getElementById( \ 'myHpage \ ').value " > ' ;
for ( $i = 1 ; $i <= $pages ; $i ++ ) {
$tmp = ( $page == $i ) ? ' selected="selected"' : '' ;
echo '<option value="' . $i . '"' . $tmp . '>' . $i . '</option>' ;
}
echo ' </ select >
2014-09-03 22:07:30 -04:00
</ div >
2014-09-06 22:19:59 -04:00
</ div >
</ div > ' ;
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
}
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
/* We have the full SQL query now, get tickets */
$sql .= " LIMIT " . hesk_dbEscape ( $limit_down ) . " , " . hesk_dbEscape ( $maxresults ) . " " ;
$result = hesk_dbQuery ( $sql );
2014-03-23 16:03:30 -04:00
/* Uncomment for debugging */
# echo "SQL: $sql\n<br>";
2015-09-12 00:46:46 -04:00
/* This query string will be used to order and reverse display */
if ( $href == 'show_tickets.php' ) {
#$query = 'status='.$status;
2014-03-23 16:03:30 -04:00
$query = '' ;
2015-09-12 00:46:46 -04:00
$query .= 's' . implode ( '=1&s' , array_keys ( $status )) . '=1' ;
$query .= '&p' . implode ( '=1&p' , array_keys ( $priority )) . '=1' ;
$query .= '&category=' . $category ;
#$query .= '&asc='.(isset($is_default) ? 1 : $asc_rev);
$query .= '&limit=' . $maxresults ;
$query .= '&archive=' . $archive [ 1 ];
$query .= '&s_my=' . $s_my [ 1 ];
$query .= '&s_ot=' . $s_ot [ 1 ];
$query .= '&s_un=' . $s_un [ 1 ];
$query .= '&page=1' ;
#$query .= '&sort=';
$query .= '&cot=' . $cot ;
$query .= '&g=' . $group ;
} else {
$query = 'q=' . $q ;
$query .= '&what=' . $what ;
$query .= '&category=' . $category ;
$query .= '&dt=' . urlencode ( $date_input );
#$query .= '&asc='.$asc;
$query .= '&limit=' . $maxresults ;
$query .= '&archive=' . $archive [ 2 ];
$query .= '&s_my=' . $s_my [ 2 ];
$query .= '&s_ot=' . $s_ot [ 2 ];
$query .= '&s_un=' . $s_un [ 2 ];
$query .= '&page=1' ;
#$query .= '&sort=';
}
2014-03-23 16:03:30 -04:00
$query .= '&asc=' ;
2015-09-12 00:46:46 -04:00
/* Print the table with tickets */
$random = rand ( 10000 , 99999 );
?>
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
< form role = " form " class = " form-inline " name = " form1 " action = " delete_tickets.php " method = " post "
onsubmit = " return hesk_confirmExecute('<?php echo hesk_makeJsString( $hesklang['confirm_execute'] ); ?>') " >
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
< ? php
if ( empty ( $group )) {
hesk_print_list_head ();
}
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
$i = 0 ;
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
$group_tmp = '' ;
$is_table = 0 ;
$space = 0 ;
2015-01-12 21:00:20 -05:00
2015-09-12 00:46:46 -04:00
while ( $ticket = hesk_dbFetchAssoc ( $result )) {
// Are we grouping tickets?
if ( $group ) {
require ( HESK_PATH . 'inc/print_group.inc.php' );
} // END if $group
$color = '' ;
$owner = '' ;
$first_line = '(' . $hesklang [ 'unas' ] . ')' . " \n \n " ;
if ( $ticket [ 'owner' ] == $_SESSION [ 'id' ]) {
$owner = '<span class="assignedyou" title="' . $hesklang [ 'tasy2' ] . '"><span class="glyphicon glyphicon-user" data-toggle="tooltip" data-placement="top" title="' . $hesklang [ 'tasy2' ] . '"></span></span> ' ;
$first_line = $hesklang [ 'tasy2' ] . " \n \n " ;
} elseif ( $ticket [ 'owner' ]) {
if ( ! isset ( $admins [ $ticket [ 'owner' ]])) {
$admins [ $ticket [ 'owner' ]] = $hesklang [ 'e_udel' ];
2015-05-15 01:34:37 -04:00
}
2015-09-12 00:46:46 -04:00
$owner = '<span class="assignedother" title="' . $hesklang [ 'taso3' ] . ' ' . $admins [ $ticket [ 'owner' ]] . '"><span class="glyphicon glyphicon-user" data-toggle="tooltip" data-placement="top" title="' . $hesklang [ 'taso3' ] . ' ' . $admins [ $ticket [ 'owner' ]] . '"></span></span> ' ;
$first_line = $hesklang [ 'taso3' ] . ' ' . $admins [ $ticket [ 'owner' ]] . " \n \n " ;
2015-05-15 01:34:37 -04:00
}
2015-01-12 21:00:20 -05:00
2015-09-12 00:46:46 -04:00
// Prepare ticket priority
switch ( $ticket [ 'priority' ]) {
case 0 :
$ticket [ 'priority' ] = '<span style="color: red; font-size:1.3em" class="glyphicon glyphicon-flag" data-toggle="tooltip" data-placement="top" title="' . $hesklang [ 'critical' ] . '"></span>' ;
$color = 'danger' ;
break ;
2015-01-12 21:00:20 -05:00
case 1 :
2015-09-12 00:46:46 -04:00
$ticket [ 'priority' ] = '<span style="color: orange; font-size:1.3em" class="glyphicon glyphicon-flag" data-toggle="tooltip" data-placement="top" title="' . $hesklang [ 'high' ] . '"></span>' ;
$color = 'warning' ;
2015-01-12 21:00:20 -05:00
break ;
case 2 :
2015-09-12 00:46:46 -04:00
$ticket [ 'priority' ] = '<span style="color: green; font-size:1.3em" class="glyphicon glyphicon-flag" data-toggle="tooltip" data-placement="top" title="' . $hesklang [ 'medium' ] . '"></span>' ;
2015-01-12 21:00:20 -05:00
break ;
default :
2015-09-12 00:46:46 -04:00
$ticket [ 'priority' ] = '<span style="color: blue; font-size:1.3em" class="glyphicon glyphicon-flag" data-toggle="tooltip" data-placement="top" title="' . $hesklang [ 'low' ] . '"></span>' ;
2015-01-12 21:00:20 -05:00
}
2015-09-12 00:46:46 -04:00
// Set message (needed for row title)
$ticket [ 'message' ] = $first_line . substr ( strip_tags ( $ticket [ 'message' ]), 0 , 200 ) . '...' ;
// Start ticket row
echo '
< tr title = " ' . $ticket['message'] . ' " >
< td class = " ' . $color . ' " style = " text-align:left; white-space:nowrap; " >< input type = " checkbox " name = " id[] " value = " ' . $ticket['id'] . ' " />& nbsp ; </ td >
' ;
// Print sequential ID and link it to the ticket page
if ( hesk_show_column ( 'id' )) {
echo '<td class="' . $color . '" style="text-align:left; white-space:nowrap;"><a href="admin_ticket.php?track=' . $ticket [ 'trackid' ] . '&Refresh=' . $random . '">' . $ticket [ 'id' ] . '</a></td>' ;
2015-01-12 21:00:20 -05:00
}
2015-09-12 00:46:46 -04:00
// Print tracking ID and link it to the ticket page
if ( hesk_show_column ( 'trackid' )) {
echo '<td class="' . $color . ' " style= " text - align : left ; white - space : nowrap ; " >
< a href = " admin_ticket.php?track=' . $ticket['trackid'] . '&Refresh=' . $random . ' " > ' . $ticket[' trackid '] . ' </ a > ' ;
if ( $modsForHesk_settings [ 'show_number_merged' ] && $ticket [ 'merged' ] != '' ) {
$tooltipMarkup = $hesklang [ 'merged_tickets' ];
$mergedIds = explode ( '#' , $ticket [ 'merged' ]);
$mergedTickets = '' ;
$numberOfTickets = 0 ;
foreach ( $mergedIds as $mergeId ) {
if ( $mergeId != '' ) {
$numberOfTickets ++ ;
$mergedTickets .= '<li>' . $mergeId . '</li>' ;
}
}
$tooltipMarkup .= '<ul>' . $mergedTickets . '</ul>' ;
$output = sprintf ( $hesklang [ 'x_merged' ], $numberOfTickets );
echo ' <span data-toggle="htmlpopover-onclick" data-content="' . $tooltipMarkup . '" style="cursor: pointer;color: #666">' . $output . '</span>' ;
}
echo '</td>' ;
}
2015-01-12 21:00:20 -05:00
2015-09-12 00:46:46 -04:00
// Print date submitted
if ( hesk_show_column ( 'dt' )) {
switch ( $hesk_settings [ 'submittedformat' ]) {
case 1 :
$ticket [ 'dt' ] = hesk_formatDate ( $ticket [ 'dt' ]);
break ;
case 2 :
$ticket [ 'dt' ] = hesk_time_lastchange ( $ticket [ 'dt' ]);
break ;
default :
$ticket [ 'dt' ] = hesk_time_since ( strtotime ( $ticket [ 'dt' ]));
}
echo '<td class="' . $color . '">' . $ticket [ 'dt' ] . '</td>' ;
}
2015-01-12 21:00:20 -05:00
2015-09-12 00:46:46 -04:00
// Print last modified
if ( hesk_show_column ( 'lastchange' )) {
switch ( $hesk_settings [ 'updatedformat' ]) {
case 1 :
$ticket [ 'lastchange' ] = hesk_formatDate ( $ticket [ 'lastchange' ]);
break ;
case 2 :
$ticket [ 'lastchange' ] = hesk_time_lastchange ( $ticket [ 'lastchange' ]);
break ;
default :
$ticket [ 'lastchange' ] = hesk_time_since ( strtotime ( $ticket [ 'lastchange' ]));
}
echo '<td class="' . $color . '">' . $ticket [ 'lastchange' ] . '</td>' ;
}
2015-01-12 21:00:20 -05:00
2015-09-12 00:46:46 -04:00
// Print ticket category
if ( hesk_show_column ( 'category' )) {
$ticket [ 'category' ] = isset ( $hesk_settings [ 'categories' ][ $ticket [ 'category' ]]) ? $hesk_settings [ 'categories' ][ $ticket [ 'category' ]] : $hesklang [ 'catd' ];
echo '<td class="' . $color . '">' . $ticket [ 'category' ] . '</td>' ;
2015-01-12 21:00:20 -05:00
}
2015-09-12 00:46:46 -04:00
// Print customer name
if ( hesk_show_column ( 'name' )) {
echo '<td class="' . $color . '">' . $ticket [ 'name' ] . '</td>' ;
2015-01-12 21:00:20 -05:00
}
2015-09-12 00:46:46 -04:00
// Print customer email
if ( hesk_show_column ( 'email' )) {
echo '<td class="' . $color . '"><a href="mailto:' . $ticket [ 'email' ] . '">' . $hesklang [ 'clickemail' ] . '</a></td>' ;
}
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
// Print subject and link to the ticket page
if ( hesk_show_column ( 'subject' )) {
echo '<td class="' . $color . '">' . ( $ticket [ 'archive' ] ? '<i class="fa fa-tag" style="font-size: 14px;color:#000" data-toggle="tooltip" data-placement="top" data-original-title="' . $hesklang [ 'archived' ] . '"></i> ' : '' ) . $owner . '<a href="admin_ticket.php?track=' . $ticket [ 'trackid' ] . '&Refresh=' . $random . '">' . $ticket [ 'subject' ] . '</a></td>' ;
}
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
// Print ticket status
if ( hesk_show_column ( 'status' )) {
$statusRS = hesk_dbQuery ( " SELECT `ID`, `TextColor` FROM ` " . hesk_dbEscape ( $hesk_settings [ 'db_pfix' ]) . " statuses` WHERE ID = " . $ticket [ 'status' ]);
$statusName = hesk_dbFetchAssoc ( $statusRS );
$ticket [ 'status' ] = '<span style="color: ' . $statusName [ 'TextColor' ] . '">' . mfh_getDisplayTextForStatusId ( $statusName [ 'ID' ]) . '</span>' ;
echo '<td class="' . $color . '">' . $ticket [ 'status' ] . ' </td>' ;
2015-01-12 21:00:20 -05:00
}
2015-09-12 00:46:46 -04:00
// Print ticket owner
if ( hesk_show_column ( 'owner' )) {
if ( $ticket [ 'owner' ]) {
$ticket [ 'owner' ] = isset ( $admins [ $ticket [ 'owner' ]]) ? $admins [ $ticket [ 'owner' ]] : $hesklang [ 'unas' ];
} else {
$ticket [ 'owner' ] = $hesklang [ 'unas' ];
}
echo '<td class="' . $color . '">' . $ticket [ 'owner' ] . '</td>' ;
2015-01-12 21:00:20 -05:00
}
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
// Print number of all replies
if ( hesk_show_column ( 'replies' )) {
echo '<td class="' . $color . '">' . $ticket [ 'replies' ] . '</td>' ;
}
2015-01-12 21:00:20 -05:00
2015-09-12 00:46:46 -04:00
// Print number of staff replies
if ( hesk_show_column ( 'staffreplies' )) {
echo '<td class="' . $color . '">' . $ticket [ 'staffreplies' ] . '</td>' ;
}
// Print last replier
if ( hesk_show_column ( 'lastreplier' )) {
if ( $ticket [ 'lastreplier' ]) {
$ticket [ 'repliername' ] = isset ( $admins [ $ticket [ 'replierid' ]]) ? $admins [ $ticket [ 'replierid' ]] : $hesklang [ 'staff' ];
2015-02-07 15:53:33 -05:00
} else {
2015-09-12 00:46:46 -04:00
$ticket [ 'repliername' ] = $ticket [ 'name' ];
2015-02-07 15:53:33 -05:00
}
2015-09-12 00:46:46 -04:00
echo '<td class="' . $color . '">' . $ticket [ 'repliername' ] . '</td>' ;
2015-02-07 15:53:33 -05:00
}
2015-01-12 21:00:20 -05:00
2015-09-12 00:46:46 -04:00
// Print time worked
if ( hesk_show_column ( 'time_worked' )) {
echo '<td class="' . $color . '">' . $ticket [ 'time_worked' ] . '</td>' ;
}
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
// Print custom fields
foreach ( $hesk_settings [ 'custom_fields' ] as $key => $value ) {
if ( $value [ 'use' ] && hesk_show_column ( $key )) {
echo '<td class="' . $color . '">' ;
if ( $value [ 'type' ] == 'date' && ! empty ( $ticket [ $key ])) {
$dt = date ( 'Y-m-d h:i:s' , $ticket [ $key ]);
echo hesk_dateToString ( $dt , 0 );
} else {
echo $ticket [ $key ];
}
echo '</td>' ;
}
}
2014-03-23 16:03:30 -04:00
2015-09-12 00:46:46 -04:00
// End ticket row
echo '
< td class = " ' . $color . ' " style = " text-align:center; white-space:nowrap; " > ' . $ticket[' priority '] . ' & nbsp ; </ td >
</ tr > ' ;
} // End while
?>
</ table >
</ div >
& nbsp ; < br />
< table border = " 0 " width = " 100% " >
< tr >
< td width = " 50% " class = " text-right " style = " vertical-align:top " >
< select class = " form-control " name = " a " >
< option value = " low "
selected = " selected " >< ? php echo $hesklang [ 'set_pri_to' ] . ' ' . $hesklang [ 'low' ]; ?> </option>
< option
value = " medium " >< ? php echo $hesklang [ 'set_pri_to' ] . ' ' . $hesklang [ 'medium' ]; ?> </option>
< option value = " high " >< ? php echo $hesklang [ 'set_pri_to' ] . ' ' . $hesklang [ 'high' ]; ?> </option>
< option
value = " critical " >< ? php echo $hesklang [ 'set_pri_to' ] . ' ' . $hesklang [ 'critical' ]; ?> </option>
< option value = " close " >< ? php echo $hesklang [ 'close_selected' ]; ?> </option>
< ? php
if ( hesk_checkPermission ( 'can_add_archive' , 0 )) {
?>
< option value = " tag " >< ? php echo $hesklang [ 'add_archive_quick' ]; ?> </option>
< option value = " untag " >< ? php echo $hesklang [ 'remove_archive_quick' ]; ?> </option>
< ? php
}
if ( ! defined ( 'HESK_DEMO' )) {
if ( hesk_checkPermission ( 'can_merge_tickets' , 0 )) {
?>
< option value = " merge " >< ? php echo $hesklang [ 'mer_selected' ]; ?> </option>
< ? php
}
if ( hesk_checkPermission ( 'can_del_tickets' , 0 )) {
?>
< option value = " delete " >< ? php echo $hesklang [ 'del_selected' ]; ?> </option>
< ? php
}
} // End demo
?>
</ select >
< input type = " hidden " name = " token " value = " <?php hesk_token_echo(); ?> " />
< input class = " btn btn-default " type = " submit " value = " <?php echo $hesklang['execute'] ; ?> " />
</ td >
</ tr >
</ table >
</ form >
< ? php
2014-03-23 16:03:30 -04:00
} // END ticket list if total > 0
2015-09-12 00:46:46 -04:00
else {
2014-03-23 16:03:30 -04:00
echo '<div class="row"><div class="col-sm-12">' ;
2015-09-12 00:46:46 -04:00
$autorefreshInSeconds = $_SESSION [ 'autorefresh' ] / 1000 ;
2014-09-14 01:14:54 -04:00
if ( $autorefreshInSeconds >= MINIMUM_REFRESH_THRESHOLD_IN_SECONDS ) {
2015-09-12 00:46:46 -04:00
echo $hesklang [ 'autorefresh' ] . ' ' . $autorefreshInSeconds . ' ' . $hesklang [ 'abbr' ][ 'second' ];
2014-09-14 01:14:54 -04:00
?>
< script >
2015-09-12 00:46:46 -04:00
( function () {
setTimeout ( " location.reload(true); " , < ? php echo $_SESSION [ 'autorefresh' ]; ?> );
2014-09-14 01:14:54 -04:00
})();
</ script >
< ? php
2014-09-14 00:55:28 -04:00
}
2015-09-12 00:46:46 -04:00
if ( isset ( $is_search ) || $href == 'find_tickets.php' ) {
2015-01-19 00:13:49 -05:00
hesk_show_notice ( $hesklang [ 'no_tickets_crit' ]);
2015-09-12 00:46:46 -04:00
} else {
2015-01-19 00:13:49 -05:00
hesk_show_notice ( $hesklang [ 'no_tickets_open' ]);
2014-03-23 16:03:30 -04:00
}
2015-09-12 00:46:46 -04:00
2014-03-23 16:03:30 -04:00
echo '</div></div>' ;
}
2014-09-11 21:53:13 -04:00
echo ' </ div >
</ div > ' ;
2014-03-23 16:03:30 -04:00
function hesk_print_list_head ()
{
2015-01-12 21:00:20 -05:00
global $hesk_settings , $href , $query , $sort_possible , $hesklang ;
2015-09-12 00:46:46 -04:00
?>
< div class = " table-responsive " >
< table id = " ticket-table " class = " table table-hover " >
< thead >
< tr >
< th >< input type = " checkbox " id = " checkall " name = " checkall " value = " 2 " onclick = " hesk_changeAll(this) " /></ th >
< ? php
foreach ( $hesk_settings [ 'ticket_list' ] as $field ) {
echo '<th><a href="' . $href . '?' . $query . $sort_possible [ $field ] . '&sort=' . $field . '">' . $hesk_settings [ 'possible_ticket_list' ][ $field ] . '</a></th>' ;
}
?>
< th >< a href = " <?php echo $href . '?' . $query . $sort_possible['priority'] . '&sort='; ?>priority " >< i
class = " fa fa-sort-<?php echo(( $sort_possible['priority'] ) ? 'asc' : 'desc'); ?> " ></ i ></ a ></ th >
</ tr >
</ thead >
< ? php
2014-03-23 16:03:30 -04:00
} // END hesk_print_list_head()
function hesk_time_since ( $original )
{
2015-09-12 00:46:46 -04:00
global $hesk_settings , $hesklang , $mysql_time ;
2014-03-23 16:03:30 -04:00
/* array of time period chunks */
$chunks = array (
2015-09-12 00:46:46 -04:00
array ( 60 * 60 * 24 * 365 , $hesklang [ 'abbr' ][ 'year' ]),
array ( 60 * 60 * 24 * 30 , $hesklang [ 'abbr' ][ 'month' ]),
2014-03-23 16:03:30 -04:00
array ( 60 * 60 * 24 * 7 , $hesklang [ 'abbr' ][ 'week' ]),
2015-09-12 00:46:46 -04:00
array ( 60 * 60 * 24 , $hesklang [ 'abbr' ][ 'day' ]),
array ( 60 * 60 , $hesklang [ 'abbr' ][ 'hour' ]),
array ( 60 , $hesklang [ 'abbr' ][ 'minute' ]),
array ( 1 , $hesklang [ 'abbr' ][ 'second' ]),
2014-03-23 16:03:30 -04:00
);
2015-09-12 00:46:46 -04:00
/* Invalid time */
if ( $mysql_time < $original ) {
// DEBUG return "T: $mysql_time (".date('Y-m-d H:i:s',$mysql_time).")<br>O: $original (".date('Y-m-d H:i:s',$original).")";
return " 0 " . $hesklang [ 'abbr' ][ 'second' ];
2014-03-23 16:03:30 -04:00
}
$since = $mysql_time - $original ;
// $j saves performing the count function each time around the loop
for ( $i = 0 , $j = count ( $chunks ); $i < $j ; $i ++ ) {
$seconds = $chunks [ $i ][ 0 ];
$name = $chunks [ $i ][ 1 ];
// finding the biggest chunk (if the chunk fits, break)
if (( $count = floor ( $since / $seconds )) != 0 ) {
// DEBUG print "<!-- It's $name -->\n";
break ;
}
}
$print = " $count { $name } " ;
if ( $i + 1 < $j ) {
// now getting the second item
$seconds2 = $chunks [ $i + 1 ][ 0 ];
$name2 = $chunks [ $i + 1 ][ 1 ];
// add second item if it's greater than 0
if (( $count2 = floor (( $since - ( $seconds * $count )) / $seconds2 )) != 0 ) {
$print .= " $count2 { $name2 } " ;
}
}
return $print ;
} // END hesk_time_since()
2015-01-12 21:00:20 -05:00
function hesk_time_lastchange ( $original )
{
global $hesk_settings , $hesklang ;
// Save time format setting so we can restore it later
$copy = $hesk_settings [ 'timeformat' ];
// We need this time format for this function
$hesk_settings [ 'timeformat' ] = 'Y-m-d H:i:s' ;
// Get HESK time-adjusted start of today if not already
2015-09-12 00:46:46 -04:00
if ( ! defined ( 'HESK_TIME_TODAY' )) {
2015-01-12 21:00:20 -05:00
// Adjust for HESK time and define constants for alter use
2015-09-12 00:46:46 -04:00
define ( 'HESK_TIME_TODAY' , date ( 'Y-m-d 00:00:00' , hesk_date ( NULL , false , false , false )));
define ( 'HESK_TIME_YESTERDAY' , date ( 'Y-m-d 00:00:00' , strtotime ( HESK_TIME_TODAY ) - 86400 ));
2015-01-12 21:00:20 -05:00
}
// Adjust HESK time difference and get day name
$ticket_time = hesk_date ( $original , true );
2015-09-12 00:46:46 -04:00
if ( $ticket_time >= HESK_TIME_TODAY ) {
2015-01-12 21:00:20 -05:00
// For today show HH:MM
$day = substr ( $ticket_time , 11 , 5 );
2015-09-12 00:46:46 -04:00
} elseif ( $ticket_time >= HESK_TIME_YESTERDAY ) {
2015-01-12 21:00:20 -05:00
// For yesterday show word "Yesterday"
$day = $hesklang [ 'r2' ];
2015-09-12 00:46:46 -04:00
} else {
2015-01-12 21:00:20 -05:00
// For other days show DD MMM YY
2015-09-12 00:46:46 -04:00
list ( $y , $m , $d ) = explode ( '-' , substr ( $ticket_time , 0 , 10 ));
$day = '<span style="white-space: nowrap;">' . $d . ' ' . $hesklang [ 'ms' . $m ] . ' ' . substr ( $y , 2 ) . '</span>' ;
2015-01-12 21:00:20 -05:00
}
// Restore original time format setting
$hesk_settings [ 'timeformat' ] = $copy ;
// Return value to display
return $day ;
} // END hesk_time_lastchange()