Added more placeholder headers to mailing list, added modal for edit mail campaign, added status colors and status buttons

This commit is contained in:
johnnyq 2022-01-23 01:08:19 -05:00
parent 5e6ff09218
commit fd77569bf1
4 changed files with 252 additions and 27 deletions

View File

@ -14,6 +14,9 @@
<li class="nav-item">
<a class="nav-link active" data-toggle="pill" href="#pills-campaign">Campaign</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="pill" href="#pills-content">Content</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="pill" href="#pills-recipients">Recipients</a>
</li>
@ -27,24 +30,73 @@
<div class="form-group">
<label>Campaign Name <strong class="text-danger">*</strong></label>
<input type="text" class="form-control" name="name" placeholder="Campaign Name" required autofocus>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-fw fa-paper-plane"></i></span>
</div>
<input type="text" class="form-control" name="name" placeholder="Campaign Name" required autofocus>
</div>
</div>
<div class="form-group">
<label>Email Subject <strong class="text-danger">*</strong></label>
<input type="text" class="form-control" name="subject" placeholder="Email Subject" required>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-fw fa-smile-wink"></i></span>
</div>
<input type="text" class="form-control" name="subject" placeholder="Email Subject" required>
</div>
</div>
<div class="form-group">
<label>From Name <strong class="text-danger">*</strong></label>
<input type="text" class="form-control" name="from_name" placeholder="From Name" required>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-fw fa-user"></i></span>
</div>
<input type="text" class="form-control" name="from_name" placeholder="From Name" required>
</div>
</div>
<div class="form-group">
<label>From Email <strong class="text-danger">*</strong></label>
<input type="text" class="form-control" name="from_email" placeholder="From Email" required>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-fw fa-envelope"></i></span>
</div>
<input type="text" class="form-control" name="from_email" placeholder="From Email" required>
</div>
</div>
<hr>
<div class="form-group">
<label>Schedule <strong class="text-danger">*</strong></label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-fw fa-clock"></i></span>
</div>
<input type="datetime-local" class="form-control" name="scheduled_time" placeholder="Schedule Date and Time">
</div>
</div>
<div class="form-group">
<label>Set Status <strong class="text-danger">*</strong></label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-fw fa-smile-wink"></i></span>
</div>
<select class="form-control" name="status">
<option>Draft</option>
<option>Queued</option>
</select>
</div>
</div>
</div>
<div class="tab-pane fade" id="pills-content">
<div class="form-group">
<textarea class="form-control summernote" name="content"></textarea>
</div>
@ -52,14 +104,9 @@
<div class="tab-pane fade" id="pills-recipients">
<legend>Recipients</legend>
<label>Select Recipients <strong class="text-danger">*</strong></label>
<div class="form-group">
<label>Email <strong class="text-danger">*</strong></label>
<input type="text" class="form-control" name="to_email" placeholder="Recipient Email">
</div>
<ul class="list-group">
<ul class="list-group mb-3">
<?php
$sql_tags_select = mysqli_query($mysqli,"SELECT * FROM tags WHERE tag_type = 1 AND company_id = $session_company_id ORDER BY tag_name ASC");
@ -91,17 +138,6 @@
</ul>
<legend>Schedule</legend>
<div class="form-group">
<label>Date <strong class="text-danger">*</strong></label>
<input type="date" class="form-control" name="date" placeholder="Date">
</div>
<div class="form-group">
<label>Time <strong class="text-danger">*</strong></label>
<input type="time" class="form-control" name="date" placeholder="Date">
</div>
</div>
</div>
@ -110,7 +146,7 @@
<div class="modal-footer bg-white">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
<button type="submit" name="add_campaign" class="btn btn-primary">Save and Continue</button>
<button type="submit" name="add_campaign" class="btn btn-primary">Save</button>
</div>
</form>
</div>

View File

