mirror of https://github.com/itflow-org/itflow
Do not require Client for Projects, allow to add multiple tickets at once when adding tickets to a project
This commit is contained in:
parent
b605f62175
commit
99c6321fbb
|
|
@ -146,7 +146,6 @@ if (isset($_POST['add_project_ticket'])) {
|
|||
|
||||
validateTechRole();
|
||||
$project_id = intval($_POST['project_id']);
|
||||
$ticket_id = intval($_POST['ticket_id']);
|
||||
|
||||
// Get Project Name
|
||||
$sql = mysqli_query($mysqli, "SELECT * FROM projects WHERE project_id = $project_id");
|
||||
|
|
@ -154,6 +153,11 @@ if (isset($_POST['add_project_ticket'])) {
|
|||
$client_id = intval($row['project_client_id']);
|
||||
$project_name = sanitizeInput($row['project_name']);
|
||||
|
||||
// Add Tickets
|
||||
if (!empty($_POST['tickets'])) {
|
||||
foreach ($_POST['tickets'] as $ticket) {
|
||||
$ticket_id = intval($ticket);
|
||||
|
||||
// Get Ticket Info
|
||||
$sql = mysqli_query($mysqli, "SELECT * FROM tickets WHERE ticket_project_id = $project_id");
|
||||
$row = mysqli_fetch_array($sql);
|
||||
|
|
@ -164,7 +168,10 @@ if (isset($_POST['add_project_ticket'])) {
|
|||
// Logging
|
||||
mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Project', log_action = 'Edit', log_description = '$session_name added a ticket $ticket_subject to project $project_name', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $project_id");
|
||||
|
||||
$_SESSION['alert_message'] = "You added Ticket <strong>$ticket_subject</strong> to <strong>$project_name</strong>";
|
||||
}
|
||||
}
|
||||
|
||||
$_SESSION['alert_message'] = "You added Tickets to <strong>$project_name</strong>";
|
||||
|
||||
header("Location: " . $_SERVER["HTTP_REFERER"]);
|
||||
}
|
||||
|
|
@ -90,13 +90,13 @@
|
|||
|
||||
<?php if (empty($_GET['client_id'])) { ?>
|
||||
<div class="form-group">
|
||||
<label>Client <strong class="text-danger">*</strong></label>
|
||||
<label>Client</label>
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text"><i class="fa fa-fw fa-users"></i></span>
|
||||
</div>
|
||||
<select class="form-control select2" name="client_id" required>
|
||||
<option value="">- Client -</option>
|
||||
<select class="form-control select2" name="client_id">
|
||||
<option vlaue="0">- No Client -</option>
|
||||
<?php
|
||||
$sql = mysqli_query($mysqli, "SELECT * FROM clients WHERE client_archived_at IS NULL $access_permission_query ORDER BY client_name ASC");
|
||||
while ($row = mysqli_fetch_array($sql)) {
|
||||
|
|
|
|||
|
|
@ -35,6 +35,11 @@ if (isset($_GET['project_id'])) {
|
|||
|
||||
$client_id = intval($row['client_id']);
|
||||
$client_name = nullable_htmlentities($row['client_name']);
|
||||
if ($client_name) {
|
||||
$client_name_display = "<div class='text-secondary'><i class='fas fa-fw fa-users mr-2'></i>$client_name</div>";
|
||||
} else {
|
||||
$client_name_display = "";
|
||||
}
|
||||
|
||||
$project_manager = intval($row['user_id']);
|
||||
$project_manager_name = nullable_htmlentities($row['user_name']);
|
||||
|
|
@ -137,13 +142,10 @@ if (isset($_GET['project_id'])) {
|
|||
</div>
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<div class="media">
|
||||
<i class="fa fa-fw fa-2x fa-users text-secondary mr-3"></i>
|
||||
<div class="media-body">
|
||||
<h3 class="mb-0"><?php echo $client_name; ?></h3>
|
||||
<?php echo $project_manager_display; ?>
|
||||
<div><?php echo $client_name_display; ?></div>
|
||||
<div><?php echo $project_manager_display; ?></div>
|
||||
<div class='text-secondary'><i class='fa fa-fw fa-clock mr-2'></i><?php echo $project_due; ?></div>
|
||||
<?php echo $project_completed_date_display; ?>
|
||||
<div><?php echo $project_completed_date_display; ?></div>
|
||||
<!-- Time tracking -->
|
||||
<?php if ($ticket_total_reply_time) { ?>
|
||||
<div>
|
||||
|
|
@ -151,8 +153,6 @@ if (isset($_GET['project_id'])) {
|
|||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-3">
|
||||
<?php if($ticket_count) { ?>
|
||||
|
|
|
|||
|
|
@ -17,16 +17,18 @@
|
|||
<div class="input-group-prepend">
|
||||
<span class="input-group-text"><i class="fa fa-fw fa-life-ring"></i></span>
|
||||
</div>
|
||||
<select class="form-control select2" name="ticket_id" required>
|
||||
<option value="">- Select a Ticket -</option>
|
||||
<select class="form-control select2" multiple name="tickets[]" required>
|
||||
<option value="">- Select a Tickets -</option>
|
||||
<?php
|
||||
|
||||
$sql_tickets_select = mysqli_query($mysqli, "SELECT * FROM tickets WHERE ticket_project_id != $project_id AND ticket_client_id = $client_id AND ticket_closed_at IS NULL");
|
||||
$sql_tickets_select = mysqli_query($mysqli, "SELECT * FROM tickets WHERE ticket_project_id = 0 AND ticket_closed_at IS NULL");
|
||||
while ($row = mysqli_fetch_array($sql_tickets_select)) {
|
||||
$ticket_id_select = intval($row['ticket_id']);
|
||||
$ticket_prefix_select = nullable_htmlentities($row['ticket_prefix']);
|
||||
$ticket_number_select = intval($row['ticket_number']);
|
||||
$ticket_subject_select = nullable_htmlentities($row['ticket_subject']);
|
||||
?>
|
||||
<option value="<?php echo $ticket_id_select; ?>"><?php echo $ticket_subject_select; ?></option>
|
||||
<option value="<?php echo $ticket_id_select; ?>"><?php echo "$ticket_prefix_select $ticket_number_select - $ticket_subject_select"; ?></option>
|
||||
<?php
|
||||
}
|
||||
|
||||
|
|
|
|||
13
projects.php
13
projects.php
|
|
@ -23,7 +23,7 @@ if($status == 1) {
|
|||
// Ticket client access snippet
|
||||
$project_permission_snippet = '';
|
||||
if (!empty($client_access_string)) {
|
||||
$project_permission_snippet = "AND project_client_id IN ($client_access_string)";
|
||||
$project_permission_snippet = "AND project_client_id IN ($client_access_string) OR project_client_id = 0";
|
||||
}
|
||||
|
||||
//Rebuild URL
|
||||
|
|
@ -146,6 +146,11 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()"));
|
|||
|
||||
$client_id = intval($row['client_id']);
|
||||
$client_name = nullable_htmlentities($row['client_name']);
|
||||
if ($client_name) {
|
||||
$client_name_display = "<a href='client_tickets.php?client_id=$client_id'>$client_name</a>";
|
||||
} else {
|
||||
$client_name_display = "-";
|
||||
}
|
||||
|
||||
$project_manager = intval($row['user_id']);
|
||||
if ($project_manager) {
|
||||
|
|
@ -229,11 +234,7 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()"));
|
|||
<td><?php echo $project_completed_at_display; ?></td>
|
||||
<?php } ?>
|
||||
<td><?php echo $project_manager_display; ?></td>
|
||||
<td>
|
||||
<a href="client_tickets.php?client_id=<?php echo $client_id; ?>">
|
||||
<?php echo $client_name; ?>
|
||||
</a>
|
||||
</td>
|
||||
<td><?php echo $client_name_display; ?></td>
|
||||
<td><?php echo $project_created_at_display; ?></td>
|
||||
<td>
|
||||
<div class="dropdown dropleft text-center">
|
||||
|
|
|
|||
Loading…
Reference in New Issue