[Rt-commit] rt branch, 5.0/group-default-values, repushed
Craig Kaiser
craig at bestpractical.com
Mon Jan 4 14:48:48 EST 2021
The branch 5.0/group-default-values was deleted and repushed:
was c860b028045b690aab67414ff35687f04a1176ac
now 593c3adf0140b4164f5f9691daf601a594295b65
1: 05a7e93a34 < -: ------- ShowCustomFieldCustomGroupings accept arg for inline edit form action URL
2: 73c0b4fa7d < -: ------- Add page for setting groups default values
-: ------- > 1: 5b078d5d52 Add default values for groups
3: c860b02804 ! 2: 593c3adf01 Add page for setting groups default values
@@ -1,122 +1,29 @@
Author: craig kaiser <craig at bestpractical.com>
- Add default values for groups
+ Add page for setting groups default values
-diff --git a/lib/RT/CustomField.pm b/lib/RT/CustomField.pm
---- a/lib/RT/CustomField.pm
-+++ b/lib/RT/CustomField.pm
-@@
- sub SupportDefaultValues {
- my $self = shift;
- return 0 unless $self->id;
-- return 0 unless $self->LookupType =~ /RT::(?:Ticket|Transaction|Asset)$/;
-+ return 0 unless $self->LookupType =~ /RT::(?:Ticket|Transaction|Asset|Group)$/;
- return $self->Type !~ /^(?:Image|Binary)$/;
- }
-
-@@
- Object => RT->System,
- @_,
- );
-- my $attr = $args{Object}->FirstAttribute('CustomFieldDefaultValues');
-+
-+ my $attr;
-+ if ( ref $args{'Object'} eq 'RT::Group' ) {
-+ $attr = $self->FirstAttribute('GroupsDefaultValue');
-+ }
-+ else {
-+ $attr = $args{Object}->FirstAttribute('CustomFieldDefaultValues');
-+ }
-+
- my $values;
- $values = $attr->Content->{$self->id} if $attr && $attr->Content;
- return $values if defined $values;
-
-diff --git a/lib/RT/Group.pm b/lib/RT/Group.pm
---- a/lib/RT/Group.pm
-+++ b/lib/RT/Group.pm
+diff --git a/lib/RT/Interface/Web/MenuBuilder.pm b/lib/RT/Interface/Web/MenuBuilder.pm
+--- a/lib/RT/Interface/Web/MenuBuilder.pm
++++ b/lib/RT/Interface/Web/MenuBuilder.pm
@@
);
- }
+ $groups->child( select => title => loc('Select'), path => "/Admin/Groups/" );
+ $groups->child( create => title => loc('Create'), path => "/Admin/Groups/Modify.html?Create=1" );
++ $groups->child( 'default-values' => title => loc('Default Values'), path => "/Admin/Groups/DefaultValues.html" );
-+sub DefaultValue {
-+ my $self = shift;
-+ my $field = shift;
+ my $queues = $admin->child( queues =>
+ title => loc('Queues'),
+@@
+
+ $section->child( select => title => loc('Select'), path => "/Admin/$type/" );
+ $section->child( create => title => loc('Create'), path => "/Admin/$type/Modify.html?Create=1" );
+
-+ my $attr = $field->FirstAttribute( 'GroupsDefaultValue' );
-+
-+ return undef unless $attr && $attr->Content;
-+ return $attr->Content->{$field};
-+}
-+
-+sub SetDefaultValue {
-+ my $self = shift;
-+ my %args = (
-+ Value => undef,
-+ Field => undef,
-+ @_
-+ );
-+ my $attr = $args{'Field'}->FirstAttribute( 'GroupsDefaultValue' );
-+
-+ my ($old_value, $old_content, $new_value);
-+ if ( $attr && $attr->Content ) {
-+ $old_content = $attr->Content;
-+ $old_value = $old_content->{ $args{'Field'}->id };
-+ }
-+
-+ unless ( defined $old_value && length $old_value ) {
-+ $old_value = $self->loc('(no value)');
-+ }
-+
-+ $new_value = $args{Value};
-+ unless ( defined $new_value && length $new_value ) {
-+ $new_value = $self->loc( '(no value)' );
-+ }
-+
-+ return 1 if $new_value eq $old_value;
-+
-+ my ($ret, $msg);
-+ if ( $attr) {
-+ ($ret, $msg) = $args{'Field'}->SetAttribute(
-+ Name => 'GroupsDefaultValue',
-+ Content => { %{ $old_content || {} }, $args{'Field'}->Id => $args{Value} },
-+ Object => $args{'Field'},
-+ );
-+ }
-+ else {
-+ $attr = RT::Attribute->new( $self->CurrentUser );
-+ ($ret, $msg) = $attr->Create(
-+ Name => 'GroupsDefaultValue',
-+ Content => { %{ $old_content || {} }, $args{'Field'}->Id => $args{Value} },
-+ Object => $args{'Field'},
-+ ObjectType => 'RT::Group'
-+ );
-+ }
-+
-+ if ( $ret ) {
-+ return ( $ret, $self->loc( 'Default value of [_1] changed from [_2] to [_3]', $args{'Field'}->Name, $old_value, $new_value ) );
-+ }
-+ else {
-+ return ( $ret, $self->loc( "Can't change default value of [_1] from [_2] to [_3]: [_4]", $args{'Field'}->Name, $old_value, $new_value, $msg ) );
-+ }
-+}
-+
-+sub GroupCustomFields {
-+ my $self = shift;
-+
-+ my $cfs = RT::CustomFields->new( $self->CurrentUser );
-+ if ( $self->CurrentUserHasRight('SeeGroup') ) {
-+ $cfs->SetContextObject( $self );
-+ $cfs->LimitToGlobalOrObjectId( $self->Id );
-+ $cfs->LimitToLookupType( 'RT::Group' );
-+ $cfs->ApplySortOrder;
-+ }
-+ return ($cfs);
-+}
-+
- # If this group represents the members of a custom role, then return
- # the RT::CustomRole object. Otherwise, return undef
- sub _CustomRoleObj {
++ if ( $type eq 'Groups' ) {
++ $section->child( 'default-values' => title => loc('Default Values'), path => "/Admin/Groups/DefaultValues.html" );
++ }
+ }
+
+ if ( $request_path =~ m{^/Admin/Queues} ) {
diff --git a/share/html/Admin/Groups/DefaultValues.html b/share/html/Admin/Groups/DefaultValues.html
new file mode 100644
@@ -215,7 +122,7 @@
+</div>
+<div class="form-row">
+ <div class="col-12">
-+ <& /Elements/Submit, Name => 'Reset', Label => loc('Reset Custom Field Values to Default') &>
++ <& /Elements/Submit, Name => 'Reset', Label => loc('Reset Group Values to Default') &>
+ </div>
+</div>
+</form>
@@ -223,21 +130,21 @@
+<%INIT>
+my $GroupObject = RT::Group->new( $session{'CurrentUser'} );
+
-+my $title = loc( 'Default Values for groups' );
++my $title = loc( 'Default Values For Groups' );
+my @groupings = ( RT::CustomField->CustomGroupings( 'RT::Group' ), '' );
+
+$m->callback( CallbackName => 'Init', ARGSRef => \%ARGS, Title => \$title, Groupings => \@groupings );
+
+my @results;
+if ( $ARGS{Reset} ) {
-+ my $cfs = RT::Group->GroupCustomFields->LimitToDefaultValuesSupportedTypes;
++ my $cfs = $GroupObject->GroupCustomFields->LimitToDefaultValuesSupportedTypes;
+ while ( my $cf = $cfs->Next ) {
-+ my ($ret, $msg) = $cf->SetDefaultValues(
-+ Object => $GroupObject,
-+ Values => undef,
++ my ($ret, $msg) = $GroupObject->SetDefaultValue(
++ Field => $cf,
++ Value => undef,
+ );
+ }
-+ push @results, "Custom Field default values are reset";
++ push @results, "Group default values are reset";
+}
+elsif ( $ARGS{Update} ) {
+ my $cfs = _ParseObjectCustomFieldArgs( \%ARGS )->{'RT::Group'}{0};
More information about the rt-commit
mailing list