@ -112,6 +112,11 @@
</div>
</div>
<div class="col-sm-8">
<div class="float-right">
<a href="#" class="btn btn-lg btn-default"><i class="fa fa-fw fa-pencil-ruler"></i> Draft</a>
<a href="#" class="btn btn-lg btn-default"><i class="fa fa-fw fa-clock"></i> Queued</a>
<a href="#" class="btn btn-lg btn-default"><i class="fa fa-fw fa-paper-plane"></i> Sent</a>
</div>
</div>
</div>
<div class="collapse mt-3 <?php if(!empty($_GET['dtf'])){ echo "show"; } ?>" id="advancedFilter">
@ -153,7 +158,11 @@
<thead class="text-dark <?php if($num_rows[0] == 0){ echo "d-none"; } ?>">
<tr>
<th><a class="text-dark" href="?<?php echo $url_query_strings_sb; ?>&sb=campaign_name&o=<?php echo $disp; ?>">Name</a></th>
<th><a class="text-dark" href="?<?php echo $url_query_strings_sb; ?>&sb=campaign_created_at&o=<?php echo $disp; ?>">Sent</a></th>
<th><a class="text-dark" href="?<?php echo $url_query_strings_sb; ?>&sb=campaign_created_at&o=<?php echo $disp; ?>">Opened</a></th>
<th><a class="text-dark" href="?<?php echo $url_query_strings_sb; ?>&sb=campaign_created_at&o=<?php echo $disp; ?>">Clicked</a></th>
<th><a class="text-dark" href="?<?php echo $url_query_strings_sb; ?>&sb=campaign_created_at&o=<?php echo $disp; ?>">Created</a></th>
<th><a class="text-dark" href="?<?php echo $url_query_strings_sb; ?>&sb=campaign_scheduled_at&o=<?php echo $disp; ?>">Scheduled</a></th>
<th><a class="text-dark" href="?<?php echo $url_query_strings_sb; ?>&sb=campaign_status&o=<?php echo $disp; ?>">Status</a></th>
<th class="text-center">Action</th>
</tr>
@ -170,11 +179,32 @@
$campaign_scheduled_at = $row['campaign_scheduled_at'];
$campaign_created_at = $row['campaign_created_at'];
//Set Badge color based off of campaign status
if($campaign_status == "Sent"){
$campaign_badge_color = "warning text-white";
}elseif($campaign_status == "Queued"){
$campaign_badge_color = "info";
}elseif($campaign_status == "Sending"){
$campaign_badge_color = "primary";
}elseif($campaign_status == "Sent"){
$campaign_badge_color = "success";
}else{
$campaign_badge_color = "secondary";
}
?>
<tr>
<td><a class="text-dark" href="campaign_details.php?campaign_id=<?php echo $campaign_id; ?>"><?php echo $campaign_name; ?></a></td>
<td><a href="campaign_details.php?campaign_id=<?php echo $campaign_id; ?>"><?php echo $campaign_name; ?></a></td>
<td>-</td>
<td>-</td>
<td>-</td>
<td><?php echo $campaign_created_at; ?></td>
<td><?php echo $campaign_status; ?></td>
<td><?php echo $campaign_scheduled_at; ?></td>
<td>
<span class="p-2 badge badge-<?php echo $campaign_badge_color; ?>">
<?php echo $campaign_status; ?>
</span>
</td>
<td>
<div class="dropdown dropleft text-center">
<button class="btn btn-secondary btn-sm" type="button" data-toggle="dropdown">

155
edit_campaign_modal.php Normal file
View File

