Files
WrenchBoradWeb/www/application/views/jobs/view_thisjob.php
T
2022-10-11 08:08:53 -04:00

568 lines
24 KiB
PHP

<?php
?>
<form method="post" name="post_nav_find" action="">
<input type="hidden" name="jobID" value="">
</form>
<script type="text/javascript">
<!--
function post_nav_find_action(what, value) {
document.post_nav_find.action = what + '';
document.post_nav_find.jobID.value = value;
document.post_nav_find.submit();
return false;
}
// -->
</script>
<div class="row g-5 g-xl-8">
<div class="col-xl-8">
<div class="card mb-5 mb-xl-8">
<div class="card-header border-0 pt-5">
<h3 class="card-title align-items-start flex-column">
<table>
<tr>
<td>
<a href="<?php echo $redirect_to; ?>"> <img style="height: 40px; width: auto;" src="/assets/images/icons/back-arrow.png"></a> &nbsp;&nbsp;&nbsp;
</td>
<td>
<span class="card-label fw-bolder fs-3 mb-1"><?=$this_job_result->title?></span>
</td>
</tr>
</table>
</h3>
</div>
<div class="card-body" style="padding-top: 5px !important;">
<div class="tab-content">
<div class="tab-pane fade show active" id="kt_table_widget_5_tab_1">
<div class="table-responsive">
<table class="table table-row-dashed table-row-gray-200 align-middle gs-0 gy-4">
<tbody>
<tr>
<td style="width: 75%">
<?=$this_job_result->contract_id?><br>
<b>Description : </b><?=$this_job_result->description?> <br>
<?=$this_job_result->delivery_details?><br>
</td>
<td>
<a href="#" onclick="showModal('<?=$this_job_result->id?>');"><?=$this_job_result->firstname?></a> <br>
<b>Due : </b><mark><?=$this_job_result->delivery_date?> </mark><br>
<?=$this_job_result->timeline_days?> day(s)
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<div class="card mb-5 mb-xl-8">
<div class="card-body py-3">
<div class="tab-content">
<div class="tab-pane fade show active" id="kt_table_widget_5_tab_1">
<div class="table-responsive">
<ul class="nav nav-tabs nav-line-tabs mb-5 fs-6">
<li class="nav-item">
<a class="nav-link active" data-bs-toggle="tab" href="#kt_tab_pane_1">Message(s)</a>
</li>
<!-- li class="nav-item">
<a class="nav-link" data-bs-toggle="tab" href="#kt_tab_pane_2">Add File(s)</a>
</li>
<li class="nav-item">
<a class="nav-link" data-bs-toggle="tab" href="#kt_tab_pane_3">Actions</a>
</li -->
</ul>
<div class="tab-content" id="myTabContent">
<div class="tab-pane fade show active" id="kt_tab_pane_1" role="tabpanel">
<div id="sendmessagenote"></div>
<form name="message" id="message" action="/proj/thisjob" method='POST'>
<input type='hidden' name='ajax' value='1'>
<input type='hidden' name='jobID' value='<?php echo $jobID; ?>'>
<input type='hidden' name='contractId' value='<?php echo $contract_id; ?>'>
<div class="form-group">
<textarea cols="18" onchange="textContentChanged();" style="height:120px;" rows="3" id='jobmessage' name='jobmessage' class="textarea wysihtml5 wysihtml5-min form-control" placeholder="Enter message here ..."></textarea>
</div>
<div class="form-group">
<table class="table table-row-dashed table-row-gray-200 align-middle gs-0 gy-4">
<tbody>
<tr>
<td style="text-align: left;">
<div id="remain_text"></div>
</td>
<td style="width: 30%;"><div id="sendmessagenote"></div></td>
<td style="width: 20%; text-align:right;"> <button id='btn_cancel' name='btn_cancel' type="submit" class="btn btn-danger btn-sm" onclick="document.message.jobmessage.value = ''; return false;">Clear</button></td>
<td style="width: 20%; text-align:right;"><button id='btn_submit' name='btn_submit' type="submit" class="btn btn-primary btn-sm" onclick="SendMessage();return false;">Send</button> </td>
</tr>
</tbody>
</table>
</div>
</form>
<?php
include 'uploads/upload_files.php';
?>
</div>
<!-- div class="tab-pane fade" id="kt_tab_pane_2" role="tabpanel">
<div class="form-group">
<form action="/proj/thisjob" method='POST' enctype="multipart/form-data">
<input type='hidden' name='uploadForm' value='1'>
<input type='hidden' name='jobID' value='<?php echo $jobID; ?>'>
<input type='hidden' name='contractId' value='<?php echo $contract_id; ?>'>
<input type="file" class="file-input" multiple="multiple" name="fileToUpload[]" id="fileToUpload[]">
<span class="help-block">There is a file size limit [<?php echo UPLOAD_FILE_SIZE; ?> MB]. Split large files into smaller size</span>
</form>
</div>
</div -->
<div class="tab-pane fade" id="kt_tab_pane_3" role="tabpanel">
<h3>Use action to manage the status of the project</h3>
<div class="form-group">
<?php
if ($this_is_client == true) {
include('jobaction/job_worker.php');
}
if ($this_is_project_owner == true) {
?>
<table class='table table-striped table-hover table-bordered table-condensed'>
<tr>
<td>
Accept or reject the completion of the task below. We will notify the other partner and finalize payment for the task.
</td>
<td style="width:140px;">
<div id="accept_completion"> <button type="submit" id="accept_completion_submit" class="btn btn-primary btn-sm" onclick="return acceptCompletion('<?php echo $job_contract; ?>');" <?php echo $disabled11; ?> >Accept Completion</button></div>
</td>
</tr>
<tr>
<td>
If you reject the work done or want more review before accepting, click "Reject Completion."
</td>
<td style="width:140px;">
<div id="reject_completion"> <button type="submit" id="reject_completion_submit" class="btn btn-danger btn-sm" <?php echo $disabled22; ?> onclick="return rejectCompletion('<?php echo $job_contract; ?>');" >Reject Completion</button></div>
</td>
</tr>
</table>
<?php
}
?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="card-body py-3">
<?php
if( count($files_only) > 0 ){
include 'uploads/file_table.php';
}
?>
</div>
</div>
</div>
<div class="col-xl-4">
<div class="card mb-5 mb-xl-8">
<div class="card-header border-0 pt-5">
<h3 class="card-title align-items-start flex-column">
<span class="card-label fw-bolder fs-3 mb-1">Actions</span>
</h3>
<div class="card-toolbar">
</div>
</div>
<div class="card-body py-3">
<div class="tab-content">
<div class="tab-pane fade show active" id="kt_table_widget_5_tab_1">
<div class="table-responsive">
<?php
if ($this_is_client == true) {
// include(VIEWPATH.'/compo/compo_msg4_accord.php');
if ($this_job_result->current_job_status != 4){
include('jobaction/job_worker.php');
}
if ($this_job_result->current_job_status == 4){
echo "You have sent this task to the owner for review and acceptance. The job will automatically be completed in 3 days if the owner does not respond";
}
}
if ($this_is_project_owner == true) {
if ($this_job_result->current_job_status == 4){
include('jobaction/job_owner.php');
}
else{
echo "Waiting for the completion message from the client before you can approve.";
}
//
}
?>
</div>
</div>
</div>
</div>
</div>
<div class="card mb-5 mb-xl-8">
<div class="card-header border-0 pt-5">
<h3 class="card-title align-items-start flex-column">
<span class="card-label fw-bolder fs-3 mb-1">Messages</span>
</h3>
<div class="card-toolbar">
</div>
</div>
<div class="card-body py-3">
<div class="tab-content">
<div class="tab-pane fade show active" id="kt_table_widget_5_tab_1">
<div class="table-responsive">
<?php
include(VIEWPATH.'/compo/compo_msg4_accord.php');
?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
<!--
const length_limit = 500;
var timerId = setTimeout(function tick() {
$.ajax({
url: "/proj/thisjobfiles?jobID=<?php echo $jobID; ?>"
}).done(function (data) {
$('#message_table').html(data);
});
timerId = setTimeout(tick, 300000);
}, 300000); // 300000 ms is 300 seconds is 5 minutes
function pad(num, size) {
var s = num + "";
while (s.length < size)
s = "0" + s;
return s;
}
function textContentChanged(){
/*
if (length_limit <= document.message.jobmessage.value.length){
document.message.jobmessage.value = document.message.jobmessage.value .substring(0, length_limit);
}
*/
var r = length_limit -document.message.jobmessage.value.length;
if (r < 0) r = 0;
$('#remain_text').text(r);
// document.message.remain_text.value= length_limit -document.message.jobmessage.value.length;
/*
if (document.message.jobmessage.value.length > 0 ){
// alert(100);
document.message.btn_cancel.disabled = false;
}
else{
document.message.btn_cancel.disabled = true;
}
*/
if(document.message.jobmessage.value.length > length_limit)
{
document.message.btn_submit.disabled = true;
}
else
{
document.message.btn_submit.disabled = false;
}
console.log('JobMessage Length = '+document.message.jobmessage.value.length);
console.log('JobMessage Value = '+document.message.jobmessage.value);
}
function SendMessage() {
document.message.btn_cancel.disabled = true;
document.message.btn_submit.disabled = true;
$.post("/proj/thisjob", $("#message").serialize(), function (data) {
if (data == '10') {
var d = new Date();
var d_str = d.getFullYear() + '-' + pad(d.getMonth(), 2) + '-' + pad(d.getDate(), 2) + ' ' + pad(d.getHours(), 2) + ':' + pad(d.getMinutes(), 2) + ':' + pad(d.getSeconds(), 2) + '.' + pad(d.getMilliseconds(), 3);
var res = '<tr><td><b>[<?= $_SESSION["firstname"] ?>]->' + d_str + '</b><br>' + document.message.jobmessage.value + '</td></tr>';
var tbody = $("#jobs_contract_message tbody");
if (tbody.children().length == 0) {
$('#jobs_contract_message').append(res);
} else {
$('#jobs_contract_message > tbody:last-child').append(res);
}
var id = Date.now();
var html = `<div class="accordion-item">
<h2 class="accordion-header" id="kt_accordion_1_header_1">
<button class="accordion-button fs-4 fw-semibold"
type="button" data-bs-toggle="collapse" data-bs-target="#kt_accordion_1_` + id + `"
aria-expanded="true" aria-controls="kt_accordion_1_body_1">
<b></b><?= $_SESSION["firstname"] ?>-` + d_str + `
</button>
</h2>
<div id="kt_accordion_1_` + id + `" class="accordion-collapse collapse" aria-labelledby="kt_accordion_1_header_1" data-bs-parent="#kt_accordion_1">
<div class="accordion-body">
` + document.message.jobmessage.value + `
</div>
</div>
</div>`;
document.message.jobmessage.value = '';
//$('#jobmessage').data("wysihtml5").editor.clear();
$('#jobmessage').trumbowyg('empty');
$('#sendmessagenote').html('<div class=\"text-left\"><div class=\"alert alert-info no-border\">Message was sent!</div></div>');
// Append
$(html).prependTo('#kt_accordion_1');
} else {
$('#sendmessagenote').html('<div class=\"text-left\"><div class=\"alert alert-danger no-border\">Failed to send message</div></div>');
}
document.message.btn_cancel.disabled = false;
document.message.btn_submit.disabled = false;
});
}
$(document).ready(function () {
$('#jobmessage').trumbowyg({
btns: [
['viewHTML'],
['undo','redo'],// Only supported in Blink browsers
['formatting'],
['strong','em','del'],
['superscript','subscript'],
['link'],
/* ['insertImage'], */
['justifyLeft','justifyCenter','justifyRight','justifyFull'],
['unorderedList','orderedList'],
['horizontalRule'],
['removeformat'],
['fullscreen']
]
});
/*$('#jobmessage').data("wysihtml5").editor.observe("load", function () {
editor.composer.element.addEventListener("keyup", function () {
// enter your listener-triggered code or function call here
var content = $(this).html();
if (content.length > length_limit) {
alert(length_limit + " characters is the limit!");
$(this).html(content.substr(0, length_limit));
}
});
});*/
});
// -->
</script>
<?php include('common/jobstrip.php'); ?>
<div id="modal_theme_primary_fail" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h5 class="modal-title"><?php echo $contract_id; ?>- Delivery Detail</h5>
</div>
<div class="modal-body">
<p><?php echo $job_detail; ?>.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-link" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<script type="text/javascript">
<!--
function showModal(interest_id) {
if (typeof event !== 'undefined') {
event.preventDefault();
}
// alert(123);
// collect data - either from forms or from data variables
var id = $(this).data('id');
// load the modal content with a loader gif and message
$('#modal-content').html('Loading...');
// show modal window
$('#modal_theme_primary').modal('show');
// do the ajax bit
var post_data = {
'interest_id': id,
};
$.ajax({
url: "/jobs/loaduserSkills?interest_id=" + interest_id
}).done(function (data) {
//alert(data);
$('#modal-content').html(data);
});
}
function showJobModal(contact_id) {
if (typeof event !== 'undefined') {
event.preventDefault();
}
// collect data - either from forms or from data variables
var id = $(this).data('id');
// load the modal content with a loader gif and message
$('#modal-content').html('Loading...');
// show modal window
$('#modal_theme_primary').modal('show');
// do the ajax bit
var post_data = {
'interest_id': id,
};
$.ajax({
url: "/jobs/jobdetail_modal?contact_id=" + contact_id
}).done(function (data) {
//alert(data);
$('#modal-content').html(data);
});
}
function requestCompletion(job_contract) {
if (confirm("Are you sure you want send completion messgae for this job?")) {
// do something
} else {
return false;
}
$('#req_completion').html('Processing...');
$('#req_completion_submit').prop('disabled', true);
$('#req_cancel_submit').prop('disabled', true);
$.ajax({
url: "/proj/processjob_status?proc=NCOMPLETE&jobID=<?php echo $jobID; ?>&job_contract=" + job_contract
}).done(function (data) {
$('#req_completion').html(data);
document.offer_individual.rec_email.value = '';
$('#req_completion_submit').prop('disabled', false);
});
return false;
}
function requestCancel(job_contract) {
if (confirm("Are you sure you want to request the cancellation of this job?")) {
// do something
} else {
return false;
}
$('#req_cancel').html('Processing...');
$('#req_cancel_submit').prop('disabled', true);
$('#req_completion_submit').prop('disabled', true);
$.ajax({
url: "/proj/processjob_status?proc=REQCANCEL&jobID=<?php echo $jobID; ?>&job_contract=" + job_contract
}).done(function (data) {
$('#req_cancel').html(data);
document.offer_individual.rec_email.value = '';
$('#req_cancel_submit').prop('disabled', false);
});
return false;
}
function acceptCompletion(job_contract) {
if (confirm("Are you sure you want to accept the completion of this job?")) {
// do something
} else {
return false;
}
$('#accept_completion').html('Processing...');
$('#accept_completion_submit').prop('disabled', true);
$('#reject_completion_submit').prop('disabled', true);
$.ajax({
url: "/proj/processjob_status?proc=ACCEPTCMP&jobID=<?php echo $jobID; ?>&job_contract=" + job_contract
}).done(function (data) {
$('#accept_completion').html(data);
document.offer_individual.rec_email.value = '';
$('#accept_completion_submit').prop('disabled', false);
});
return false;
}
function rejectCompletion(job_contract) {
if (confirm("Are you sure you want to reject the completion of this job?")) {
// do something
} else {
return false;
}
$('#reject_completion').html('Processing...');
$('#reject_completion_submit').prop('disabled', true);
$('#accept_completion_submit').prop('disabled', true);
$.ajax({
url: "/proj/processjob_status?proc=REJECTCMP&jobID=<?php echo $jobID; ?>&job_contract=" + job_contract
}).done(function (data) {
$('#reject_completion').html(data);
document.offer_individual.rec_email.value = '';
$('#reject_completion_submit').prop('disabled', false);
});
return false;
}
// -->
</script>
<!-- Basic modal -->
<div id="modal_theme_primary" class="modal fade">
<div class="modal-dialog">
<div class="modal-content" id="modal-content">
</div>
</div>
</div>
<!-- /basic modal -->