/home/edulekha/crm.edulekha.com/modules/appointly/assets/js/history_main_js.php
<script>
var appointly_please_wait = "<?= _l('appointment_please_wait'); ?>";
var lang_save = "<?= _l('save'); ?>";
var lang_view_notes = "<?= _l('appointment_viewing_notes'); ?>";
$(function() {
$(".sub-menu-item-appointly-user-history a").toggleClass("active");
// Initialize DataTable with correct columns
var appointmentsTable = initDataTable(".table-appointments-history",
'<?php echo admin_url('appointly/appointments_history/table'); ?>',
undefined,
[],
[],
[0, 'desc']
);
});
$(".modal").on("hidden.bs.modal", function(e) {
$(this).removeData();
});
var app_edit_id = "";
function editAppointmentNotes(el) {
var appointment_id = $(el).data("id");
var content12 = $(".content .col-md-12");
var content_row = $(".content .row.main_row");
var skeleton_loader = `
<div class="ph-item">
<div class="ph-col-12">
<div class="ph-picture"></div>
<div class="ph-row">
<div class="ph-col-6 big"></div>
<div class="ph-col-4 empty big"></div>
<div class="ph-col-2 big"></div>
<div class="ph-col-4"></div>
<div class="ph-col-8 empty"></div>
<div class="ph-col-6"></div>
<div class="ph-col-6 empty"></div>
<div class="ph-col-12"></div>
</div>
</div>
</div>`;
$(".content .col-md-12").removeClass("col-md-12").addClass("col-md-6");
$("td div.text-center a:first").css("margin", "-9px");
$("#toggleTableBtn").removeClass("hidden");
if (!content_row.find(".edit_appointment_history").length) {
var div_loader = "<div class=\"col-md-6 edit_appointment_history old\"><div class=\"panel_s\"><div class=\"panel-body\">" + skeleton_loader + "</div></div><div>";
content_row.append(div_loader);
} else {
content_row.find(".edit_appointment_history").append(div_loader);
content_row.find(".edit_appointment_history.old").remove();
}
var appointment_notes = $.ajax({
url: "/appointly/appointments_history/get_notes/" + appointment_id,
beforeSend: function(xhr) {
$(".edit_appointment_history .panel-body").html(skeleton_loader);
app_edit_id = appointment_id;
}
})
.done(function(data) {
data = JSON.parse(data);
tinymce.remove("textarea[name=\"notes\"]");
data.notes = (null == data.notes) ? "" : data.notes;
setTimeout(() => {
content_row.find(".edit_appointment_history").remove();
content_row.append(`
<div class="col-md-6 edit_appointment_history">
<div class="panel_s">
<div class="panel-body">
<div class="panel-heading">
<span class="font-medium">${lang_view_notes}: <strong>${data.subject}</strong></span>
</div>
<textarea name="notes" class="ays-ignore">${data.notes}</textarea>
<div class="from-group">
<button class="btn btn-primary mtop10 pull-right" onclick="updateAppointmentFormData()">${lang_save}</button>
</div>
</div>
</div>
<div>`);
init_editor("textarea[name=\"notes\"]");
}, 1000);
});
}
function updateAppointmentFormData() {
var notes = tinyMCE.activeEditor.getContent();
var $button = $(".edit_appointment_history .from-group button");
$.post("appointments_history/update_note", {
appointment_id: app_edit_id,
notes: notes,
beforeUpdate() {
$button.html("<i class=\"fa fa-refresh fa-spin fa-fw\"></i>");
},
}).done(function(response) {
response = JSON.parse(response);
if (response.result) {
alert_float("success", "<?= _l('appointment_notes_updated'); ?>");
} else {
alert_float("success", "Something went wrong... try again later!");
}
$button.html(lang_save);
});
}
// Request appointment feedback
function request_appointment_feedback(appointment_id) {
$("body").append("<div class=\"dt-loader\"></div>");
var url = admin_url + "appointly/appointments/requestAppointmentFeedback/" + appointment_id;
$.post(url).done(function(response) {
if (response.success == true) {
alert_float("info", "<?= _l('appointment_feedback_requested_alert'); ?>");
$("body").find(".dt-loader").remove();
}
}).fail(function(err) {
$("body").find(".dt-loader").remove();
console.log("An unknown error has been thrown" + err);
});
}
function deleteAppointment(id, el) {
if (confirm("<?= _l('appointment_are_you_sure'); ?>")) {
$.post(site_url + "appointly/appointments/delete/" + id).done(function(res) {
res = JSON.parse(res);
if (res.success) {
alert_float("success", res.message);
$(".table-appointments").DataTable().ajax.reload();
}
});
}
}
// Show/hide full table
function toggle_appointment_table_view() {
$("#toggleTableBtn").addClass("hidden");
var col6 = $(".content .row.main_row .col-md-6").removeClass("col-md-6").addClass("col-md-12");
$("td div.text-center a:first").css("margin", "auto");
$(".edit_appointment_history").remove();
setTimeout(() => {
$(".edit_appointment_history").remove();
}, 1000);
$(window).trigger("resize");
}
</script>
<style>
.edit_appointment_history .panel-heading {
background: #e3e8ee;
}
.mce-tinymce.mce-container.mce-panel {
margin-top: 10px;
}
.ph-item {
direction: ltr;
position: relative;
display: flex;
flex-wrap: wrap;
overflow: hidden;
margin-bottom: 30px;
background-color: #fff;
border-radius: 2px;
}
.ph-item,
.ph-item *,
.ph-item ::after,
.ph-item ::before {
box-sizing: border-box;
}
.ph-item::before {
content: " ";
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 50%;
z-index: 1;
width: 500%;
margin-left: -250%;
-webkit-animation: phAnimation 0.8s linear infinite;
animation: phAnimation 0.8s linear infinite;
background: linear-gradient(to right, rgba(255, 255, 255, 0) 46%, rgba(255, 255, 255, 0.35) 50%, rgba(255, 255, 255, 0) 54%) 50% 50%;
}
.ph-item>* {
flex: 1 1 auto;
display: flex;
flex-flow: column;
padding-right: 15px;
padding-left: 15px;
}
.ph-row {
display: flex;
flex-wrap: wrap;
margin-bottom: 7.5px;
}
.ph-row div {
height: 10px;
margin-bottom: 7.5px;
background-color: #ced4da;
}
.ph-row .big,
.ph-row.big div {
height: 20px;
margin-bottom: 15px;
}
.ph-row .empty {
background-color: rgba(255, 255, 255, 0);
}
.ph-col-2 {
flex: 0 0 16.66667%;
}
.ph-col-4 {
flex: 0 0 33.33333%;
}
.ph-col-6 {
flex: 0 0 50%;
}
.ph-col-8 {
flex: 0 0 66.66667%;
}
.ph-col-10 {
flex: 0 0 83.33333%;
}
.ph-col-12 {
flex: 0 0 100%;
}
.ph-avatar {
position: relative;
width: 100%;
min-width: 60px;
background-color: #ced4da;
margin-bottom: 15px;
border-radius: 50%;
overflow: hidden;
}
.ph-avatar::before {
content: " ";
display: block;
padding-top: 100%;
}
.ph-picture {
width: 100%;
height: 120px;
background-color: #ced4da;
margin-bottom: 15px;
}
@-webkit-keyframes phAnimation {
0% {
transform: translate3d(-30%, 0, 0);
}
100% {
transform: translate3d(30%, 0, 0);
}
}
@keyframes phAnimation {
0% {
transform: translate3d(-30%, 0, 0);
}
100% {
transform: translate3d(30%, 0, 0);
}
}
</style>