Try to code this way… & also try to use more console-logs!
CONSOLE = your BEST-FRIEND !!!
Sorry → i did cut off some parts to simplify code…
// Import the wix-data module for working with collections.
import wixData from "wix-data";
import wixBookings from 'wix-bookings';
// Import the wix-location module for sending emails for dismissed appointments.
import wixLocation from "wix-location";
// ----------------- USER-INTERFACE----------------------
var requestRepeater = "#requestsRepeater"
var requestDataset = "#pendingRequestsDataset"
// ----------------- USER-INTERFACE----------------------
//-------------Page Setup-------------//
$w.onReady(function () {
// When the pending requests dataset is ready:
$w(requestDataset).onReady(() => {console.log("Dataset is READY!")
$w(REPEATER).onItemReady(($item, itemData, index)=>{
// Populate the date field with the slot's start date.
$item("#date").text = new Date();
$item("#email").text = "Email-text here"
// Set the dismiss button to dismiss the appointment request when clicked.
$item("#dismissButton").onClick(async()=> {console.log("Dismiss-Button clicked!");
$item("#dismissButton, #approveButton").disable();
console.log("Item-Data: ", itemData); console.log("Index: ", index);
itemData.status = "DISMISSED"; console.log("Status: ", itemData.status)
wixData.update("Customers", itemData)
.then((res)=>{console.log("RESULTS: ", res); refreshData();});
});
$item("#emailButton").onClick(()=> {console.log("Email-Button clicked!");
const subject = "Thanks For Getting in Touch";
wixLocation.to(`mailto:${itemData.email}?subject=${subject}`);
});
// Set the approve button to approve the appointment request when clicked.
$item("#approveButton").onClick(async()=> {console.log("Approve-Button clicked!");
console.log("Item-Data: ", itemData); console.log("Index: ", index);
$item("#dismissButton, #approveButton").disable();
itemData.status = "APPROVED"; console.log("Status: ", itemData.status)
wixData.update("Customers", itemData)
.then((res)=>{console.log("RESULTS: ", res); refreshData();});
});
$item("#emailButton2").onClick(() => {console.log("Email-Button2 clicked!");
const subject = "Thank you for Booking";
wixLocation.to(`mailto:${itemData.email}?subject=${subject}`);
});
});
if ($w(requestDataset).getTotalCount()===0) {
$w("#noPendingRequests").show();
}
else {console.log("Do something else!")
$w("#noPendingRequests").hide();
}
});
});
//-------------Page Update-------------//
function refreshData() {
$w(requestDataset).refresh()
$w("#dismissedRequestsDataset").refresh();
$w("#approvedRequestsDataset").refresh();
}