1# --
2# Copyright (C) 2001-2020 OTRS AG, https://otrs.com/
3# --
4# This software comes with ABSOLUTELY NO WARRANTY. For details, see
5# the enclosed file COPYING for license information (GPL). If you
6# did not receive this file, see https://www.gnu.org/licenses/gpl-3.0.txt.
7# --
8
9package Kernel::System::SysConfig::ValueType::Entity::DynamicField;
10
11use strict;
12use warnings;
13
14use Kernel::System::VariableCheck qw(:all);
15
16use parent qw(Kernel::System::SysConfig::ValueType::Entity);
17
18our @ObjectDependencies = (
19    'Kernel::System::DynamicField',
20    'Kernel::System::Web::Request',
21);
22
23=head1 NAME
24
25Kernel::System::SysConfig::ValueType::Entity::DynamicField - System configuration dynamic-field entity type backend.
26
27=head1 PUBLIC INTERFACE
28
29=head2 new()
30
31Create an object. Do not use it directly, instead use:
32
33    use Kernel::System::ObjectManager;
34    local $Kernel::OM = Kernel::System::ObjectManager->new();
35    my $EntityTypeObject = $Kernel::OM->Get('Kernel::System::SysConfig::ValueType::Entity::DynamicField');
36
37=cut
38
39sub new {
40    my ( $Type, %Param ) = @_;
41
42    # Allocate new hash for object.
43    my $Self = {};
44    bless( $Self, $Type );
45
46    return $Self;
47}
48
49sub EntityValueList {
50    my ( $Self, %Param ) = @_;
51
52    my $DynamicFields = $Kernel::OM->Get('Kernel::System::DynamicField')->DynamicFieldList(
53        ObjectType => $Param{EntitySubType} || '',
54        ResultType => 'HASH',
55        Valid      => 1,
56    );
57
58    my @Result;
59
60    for my $ID ( sort keys %{$DynamicFields} ) {
61        push @Result, $DynamicFields->{$ID};
62    }
63
64    return @Result;
65}
66
67sub EntityLookupFromWebRequest {
68    my ( $Self, %Param ) = @_;
69
70    my $DynamicFieldID = $Kernel::OM->Get('Kernel::System::Web::Request')->GetParam( Param => 'ID' ) // '';
71
72    return if !$DynamicFieldID;
73
74    my $DynamicField = $Kernel::OM->Get('Kernel::System::DynamicField')->DynamicFieldGet(
75        ID => $DynamicFieldID,
76    );
77
78    return if !IsHashRefWithData($DynamicField);
79
80    return $DynamicField->{Name} || '';
81}
82
831;
84
85=head1 TERMS AND CONDITIONS
86
87This software is part of the OTRS project (L<https://otrs.org/>).
88
89This software comes with ABSOLUTELY NO WARRANTY. For details, see
90the enclosed file COPYING for license information (GPL). If you
91did not receive this file, see L<https://www.gnu.org/licenses/gpl-3.0.txt>.
92
93=cut
94