(function() {
'use strict';
var conditionsContainer = document.getElementById('js-conditions-container');
var actionsContainer = document.getElementById('js-actions-container');
var addConditionBtn = document.getElementById('js-add-condition');
var addActionBtn = document.getElementById('js-add-action');
var data = window.AutomationFormData || { integrations: [], emailTemplates: [], recipientLabels: {} };
function getNextIndex(container) {
var rows = container.querySelectorAll('.automation-row');
var maxIdx = -1;
rows.forEach(function(row) {
var idx = parseInt(row.getAttribute('data-index') || '0', 10);
if (idx > maxIdx) maxIdx = idx;
});
return maxIdx + 1;
}
function escapeHtml(str) {
var div = document.createElement('div');
div.textContent = str;
return div.innerHTML;
}
function buildIntegrationCheckboxes(namePrefix) {
var html = '
';
data.integrations.forEach(function(integ) {
html += '';
});
html += '
';
return html;
}
function buildEmailActionConfig(namePrefix) {
var html = '';
html += '';
return html;
}
function addCondition() {
var idx = getNextIndex(conditionsContainer);
var namePrefix = 'conditions[' + idx + ']';
var row = document.createElement('div');
row.className = 'automation-row mt-8';
row.setAttribute('data-index', idx);
row.innerHTML = ''
+ '
'
+ '
'
+ buildIntegrationCheckboxes(namePrefix)
+ '
'
+ '
'
+ '';
conditionsContainer.appendChild(row);
}
function addAction() {
var idx = getNextIndex(actionsContainer);
var namePrefix = 'actions[' + idx + ']';
var row = document.createElement('div');
row.className = 'automation-row mt-8';
row.setAttribute('data-index', idx);
row.innerHTML = ''
+ '
'
+ '
'
+ buildEmailActionConfig(namePrefix)
+ '
'
+ '
'
+ '';
actionsContainer.appendChild(row);
}
function removeRow(btn) {
var row = btn.closest('.automation-row');
if (row) row.remove();
}
function onConditionTypeChange(select) {
var row = select.closest('.automation-row');
var configDiv = row.querySelector('.automation-row__config');
var idx = row.getAttribute('data-index');
var namePrefix = 'conditions[' + idx + ']';
if (select.value === 'integration') {
configDiv.innerHTML = buildIntegrationCheckboxes(namePrefix);
}
}
function onActionTypeChange(select) {
var row = select.closest('.automation-row');
var configDiv = row.querySelector('.automation-row__config');
var idx = row.getAttribute('data-index');
var namePrefix = 'actions[' + idx + ']';
if (select.value === 'send_email') {
configDiv.innerHTML = buildEmailActionConfig(namePrefix);
}
}
if (addConditionBtn) addConditionBtn.addEventListener('click', addCondition);
if (addActionBtn) addActionBtn.addEventListener('click', addAction);
window.AutomationForm = {
removeRow: removeRow,
onConditionTypeChange: onConditionTypeChange,
onActionTypeChange: onActionTypeChange
};
})();