assets_js_controllers_add-activity-modal-controller.js
import { Controller } from "@hotwired/stimulus";
/**
* AddActivityModalController
*
* Handles the add activity modal, updating the default description
* when an activity is selected from the dropdown.
*/
class AddActivityModalController extends Controller {
static targets = ["activitySelect", "defaultDescription", "customDescription", "activityData"]
/**
* Update the default description display when an activity is selected
*/
updateDefaultDescription(event) {
const selectedActivityId = event.target.value;
if (!selectedActivityId) {
this.defaultDescriptionTarget.textContent = 'Select an activity to see its default description';
return;
}
// Find the activity data element with matching ID
const activityDataElement = this.activityDataTargets.find(
element => element.dataset.activityId === selectedActivityId
);
if (activityDataElement) {
const description = activityDataElement.dataset.activityDescription;
this.defaultDescriptionTarget.textContent = description || 'No default description available';
}
}
}
// Add to global controllers registry
if (!window.Controllers) {
window.Controllers = {};
}
window.Controllers["add-activity-modal"] = AddActivityModalController;