default to a session cookie instead of setting an explicit timeout, weird timezone...
[freeside.git] / httemplate / edit / part_event.html
index 5b14edf..c8072e9 100644 (file)
@@ -1,4 +1,4 @@
-<% 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',
                             },
                             { field   => 'conditionname',
-                              type    => 'selectlayers',
+                              type    => 'selectlayersx',
                               options => [ keys %all_conditions ],
                               labels  => \%condition_labels,
                               onchange => 'condition_changed(what);',
                               html_between       => n_a('action'),
                               m2name_table       => 'part_event_condition',
                               m2name_namecol     => 'conditionname',
-                              m2name_label       => 'Condition',
-                              m2name_new_default => \@implicit_condition_objs,
-                              m2name_error_callback  =>
-                                $condition_error_callback,
-                              m2name_remove_warnings =>
-                                \%condition_remove_warnings,
-                              m2name_new_js      => 'condition_repop',
-                              m2name_remove_js   => 'condition_add',
+                              m2_label           => 'Condition',
+                              m2_new_default     => \@implicit_condition_objs,
+                              m2_error_callback  => $condition_error_callback,
+                              m2_remove_warnings => \%condition_remove_warnings,
+                              m2_new_js          => 'condition_repop',
+                              m2_remove_js       => 'condition_add',
                             },
                             { type    => 'title',
                               value   => 'Event Action',
                             },
                             { field   => 'action',
-                              type     => 'selectlayers',
+                              type     => 'selectlayersx',
                               options  => [ keys %all_actions ],
                               labels   => \%action_labels,
                               onchange => 'action_changed(what);',
@@ -56,7 +59,6 @@
                               layer_values_callback => $action_layer_values,
                               html_between => n_a('action'),
                             },
-
                           ],
               'labels' => {
                             'eventpart'  => 'Event',
@@ -69,6 +71,7 @@
                             'conditionname' => 'Add&nbsp;new&nbsp;condition',
                             #'weight',
                             'action'     => 'Action',
+                            '_initialize' => 'Initialize event',
                           },
               'viewall_dir' => 'browse',
               'new_callback' => sub { #start empty for new events only
@@ -79,8 +82,7 @@
 
               '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>
 
@@ -487,6 +499,9 @@ tie my %all_conditions, 'Tie::IxHash',
   '' => { '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;
 
@@ -526,6 +541,8 @@ tie my %all_actions, 'Tie::IxHash',
   '' => { 'description' => '*** Select event action ***', },
   FS::part_event->actions();
 
+(tied %all_actions)->SortByValue;
+
 my %action_labels = map { $_ => $all_actions{$_}->{'description'} }
                         keys %all_actions;
 
@@ -639,7 +656,7 @@ my $condition_error_callback = sub {
 };
 
 my $condition_layer_values = sub {
-  #m2name_table option causes this to be
+  #m2_table option causes this to be
   # part_event_condition instead of part_event
   my ( $cgi, $part_event_condition, $switches ) = @_;
   scalar( #force hashref