@ -0,0 +1,155 @@
<div class="modal" id="editCampaignModal<?php echo $campaign_id; ?>" tabindex="-1">
<div class="modal-dialog modal-lg">
<div class="modal-content bg-dark">
<div class="modal-header">
<h5 class="modal-title"><i class="fa fa-fw fa-envelope"></i> <?php echo $campaign_name; ?></h5>
<button type="button" class="close text-white" data-dismiss="modal">
<span>&times;</span>
</button>
</div>
<form action="post.php" method="post" autocomplete="off">
<input type="hidden" name="campaign_id" value="<?php echo $campaign_id; ?>">
<div class="modal-body bg-white">
<ul class="nav nav-pills nav-justified mb-3">
<li class="nav-item">
<a class="nav-link active" data-toggle="pill" href="#pills-campaign<?php echo $campaign_id; ?>">Campaign</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="pill" href="#pills-content<?php echo $campaign_id; ?>">Content</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="pill" href="#pills-recipients<?php echo $campaign_id; ?>">Recipients</a>
</li>
</ul>
<hr>
<div class="tab-content">
<div class="tab-pane fade show active" id="pills-campaign<?php echo $campaign_id; ?>">
<div class="form-group">
<label>Campaign Name <strong class="text-danger">*</strong></label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-fw fa-paper-plane"></i></span>
</div>
<input type="text" class="form-control" name="name" placeholder="Campaign Name" value="<?php echo $campaign_name; ?>" required autofocus>
</div>
</div>
<div class="form-group">
<label>Email Subject <strong class="text-danger">*</strong></label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-fw fa-smile-wink"></i></span>
</div>
<input type="text" class="form-control" name="subject" placeholder="Email Subject" value="<?php echo $campaign_subject; ?>" required>
</div>
</div>
<div class="form-group">
<label>From Name <strong class="text-danger">*</strong></label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-fw fa-user"></i></span>
</div>
<input type="text" class="form-control" name="from_name" placeholder="From Name" value="<?php echo $campaign_from_name; ?>" required>
</div>
</div>
<div class="form-group">
<label>From Email <strong class="text-danger">*</strong></label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-fw fa-envelope"></i></span>
</div>
<input type="text" class="form-control" name="from_email" placeholder="From Email" value="<?php echo $campaign_from_email; ?>" required>
</div>
</div>
<hr>
<div class="form-group">
<label>Schedule <strong class="text-danger">*</strong></label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-fw fa-clock"></i></span>
</div>
<input type="datetime-local" class="form-control" name="scheduled_time" placeholder="Schedule Date and Time" value="<?php echo $campaign_scheduled_at; ?>">
</div>
</div>
<div class="form-group">
<label>Set Status <strong class="text-danger">*</strong></label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-fw fa-smile-wink"></i></span>
</div>
<select class="form-control" name="status">
<option <?php if($campaign_status == 'Draft'){ echo "selected"; } ?>>Draft</option>
<option <?php if($campaign_status == 'Queued'){ echo "selected"; } ?>>Queued</option>
</select>
</div>
</div>
</div>
<div class="tab-pane fade" id="pills-content<?php echo $campaign_id; ?>">
<div class="form-group">
<textarea class="form-control summernote" name="content"><?php echo $campaign_content; ?></textarea>
</div>
</div>
<div class="tab-pane fade" id="pills-recipients<?php echo $campaign_id; ?>">
<label>Select Recipients <strong class="text-danger">*</strong></label>
<ul class="list-group mb-3">
<?php
$sql_tags_select = mysqli_query($mysqli,"SELECT * FROM tags WHERE tag_type = 1 AND company_id = $session_company_id ORDER BY tag_name ASC");
while($row = mysqli_fetch_array($sql_tags_select)){
$tag_id_select = $row['tag_id'];
$tag_name_select = $row['tag_name'];
$tag_color_select = $row['tag_color'];
$tag_icon_select = $row['tag_icon'];
//Get Contact Count
$row = mysqli_fetch_assoc(mysqli_query($mysqli,"SELECT COUNT(*) AS client_count FROM clients, client_tags
WHERE clients.client_id = client_tags.client_id
AND tag_id = $tag_id_select
AND company_id = $session_company_id
"));
$client_count = $row['client_count'];
?>
<li class="list-group-item">
<div class="form-check">
<input type="checkbox" class="form-check-input" name="tags[]" value="<?php echo $tag_id_select; ?>">
<label class="form-check-label ml-2 badge bg-<?php echo $tag_color_select; ?>"><?php echo "<i class='fa fw fa-$tag_icon_select'></i>"; ?> <?php echo $tag_name_select; ?></label><span class="right badge badge-light"><?php echo $client_count; ?></span>
</div>
</li>
<?php
}
?>
</ul>
</div>
</div>
</div>
<div class="modal-footer bg-white">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
<button type="submit" name="edit_campaign" class="btn btn-primary">Save</button>
</div>
</form>
</div>
</div>
</div>

View File

@ -1642,7 +1642,6 @@ if(isset($_GET['export_client_vendors_csv'])){
}
// Campaigns
if(isset($_POST['add_campaign'])){
$name = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['name'])));
@ -1650,8 +1649,10 @@ if(isset($_POST['add_campaign'])){
$from_name = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['from_name'])));
$from_email = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['from_email'])));
$content = trim(mysqli_real_escape_string($mysqli,$_POST['content']));
$status = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['status'])));
$scheduled_time = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['scheduled_time'])));
mysqli_query($mysqli,"INSERT INTO campaigns SET campaign_name = '$name', campaign_subject = '$subject', campaign_from_name = '$from_name', campaign_from_email = '$from_email', campaign_content = '$content', campaign_status = 'Draft', campaign_created_at = NOW(), company_id = $session_company_id");
mysqli_query($mysqli,"INSERT INTO campaigns SET campaign_name = '$name', campaign_subject = '$subject', campaign_from_name = '$from_name', campaign_from_email = '$from_email', campaign_content = '$content', campaign_status = '$status', campaign_scheduled_at = '$scheduled_time', campaign_created_at = NOW(), company_id = $session_company_id");
$campaign_id = mysqli_insert_id($mysqli);
@ -1739,7 +1740,10 @@ if(isset($_GET['delete_campaign'])){
$row = mysqli_fetch_array($sql);
$campaign_name = $row['campaign_name'];
//Delete Campaign
mysqli_query($mysqli,"DELETE FROM campaigns WHERE campaign_id = $campaign_id AND company_id = $session_company_id");
//Delete Messages Related to the Campaign
mysqli_query($mysqli,"DELETE FROM campaign_messages WHERE message_campaign_id = $campaign_id AND company_id = $session_company_id");
//logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Campaign', log_action = 'Delete', log_description = '$session_name deleted mail campaign $campaign_name', log_created_at = NOW(), company_id = $session_company_id, log_user_id = $session_user_id");