Example #1
0
function emailITticket($id, $scenario, $admin = false, $debug = false)
{
    global $_josh, $page;
    $ticket = db_grab('SELECT
			u.id,
			(SELECT COUNT(*) FROM users_to_modules a WHERE a.user_id = u.id AND a.module_id = 3) isUserAdmin,
			t.title,
			t.created_user,
			t.description,
			t.departmentID,
			ISNULL(u.nickname, u.firstname) first,
			u.lastname last,
			u.email,
			' . db_updated('u') . ',
			t.created_date,
			t.priorityID,
			t.statusID,
			d.shortName department,
			t.type_id,
			y.description type,
			u2.email as ownerEmail,
			t.ownerID,
			ISNULL(u2.nickname, u2.firstname) as ownerName
		FROM helpdesk_tickets t
		LEFT JOIN helpdesk_tickets_types y	ON t.type_id = y.id
		JOIN users u ON t.created_user = u.id
		JOIN departments d ON t.departmentID = d.departmentID
		LEFT JOIN users u2 ON t.ownerID = u2.id
		WHERE t.id = ' . $id);
    //yellow box
    if ($scenario == "followup") {
        $subject = "Followup On Your Helpdesk Ticket";
        $message = drawMessage('There\'s been followup on your Helpdesk ticket - please see below.  <b>Don\'t reply to this email!</b>  Instead, please ' . draw_link('/helpdesk/ticket.php?id=' . $id, 'view your ticket') . ' in the intranet ticketing system.<br><br><b>Note:</b> if you add this sender to your "safe senders list," pictures will always download.');
    } elseif ($scenario == "followupadmin") {
        $subject = "Admin Followup on Helpdesk Ticket";
        $message = drawMessage(draw_link('/staff/view.php?id=' . user(), $_SESSION['full_name']) . ' just made an administrative followup on this Helpdesk ticket.  Regular staff were not copied on this message.');
    } elseif ($scenario == "closed") {
        $subject = "Your Ticket Has Been Closed";
        $message = drawMessage('This is to let you know that your ticket has been closed.  <b>Don\'t reply to this email!</b>  You can still followup on this thread by ' . draw_link('/helpdesk/ticket.php?id=' . $id, 'viewing your ticket') . ' in the intranet ticketing system.<br><br><b>Note:</b> if you add this sender to your "safe senders list," pictures will always download.');
    } elseif ($scenario == "assign") {
        $subject = "Your Ticket Has Been Assigned";
        $message = drawMessage(draw_link('/staff/view.php?id=' . user(), $_SESSION["full_name"]) . ' has assigned this ticket to ' . draw_link('/staff/view.php?id=' . $ticket['ownerID'], $ticket["ownerName"]) . '<b>Don\'t reply to this email!</b>  Instead, please ' . draw_link('/helpdesk/ticket.php?id=' . $id, 'view your ticket') . ' in the intranet ticketing system.<br><br><b>Note:</b> if you add this sender to your "safe senders list," pictures will always download.');
    } elseif ($scenario == "new") {
        $subject = "New " . $ticket["department"] . " Ticket Posted";
        $message = drawMessage('This is to let you know that a new ticket has just been posted to the Helpdesk.  You can ' . draw_link('/helpdesk/ticket.php?id=' . $id, 'view the ticket') . ' in the intranet ticketing system.');
    } elseif ($scenario == "critical") {
        $subject = "Critical " . $ticket["department"] . " Ticket Still Open";
        $message = drawMessage('A ticket flagged "Critical" is open on the Helpdesk.  You can ' . draw_link('/helpdesk/ticket.php?id=' . $id, 'view the ticket') . ' in the intranet ticketing system.');
    }
    //$message .= drawtableStart() . drawHeaderRow(false, 2);
    //recipients arrays
    $users = array();
    $admins = array();
    if ($ticket["isUserAdmin"]) {
        $admins[] = $ticket["email"];
    } else {
        $users[] = $ticket["email"];
    }
    if ($page['is_admin']) {
        $admins[] = $_SESSION["email"];
    } else {
        $users[] = $_SESSION["email"];
    }
    //add owner if ticket is assigned
    if ($ticket["ownerEmail"]) {
        $admins[] = $ticket["ownerEmail"];
    }
    //owner logically has to be admin
    $d_user = new display($page['breadcrumbs'] . $ticket['title'], false, false, 'thread');
    $d_admin = new display($page['breadcrumbs'] . $ticket['title'], false, false, 'thread');
    $d_user->row(drawName($ticket['created_user'], $ticket['first'] . ' ' . $ticket['last'], $ticket['created_date'], true, BR, $ticket['updated']), draw_h1($ticket['title']) . $ticket['description']);
    $d_admin->row(drawName($ticket['created_user'], $ticket['first'] . ' ' . $ticket['last'], $ticket['created_date'], true, BR, $ticket['updated']), draw_h1($ticket['title']) . $ticket['description']);
    //get followups
    $followups = db_query('SELECT
			u.id,
			f.message,
			(SELECT COUNT(*) FROM users_to_modules u2m WHERE u2m.user_id = u.id AND u2m.module_id = 3 AND u2m.is_admin = 1) isUserAdmin,
			ISNULL(u.nickname, u.firstname) firstname,
			u.lastname,
			u.email,
			f.created_date,
			f.is_admin,
			f.created_user,
			' . db_updated('u') . '
		FROM helpdesk_tickets_followups f
		INNER JOIN users  u  ON f.created_user	= u.id
		WHERE f.ticketID = ' . $id . ' ORDER BY f.created_date');
    while ($f = db_fetch($followups)) {
        $d_admin->row(drawName($f['created_user'], $f['firstname'] . ' ' . $f['lastname'], $f['created_date'], true, BR, $f['updated']), $f['message']);
        if (!$f['is_admin']) {
            $d_user->row(drawName($f['created_user'], $f['firstname'] . ' ' . $f['lastname'], $f['created_date'], true, BR, $f['updated']), $f['message']);
        }
        if ($f['isUserAdmin']) {
            $admins[] = $f['email'];
        } else {
            $users[] = $f['email'];
        }
    }
    $admins = array_remove($_SESSION['email'], array_unique($admins));
    $users = array_remove($_SESSION['email'], array_unique($users));
    if ($debug) {
        die(drawEmail($message . $d_admin->draw()));
    }
    //special codes for email
    //todo: put this in db, possibly by adding something to the users table or something
    if ($scenario == "new" && $ticket["departmentID"] == 3) {
        $admins = array('*****@*****.**', '*****@*****.**', '*****@*****.**');
    }
    if ($scenario == "new" && $ticket["departmentID"] == 13) {
        $admins = array('*****@*****.**', '*****@*****.**');
    }
    if ($scenario == "new" && $ticket["departmentID"] == 2) {
        $admins = array('*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**');
    }
    if ($scenario == "critical" && $ticket["departmentID"] == 8) {
        $admins = array('*****@*****.**');
    }
    if (count($admins)) {
        //$admins = join(", ", $admins);
        email($admins, drawEmail($message . $d_admin->draw()), $subject);
        error_debug('admin message emailed to ' . implode(', ', $admins) . ' admins', __FILE__, __LINE__);
    }
    if (count($users) && $scenario != "followupadmin" && !$admin) {
        //$users = join(", ", $users);
        email($users, drawEmail($message . $d_user->draw()), $subject);
        error_debug('user message emailed to ' . implode(', ', $users) . ' users', __FILE__, __LINE__);
    }
}
Example #2
0
function drawThreadTop($title, $content, $user_id, $fullname, $date, $editurl = false)
{
    global $_josh;
    $return = '<tr>
			<td height="150" class="left">' . drawName($user_id, $fullname, $date, true, false) . '</td>
			<td class="text"><div class="text top"><h1>' . $title . '</h1>';
    if ($editurl) {
        $return .= '<a class="right button floating" href="' . $editurl . '">edit this</a>';
    }
    $return .= str_replace('href="../', 'href="http://' . $_josh['request']['host'] . '/', $content) . '
			</div></td>
		</tr>';
    return $return;
}
Example #3
0
 function addRow($type, $title, $name = "", $value = "", $default = "", $required = false, $maxlength = 50, $onchange = false)
 {
     global $rows, $js, $months, $month, $today, $year, $_josh;
     $textlength = $maxlength > 50 ? 50 : $maxlength;
     $value = trim($value);
     if ($type == "raw") {
         $rows .= $title;
     } else {
         $rows .= '<tr>';
         if ($type != "button" && $type != "submit" && $type != "hidden" && $type != "raw") {
             $rows .= '<td class="left">' . $title . '</td>';
         }
         if ($type == "text") {
             //output text, no form element
             $rows .= '<td>' . $value . '</td>';
         } elseif ($type == "date") {
             $rows .= '<td>' . draw_form_date($name, $value, false, false, $required) . '</td>';
         } elseif ($type == "datetime") {
             $rows .= '<td>' . draw_form_date($name, $value, true) . '</td>';
         } elseif ($type == "checkbox") {
             $rows .= '<td>' . draw_form_checkbox($name, $value) . '</td>';
         } elseif ($type == "itext") {
             $rows .= '<td>' . draw_form_text($name, $value, false, $maxlength) . '</td>';
             if ($required) {
                 $js .= "if (!form." . $name . ".value.length) errors[errors.length] = 'the \\'" . $title . "\\' field is empty';" . $_josh["newline"];
             }
         } elseif ($type == "phone") {
             $rows .= '<td>' . draw_form_text($name, $value, 14, $maxlength) . '</td>';
             if ($required) {
                 $js .= "if (!form." . $name . ".value.length) errors[errors.length] = 'the \\'" . $title . "\\' field is empty';" . $_josh["newline"];
             }
         } elseif ($type == "extension") {
             $rows .= '<td>' . draw_form_text($name, $value, 4, $maxlength) . '</td>';
             if ($required) {
                 $js .= "if (!form." . $name . ".value.length) errors[errors.length] = 'the \\'" . $title . "\\' field is empty';" . $_josh["newline"];
             }
         } elseif ($type == "password") {
             $rows .= '<td>' . draw_form_password($name, $value, $textlength, $maxlength) . '</td>';
             if ($required) {
                 $js .= "if (!form." . $name . ".value.length) errors[errors.length] = 'the \\'" . $title . "\\' field is empty';" . $_josh["newline"];
             }
         } elseif ($type == "select") {
             $rows .= '<td>';
             $rows .= draw_form_select($name, $value, $default, $required, false, $onchange);
             $rows .= '</td>';
         } elseif ($type == "user") {
             $result = db_query("SELECT \n\t\t\t\t\t\t\t\t\t\t\tuserID, \n\t\t\t\t\t\t\t\t\t\t\tISNULL(nickname, firstname) first,\n\t\t\t\t\t\t\t\t\t\t\tlastname last \n\t\t\t\t\t\t\t\t\t\tFROM intranet_users\n\t\t\t\t\t\t\t\t\t\tWHERE isActive = 1\n\t\t\t\t\t\t\t\t\t\tORDER by lastname");
             while ($r = db_fetch($result)) {
                 $options[$r["userID"]] = $r["first"] . ", " . $r["last"];
             }
             $rows .= '<td>';
             $rows .= draw_form_select($name, $options, $default, $required, false, $onchange);
             $rows .= '</td>';
         } elseif ($type == "department") {
             $rows .= '<td><select name="' . $name . '">';
             $result = db_query("SELECT \n\t\t\t\t\t\t\t\t\t\t\tdepartmentID,\n\t\t\t\t\t\t\t\t\t\t\tdepartmentName,\n\t\t\t\t\t\t\t\t\t\t\tquoteLevel\n\t\t\t\t\t\t\t\t\t\tFROM intranet_departments\n\t\t\t\t\t\t\t\t\t\tWHERE isActive = 1\n\t\t\t\t\t\t\t\t\t\tORDER by precedence");
             while ($r = db_fetch($result)) {
                 $rows .= '<option value="' . $r["departmentID"] . '"';
                 if ($r["departmentID"] == $default) {
                     $rows .= ' selected';
                 }
                 $rows .= '>';
                 if ($r["quoteLevel"] == 2) {
                     $rows .= "&nbsp;&#183;&nbsp;";
                 } elseif ($r["quoteLevel"] == 3) {
                     $rows .= "&nbsp;&nbsp;&nbsp;-&nbsp;";
                 }
                 $rows .= $r["departmentName"] . '</option>';
             }
             $rows .= '</select></td>';
         } elseif ($type == "userpic") {
             $rows .= '<td>' . drawName($name, $value, $default, true, " ") . '</td>';
         } elseif ($type == "textarea") {
             $rows .= '<td>' . draw_form_textarea($name, $value) . '</td>';
             $js .= " tinyMCE.triggerSave();" . $_josh["newline"];
             if ($required) {
                 $js .= "if (!form." . $name . ".value.length || (form." . $name . ".value == '<p>&nbsp;</p>')) errors[errors.length] = 'the \\'" . $title . "\\' field is empty';" . $_josh["newline"];
             }
         } elseif ($type == "textarea-plain") {
             $rows .= '<td>' . draw_form_textarea($name, $value, "noMceEditor") . '</td>';
             if ($required) {
                 $js .= "if (!form." . $name . ".value.length) errors[errors.length] = 'the \\'" . $title . "\\' field is empty';" . $_josh["newline"];
             }
         } elseif ($type == "hidden") {
             $rows .= draw_form_hidden($name, $value);
         } elseif ($type == "submit") {
             $rows .= '<td colspan="2" align="center" class="bottom">' . draw_form_submit($title, "button") . '</td>';
         } elseif ($type == "button") {
             $rows .= '<td colspan="2" align="center" class="bottom">' . draw_form_button($title, $value, "button") . '</td>';
         } elseif ($type == "file") {
             $rows .= '<td>' . draw_form_file($name) . '</td>';
         }
         $rows .= '</tr>' . $_josh["newline"];
     }
 }
Example #4
0
echo $e["color"];
?>
;"><?php 
echo $e["type"];
?>
</span></td>
	</tr>
	<tr>
		<td class="left">Start Date</td>
		<td><?php 
echo format_date_time($e["startDate"]);
?>
</td>
	</tr>
	<tr valign="top">
		<td class="left" height="200">Description</td>
		<td class="text"><?php 
echo $e["description"];
?>
</td>
	</tr>
	<tr valign="top">
		<td class="left">Created</td>
		<td><?php 
echo drawName($e["createdBy"], $e["first"] . " " . $e["last"], $e["createdOn"], true);
?>
</td>
	</tr>
</table>
<?php 
drawBottom();
Example #5
0
				c.title' . langExt() . ' title
			FROM cal_events_to_channels e2c
			JOIN channels c ON e2c.channel_id = c.id
			WHERE e2c.event_id = ' . $_GET["id"]);
    while ($c = db_fetch($channels)) {
        ?>
				 &#183; <?php 
        echo $c["title"];
        ?>
</a><br>
			<?php 
    }
    ?>
		</td>
	</tr>
	<?php 
}
?>
	<tr valign="top">
		<td class="left"><?php 
echo getString('posted_by');
?>
</td>
		<td><?php 
echo drawName($e["created_user"], $e["first"] . " " . $e["last"], $e["created_date"], true, $e['updated']);
?>
</td>
	</tr>
</table>
<?php 
echo drawBottom();
Example #6
0
							ISNULL(u.nickname, u.firstname) first,
							u.lastname last,
							u.id,
							c.checkoutStart, 
							c.checkoutEnd,
							c.checkoutNotes,
							' . db_updated('u') . '
						FROM it_laptops_Checkouts c
						INNER JOIN users u ON c.checkoutUser = u.id
						WHERE checkoutLaptopID = " . $_GET["id"] . "
						ORDER BY checkoutStart DESC');
while ($r = db_fetch($result)) {
    ?>
	<tr>
		<td><?php 
    echo drawName($r["id"], $r["first"] . " " . $r["last"], false, true, $r['updated']);
    ?>
</td>
		<td><?php 
    echo format_date($r["checkoutStart"]);
    ?>
</td>
		<td><?php 
    echo format_date($r["checkoutEnd"]);
    ?>
</td>
		<td><?php 
    echo nl2br($r["checkoutNotes"]);
    ?>
</td>
	</tr>
Example #7
0
function bbDrawTopic($id, $email = false)
{
    global $_josh, $page;
    if (!($r = db_grab('SELECT 
		t.title' . langExt() . ' title,
		t.description' . langExt() . ' description,
		t.created_date,
		t.is_admin,
		t.type_id,
		y.title' . langExt() . ' type,
		u.id created_user,
		ISNULL(u.nickname, u.firstname) firstname,
		u.lastname,
		' . db_updated('u') . '
	FROM bb_topics t
	JOIN users u ON t.created_user = u.id
	LEFT JOIN bb_topics_types y ON t.type_id = y.id
	WHERE t.id = ' . $id))) {
        return false;
    }
    $return = '';
    if ($r['is_admin'] == 1) {
        $return .= drawMessage(getString('topic_admin'));
    }
    $options = ($page['is_admin'] || user() == $r['created_user']) && !$email ? array('edit.php?id=' . $id => getString('edit'), 'javascript:checkDelete();' => getString('delete')) : false;
    //display topic thread
    $d = new display($page['breadcrumbs'] . $r['title'], false, $options, 'thread');
    //if categories
    if (getOption('bb_types') && $r['type']) {
        $r['description'] .= draw_div_class('light', getString('category') . ': ' . draw_link('category.php?id=' . $r['type_id'], $r['type']));
    }
    //channels
    if (getOption('channels') && ($channels = db_array('SELECT c.title' . langExt() . ' title FROM channels c JOIN bb_topics_to_channels t2c ON c.id = t2c.channel_id WHERE t2c.topic_id = ' . $id . ' ORDER BY title' . langExt()))) {
        $r['description'] .= draw_div_class('light', 'Networks: ' . implode(', ', $channels));
    }
    $d->row(drawName($r['created_user'], $r['firstname'] . ' ' . $r['lastname'], $r['created_date'], true, BR, $r['updated']), '<h1>' . $r['title'] . '</h1>' . $r['description']);
    //append followups
    if ($r['is_admin']) {
        $return .= $d->draw();
    } else {
        $followups = db_table('SELECT
					f.description' . langExt() . ' description,
					ISNULL(u.nickname, u.firstname) firstname,
					u.lastname,
					f.created_date,
					f.created_user,
					' . db_updated('u') . '
				FROM bb_followups f
				JOIN users u ON u.id = f.created_user
				WHERE f.is_active = 1 AND f.topic_id = ' . $id . '
				ORDER BY f.created_date');
        foreach ($followups as $f) {
            $d->row(drawName($f['created_user'], $f['firstname'] . ' ' . $f['lastname'], $f['created_date'], true, BR, $f['updated']), $f['description']);
        }
        $return .= $d->draw();
        if (!$email) {
            //add a followup form
            $f = new form('bb_followups', false, getString('add_followup'));
            $f->unset_fields('topic_id');
            langUnsetFields($f, 'description');
            $return .= $f->draw(false, false);
        }
    }
    return $return;
}