Viewing File: /home/maglabs/riadlooma2/wp-content/themes/homey/js/homey-experience.js
jQuery(document).ready( function($) {
"use strict";
if ( typeof Homey_Experience !== "undefined" ) {
var dtGlobals = {}; // Global storage
dtGlobals.isMobile = (/(Android|BlackBerry|iPhone|iPad|Palm|Symbian|Opera Mini|IEMobile|webOS)/.test(navigator.userAgent));
dtGlobals.isAndroid = (/(Android)/.test(navigator.userAgent));
dtGlobals.isiOS = (/(iPhone|iPod|iPad)/.test(navigator.userAgent));
dtGlobals.isiPhone = (/(iPhone|iPod)/.test(navigator.userAgent));
dtGlobals.isiPad = (/(iPad|iPod)/.test(navigator.userAgent));
var ajaxurl = Homey_Experience.ajaxURL;
var homey_booking_type = Homey_Experience.homey_booking_type;
var are_you_sure_text = Homey_Experience.are_you_sure_text;
var delete_btn_text = Homey_Experience.delete_btn_text;
var cancel_btn_text = Homey_Experience.cancel_btn_text;
var confirm_btn_text = Homey_Experience.confirm_btn_text;
var edit_tab = Homey_Experience.edit_tab;
var process_loader_refresh = Homey_Experience.process_loader_refresh;
var process_loader_spinner = Homey_Experience.process_loader_spinner;
var process_loader_circle = Homey_Experience.process_loader_circle;
var process_loader_cog = Homey_Experience.process_loader_cog;
var btn_save = Homey_Experience.btn_save;
var success_icon = Homey_Experience.success_icon;
var verify_experience_gallery_nonce = Homey_Experience.verify_experience_gallery_nonce;
var verify_file_type = Homey_Experience.verify_file_type;
var add_experience_msg = Homey_Experience.add_experience_msg;
var processing_text = Homey_Experience.processing_text;
var acc_bedroom_name = Homey_Experience.acc_bedroom_name;
var acc_bedroom_name_plac = Homey_Experience.acc_bedroom_name_plac;
var acc_guests = Homey_Experience.acc_guests;
var acc_guests_plac = Homey_Experience.acc_guests_plac;
var acc_no_of_beds = Homey_Experience.acc_no_of_beds;
var acc_no_of_beds_plac = Homey_Experience.acc_no_of_beds_plac;
var acc_bedroom_type = Homey_Experience.acc_bedroom_type;
var acc_bedroom_type_plac = Homey_Experience.acc_bedroom_type_plac;
var acc_btn_remove_room = Homey_Experience.acc_btn_remove_room;
var service_name = Homey_Experience.service_name;
var service_name_plac = Homey_Experience.service_name_plac;
var service_price = Homey_Experience.service_price;
var service_price_plac = Homey_Experience.service_price_plac;
var service_des = Homey_Experience.service_des;
var service_des_plac = Homey_Experience.service_des_plac;
var btn_remove_service = Homey_Experience.btn_remove_service;
var pricing_link = Homey_Experience.pricing_link;
var calendar_link = Homey_Experience.calendar_link;
var geo_coding_msg = Homey_Experience.geo_coding;
var avail_label = Homey_Experience.avail_label;
var unavail_label = Homey_Experience.unavail_label;
var geo_country_limit = Homey_Experience.geo_country_limit;
var geocomplete_country = Homey_Experience.geocomplete_country;
var homey_is_rtl = Homey_Experience.homey_is_rtl;
var booked_hours_array = Homey_Experience.booked_hours_array;
var pending_hours_array = Homey_Experience.pending_hours_array;
var booking_start_hour = Homey_Experience.booking_start_hour;
var booking_end_hour = Homey_Experience.booking_end_hour;
if( booked_hours_array !=='' && booked_hours_array.length !== 0 ) {
booked_hours_array = JSON.parse (booked_hours_array);
}
if( pending_hours_array !=='' && pending_hours_array.length !== 0 ) {
pending_hours_array = JSON.parse (pending_hours_array);
}
setInterval(function() {
$("select").each(function(e) {
if($(this).hasClass('error')){
$("label[for='"+$(this).attr('id')+"']").addClass("select_input_error");
}else{
$("label[for='"+$(this).attr('id')+"']").removeClass("select_input_error");
}
});
}, 500);
/*$(document).ready(function() {
$(window).keydown(function(event){
if(event.keyCode == 13) {
event.preventDefault();
return false;
}
});
});*/
/* ------------------------------------------------------------------------ */
/* Experience mode
/* ------------------------------------------------------------------------ */
function insertExperienceParam(key, value) {
key = encodeURI(key);
value = encodeURI(value);
// get querystring , remove (?) and covernt into array
var qrp = document.location.search.substr(1).split('&');
// get qrp array length
var i = qrp.length;
var j;
while (i--) {
//covert query strings into array for check key and value
j = qrp[i].split('=');
// if find key and value then join
if (j[0] == key) {
j[1] = value;
qrp[i] = j.join('=');
break;
}
}
if (i < 0) {
qrp[qrp.length] = [key, value].join('=');
}
// reload the page
document.location.search = qrp.join('&');
}
$('#homey_experience_mode').on('change', function() {
var key = 'mode';
var value = $(this).val();
insertExperienceParam( key, value );
});
/* ------------------------------------------------------------------------ */
/* parseInt Radix 10
/* ------------------------------------------------------------------------ */
function parseInt10(val) {
return parseInt(val, 10);
}
$('#form_tabs li').on('click', function() {
$('#media-tab').addClass('tab-pane');
if($(this).hasClass('smb-media')) {
$('#media-tab').css('height', 'auto');
$('#media-tab').css('position', 'unset');
$('#media-tab').css('display', 'block');
} else {
$('#media-tab').css('height', '0');
$('#media-tab').css('position', 'absolute');
$('#media-tab').css('display', 'none');
}
});
/* ------------------------------------------------------------------------ */
/* Per Hour availability calendar
/* ------------------------------------------------------------------------ */
function homey_hourly_availability_calendar_dash(){
var today = new Date();
var experience_booked_dates=[];
var experience_pending_dates=[];
for (var key in booked_hours_array) {
if (booked_hours_array.hasOwnProperty(key) && key!=='') {
var temp_book=[];
temp_book['title'] = Homey_Experience.hc_reserved_label,
temp_book ['start'] = moment.unix(key).utc().format(),
temp_book ['end'] = moment.unix( booked_hours_array[key]).utc().format(),
temp_book ['editable'] = false;
temp_book ['color'] = '#fdd2d2';
temp_book ['textColor'] = '#444444';
experience_booked_dates.push(temp_book);
}
}
for (var key_pending in pending_hours_array) {
if (pending_hours_array.hasOwnProperty(key_pending) && key_pending!=='') {
var temp_pending=[];
temp_pending['title'] = Homey_Experience.hc_pending_label,
temp_pending ['start'] = moment.unix(key_pending).utc().format(),
temp_pending ['end'] = moment.unix( pending_hours_array[key_pending]).utc().format(),
temp_pending ['editable'] = false;
temp_pending ['color'] = '#ffeedb';
temp_pending ['textColor'] = '#333333';
experience_pending_dates.push(temp_pending);
}
}
var hours_slot = $.merge(experience_booked_dates, experience_pending_dates);
var calendarEl = document.getElementById('homey_hourly_calendar_edit_experience');
var calendar = new FullCalendar.Calendar(calendarEl, {
locale: Homey_Experience.homey_current_lang,
timeZone: Homey_Experience.homey_timezone,
plugins: [ 'timeGrid' ],
defaultView: 'timeGridWeek',
slotDuration:'00:30:00',
minTime: booking_start_hour,
maxTime: booking_end_hour,
events: hours_slot,
defaultDate: today,
selectHelper: true,
selectOverlap : false,
footer: false,
nowIndicator: true,
allDayText: Homey_Experience.hc_hours_label,
weekNumbers: false,
weekNumbersWithinDays: true,
weekNumberCalculation: 'ISO',
editable: false,
eventLimit: true,
unselectAuto: false,
isRTL: homey_is_rtl,
buttonText: {
today: Homey_Experience.hc_today_label
}
});
calendar.render();
}
if(homey_booking_type == 'per_hour') {
if(document.getElementById('homey_hourly_calendar_edit_experience')) {
homey_hourly_availability_calendar_dash();
$('ul#form_tabs li').on('click', function(e) {
e.preventDefault();
if($(this).hasClass('calendar-js')) {
$('#calendar-tab').css('display', 'block');
} else {
$('#calendar-tab').css('display', 'none');
}
})
}
}
/* ------------------------------------------------------------------------ */
/* Custom Period Prices
/* ------------------------------------------------------------------------ */
$("#cus_night_price").on('keyup', function (){
$("#cus_night_price").removeClass('error');
});
$('#cus_btn_save').on('click', function(e) {
e.preventDefault();
var $this = $(this);
var cus_start_date = $('#cus_start_date').val();
var cus_end_date = $('#cus_end_date').val();
var cus_night_price = $('#cus_night_price').val();
var cus_additional_guest_price = $('#cus_additional_guest_price').val();
var cus_weekend_price = $('#cus_weekend_price').val();
var experience_id = $('#experience_id_for_custom').val();
if($.trim(cus_night_price) != ''){
$.ajax({
type: 'post',
url: ajaxurl,
dataType: 'json',
data: {
'action': 'homey_add_custom_period',
'start_date': cus_start_date,
'end_date': cus_end_date,
'night_price': cus_night_price,
'additional_guest_price': cus_additional_guest_price,
'weekend_price': cus_weekend_price,
'experience_id': experience_id
},
beforeSend: function( ) {
$this.children('i').remove();
$this.prepend('<i class=" '+process_loader_spinner+'"></i>');
},
success: function(data) { //alert(data.success); return false;
if( data.success ) {
window.location.href = pricing_link;
} else {
alert(data.message);
}
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
console.log(err.Message);
},
complete: function(){
$this.children('i').removeClass(process_loader_spinner);
}
});
}else{
$("#cus_night_price").focus();
$("#cus_night_price").addClass('error');
}
});
/* ------------------------------------------------------------------------ */
/* Delete Custom Period Prices
/* ------------------------------------------------------------------------ */
$('.homey_delete_period').on('click', function(e) {
e.preventDefault();
var $this = $(this);
var startdate = $this.data('startdate');
var enddate = $this.data('enddate');
var experience_id = $this.data('experienceid');
$.ajax({
type: 'post',
url: ajaxurl,
dataType: 'json',
data: {
'action': 'homey_delete_custom_period',
'start_date': startdate,
'end_date': enddate,
'experience_id': experience_id
},
beforeSend: function( ) {
$this.children('i').remove();
$this.prepend('<i class=" '+process_loader_spinner+'"></i>');
},
success: function(data) {
if( data.success ) {
$this.parents('tr').remove();
} else {
alert(data.message);
}
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
console.log(err.Message);
},
complete: function(){
$this.children('i').removeClass(process_loader_spinner);
}
});
});
var homey_validation = function( field_required ) {
if( field_required != 0 ) {
return true;
}
return false;
};
$('ul#form_tabs li').on('click', function(e) {
e.preventDefault();
var current_tab = $(this).data('tab');
$('#current_tab').val(current_tab);
})
/* ------------------------------------------------------------------------ */
/* START CREATE LISTING FORM STEPS AND VALIDATION
/* ------------------------------------------------------------------------ */
$("[data-hide]").on("click", function() {
$(this).closest("." + $(this).attr("data-hide")).hide();
});
var current = 1;
var experForm = $("#submit_experience_form");
var experFormStep = $(".form-step");
var experFormStepGal = $(".form-step-gal");
var btnnext = $(".btn-step-next");
var btnback = $(".btn-step-back");
var btnsubmitBlock = $(".btn-step-submit");
var btnsubmit = btnsubmitBlock.find("button[type='submit']");
var total_steps = $('#total-steps');
var steps_counter = $('#step-counter');
var nav_item = $('.steps-breadcrumb li');
var errorBlock = $(".validate-errors");
var errorBlockGal = $(".validate-errors-gal");
var galThumbs = $(".experience-thumb");
total_steps.html(experFormStep.length);
steps_counter.html(current);
// Init buttons and UI
experFormStep.not(':eq(0), .form-step-gal1').hide();
experFormStep.eq(0).addClass('active');
hideButtons(current);
$('ul#form_tabs li, .btn-save-experience').on('click', function() {
var currentTab = $('#form_tabs li.active').index();
if (experForm.valid()) {
errorBlock.hide();
} else {
$("html, body").animate({
scrollTop: 0
}, "slow");
setTimeout(function() {
$('#form_tabs li, .tab-content div').removeClass('active in');
$('#form_tabs li a').attr('aria-expanded', 'false');
$('#form_tabs li').eq(currentTab).addClass('active');
$('#form_tabs li a').attr('aria-expanded', 'true');
$('.tab-content .tab-pane').eq(currentTab).addClass('active in');
}, 200);
errorBlock.show();
}
});
// Next button click action
btnnext.on('click', function(e) {
if($(".form-step-gal1").hasClass('active')){
if($(".upload-gallery-thumb").length < 1){
$("#homey_gallery_dragDrop").css("border", "3px dashed red");
e.preventDefault();
return false;
}
}
$("html, body").animate({
scrollTop: 0
}, "slow");
if(dtGlobals.isiOS) {
experience_gallery_images();
}
if (current < experFormStep.length) {
// Check validation
if (!$(galThumbs).length > 0 && edit_tab == 'media') {
errorBlockGal.show();
return;
} else {
errorBlockGal.hide();
}
//zahid.k
if(current > 0){
experFormStep.removeClass('active').css({display:'none'});
experFormStep.eq(current-1).addClass('active').css({display:'block'});
}
//zahid.k
if (experForm.valid()) {
experFormStep.removeClass('active').css({display:'none'});
experFormStep.eq(current++).addClass('active').css({display:'block'});
if (!$(galThumbs).length > 0 && edit_tab == 'media') {
$('.form-step-gal1').css('display', 'block');
$('.form-step-gal1').css('height', 'auto')
}
errorBlock.hide();
} else {
errorBlock.show();
if($("input[name='experience_type']").hasClass("error")){
var errorListingTypeBtn = $( "button" ).data( "id" ) === "experience_type";
$(errorListingTypeBtn).css({"border-color": "#c31b1b", "background-color": "#F6C8C8;"});
}
}
}
hideButtons(current);
steps_counter.html(current);
});
// Back button click action
btnback.on('click', function() {
$("html, body").animate({
scrollTop: 0
}, "slow");
if (current > 1) {
current = current - 2;
if (current < experFormStep.length) {
experFormStep.show();
experFormStep.not(':eq(' + (current++) + ')').hide();
nav_item.eq(current).removeClass('active');
}
}
hideButtons(current);
steps_counter.html(current);
});
// Submit button click
btnsubmit.on('click', function(event) {
event.preventDefault();
// Check validation
if (!$(galThumbs).length > 0 && edit_tab == 'media') {
errorBlockGal.show();
return;
} else {
errorBlockGal.hide();
}
if (experForm.valid()) {
errorBlock.hide();
btnsubmit.attr('disabled', true);
} else {
errorBlock.show();
$("html, body").animate({
scrollTop: 0
}, "slow");
}
});
if (experForm.length > 0) {
experForm.validate({ // initialize plugin
ignore: ":hidden:not(.form-step.active .selectpicker)",
errorPlacement: function(error, element) {
console.log(error);
console.log(element);
return false;
},
rules: {
// night_price: {
// number: true,
// }
},
submitHandler: function(experForm) {
btnsubmitBlock.attr("disabled", true);
experForm.submit();
}
});
}
// Hide buttons according to the current step
function hideButtons(current) {
var limit = parseInt10(experFormStep.length);
$(".action").hide();
if (current < limit) btnnext.show();
if (current > 1) btnback.show();
if (current === limit) {
btnnext.hide();
btnsubmitBlock.show();
}
}
$(window).load(function(){
if(edit_tab != 'media') {
$('.form-step-gal1, #media-tab').css('display', 'none');
}
});
/* ------------------------------------------------------------------------ */
/* Print Invoice
/* ------------------------------------------------------------------------ */
if( $('#invoice-print-button').length > 0 ) {
$('#invoice-print-button').on('click', function (e) {
e.preventDefault();
var invoiceID, printWindow;
invoiceID = $(this).attr('data-id');
printWindow = window.open('', 'Print Me', 'width=700 ,height=842');
$.ajax({
type: 'POST',
url: ajaxurl,
data: {
'action': 'homey_exp_create_invoice_print',
'invoice_id': invoiceID,
},
success: function (data) {
printWindow.document.write(data);
printWindow.document.close();
printWindow.focus();
},
error: function (xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
console.log(err.Message);
}
});
});
}
/*--------------------------------------------------------------------------
* Invoice Filter
* -------------------------------------------------------------------------*/
$('#invoice_status, #invoice_type').on('change', function() {
homey_invoices_filter();
});
$('#startDate, #endDate').on('change', function() {
var startDate = $('#startDate').val(),
endDate = $('#endDate').val();
if(startDate == '' || endDate == '') {
return;
}
homey_invoices_filter();
})
var homey_invoices_filter = function() {
var inv_status = $('#invoice_status').val(),
inv_type = $('#invoice_type').val(),
startDate = $('#startDate').val(),
endDate = $('#endDate').val();
$.ajax({
url: ajaxurl,
dataType: 'json',
type: 'POST',
data: {
'action': 'homey_invoices_ajax_search',
'invoice_status': inv_status,
'invoice_type' : inv_type,
'startDate' : startDate,
'endDate' : endDate
},
beforeSend: function() {
$('#homey-map-loading').show();
$('.pagination').hide();
$('#invoices_content').empty().append(''
+'<div id="homey-map-loading">'
+'<div class="mapPlaceholder">'
+'<div class="loader-ripple spinner">'
+'<div class="bounce1"></div>'
+'<div class="bounce2"></div>'
+'<div class="bounce3"></div>'
+'</div>'
+'</div>'
+'</div>'
);
},
success: function(res) {
if(res.success) {
$('#invoices_content').empty().append( res.result );
$( '#invoices_total_price').empty().append( res.total_price );
$('.pagination').hide();
}
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
console.log(err.Message);
}
});
}
/* ------------------------------------------------------------------------ */
/* Print Reservation
/* ------------------------------------------------------------------------ */
if( $('#printReservation').length > 0 ) {
$('#printReservation').on('click', function (e) {
e.preventDefault();
var reservationID, printWindow;
reservationID = $(this).attr('data-resvID');
printWindow = window.open('', 'Print Me', 'width=700 ,height=842');
$.ajax({
type: 'POST',
url: ajaxurl,
data: {
'action': 'homey_create_reservation_print',
'reservation_id': reservationID,
},
success: function (data) {
printWindow.document.write(data);
printWindow.document.close();
printWindow.focus();
},
error: function (xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
console.log(err.Message);
}
});
});
}
/* ------------------------------------------------------------------------ */
/* START LISTING VIEW
/* ------------------------------------------------------------------------ */
var get_title = $("#experience_title");
var view_title = $("#property-title-fill");
var selected = null;
function keyup_fill(ele, ele_place) {
$(ele).on("keyup", function(event) {
if ($(ele).attr("name") === "night_price") {
if (!$.isNumeric($(ele).val())) {
return
}
}
if ($(ele).attr("name") === "experience_bedrooms" || $(ele).attr("name") === "guests" || $(ele).attr("name") === "baths") {
if (!$.isNumeric($(ele).val())) {
return
}
}
var newText = event.target.value;
$(ele_place).html(newText);
});
}
keyup_fill("#experience_title", "#title-place");
keyup_fill("#experience_address", "#address-place");
keyup_fill("#day_date_price", "#price-place");
keyup_fill("#night_price", "#price-place");
keyup_fill("#price_postfix", "#price-postfix");
keyup_fill("#hour_price", "#price-place");
keyup_fill("#experience_bedrooms", "#total-beds");
keyup_fill("#guests", "#total-guests");
keyup_fill("#baths", "#total-baths");
function amenities_selector(ele, view_ele, is_text) {
$(ele).on('change', function() {
if(is_text == 'yes') {
var selected = $(this).find("option:selected").text();
} else {
var selected = $(this).find("option:selected").val();
}
$(view_ele).html(selected);
});
}
amenities_selector("#experience_type", "#experience-type-view", 'yes');
/*--------------------------------------------------------------------------
* Delete property
* -------------------------------------------------------------------------*/
$( '.delete-experience' ).on('click', function () {
var $this = $( this );
var experience_id = $this.data('id');
var nonce = $this.data('nonce');
bootbox.confirm({
message: "<p><strong>"+are_you_sure_text+"</strong></p>",
buttons: {
confirm: {
label: delete_btn_text,
className: 'btn btn-primary btn-half-width'
},
cancel: {
label: cancel_btn_text,
className: 'btn btn-grey-outlined btn-half-width'
}
},
callback: function (result) {
if(result==true) {
$.ajax({
type: 'POST',
dataType: 'json',
url: ajaxurl,
data: {
'action': 'homey_delete_experience',
'experience_id': experience_id,
'security': nonce
},
beforeSend: function( ) {
$this.find('i').removeClass('fa-trash');
$this.find('i').addClass('fa-spin fa-spinner');
},
success: function(data) {
if ( data.success == true ) {
window.location.reload();
} else {
jQuery('#homey_modal').modal('hide');
alert( data.reason );
}
},
error: function(errorThrown) {
}
}); // $.ajax
} // result
} // Callback
});
return false;
});
/*--------------------------------------------------------------------------
* Make property Featured
* -------------------------------------------------------------------------*/
$( '.membership-featured-js' ).on('click', function (e) {
e.preventDefault();
var $this = $( this );
var experience_id = $this.data('id');
var nonce = $this.data('nonce');
bootbox.confirm({
message: "<p><strong>"+are_you_sure_text+"</strong></p>",
buttons: {
confirm: {
label: confirm_btn_text,
className: 'btn btn-primary btn-half-width'
},
cancel: {
label: cancel_btn_text,
className: 'btn btn-grey-outlined btn-half-width'
}
},
callback: function (result) {
if(result==true) {
$.ajax({
type: 'POST',
dataType: 'json',
url: ajaxurl,
data: {
'action': 'homey_membership_featured_experience',
'experience_id': experience_id,
'security': nonce
},
beforeSend: function( ) {
$this.find('i').removeClass('homey-icon homey-icon-rating-star');
$this.find('i').addClass('fa-spin fa-spinner');
},
success: function(data) {
if ( data.success == true ) {
window.location.reload();
} else {
$this.find('i').removeClass('fa-spin fa-spinner');
$this.find('i').addClass('homey-icon homey-icon-rating-star');
jQuery('#homey_modal').modal('hide');
alert( data.reason );
}
},
error: function(errorThrown) {
}
}); // $.ajax
} // result
} // Callback
});
return false;
});
/*--------------------------------------------------------------------------
* Delete reservtion
* -------------------------------------------------------------------------*/
$( '.reservation-delete' ).on('click', function () {
var $this = $( this );
var reservation_id = $this.data('id');
bootbox.confirm({
message: "<p><strong>"+are_you_sure_text+"</strong></p>",
buttons: {
confirm: {
label: delete_btn_text,
className: 'btn btn-primary btn-half-width'
},
cancel: {
label: cancel_btn_text,
className: 'btn btn-grey-outlined btn-half-width'
}
},
callback: function (result) {
if(result==true) {
$.ajax({
type: 'POST',
dataType: 'json',
url: ajaxurl,
data: {
'action': 'homey_reservation_del',
'reservation_id': reservation_id
},
beforeSend: function( ) {
$this.find('i').removeClass('fa-trash');
$this.find('i').addClass('fa-spin fa-spinner');
},
success: function(data) {
if ( data.success == true ) {
window.location.href = data.url;
} else {
jQuery('#homey_modal').modal('hide');
alert( data.reason );
}
},
error: function(errorThrown) {
}
}); // $.ajax
} // result
} // Callback
});
return false;
});
/*--------------------------------------------------------------------------
* mark as paid
* -------------------------------------------------------------------------*/
$( '.mark-as-paid-exp-res' ).on('click', function () {
var $this = $( this );
var reservation_id = $this.data('id');
bootbox.confirm({
message: "<p><strong>"+are_you_sure_text+"</strong></p>",
buttons: {
confirm: {
label: confirm_btn_text,
className: 'btn btn-primary btn-half-width'
},
cancel: {
label: cancel_btn_text,
className: 'btn btn-grey-outlined btn-half-width'
}
},
callback: function (result) {
if(result==true) {
$.ajax({
type: 'POST',
dataType: 'json',
url: ajaxurl,
data: {
'action': 'homey_exp_reservation_mark_paid',
'reservation_id': reservation_id
},
beforeSend: function( ) {
$this.find('i').removeClass('fa-money');
$this.find('i').addClass('fa-spin fa-spinner');
},
success: function(data) {
if ( data.success == true ) {
window.location.reload();
} else {
jQuery('#homey_modal').modal('hide');
alert( data.reason );
}
},
error: function(errorThrown) {
}
}); // $.ajax
} // result
} // Callback
});
return false;
});
/*--------------------------------------------------------------------------
* Put on Hold
* -------------------------------------------------------------------------*/
$( '.put_on_hold' ).on('click', function () {
var $this = $( this );
var experience_id = $this.data('id');
var current_status = $this.data('current');
$.ajax({
type: 'POST',
dataType: 'json',
url: ajaxurl,
data: {
'action': 'homey_put_hold_experience',
'experience_id': experience_id,
'current_status': current_status
},
beforeSend: function( ) {
$this.find('i').removeClass('fa-pause');
$this.find('i').addClass('fa-spin fa-spinner');
},
success: function(data) {
if ( data.success == true ) {
window.location.reload();
} else {
jQuery('#homey_modal').modal('hide');
alert( data.reason );
}
},
error: function(errorThrown) {
}
}); // $.ajax
return false;
});
/*---------------------------------------------------------------------------
*
* Messaging system
* -------------------------------------------------------------------------*/
/*
* Message Thread Form
* -----------------------------*/
$('.start_thread_form').on('click', function(e) {
e.preventDefault();
var $this = $(this);
var $form = $this.parents( 'form' );
var $result = $('.messages-notification');
$.ajax({
url: ajaxurl,
data: $form.serialize(),
method: $form.attr('method'),
dataType: "JSON",
beforeSend: function( ) {
$this.children('i').remove();
$this.prepend('<i class=" '+process_loader_spinner+'"></i>');
},
success: function(response) {
if( response.success ) {
$result.empty().append(response.msg);
$form.find('input').val('');
$form.find('textarea').val('');
window.location.replace( response.redirect_link );
} else {
$result.empty().append(response.msg);
}
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
console.log(err.Message);
},
complete: function(){
$this.children('i').removeClass(process_loader_spinner);
}
});
});
/*
* Property Message Notifications
* -----------------------------*/
var houzez_message_notifications = function () {
$.ajax({
url: ajaxurl,
data: {
action : 'houzez_chcek_messages_notifications'
},
method: "POST",
dataType: "JSON",
beforeSend: function( ) {
// code here...
},
success: function(response) {
if( response.success ) {
if ( response.notification ) {
$( '.user-alert' ).show();
$( '.msg-alert' ).show();
} else {
$( '.user-alert' ).hide();
$( '.msg-alert' ).hide();
}
}
}
});
};
/*
* Property Thread Message Form
* -----------------------------*/
$('.start_thread_message_form').on('click', function(e) {
e.preventDefault();
var $this = $(this);
var $form = $this.parents( 'form' );
var $result = $('.messages-notification');
$.ajax({
url: ajaxurl,
data: $form.serialize(),
method: $form.attr('method'),
dataType: "JSON",
beforeSend: function( ) {
$this.children('i').remove();
$this.prepend('<i class=" '+process_loader_spinner+'"></i>');
},
success: function( response ) {
if( response.success ) {
window.location.replace( response.url );
} else {
$result.empty().append(response.msg);
}
},
complete: function(){
$this.children('i').removeClass(process_loader_spinner);
$this.children('i').addClass(success_icon);
}
});
});
$('.homey_exp_delete_msg_thread').on('click', function(e) {
e.preventDefault();
var $this = $( this );
var thread_id = $this.data('thread-id');
var sender_id = $this.data('sender-id');
var receiver_id = $this.data('receiver-id');
bootbox.confirm({
message: "<p><strong>"+are_you_sure_text+"</strong></p>",
buttons: {
confirm: {
label: delete_btn_text,
className: 'btn btn-primary btn-half-width'
},
cancel: {
label: cancel_btn_text,
className: 'btn btn-grey-outlined btn-half-width'
}
},
callback: function (result) {
if(result==true) {
$.ajax({
type: 'POST',
dataType: 'json',
url: ajaxurl,
data: {
'action': 'homey_delete_message_thread',
'thread_id': thread_id,
'sender_id': sender_id,
'receiver_id': receiver_id
},
beforeSend: function( ) {
$this.find('i').removeClass('fa-trash');
$this.find('i').addClass('fa-spin fa-spinner');
},
success: function(data) {
if ( data.success == true ) {
window.location.reload();
} else {
jQuery('#homey_modal').modal('hide');
}
},
error: function(errorThrown) {
}
}); // $.ajax
} // result
} // Callback
});
});
$('.homey_delete_message').on('click', function(e) {
e.preventDefault();
var $this = $( this );
var message_id = $this.data('message-id');
var created_by = $this.data('created-by');
bootbox.confirm({
message: "<p><strong>"+are_you_sure_text+"</strong></p>",
buttons: {
confirm: {
label: delete_btn_text,
className: 'btn btn-primary btn-half-width'
},
cancel: {
label: cancel_btn_text,
className: 'btn btn-grey-outlined btn-half-width'
}
},
callback: function (result) {
if(result==true) {
$.ajax({
type: 'POST',
dataType: 'json',
url: ajaxurl,
data: {
'action': 'homey_delete_message',
'message_id': message_id,
'created_by': created_by
},
beforeSend: function( ) {
$this.find('i').removeClass('fa-trash');
$this.find('i').addClass('fa-spin fa-spinner');
},
success: function(data) {
if ( data.success == true ) {
window.location.reload();
} else {
jQuery('#homey_modal').modal('hide');
}
},
error: function(errorThrown) {
}
}); // $.ajax
} // result
} // Callback
});
});
var homey_processing_modal = function ( msg ) {
var process_modal ='<div class="modal fade" id="homey_modal" tabindex="-1" role="dialog" aria-labelledby="faveModalLabel" aria-hidden="true"><div class="modal-dialog"><div class="modal-content"><div class="modal-body homey_messages_modal">'+msg+'</div></div></div></div></div>';
jQuery('body').append(process_modal);
jQuery('#homey_modal').modal();
};
var homey_processing_modal_close = function ( ) {
jQuery('#homey_modal').modal('hide');
};
/* ------------------------------------------------------------------------ */
/* Experience Thumbnails actions ( make features & delete )
/* ------------------------------------------------------------------------ */
var lisitng_thumbnail_event = function() {
// Set Featured Image
$('.icon-featured').on('click', function(e){
e.preventDefault();
var $this = jQuery(this);
var thumb_id = $this.data('attachment-id');
var thumb = $this.data('thumb');
var icon = $this.find( 'i');
$('.upload-view-media .media-image img').attr('src',thumb);
$('.upload-gallery-thumb-buttons .featured_image_id').remove();
$('.upload-gallery-thumb-buttons .icon-featured i').removeClass('homey-icon homey-icon-rating-star-full').addClass('homey-icon homey-icon-rating-star');
$this.closest('.upload-gallery-thumb-buttons').append('<input type="hidden" class="featured_image_id" name="featured_image_id" value="'+thumb_id+'">');
icon.removeClass('homey-icon homey-icon-rating-star').addClass('homey-icon homey-icon-rating-star-full');
});
//Remove Image
$('.icon-delete').on('click', function(e){
e.preventDefault();
var $this = $(this);
var thumbnail = $this.closest('.experience-thumb');
var loader = $this.find('.icon-loader');
var experience_id = $this.data('experience-id');
var thumb_id = $this.data('attachment-id');
loader.show();
var ajax_request = $.ajax({
type: 'post',
url: ajaxurl,
dataType: 'json',
data: {
'action': 'homey_remove_experience_thumbnail',
'experience_id': experience_id,
'thumb_id': thumb_id,
'removeNonce': verify_experience_gallery_nonce
}
});
ajax_request.done(function( response ) {
if ( response.remove_attachment ) {
thumbnail.remove();
} else {
}
});
ajax_request.fail(function( jqXHR, textStatus ) {
alert( "Request failed: " + textStatus );
});
});
}
lisitng_thumbnail_event();
/*--------------------------------------------------------------------------
* Uplaod experience gallery
* -------------------------------------------------------------------------*/
var experience_gallery_images = function() {
$(document).keypress(function(ev) {
if($("#experience_title").length > 0){
if ((ev.which && ev.which === 13) ||
(ev.keyCode && ev.keyCode === 13)) {
ev.preventDefault();
return false;
}
}
});
$( "#homey_gallery_container" ).sortable({
placeholder: "sortable-placeholder"
});
var plup_uploader = new plupload.Uploader({
browse_button: 'select_gallery_images',
file_data_name: 'experience_upload_file',
container: 'homey_gallery_dragDrop',
drop_element: 'homey_gallery_dragDrop',
url: ajaxurl + "?action=homey_experience_gallery_upload&verify_experience_gallery_nonce=" + verify_experience_gallery_nonce,
filters: {
mime_types : [
{ title : verify_file_type, extensions : "jpg,jpeg,gif,png" }
],
max_file_size: '10m',//image_max_file_size,
prevent_duplicates: false
}
});
plup_uploader.init();
plup_uploader.bind('FilesAdded', function(up, files) {
var homey_thumbs = "";
var maxfiles = '50';//max_prop_images;
if(up.files.length > maxfiles ) {
up.splice(maxfiles);
alert('no more than '+maxfiles + ' file(s)');
return;
}
plupload.each(files, function(file) {
homey_thumbs += '<div id="thumb-holder-' + file.id + '" class="col-sm-2 col-xs-4 experience-thumb">' + '' + '</div>';
});
document.getElementById('homey_gallery_container').innerHTML += homey_thumbs;
up.refresh();
plup_uploader.start();
});
plup_uploader.bind('UploadProgress', function(up, file) {
document.getElementById( "thumb-holder-" + file.id ).innerHTML = '<span>' + file.percent + "%</span>";
});
plup_uploader.bind('Error', function( up, err ) {
document.getElementById('homey_errors').innerHTML += "<br/>" + "Error #" + err.code + ": " + err.message;
});
plup_uploader.bind('FileUploaded', function ( up, file, ajax_response ) {
var response = $.parseJSON( ajax_response.response );
if ( response.success ) {
var gallery_thumbnail = '<figure class="upload-gallery-thumb">' +
'<img src="' + response.url + '" alt="thumb">' +
'</figure>' +
'<div class="upload-gallery-thumb-buttons">' +
'<a class="icon-featured" data-thumb="' + response.thumb + '" data-experience-id="' + 0 + '" data-attachment-id="' + response.attachment_id + '"><i class="homey-icon-rating-star-full"></i></a>' +
'<button class="icon-delete" data-experience-id="' + 0 + '" data-attachment-id="' + response.attachment_id + '"><i class="homey-icon homey-icon-bin-1-interface-essential"></i></button>' +
'<input type="hidden" class="experience-image-id" name="experience_image_ids[]" value="' + response.attachment_id + '"/>' +
'</div>'+
'<span style="display: none;" class="icon icon-loader"><i class="homey-icon homey-icon-loading-half fa-spin"></i></span>';
document.getElementById( "thumb-holder-" + file.id ).innerHTML = gallery_thumbnail;
lisitng_thumbnail_event();
} else {
var gallery_thumbnail = '<span class="error-message">'+response.reason+'</span>';
document.getElementById( "thumb-holder-" + file.id ).innerHTML = gallery_thumbnail;
console.log ( response );
}
});
}
experience_gallery_images();
/* ------------------------------------------------------------------------ */
/* Bedrooms
/* ------------------------------------------------------------------------ */
$( '#add_more_bedrooms' ).on('click', function( e ){
e.preventDefault();
var numVal = $(this).data("increment") + 1;
$(this).data('increment', numVal);
$(this).attr({
"data-increment" : numVal
});
var newBedroom = '' +
'<div class="more_rooms_wrap">'+
'<div class="row">'+
'<div class="col-sm-6 col-xs-12">'+
'<div class="form-group">'+
'<label for="acc_bedroom_name">'+acc_bedroom_name+'</label>'+
'<input type="text" name="homey_accomodation['+numVal+'][acc_bedroom_name]" class="form-control" placeholder="'+acc_bedroom_name_plac+'">'+
'</div>'+
'</div>'+
'<div class="col-sm-6 col-xs-12">'+
'<div class="form-group">'+
'<label for="acc_guests">'+acc_guests+'</label>'+
'<input type="text" name="homey_accomodation['+numVal+'][acc_guests]" class="form-control" placeholder="'+acc_guests_plac+'">'+
'</div>'+
'</div>'+
'</div>'+
'<div class="row">'+
'<div class="col-sm-6 col-xs-12">'+
'<div class="form-group">'+
'<label for="acc_no_of_beds">'+acc_no_of_beds+'</label>'+
'<input type="text" name="homey_accomodation['+numVal+'][acc_no_of_beds]" class="form-control" placeholder="'+acc_no_of_beds_plac+'">'+
'</div>'+
'</div>'+
'<div class="col-sm-6 col-xs-12">'+
'<div class="form-group">'+
'<label for="acc_bedroom_type">'+acc_bedroom_type+'</label>'+
'<input type="text" name="homey_accomodation['+numVal+'][acc_bedroom_type]" class="form-control" placeholder="'+acc_bedroom_type_plac+'">'+
'</div>'+
'</div>'+
'</div>'+
'<div class="row">'+
'<div class="col-sm-12 col-xs-12">'+
'<button type="button" data-remove="'+numVal+'" class="btn btn-primary remove-beds">'+acc_btn_remove_room+'</button>'+
' </div>'+
'</div>'+
'<hr>';
'</div>';
$( '#more_bedrooms_main').append( newBedroom );
removeBedroom();
});
var removeBedroom = function (){
$( '.remove-beds').on('click', function( event ){
event.preventDefault();
var $this = $( this );
$this.closest( '.more_rooms_wrap' ).remove();
});
}
removeBedroom();
/* ------------------------------------------------------------------------ */
/* What To Bring section
/* ------------------------------------------------------------------------ */
$( '#add_more_what_will_bring' ).on('click', function( e ){
e.preventDefault();
var numVal = $(this).data("increment") + 1;
$(this).data('increment', numVal);
$(this).attr({
"data-increment" : numVal
});
var newOption = '' +
'<div class="more_what_to_bring_wrap">'+
'<div class="row">'+
'<div class="col-sm-12 col-xs-12">'+
'<div class="form-group">'+
'<label for="what_to_bring_name'+numVal+'">'+Homey_Experience.what_to_bring_name+'</label>'+
'<textarea id="what_to_bring_name'+numVal+'" type="text" name="what_to_bring['+numVal+'][wbit_name]" class="form-control" placeholder="'+Homey_Experience.what_to_bring_name_plac+'"></textarea>'+
'</div>'+
'</div>'+
'</div>'+
'<div class="row">'+
'<div class="col-sm-12 col-xs-12">'+
'<button type="button" data-remove="'+numVal+'" class="remove-what-to-bring btn btn-primary btn-slim">'+Homey_Experience.delete_btn_text+'</button>'+
'</div>'+
'</div>'+
'</div>';
$( '#more_what_to_bring_main').append( newOption );
$('.type-select-picker').selectpicker('refresh');
removeWhatToBring();
});
var removeWhatToBring = function (){
$( '.remove-what-to-bring').on('click', function( event ){
event.preventDefault();
var $this = $( this );
$this.closest( '.more_what_to_bring_wrap' ).remove();
});
}
removeWhatToBring();
$(".nothing_bring_btn").on("click", function (e){
if($("input[name='nothing_bring_btn']:checked").val() == 'on'){
$(".what_to_bring").hide();
}else{
$(".what_to_bring").show();
}
});
/* ------------------------------------------------------------------------ */
/* What Will Provided section
/* ------------------------------------------------------------------------ */
$( '#add_more_what_will_provided' ).on('click', function( e ){
e.preventDefault();
var numVal = $(this).data("increment") + 1;
$(this).data('increment', numVal);
$(this).attr({
"data-increment" : numVal
});
var newOption = '' +
'<div class="more_what_to_provided_wrap">'+
'<div class="row">'+
'<div class="col-sm-12 col-xs-12">'+
'<div class="form-group">'+
'<label for="what_to_provided_name'+numVal+'">'+Homey_Experience.what_to_provided_name+'</label>'+
'<input id="what_to_provided_name'+numVal+'" type="text" name="what_to_provided['+numVal+'][wwbp_name]" class="form-control" placeholder="'+Homey_Experience.what_to_provided_name_plac+'">'+
'</div>'+
'</div>'+
'</div>'+
'<div class="row">'+
'<div class="col-sm-12 col-xs-12">'+
'<button type="button" data-remove="'+numVal+'" class="remove-what-to-provided btn btn-primary btn-slim">'+Homey_Experience.delete_btn_text+'</button>'+
'</div>'+
'</div>'+
'</div>';
$( '#more_what_to_provided_main').append( newOption );
$('.type-select-picker').selectpicker('refresh');
removeWhatWillProvided();
});
var removeWhatWillProvided = function (){
$( '.remove-what-to-provided').on('click', function( event ){
event.preventDefault();
var $this = $( this );
$this.closest( '.more_what_to_provided_wrap' ).remove();
});
}
removeWhatWillProvided();
$(".nothing_provided_btn").on("click", function (e){
if($("input[name='nothing_provided_btn']:checked").val() == 'on'){
$(".what_is_provided").hide();
}else{
$(".what_is_provided").show();
}
});
/* ------------------------------------------------------------------------ */
/* Extra services pricing
/* ------------------------------------------------------------------------ */
$( '#add_more_extra_services' ).on('click', function( e ){
e.preventDefault();
var numVal = $(this).data("increment") + 1;
$(this).data('increment', numVal);
$(this).attr({
"data-increment" : numVal
});
var newOption = '' +
'<div class="more_extra_services_wrap">'+
'<div class="row">'+
'<div class="col-sm-4 col-xs-12">'+
'<div class="form-group">'+
'<label for="name">'+Homey_Experience.ex_name+'</label>'+
'<input type="text" name="extra_price['+numVal+'][name]" class="form-control" placeholder="'+Homey_Experience.ex_name_plac+'">'+
'</div>'+
'</div>'+
'<div class="col-sm-4 col-xs-12">'+
'<div class="form-group">'+
'<label for="price"> '+Homey_Experience.ex_price+' </label>'+
'<input type="text" name="extra_price['+numVal+'][price]" class="form-control" placeholder="'+Homey_Experience.ex_price_plac+'">'+
'</div>'+
'</div>'+
'<div class="col-sm-4 col-xs-12">'+
'<div class="form-group">'+
'<label for="type"> '+Homey_Experience.ex_type+' </label>'+
'<select name="extra_price['+numVal+'][type]" class="type-select-picker selectpicker" data-live-search="false" data-live-search-style="begins">'+
'<option value="single_fee">'+Homey_Experience.ex_single_fee+'</option>'+
'<option value="per_night"> '+Homey_Experience.ex_per_night+'</option>'+
'<option value="per_guest">'+Homey_Experience.ex_per_guest+'</option>'+
'<option value="per_night_per_guest">'+Homey_Experience.ex_per_night_per_guest+'</option>'+
'</select>'+
'</div>'+
'</div>'+
'</div>'+
'<div class="row">'+
'<div class="col-sm-12 col-xs-12">'+
'<button type="button" data-remove="'+numVal+'" class="remove-extra-services btn btn-primary btn-slim">'+Homey_Experience.delete_btn_text+'</button>'+
'</div>'+
'</div>'+
'</div>';
$( '#more_extra_services_main').append( newOption );
$('.type-select-picker').selectpicker('refresh');
removeExtraServices();
});
var removeExtraServices = function (){
$( '.remove-extra-services').on('click', function( event ){
event.preventDefault();
var $this = $( this );
$this.closest( '.more_extra_services_wrap' ).remove();
});
}
removeExtraServices();
/* ------------------------------------------------------------------------ */
/* Services
/* ------------------------------------------------------------------------ */
$( '#add_more_service' ).on('click', function( e ){
e.preventDefault();
var numVal = $(this).data("increment") + 1;
$(this).data('increment', numVal);
$(this).attr({
"data-increment" : numVal
});
var newService = '' +
'<div class="more_services_wrap">'+
'<div class="row">'+
'<div class="col-sm-6 col-xs-12">'+
'<div class="form-group">'+
'<label for="service_name">'+service_name+'</label>'+
'<input type="text" name="homey_services['+numVal+'][service_name]" class="form-control" placeholder="'+service_name_plac+'">'+
'</div>'+
'</div>'+
'<div class="col-sm-6 col-xs-12">'+
'<div class="form-group">'+
'<label for="service_price">'+service_price+'</label>'+
'<input type="text" name="homey_services['+numVal+'][service_price]" class="form-control" placeholder="'+service_price_plac+'">'+
'</div>'+
'</div>'+
'</div>'+
'<div class="row">'+
'<div class="col-sm-12 col-xs-12">'+
'<div class="form-group">'+
'<label for="service_des">'+service_des+'</label>'+
'<textarea placeholder="'+service_des_plac+'" rows="3" name="homey_services['+numVal+'][service_des]" class="form-control"></textarea>'+
'</div>'+
'</div>'+
'</div>'+
'<div class="row">'+
'<div class="col-sm-12 col-xs-12">'+
'<button type="button" data-remove="'+numVal+'" class="btn btn-primary remove-service">'+btn_remove_service+'</button>'+
' </div>'+
'</div>'+
'<hr>';
'</div>';
$( '#more_services_main').append( newService );
removeService();
});
var removeService = function (){
$( '.remove-service').on('click', function( event ){
event.preventDefault();
var $this = $( this );
$this.closest( '.more_services_wrap' ).remove();
});
}
removeService();
/*--------------------------------------------------------------------------
* Thread Message Attachment
* -------------------------------------------------------------------------*/
var thread_message_attachment = function() {
/* initialize uploader */
var uploader = new plupload.Uploader({
browse_button: 'thread-message-attachment',
file_data_name: 'messages_upload_file',
container: 'experience-thumbs-container',
multi_selection: true,
url: ajaxurl + "?action=homey_message_attacment_upload&verify_experience_gallery_nonce=" + verify_experience_gallery_nonce,
filters: {
max_file_size: '20m',
prevent_duplicates: true
}
});
uploader.init();
uploader.bind('FilesAdded', function(up, files) {
var html = '';
var experienceThumb = "";
var maxfiles = '10';
if(up.files.length > maxfiles ) {
up.splice(maxfiles);
alert('no more than '+maxfiles + ' file(s)');
return;
}
plupload.each(files, function(file) {
experienceThumb += '<li id="thumb-holder-' + file.id + '" class="experience-thumb">' + '' + '</li>';
});
document.getElementById('experience-thumbs-container').innerHTML += experienceThumb;
up.refresh();
uploader.start();
});
uploader.bind('UploadProgress', function(up, file) {
document.getElementById( "thumb-holder-" + file.id ).innerHTML = '<li><lable>' + file.name + '<span>' + file.percent + "%</span></lable></li>";
});
uploader.bind('Error', function( up, err ) {
document.getElementById('errors-log').innerHTML += "<br/>" + "Error #" + err.code + ": " + err.message;
});
uploader.bind('FileUploaded', function ( up, file, ajax_response ) {
var response = $.parseJSON( ajax_response.response );
if ( response.success ) {
console.log( ajax_response );
var message_html =
'<div class="attach-icon delete-attachment">' +
'<i class="homey-icon homey-icon-bin-1-interface-essential remove-message-attachment" data-attachment-id="' + response.attachment_id + '"></i>' +
'</div>' +
'<span class="attach-text">' + response.file_name + '</span>' +
'<input type="hidden" class="experience-image-id" name="experience_image_ids[]" value="' + response.attachment_id + '"/>' ;
document.getElementById( "thumb-holder-" + file.id ).innerHTML = message_html;
messageAttachment();
thread_message_attachment();
} else {
console.log ( response );
alert('error');
}
});
uploader.refresh();
}
thread_message_attachment();
var messageAttachment = function() {
$( '.remove-message-attachment' ).on('click', function () {
var $this = $(this);
var thumbnail = $this.closest('li');
var thumb_id = $this.data('attachment-id');
$this.removeClass( 'fa-trash' );
$this.addClass( 'fa-spinner' );
var ajax_request = $.ajax({
type: 'post',
url: ajaxurl,
dataType: 'json',
data: {
'action': 'homey_remove_message_attachment',
'thumbnail_id': thumb_id,
}
});
ajax_request.done(function( response ) {
if ( response.attachment_remove ) {
thumbnail.remove();
} else {
}
thread_message_attachment();
});
ajax_request.fail(function( jqXHR, textStatus ) {
alert( "Request failed: " + textStatus );
});
});
}
/*---------------------------------------------------------------------------
* iCalendar
*--------------------------------------------------------------------------*/
$('#import_ical_feeds_exp').on('click', function(e) {
e.preventDefault();
var $this = $(this);
var ical_feed_name = [];
var ical_feed_url = [];
var experience_id = $('input[name="experience_id"]').val();
$('.ical_feed_name').each(function() {
ical_feed_name.push($(this).val())
});
$('.ical_feed_url').each(function() {
ical_feed_url.push($(this).val())
});
if(ical_feed_name == '' || ical_feed_url == '') {
alert(Homey_Experience.add_ical_feeds);
return;
}
$.ajax({
url: ajaxurl,
method: 'POST',
dataType: "JSON",
data: {
'action' : 'homey_add_ical_feeds_exp',
'experience_id' : experience_id,
'ical_feed_name' : ical_feed_name,
'ical_feed_url' : ical_feed_url,
},
beforeSend: function( ) {
$this.children('i').remove();
$this.prepend('<i class=" '+process_loader_spinner+'"></i>');
},
success: function(response) {
if( response.success ) {
alert();
window.location.href = response.url;
} else {
$this.children('i').remove();
}
alert(response.message);
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
console.log(err.Message);
},
complete: function(){
//$this.children('i').removeClass(process_loader_spinner);
}
});
}) // end #import_ical_feeds
$( '#add_more_feed' ).on('click', function( e ){
e.preventDefault();
var ical_feed_name = $('.enter_ical_feed_name').val();
var ical_feed_url = $('.enter_ical_feed_url').val();
if(ical_feed_name == '' || ical_feed_url == '') {
alert(Homey_Experience.both_required);
return;
}
var numVal = $(this).data("increment") + 1;
$(this).data('increment', numVal);
$(this).attr({
"data-increment" : numVal
});
var newFeed = '' +
'<div class="imported-calendar-row clearfix">'+
'<div class="imported-calendar-50">'+
'<input type="text" name="ical_feed_name[]" class="form-control ical_feed_name" value="'+ical_feed_name+'">'+
'</div>'+
'<div class="imported-calendar-50">'+
'<input type="text" name="ical_feed_url[]" class="form-control ical_feed_url" value="'+ical_feed_url+'">'+
'</div>';
'</div>';
$( '#ical-feeds-container').append( newFeed );
removeICalFeed();
$('.ical-dummy').val('');
});
var removeICalFeed = function (){
$( '.remove-ical-feed').on('click', function( event ){
event.preventDefault();
var $this = $( this );
var experience_id = $('input[name="experience_id"]').val();
var remove_index = $this.data('remove');
$.ajax({
url: ajaxurl,
method: 'POST',
dataType: "JSON",
data: {
'action' : 'homey_remove_ical_feeds',
'experience_id' : experience_id,
'remove_index' : remove_index
},
beforeSend: function( ) {
$this.children('i').remove();
$this.prepend('<i class=" '+process_loader_spinner+'"></i>');
},
success: function(response) { console.log(response.message);
if( response.success ) {
$this.closest( '.imported-calendar-row' ).remove();
var reloadWindow = setInterval(function(){
window.location.reload();
clearInterval(reloadWindow);
}, 1000);
}
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
console.log(err.Message);
},
complete: function(){
$this.children('i').removeClass(process_loader_spinner);
}
});
var numVal = $('#add_more_feed').data("increment")
$('#add_more_feed').attr({
"data-increment" : numVal-1
});
});
}
removeICalFeed();
/*--------------------------------------------------------------------------
* Extra expenses
*---------------------------------------------------------------------------*/
$('#save_expenses').on('click', function(e) {
e.preventDefault();
var $this = $(this);
var expense_name = [];
var expense_value = [];
var reservation_id = $('#expense_rsv_id').val();
$('.expense_name').each(function() {
expense_name.push($(this).val())
});
$('.expense_value').each(function() {
expense_value.push($(this).val())
});
if(expense_name == '' || expense_value == '') {
alert(Homey_Experience.add_expense_msg);
return;
}
$.ajax({
url: ajaxurl,
method: 'POST',
dataType: "JSON",
data: {
'action' : 'homey_save_extra_expenses',
'reservation_id' : reservation_id,
'expense_name' : expense_name,
'expense_value' : expense_value,
},
beforeSend: function( ) {
$this.children('i').remove();
$this.prepend('<i class=" '+process_loader_spinner+'"></i>');
},
success: function(response) {
if( response.success ) {
window.location.href = response.url;
} else {
$this.children('i').remove();
alert(response.message);
}
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
console.log(err.Message);
},
complete: function(){
$this.children('i').removeClass(process_loader_spinner);
}
});
}) // end #import_ical_feeds
$( '#add_more_expense' ).on('click', function( e ){
e.preventDefault();
var expense_name = $('.enter_expense_name').val();
var expense_value = $('.enter_expense_value').val();
if(expense_name == '' || expense_value == '') {
alert(Homey_Experience.both_required);
return;
}
var numVal = $(this).data("increment") + 1;
$(this).data('increment', numVal);
$(this).attr({
"data-increment" : numVal
});
var newFeed = '' +
'<div class="imported-calendar-row clearfix">'+
'<div class="imported-calendar-50">'+
'<input type="text" name="expense_name[]" class="form-control expense_name" value="'+expense_name+'">'+
'</div>'+
'<div class="imported-calendar-50">'+
'<input type="text" name="expense_value[]" class="form-control expense_value" value="'+expense_value+'">'+
'</div>';
'</div>';
$( '#expenses-container').append( newFeed );
removeICalFeed();
$('.expense-dummy').val('');
});
var removeExtraExpenses = function (){
$( '.remove-expense').on('click', function( event ){
event.preventDefault();
var $this = $( this );
var reservation_id = $('#expense_rsv_id').val();
var remove_index = $this.data('remove');
$.ajax({
url: ajaxurl,
method: 'POST',
dataType: "JSON",
data: {
'action' : 'homey_remove_extra_expense',
'reservation_id' : reservation_id,
'remove_index' : remove_index
},
beforeSend: function( ) {
$this.children('i').remove();
$this.prepend('<i class=" '+process_loader_spinner+'"></i>');
},
success: function(response) { console.log(response.message);
if( response.success ) {
$this.closest( '.imported-calendar-row' ).remove();
window.location.reload();
}
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
console.log(err.Message);
},
complete: function(){
$this.children('i').removeClass(process_loader_spinner);
}
});
var numVal = $('#add_more_expense').data("increment")
$('#add_more_expense').attr({
"data-increment" : numVal-1
});
});
}
removeExtraExpenses();
/*--------------------------------------------------------------------------
* Discount
*---------------------------------------------------------------------------*/
$('#save_discounts').on('click', function(e) {
e.preventDefault();
var $this = $(this);
var discount_name = [];
var discount_value = [];
var reservation_id = $('#expense_rsv_id').val();
$('.discount_name').each(function() {
discount_name.push($(this).val())
});
$('.discount_value').each(function() {
discount_value.push($(this).val())
});
if(discount_name == '' || discount_value == '') {
alert(Homey_Experience.add_expense_msg);
return;
}
$.ajax({
url: ajaxurl,
method: 'POST',
dataType: "JSON",
data: {
'action' : 'homey_save_discounts',
'reservation_id' : reservation_id,
'discount_name' : discount_name,
'discount_value' : discount_value,
},
beforeSend: function( ) {
$this.children('i').remove();
$this.prepend('<i class=" '+process_loader_spinner+'"></i>');
},
success: function(response) {
if( response.success ) {
window.location.href = response.url;
} else {
$this.children('i').remove();
}
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
console.log(err.Message);
},
complete: function(){
//$this.children('i').removeClass(process_loader_spinner);
}
});
}) // end #import_ical_feeds
$( '#add_more_discount' ).on('click', function( e ){
e.preventDefault();
var discount_name = $('.enter_discount_name').val();
var discount_value = $('.enter_discount_value').val();
if(discount_name == '' || discount_value == '') {
alert(Homey_Experience.both_required);
return;
}
var numVal = $(this).data("increment") + 1;
$(this).data('increment', numVal);
$(this).attr({
"data-increment" : numVal
});
var newFeed = '' +
'<div class="imported-calendar-row clearfix">'+
'<div class="imported-calendar-50">'+
'<input type="text" name="discount_name[]" class="form-control discount_name" value="'+discount_name+'">'+
'</div>'+
'<div class="imported-calendar-50">'+
'<input type="text" name="discount_value[]" class="form-control discount_value" value="'+discount_value+'">'+
'</div>';
'</div>';
$( '#discount-container').append( newFeed );
removeICalFeed();
$('.discount-dummy').val('');
});
var removeDiscount = function (){
$( '.remove-discount').on('click', function( event ){
event.preventDefault();
var $this = $( this );
var reservation_id = $('#expense_rsv_id').val();
var remove_index = $this.data('remove');
$.ajax({
url: ajaxurl,
method: 'POST',
dataType: "JSON",
data: {
'action' : 'homey_remove_discount',
'reservation_id' : reservation_id,
'remove_index' : remove_index
},
beforeSend: function( ) {
$this.children('i').remove();
$this.prepend('<i class=" '+process_loader_spinner+'"></i>');
},
success: function(response) { console.log(response.message);
if( response.success ) {
$this.closest( '.imported-calendar-row' ).remove();
window.location.reload();
}
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
console.log(err.Message);
},
complete: function(){
$this.children('i').removeClass(process_loader_spinner);
}
});
var numVal = $('#add_more_discount').data("increment")
$('#add_more_discount').attr({
"data-increment" : numVal-1
});
});
}
removeDiscount();
/*--------------------------------------------------------------------------
* unavailable dates
*---------------------------------------------------------------------------*/
function homey_exp_unavailable_dates() {
$('.exp-available, .exp-unavailable').on('click', function() {
var $this = $(this);
var selected_date = $this.data('formatted-date');
var experience_id = $('#period_experience_id').val();
if($this.hasClass('past-day')) {
return;
}
$.ajax({
type: 'post',
url: ajaxurl,
dataType: 'json',
data: {
'action': 'homey_make_exp_date_unavaiable',
'selected_date': selected_date,
'experience_id': experience_id
},
beforeSend: function( ) {
$this.children('i').remove();
$this.prepend('<i class="icon-center '+process_loader_spinner+'"></i>');
},
success: function(data) {
if( data.success ) {
if(data.message == 'made_available') {
$this.removeClass('unavailable');
$this.addClass('available');
$this.find('.day-status').text(avail_label);
} else {
$this.removeClass('available');
$this.addClass('unavailable');
$this.find('.day-status').text(unavail_label);
}
}
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
console.log(err.Message);
},
complete: function(){
$this.children('i').removeClass(process_loader_spinner);
}
});
})
}
homey_exp_unavailable_dates(); // end homey_exp_unavailable_dates
$('.choose_payout_method').on('click', function(e) {
var $this = $(this);
var current_method = $this.val();
if(current_method == 'wire') {
$('#wire_transfer').show();
$('#paypal').hide();
$('#skrill').hide();
} else if(current_method == 'paypal') {
$('#wire_transfer').hide();
$('#paypal').show();
$('#skrill').hide();
} else if(current_method == 'skrill') {
$('#wire_transfer').hide();
$('#paypal').hide();
$('#skrill').show();
}
});
function homey_show_payout_method() {
var current_method = $("input[name='payout_method']:checked").val();
if(current_method == 'wire') {
$('#wire_transfer').show();
$('#paypal').hide();
$('#skrill').hide();
} else if(current_method == 'paypal') {
$('#wire_transfer').hide();
$('#paypal').show();
$('#skrill').hide();
} else if(current_method == 'skrill') {
$('#wire_transfer').hide();
$('#paypal').hide();
$('#skrill').show();
}
}
if(jQuery('.choose_payout_method').length > 0) {
jQuery(window).load(function(){
homey_show_payout_method();
});
}
$('.define-payout-methods input').on('focusin', function() {
$(this).removeClass('error');
});
$('.homey_save_payout_method').on('click', function(e) {
e.preventDefault();
var $this = $(this);
errorBlock.hide();
$('.date-saved-success').hide();
$.ajax({
type: 'post',
url: ajaxurl,
dataType: 'json',
data: {
'action': 'homey_save_payout_method_info',
'ben_first_name': $('#ben_first_name').val(),
'ben_last_name': $('#ben_last_name').val(),
'ben_company_name': $('#ben_company_name').val(),
'ben_tax_number': $('#ben_tax_number').val(),
'ben_street_address': $('#ben_street_address').val(),
'ben_apt_suit': $('#ben_apt_suit').val(),
'ben_city': $('#ben_city').val(),
'ben_state': $('#ben_state').val(),
'ben_zip_code': $('#ben_zip_code').val(),
'bank_account': $('#bank_account').val(),
'swift': $('#swift').val(),
'bank_name': $('#bank_name').val(),
'wir_street_address': $('#wir_street_address').val(),
'wir_aptsuit': $('#wir_aptsuit').val(),
'wir_city': $('#wir_city').val(),
'wir_state': $('#wir_state').val(),
'wir_zip_code': $('#wir_zip_code').val(),
'paypal_email': $('#paypal_email').val(),
'skrill_email': $('#skrill_email').val(),
'payout_method': $("input[name='payout_method']:checked").val(),
'security' : $('#homey_payout_method_security').val()
},
beforeSend: function( ) {
$this.children('i').remove();
$this.prepend('<i class=" '+process_loader_spinner+'"></i>');
},
success: function(data) {
if( data.success ) {
$('.date-saved-success').show();
} else {
var i;
var required_fields = data.req;
for (i = 0; i < required_fields.length; i++) {
$('#'+required_fields[i]).addClass('error');
}
errorBlock.show();
}
$("html, body").animate({
scrollTop: 0
}, "slow");
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
console.log(err.Message);
},
complete: function(){
$this.children('i').remove();
}
});
});
$('#homey_change_payout_status').on('click', function(e) {
e.preventDefault();
var $this = $(this);
$.ajax({
type: 'post',
url: ajaxurl,
dataType: 'json',
data: {
'action': 'homey_update_payout_status',
'payout_status': $('#payout_status').val(),
'payout_id': $('#payout_id').val(),
'transfer_fee': $('#transfer_fee').val(),
'transfer_note': $('#transfer_note').val(),
'security' : $('#homey_payout_status_security').val()
},
beforeSend: function( ) {
$this.empty();
$this.html('<div class="spinner"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></div>');
},
success: function(data) {
if( data.success ) {
window.location.reload();
} else {
$this.empty();
$this.text(btn_save);
alert(data.msg);
}
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
console.log(err.Message);
},
complete: function(){
//$this.children('i').remove();
}
});
});
$('#payout_status').on('change', function() {
if($(this).val() == 3) {
$('.transfer_fee, .transfer_note').show();
} else {
$('.transfer_fee, .transfer_note').hide();
}
});
$( window ).load(function() {
var payout_status = $( "#payout_status" ).val();
if(payout_status == 3) {
$('.transfer_fee, .transfer_note').show();
} else {
$('.transfer_fee, .transfer_note').hide();
}
});
$('#request_payout').on('click', function(e) {
e.preventDefault();
var $this = $(this);
var payout_alert = $('#payout_alert');
var payout_msg = $('#payout_alert span');
payout_msg.empty();
payout_alert.hide();
$.ajax({
type: 'post',
url: ajaxurl,
dataType: 'json',
data: {
'action': 'homey_add_payout',
'payout_amount': $('#payout_amount').val(),
'security' : $('#homey_payout_request_security').val()
},
beforeSend: function( ) {
$this.children('i').remove();
$this.prepend('<i class=" '+process_loader_spinner+'"></i>');
},
success: function(data) {
if( data.success ) {
payout_alert.show();
payout_alert.removeClass('alert-danger');
payout_alert.addClass('alert-success');
payout_msg.html(data.msg);
} else {
payout_alert.show();
payout_alert.removeClass('alert-success');
payout_alert.addClass('alert-danger');
payout_msg.html(data.msg);
}
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
console.log(err.Message);
},
complete: function(){
$this.children('i').remove();
}
});
});
/*--------------------------------------------------------------------------
* Admin adjust payment
* -------------------------------------------------------------------------*/
$( '#btn_make_adjustment').on('click', function(e) {
e.preventDefault();
var $this = $(this);
var $form = $this.parents( 'form' );
var $messages = $form.find('.homey_messages');
$.ajax({
url: ajaxurl,
data: $form.serialize(),
method: $form.attr('method'),
dataType: "JSON",
beforeSend: function( ) {
$this.children('i').remove();
$this.prepend('<i class=" '+process_loader_spinner+'"></i>');
},
success: function(response) {
if( response.success ) {
window.location.reload();
} else {
$messages.empty().append(response.msg);
$this.children('i').removeClass(process_loader_spinner);
}
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
console.log(err.Message);
},
complete: function(){
$this.children('i').removeClass(process_loader_spinner);
$this.children('i').addClass(success_icon);
}
});
});
/*--------------------------------------------------------------------------
* Admin adjust payment for guest
* -------------------------------------------------------------------------*/
$( '#btn_guest_adjustment').on('click', function(e) {
e.preventDefault();
var $this = $(this);
var $form = $this.parents( 'form' );
var $messages = $form.find('.homey_messages');
$.ajax({
url: ajaxurl,
data: $form.serialize(),
method: $form.attr('method'),
dataType: "JSON",
beforeSend: function( ) {
$this.children('i').remove();
$this.prepend('<i class=" '+process_loader_spinner+'"></i>');
},
success: function(response) {
if( response.success ) {
window.location.reload();
} else {
$messages.empty().append(response.msg);
$this.children('i').removeClass(process_loader_spinner);
}
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
console.log(err.Message);
},
complete: function(){
$this.children('i').removeClass(process_loader_spinner);
$this.children('i').addClass(success_icon);
}
});
});
/*--------------------------------------------------------------------------
* Save experience as draft
* -------------------------------------------------------------------------*/
$( "#save_as_draft_exp" ).click(function() {
var $form = $('#submit_experience_form');
var save_as_draft = $('#save_as_draft');
var description = tinyMCE.get('description').getContent();
$.ajax({
type: 'post',
url: ajaxurl,
dataType: 'json',
data: $form.serialize() + "&action=save_as_draft&description="+description,
beforeSend: function () {
save_as_draft.children('i').remove();
save_as_draft.prepend('<i class=" '+process_loader_spinner+'"></i>');
},
success: function( response ) {
if( response.success ) {
save_as_draft.children('i').removeClass(process_loader_spinner);
save_as_draft.children('i').addClass(success_icon);
$('input[name=draft_experience_id]').remove();
$('#submit_experience_form').prepend('<input type="hidden" name="draft_experience_id" value="'+response.experience_id+'">');
}
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
console.log(err.Message);
}
})
});
/*--------------------------------------------------------------------------
* Local paymnet
* -------------------------------------------------------------------------*/
$('#host_payment_option').on('change', function() {
var $this = $(this);
if($this.val() == 'percent') {
$('.host-percentage').show();
} else {
$('.host-percentage').hide();
}
});
$('#save_host_payment_option').on('click', function(e) {
e.preventDefault();
var $this = $(this);
var payment_type = $('#host_payment_option').val();
var percent = $('#payment_percent').val();
var msg_alert = $('#msg_alert');
var msg = $('#msg_alert span');
msg.empty();
msg_alert.hide();
$.ajax({
type: 'post',
url: ajaxurl,
dataType: 'json',
data: {
'action': 'homey_add_host_payment_method',
'payment_type': payment_type,
'percent': percent,
},
beforeSend: function( ) {
$this.children('i').remove();
$this.prepend('<i class=" '+process_loader_spinner+'"></i>');
},
success: function(data) {
if( data.success ) {
msg_alert.show();
msg_alert.removeClass('alert-danger');
msg_alert.addClass('alert-success');
msg.html(data.msg);
} else {
msg_alert.show();
msg_alert.removeClass('alert-success');
msg_alert.addClass('alert-danger');
msg.html(data.msg);
}
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
console.log(err.Message);
},
complete: function(){
$this.children('i').remove();
}
});
});
} // End Type Of
});
Back to Directory
File Manager