-<% include( 'elements/edit.html',
+<& elements/edit.html,
'name' => 'Billing event definition',
'table' => 'part_event',
'fields' => [
type => 'checkbox',
value => 'Y',
},
+ { field => '_initialize',
+ type => 'checkbox',
+ onchange => '_initialize_changed',
+ value => 'Y',
+ },
{ type => 'title',
value => 'Event Conditions',
},
layer_values_callback => $action_layer_values,
html_between => n_a('action'),
},
-
],
'labels' => {
'eventpart' => 'Event',
'conditionname' => 'Add new condition',
#'weight',
'action' => 'Action',
+ '_initialize' => 'Initialize event',
},
'viewall_dir' => 'browse',
'new_callback' => sub { #start empty for new events only
'agent_virt' => 1,
'agent_null_right' => 'Edit global billing events',
- )
-%>
+&>
<SCRIPT TYPE="text/javascript">
window.onload = function () { eventtable_changed(document.getElementById('eventtable')) };
}
+ function _initialize_changed(what) {
+ document.getElementById('disabled').disabled = what.checked;
+ if ( what.checked ) {
+%# because it's not an immediately obvious concept
+ alert('Initializing the event will treat it as "already run" on the '+
+ 'current date for all existing customers. This affects '+
+ 'conditions that prevent running an event more than once.');
+ }
+ }
+
</SCRIPT>
<%once>
'' => { 'description' => '*** Select new condition ***', },
FS::part_event_condition->conditions();
+# *** Select new condition *** sorts to the beginning anyway
+(tied %all_conditions)->SortByValue;
+
my %condition_labels = map { $_ => $all_conditions{$_}->{'description'} }
keys %all_conditions;
'' => { 'description' => '*** Select event action ***', },
FS::part_event->actions();
+(tied %all_actions)->SortByValue;
+
my %action_labels = map { $_ => $all_actions{$_}->{'description'} }
keys %all_actions;