diff --git a/tbsetup/Template.pm.in b/tbsetup/Template.pm.in index 6bad738e0754a8ab1aaf2ed299f7e22639c7f887..65997c4a9f98273369848e360e3130be699a496a 100644 --- a/tbsetup/Template.pm.in +++ b/tbsetup/Template.pm.in @@ -173,6 +173,8 @@ sub logfile($) { return ((! ref($_[0])) ? -1 : $_[0]->{'TEMPLATE'}->{'logfile'}); } sub logfile_open($) { return ((! ref($_[0])) ? -1 : $_[0]->{'TEMPLATE'}->{'logfile_open'}); } +sub active($) { + return ((! ref($_[0])) ? -1 : $_[0]->{'TEMPLATE'}->{'active'}); } # # Lookup a template given an experiment index. @@ -1776,6 +1778,16 @@ sub InActivate($) return 0; } +sub IsActive($) +{ + my ($self) = @_; + + # Must be a real reference. + return -1 + if (! ref($self)); + + return $self->active(); +} # Improve this at some point. sub Recurse($$) diff --git a/tbsetup/template_create.in b/tbsetup/template_create.in index b46adddd66922748d4736b101b037bf25f9bb6dd..a5278dd496767bd3eb1d865d4bd66fd8dffdc9fd 100644 --- a/tbsetup/template_create.in +++ b/tbsetup/template_create.in @@ -786,6 +786,15 @@ system("$makegraph $guid"); fatal(-1, "Error generating template graph.") if ($?); +# +# Make the new template active (and the parent template inactive) if the +# parent was already active. +# +if ($parent_template->IsActive()) { + $parent_template->InActivate(); + $template->Activate(); +} + # # Update parent to point to most recent child. #