<?php $testSuite->createGroup('Requests / Tickets / Listing', function ($g) { $project = createProject(); $milestone = createMilestone($project); $ticketA = createTicket($project, $milestone); $ticketB = createTicket($project, $milestone); $g->test('List tickets', function ($t) use($project, $milestone, $ticketA, $ticketB) { $resp = $t->visit('tickets', ['routeTokens' => ['pslug' => $project['slug']]]); $t->assertContains('<h1 class="page-header">Tickets</h1>', $resp->body); $t->assertContains($project['name'], $resp->body); $t->assertContains($ticketA['summary'], $resp->body); $t->assertContains($ticketB['summary'], $resp->body); }); $g->test('Show ticket', function ($t) use($project, $ticketA) { $resp = $t->visit('ticket', ['routeTokens' => ['pslug' => $project['slug'], 'id' => $ticketA['ticket_id']]]); $t->assertContains($project['name'], $resp->body); $t->assertContains('<h1 class="page-header">#' . $ticketA['ticket_id'] . ' - ' . $ticketA['summary'] . '</h1>', $resp->body); $t->assertContains($ticketA['body'], $resp->body); }); });
} } } } catch (PDOException $e) { return array('error' => 'Error updating the ticket in the database'); } } // If data is posted... if ($_SERVER['REQUEST_METHOD'] == 'POST') { $raw_json = file_get_contents('php://input'); $json = json_decode($raw_json, true); if ($json !== null) { $pre_exist_check = getRequest($json['interaction_id']); // Insert ticket if ($pre_exist_check === null) { $create_ticket = createTicket($json); if ($create_ticket !== null) { header('Content-Type: application/json'); http_response_code(201); echo json_encode($create_ticket); exit; } else { header('Content-Type: application/json'); echo json_encode(['error' => 'Error: Ticket ID already in system!']); exit; } } else { $update_ticket = updateTicket($json); if ($update_ticket !== null) { header('Content-Type: application/json'); http_response_code(201);
check_login('reseller'); resellerHasFeature('support') or showBadRequestErrorPage(); /** @var $cfg iMSCP_Config_Handler_File */ $cfg = iMSCP_Registry::get('config'); $userId = $_SESSION['user_id']; // Checks if support ticket system is activated and if the reseller can access to it if (!hasTicketSystem($userId)) { redirectTo('index.php'); } if (isset($_POST['uaction'])) { if (empty($_POST['subject'])) { set_page_message(tr('You must specify a subject.'), 'error'); } elseif (empty($_POST['user_message'])) { set_page_message(tr('You must specify a message.'), 'error'); } else { createTicket($userId, $_SESSION['user_created_by'], $_POST['urgency'], $_POST['subject'], $_POST['user_message'], 2); redirectTo('ticket_system.php'); } } $userdata = array('OPT_URGENCY_1' => '', 'OPT_URGENCY_2' => '', 'OPT_URGENCY_3' => '', 'OPT_URGENCY_4' => ''); if (isset($_POST['urgency'])) { $userdata['URGENCY'] = intval($_POST['urgency']); } else { $userdata['URGENCY'] = 2; } switch ($userdata['URGENCY']) { case 1: $userdata['OPT_URGENCY_1'] = $cfg->HTML_SELECTED; break; case 3: $userdata['OPT_URGENCY_3'] = $cfg->HTML_SELECTED;
<?php use Traq\Models\Timeline; $testSuite->createGroup('Requests / Projects / Timeline', function ($g) { $project = createProject(); $ticket = $project->tickets()->fetch() ?: createTicket($project); $wikiPage = createWikiPage($project); $g->test('Empty timeline', function ($t) use($project, $ticket, $wikiPage) { $resp = $t->visit('timeline', ['routeTokens' => ['pslug' => $project['slug']]]); $t->assertContains($project['name'], $resp->body); $t->assertContains('<h1 class="page-header">Timeline</h1>', $resp->body); $t->assertNotContains($ticket['summary'], $resp->body); }); $g->test('With events', function ($t) use($project, $ticket, $wikiPage) { $newTicketEvent = Timeline::newTicketEvent($ticket->user(), $ticket); $newTicketEvent->save(); $updatedTicketEvent = Timeline::updateTicketEvent($ticket->user(), $ticket, 'ticket_updated', $ticket->status()['name']); $updatedTicketEvent->save(); $closedTicketEvent = Timeline::updateTicketEvent($ticket->user(), $ticket, 'ticket_closed', $ticket->status()['name']); $closedTicketEvent->save(); $completedMilestoneEvent = Timeline::milestoneCompletedEvent($ticket->user(), $ticket->milestone()); $completedMilestoneEvent->save(); $wikiPageCreatedEvent = Timeline::wikiPageCreatedEvent($ticket->user(), $wikiPage); $wikiPageCreatedEvent->save(); $resp = $t->visit('timeline', ['routeTokens' => ['pslug' => $project['slug']]]); $t->assertContains($project['name'], $resp->body); $t->assertContains('<h1 class="page-header">Timeline</h1>', $resp->body); $t->assertContains($ticket['summary'], $resp->body); $t->assertContains($wikiPage['title'], $resp->body); }); });
<?php $testSuite->createGroup('Requests / Projects / Listing', function ($g) { $project = createProject(); $ticket = createTicket($project); $ticket['status_id'] = 5; $ticket->save(); $ticket->milestone()->status = 2; $ticket->milestone()->save(); $g->test('List projects', function ($t) use($project) { $resp = $t->visit('projects'); $t->assertContains('<h1 class="page-header">Projects</h1>', $resp->body); $t->assertContains($project['name'], $resp->body); }); $g->test('Show project', function ($t) use($project) { $resp = $t->visit('project', ['routeTokens' => ['pslug' => $project['slug']]]); $t->assertContains('<h1 class="page-header">' . $project['name'] . '</h1>', $resp->body); }); $g->test('Show changelog', function ($t) use($project) { $resp = $t->visit('changelog', ['routeTokens' => ['pslug' => $project['slug']]]); $t->assertContains('<h1 class="page-header">Changelog</h1>', $resp->body); }); });
<div class="alert alert-block alert-info"> <p> Enter information for your account as desired. Fields marked with an asterisk are required. </p> </div> <div class="row"> <div id="acct-password-row" class="span7"> <fieldset> <legend>Ticket Form</legend><br> <?php if (isset($_POST['action']) && !isset($_GET['update'])) { $ticket = array('ticket_name' => $_POST['ticket_name'], 'ticket_notes' => nl2br($_POST['ticket_notes']), 'ticket_status' => $_POST['ticket_status'], 'case_id' => $_GET['case'], 'created_by' => $_SESSION['user']['employee_id']); $ticket_id = createTicket($ticket); if ($ticket_id > -1) { echo "<script>window.location.replace('/scc/?page=ticketview&ticket={$ticket_id}');</script>"; } } ?> <div class="control-group "> <label class="control-label">Ticket Name<span class="required">*</span></label> <div class="controls"> <input id="current-pass-control" name="ticket_name" class="span4" type="text" value="<?php if ($ticket) { echo $ticket->ticket_name; } ?> " <?php
$cfg = EasySCP_Registry::get('Config'); $tpl = EasySCP_TemplateEngine::getInstance(); $template = 'common/ticket_create.tpl'; // dynamic page data $admin_id = $_SESSION['user_created_by']; if (!hasTicketSystem($admin_id)) { user_goto('index.php'); } if (isset($_POST['uaction'])) { if (empty($_POST['subj'])) { set_page_message(tr('Please specify message subject!'), 'warning'); } else { if (empty($_POST['user_message'])) { set_page_message(tr('Please type your message!'), 'warning'); } else { createTicket($_SESSION['user_id'], $_SESSION['user_created_by'], $_POST['urgency'], $_POST['subj'], $_POST['user_message'], 2); user_goto('ticket_system.php'); } } } $userdata = array('OPT_URGENCY_1' => '', 'OPT_URGENCY_2' => '', 'OPT_URGENCY_3' => '', 'OPT_URGENCY_4' => ''); if (isset($_POST['urgency'])) { $userdata['URGENCY'] = intval($_POST['urgency']); } else { $userdata['URGENCY'] = 2; } switch ($userdata['URGENCY']) { case 1: $userdata['OPT_URGENCY_1'] = $cfg->HTML_SELECTED; break; case 3: