easyappointments/assets/js/components/appointment_status_options....

1 line
2.0 KiB
JavaScript
Executable File

"use strict";App.Components.AppointmentStatusOptions=function(){function renderListGroupItem(){var appointmentStatusOption=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"";return $("\n <li class=\"list-group-item d-flex justify-content-between align-items-center p-0 border-0 mb-3 appointment-status-option\">\n <label class=\"w-100 me-2\">\n <input class=\"form-control\" value=\"".concat(appointmentStatusOption,"\">\n </label>\n \n <button type=\"button\" class=\"btn btn-outline-danger delete-appointment-status-option\">\n <i class=\"fas fa-trash\"></i>\n </button>\n </li>\n "))}function onDeleteAppointmentStatusOptionClick(event){$(event.currentTarget).closest("li").remove()}function onAddAppointmentStatusOptionClick(event){var $target=$(event.currentTarget),$listGroup=$target.closest(".appointment-status-options").find(".list-group");$listGroup.length&&renderListGroupItem().appendTo($listGroup)}return document.addEventListener("DOMContentLoaded",function(){$(document).on("click",".delete-appointment-status-option",onDeleteAppointmentStatusOptionClick),$(document).on("click",".add-appointment-status-option",onAddAppointmentStatusOptionClick)}),{getOptions:function($target){var $listGroup=$target.find(".list-group"),appointmentStatusOptions=[];return $listGroup.find("li").each(function(index,listGroupItemEl){var $listGroupItem=$(listGroupItemEl),appointmentStatusOption=$listGroupItem.find("input:text").val();appointmentStatusOptions.push(appointmentStatusOption)}),appointmentStatusOptions},setOptions:function($target,appointmentStatusOptions){if($target.length&&appointmentStatusOptions&&appointmentStatusOptions.length){var $listGroup=$target.find(".list-group");$listGroup.length&&($listGroup.empty(),appointmentStatusOptions.forEach(function(appointmentStatusOption){renderListGroupItem(appointmentStatusOption).appendTo($listGroup)}))}}}}();