Simplify timer: checkbox + delay days, execute at 10:00
Timer is now a simple checkbox + days field. When enabled, rule actions are scheduled for X days after ticket creation at 10:00 AM instead of applying immediately. Removed no_activity condition in favor of simple time-based scheduling stored on the ticket (delay_rule_id + delay_execute_at). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
19
script.js
19
script.js
@@ -2342,10 +2342,7 @@ function renderRules() {
|
||||
if (r.set_priority) actions.push('Prioriteetti → ' + (priorityLabels[r.set_priority] || r.set_priority));
|
||||
if (r.set_tags) actions.push('Tagit: #' + r.set_tags.split(',').map(t => t.trim()).join(' #'));
|
||||
if (r.auto_close_days) actions.push('Auto-close: ' + r.auto_close_days + 'pv');
|
||||
if (r.delay_days && r.delay_condition) {
|
||||
const condLabel = r.delay_condition === 'no_activity' ? 'ei aktiviteettia' : r.delay_condition;
|
||||
actions.push('⏱ Ajastin: ' + r.delay_days + 'pv (' + condLabel + ')');
|
||||
}
|
||||
if (r.delay_days > 0) actions.push('⏱ Ajastin: ' + r.delay_days + 'pv (klo 10:00)');
|
||||
return `<div style="display:flex;justify-content:space-between;align-items:center;padding:0.75rem 1rem;background:${r.enabled ? '#f8f9fb' : '#fafafa'};border:1px solid #e8ebf0;border-radius:8px;margin-bottom:0.5rem;opacity:${r.enabled ? '1' : '0.5'};">
|
||||
<div>
|
||||
<div style="font-weight:600;color:#0f3460;font-size:0.9rem;">${esc(r.name)}</div>
|
||||
@@ -2377,8 +2374,10 @@ function showRuleForm(rule) {
|
||||
document.getElementById('rule-form-priority').value = rule ? (rule.set_priority || '') : '';
|
||||
document.getElementById('rule-form-tags').value = rule ? (rule.set_tags || '') : '';
|
||||
document.getElementById('rule-form-autoclose').value = rule ? (rule.auto_close_days || '') : '';
|
||||
document.getElementById('rule-form-delay-days').value = rule ? (rule.delay_days || '') : '';
|
||||
document.getElementById('rule-form-delay-condition').value = rule ? (rule.delay_condition || '') : '';
|
||||
const hasDelay = rule && rule.delay_days > 0;
|
||||
document.getElementById('rule-form-delay-enabled').checked = hasDelay;
|
||||
document.getElementById('rule-form-delay-days').value = hasDelay ? rule.delay_days : '';
|
||||
document.getElementById('rule-form-delay-days').disabled = !hasDelay;
|
||||
editingRuleId = rule ? rule.id : null;
|
||||
}
|
||||
|
||||
@@ -2389,6 +2388,11 @@ function hideRuleForm() {
|
||||
|
||||
document.getElementById('btn-add-rule').addEventListener('click', () => showRuleForm(null));
|
||||
document.getElementById('btn-cancel-rule').addEventListener('click', () => hideRuleForm());
|
||||
document.getElementById('rule-form-delay-enabled').addEventListener('change', function() {
|
||||
const daysInput = document.getElementById('rule-form-delay-days');
|
||||
daysInput.disabled = !this.checked;
|
||||
if (!this.checked) daysInput.value = '';
|
||||
});
|
||||
|
||||
document.getElementById('btn-save-rule').addEventListener('click', async () => {
|
||||
const name = document.getElementById('rule-form-name').value.trim();
|
||||
@@ -2403,8 +2407,7 @@ document.getElementById('btn-save-rule').addEventListener('click', async () => {
|
||||
set_priority: document.getElementById('rule-form-priority').value,
|
||||
set_tags: document.getElementById('rule-form-tags').value.trim(),
|
||||
auto_close_days: parseInt(document.getElementById('rule-form-autoclose').value) || 0,
|
||||
delay_days: parseInt(document.getElementById('rule-form-delay-days').value) || 0,
|
||||
delay_condition: document.getElementById('rule-form-delay-condition').value,
|
||||
delay_days: document.getElementById('rule-form-delay-enabled').checked ? (parseInt(document.getElementById('rule-form-delay-days').value) || 0) : 0,
|
||||
enabled: true,
|
||||
};
|
||||
const existingId = document.getElementById('rule-form-id').value;
|
||||
|
||||
Reference in New Issue
Block a user