<field reporter:label="Granularity" name="granularity" reporter:datatype="text"/>
<field reporter:label="Opt-In User Field" name="usr_field" reporter:datatype="text"/>
<field reporter:label="Opt-In Setting Type" name="opt_in_setting" reporter:datatype="link"/>
+ <field reporter:label="Event Repeatability Delay" name="repeat_delay" reporter:datatype="interval"/>
<field reporter:label="Environment Entries" name="env" oils_persist:virtual="true" reporter:datatype="link"/>
<field reporter:label="Parameters" name="params" oils_persist:virtual="true" reporter:datatype="link"/>
</fields>
filter => { event_def => $def->id }
}
}};
+ if ($def->repeat_delay) {
+ $join->{'join'}{atev}{filter} = { start_time => {
+ '>' => DateTime->now->subtract( seconds => interval_to_seconds($def->repeat_delay) )->strftime( '%F %T%z' )
+ } };
+ }
push @{ $filter->{'-and'} }, { '+atev' => { id => undef } };
cleanup_failure TEXT REFERENCES action_trigger.cleanup (module) DEFERRABLE INITIALLY DEFERRED,
delay INTERVAL NOT NULL DEFAULT '5 minutes',
max_delay INTERVAL,
+ repeat_delay INTERVAL,
usr_field TEXT,
opt_in_setting TEXT REFERENCES config.usr_setting_type (name) DEFERRABLE INITIALLY DEFERRED,
delay_field TEXT, -- for instance, xact_start on a circ hook ... look for fields on hook.core_type where datatype=timestamp? If not set, delay from now()
--- /dev/null
+BEGIN;
+
+--- SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
+
+ALTER TABLE action_trigger.event_definition ADD COLUMN repeat_delay INTERVAL;
+
+COMMIT;
+
<table jsId="edGrid"
autoHeight='true'
dojoType="openils.widget.AutoGrid"
- fieldOrder="['owner', 'name', 'hook', 'active', 'delay', 'delay_field', 'group_field', 'reactor', 'validator']"
+ fieldOrder="['owner', 'name', 'hook', 'active', 'delay', 'delay_field', 'group_field', 'reactor', 'validator', 'repeat_delay']"
suppressFields="['usr_field', 'opt_in_setting', 'max_delay', 'template', 'cleanup_failure', 'cleanup_success']"
query="{id: '*'}"
fmClass='atevdef'