
OTRS Dev,
What you're saying makes sense, but I dont have the time right now :) I'm <extending> the current otrs functionality. I've pretty much hacked it all out.
Theres only 2 things that bother me.. if anyone wants to take a look I've supplied the patches
Questions:
Not sure I need to update w/ TicketRFreeTextGet? (since I'm not using hash arrays, just scalars)
I've added 2 dtl files for input/output of these fields. They display differently in some areas. Its due to the initialization of the objects. I'm just stuck. For example AgentUtilities TicketSearch looks fine. But CustomerTicketSearch doesnt display the form fields! :/ Any ideas?
Thanks,
-steve
diff -rch /dev/null otrs.new/Kernel/Output/HTML/Standard/TicketFreeTextOutput.dtl
*** /dev/null 2003-09-15 06:02:32.000000000 -0700
--- otrs.new/Kernel/Output/HTML/Standard/TicketFreeTextInput.dtl 2005-03-21 11:50:41.000000000 -0800
***************
*** 0 ****
--- 1,23 ----
+ <tr>
+ <td>$Text{"Ticket::TicketRFreeText1"}:</td><td>$Data{"TicketRFreeTextField1"}</td>
+ </tr>
+ <tr>
+ <td>$Text{"Ticket::TicketRFreeText2"}:</td><td>$Data{"TicketRFreeTextField2"}</td>
+ </tr>
+ <tr>
+ <td>$Text{"Ticket::TicketRFreeText3"}:</td><td>$Data{"TicketRFreeTextField3"}</td>
+ </tr>
+ <tr>
+ <td>$Data{"TicketFreeKeyField1"}:</td>
+ <td>$Data{"TicketFreeTextField1"} $Text{"Ticket::TicketRFreeText6"}: $Data{"TicketRFreeTextField6"}</td>
+ </tr>
+ <tr>
+ <td>$Text{"Ticket::TicketRFreeText4"}:</td><td>$Data{"TicketRFreeTextField4"}</td>
+ </tr>
+ <tr>
+ <td>$Data{"TicketFreeKeyField2"}:</td>
+ <td>$Data{"TicketFreeTextField2"}</td>
+ </tr>
+ <tr>
+ <td>$Text{"Ticket::TicketRFreeText5"}:</td><td>$Data{"TicketRFreeTextField5"}</td>
+ </tr>
diff -rch /dev/null otrs.new/Kernel/Output/HTML/Standard/TicketFreeTextOutput.dtl
*** /dev/null 2003-09-15 06:02:32.000000000 -0700
--- otrs.new/Kernel/Output/HTML/Standard/TicketFreeTextOutput.dtl 2005-03-21 11:48:47.000000000 -0800
***************
*** 0 ****
--- 1,18 ----
+ <tr>
+ <td valign="top"><b>$Text{"Ticket::TicketRFreeText1"}:</b></td><td> $Data{"TicketRFreeText1"}</td>
+ </tr>
+ <tr>
+ <td valign="top"><b>$Text{"Ticket::TicketRFreeText2"}:</b></td><td> $Data{"TicketRFreeText2"}</td>
+ </tr>
+ <tr>
+ <td valign="top"><b>$Text{"Ticket::TicketRFreeText3"}:</b></td><td> $Data{"TicketRFreeText3"}</td>
+ </tr>
+ <tr>
+ <td valign="top"><b>$Data{"TicketFreeKey1"}:</b></td><td> $Data{"TicketFreeText1"} </td>
+ </tr>
+ <tr>
+ <td valign="top"><b>$Text{"Ticket::TicketRFreeText4"}:</b></td><td> $Data{"TicketRFreeText4"}</td>
+ </tr>
+ <tr>
+ <td valign="top"><b>$Text{"Ticket::TicketRFreeText5"}:</b></td><td> $Data{"TicketRFreeText5"}</td>
+ </tr>
diff -rch otrs.clean/Kernel/Config.pm otrs.new/Kernel/Config.pm
*** otrs.clean/Kernel/Config.pm 2005-03-14 11:36:25.000000000 -0800
--- otrs.new/Kernel/Config.pm 2005-03-17 15:11:08.000000000 -0800
***************
*** 101,114 ****
$Self->{DefaultLanguage} = 'en';
$Self->{DefaultCharset} = 'iso-8859-1';
!
$Self->{"TicketFreeText1"} = {
'' => '-',
! 'PC' => 'PC',
! 'Notebook' => 'Notebook',
! 'LCD' => 'LCD',
! 'Phone' => 'Phone',
};
# ---------------------------------------------------- #
# ---------------------------------------------------- #
# #
--- 101,146 ----
$Self->{DefaultLanguage} = 'en';
$Self->{DefaultCharset} = 'iso-8859-1';
! # Vendor
! $Self->{"TicketFreeKey1"} = {
! 'Vendor' => 'Vendor',
! };
$Self->{"TicketFreeText1"} = {
'' => '-',
! 'HP' => 'HP',
! 'SGI' => 'SGI',
! 'OTHER' => 'OTHER',
! };
!
! # Driver Version
! $Self->{"TicketFreeKey2"} = {
! 'Driver Version' => 'Driver Version',
! };
! $Self->{"TicketFreeText2"} = {
! '' => '-',
! '1.0' => '1.0',
! '1.1' => '1.1',
};
# ---------------------------------------------------- #
# ---------------------------------------------------- #
# #
diff -rch otrs.clean/Kernel/Language/en.pm otrs.new/Kernel/Language/en.pm
*** otrs.clean/Kernel/Language/en.pm 2004-06-15 02:16:34.000000000 -0700
--- otrs.new/Kernel/Language/en.pm 2005-03-17 15:10:15.000000000 -0800
***************
*** 66,71 ****
--- 66,77 ----
'History::WebRequestCustomer' => 'Customer request via web.',
'History::TicketLinkAdd' => 'Added link to ticket "%s".',
'History::TicketLinkDelete' => 'Deleted link to ticket "%s".',
+ 'Ticket::TicketRFreeText1' => 'Application',
+ 'Ticket::TicketRFreeText2' => 'Version',
+ 'Ticket::TicketRFreeText3' => 'Nodes in Cluster',
+ 'Ticket::TicketRFreeText4' => 'Version',
+ 'Ticket::TicketRFreeText5' => 'Error Code',
+ 'Ticket::TicketRFreeText6' => 'Other',
);
# $$STOP$$
diff -rch otrs.clean/Kernel/Modules/AgentEmail.pm otrs.new/Kernel/Modules/AgentEmail.pm
*** otrs.clean/Kernel/Modules/AgentEmail.pm 2004-10-08 03:31:12.000000000 -0700
--- otrs.new/Kernel/Modules/AgentEmail.pm 2005-03-21 13:36:48.000000000 -0800
***************
*** 95,100 ****
--- 95,101 ----
foreach (1..8) {
$TicketFreeDefault{'TicketFreeKey'.$_} = $Self->{ConfigObject}->Get('TicketFreeKey'.$_.'::DefaultSelection');
$TicketFreeDefault{'TicketFreeText'.$_} = $Self->{ConfigObject}->Get('TicketFreeText'.$_.'::DefaultSelection');
+ $TicketFreeDefault{'TicketRFreeText'.$_} = $Self->{ConfigObject}->Get('TicketRFreeText'.$_.'::DefaultSelection');
}
# get free text config options
my %TicketFreeText = ();
***************
*** 111,116 ****
--- 112,123 ----
Action => $Self->{Action},
UserID => $Self->{UserID},
);
+ $TicketFreeText{"TicketRFreeText$_"} = $Self->{TicketObject}->TicketRFreeTextGet(
+ TicketID => $Self->{TicketID},
+ Type => "TicketRFreeText$_",
+ Action => $Self->{Action},
+ UserID => $Self->{UserID},
+ );
}
my %TicketFreeTextHTML = $Self->{LayoutObject}->AgentFreeText(
Config => \%TicketFreeText,
diff -rch otrs.clean/Kernel/Modules/AgentPhone.pm otrs.new/Kernel/Modules/AgentPhone.pm
*** otrs.clean/Kernel/Modules/AgentPhone.pm 2004-10-08 03:31:37.000000000 -0700
--- otrs.new/Kernel/Modules/AgentPhone.pm 2005-03-21 13:36:18.000000000 -0800
***************
*** 124,129 ****
--- 124,130 ----
foreach (1..8) {
$TicketFreeDefault{'TicketFreeKey'.$_} = $Self->{ConfigObject}->Get('TicketFreeKey'.$_.'::DefaultSelection');
$TicketFreeDefault{'TicketFreeText'.$_} = $Self->{ConfigObject}->Get('TicketFreeText'.$_.'::DefaultSelection');
+ $TicketFreeDefault{'TicketRFreeText'.$_} = $Self->{ConfigObject}->Get('TicketRFreeText'.$_.'::DefaultSelection');
}
# get free text config options
my %TicketFreeText = ();
***************
*** 140,145 ****
--- 141,152 ----
Type => "TicketFreeText$_",
UserID => $Self->{UserID},
);
+ $TicketFreeText{"TicketRFreeText$_"} = $Self->{TicketObject}->TicketRFreeTextGet(
+ TicketID => $Self->{TicketID},
+ Action => $Self->{Action},
+ Type => "TicketRFreeText$_",
+ UserID => $Self->{UserID},
+ );
}
my %TicketFreeTextHTML = $Self->{LayoutObject}->AgentFreeText(
Config => \%TicketFreeText,
diff -rch otrs.clean/Kernel/Modules/AgentUtilities.pm otrs.new/Kernel/Modules/AgentUtilities.pm
*** otrs.clean/Kernel/Modules/AgentUtilities.pm 2004-08-30 07:55:54.000000000 -0700
--- otrs.new/Kernel/Modules/AgentUtilities.pm 2005-03-21 13:51:08.000000000 -0800
***************
*** 119,125 ****
TicketFreeKey1 TicketFreeText1 TicketFreeKey2 TicketFreeText2
TicketFreeKey3 TicketFreeText3 TicketFreeKey4 TicketFreeText4
TicketFreeKey5 TicketFreeText5 TicketFreeKey6 TicketFreeText6
! TicketFreeKey7 TicketFreeText7 TicketFreeKey8 TicketFreeText8)) {
# load profile array params (press load profile)
if (($Self->{Subaction} eq 'LoadProfile' && $Self->{Profile}) || $Self->{TakeLastSearch}) {
my $SQL = "SELECT profile_value FROM search_profile".
--- 119,127 ----
TicketFreeKey1 TicketFreeText1 TicketFreeKey2 TicketFreeText2
TicketFreeKey3 TicketFreeText3 TicketFreeKey4 TicketFreeText4
TicketFreeKey5 TicketFreeText5 TicketFreeKey6 TicketFreeText6
! TicketFreeKey7 TicketFreeText7 TicketFreeKey8 TicketFreeText8
! TicketRFreeText1 TicketRFreeText2 TicketRFreeText3 TicketRFreeText4
! TicketRFreeText4 TicketRFreeText5 TicketRFreeText6 TicketRFreeText8)) {
# load profile array params (press load profile)
if (($Self->{Subaction} eq 'LoadProfile' && $Self->{Profile}) || $Self->{TakeLastSearch}) {
my $SQL = "SELECT profile_value FROM search_profile".
***************
*** 556,561 ****
--- 558,568 ----
Action => $Self->{Action},
UserID => $Self->{UserID},
);
+ $TicketFreeText{"TicketRFreeText$_"} = $Self->{TicketObject}->TicketRFreeTextGet(
+ Type => "TicketRFreeText$_",
+ Action => $Self->{Action},
+ UserID => $Self->{UserID},
+ );
}
my %TicketFreeTextHTML = $Self->{LayoutObject}->AgentFreeText(
NullOption => 1,
diff -rch otrs.clean/Kernel/Modules/CustomerMessage.pm otrs.new/Kernel/Modules/CustomerMessage.pm
*** otrs.clean/Kernel/Modules/CustomerMessage.pm 2004-10-18 01:45:51.000000000 -0700
--- otrs.new/Kernel/Modules/CustomerMessage.pm 2005-03-15 16:21:25.000000000 -0800
***************
*** 129,134 ****
--- 129,135 ----
foreach (1..8) {
$TicketFreeDefault{'TicketFreeKey'.$_} = $Self->{ConfigObject}->Get('TicketFreeKey'.$_.'::DefaultSelection');
$TicketFreeDefault{'TicketFreeText'.$_} = $Self->{ConfigObject}->Get('TicketFreeText'.$_.'::DefaultSelection');
+ $TicketFreeDefault{'TicketRFreeText'.$_} = $Self->{ConfigObject}->Get('TicketRFreeText'.$_);
}
# get free text config options
my %TicketFreeText = ();
***************
*** 145,150 ****
--- 146,157 ----
Type => "TicketFreeText$_",
UserID => $Self->{UserID},
);
+ $TicketFreeText{"TicketRFreeText$_"} = $Self->{TicketObject}->TicketRFreeTextGet(
+ TicketID => $Self->{TicketID},
+ Action => $Self->{Action},
+ Type => "TicketRFreeText$_",
+ UserID => $Self->{UserID},
+ );
}
my %TicketFreeTextHTML = $Self->{LayoutObject}->AgentFreeText(
Config => \%TicketFreeText,
***************
*** 306,311 ****
--- 313,319 ----
foreach (1..8) {
$TicketFree{"TicketFreeKey$_"} = $Self->{ParamObject}->GetParam(Param => "TicketFreeKey$_");
$TicketFree{"TicketFreeText$_"} = $Self->{ParamObject}->GetParam(Param => "TicketFreeText$_");
+ $TicketFree{"TicketRFreeText$_"} = $Self->{ParamObject}->GetParam(Param => "TicketRFreeText$_");
}
my $PriorityID = $Self->{ParamObject}->GetParam(Param => 'PriorityID');
my $Priority = '';
***************
*** 363,368 ****
--- 371,384 ----
UserID => $Self->{ConfigObject}->Get('CustomerPanelUserID'),
);
}
+ if (defined($TicketFree{"TicketRFreeText$_"})) {
+ $Self->{TicketObject}->TicketRFreeTextSet(
+ TicketID => $TicketID,
+ Value => $TicketFree{"TicketRFreeText$_"},
+ Counter => $_,
+ UserID => $Self->{ConfigObject}->Get('CustomerPanelUserID'),
+ );
+ }
}
# get attachment
my %UploadStuff = $Self->{ParamObject}->GetUploadAll(
diff -rch otrs.clean/Kernel/Output/HTML/Agent.pm otrs.new/Kernel/Output/HTML/Agent.pm
*** otrs.clean/Kernel/Output/HTML/Agent.pm 2004-08-19 06:12:45.000000000 -0700
--- otrs.new/Kernel/Output/HTML/Agent.pm 2005-03-15 13:02:26.000000000 -0800
***************
*** 567,572 ****
--- 567,579 ----
$Data{"TicketFreeTextField$_"} = '<input type="text" name="TicketFreeText'.$_.'" value="" size="30">';
}
}
+ if (defined($Ticket{"TicketRFreeText$_"})) {
+ $Data{"TicketRFreeTextField$_"} = '';
+ }
+ else {
+ $Ticket{"TicketRFreeText$_"} = '';
+ $Data{"TicketRFreeTextField$_"} = '<input type="text" name="TicketRFreeText'.$_.'" value="" size="30">';
+ }
}
return %Data;
}
diff -rch otrs.clean/Kernel/Output/HTML/Standard/AgentEmailNew.dtl otrs.new/Kernel/Output/HTML/Standard/AgentEmailNew.dtl
*** otrs.clean/Kernel/Output/HTML/Standard/AgentEmailNew.dtl 2004-07-28 03:10:40.000000000 -0700
--- otrs.new/Kernel/Output/HTML/Standard/AgentEmailNew.dtl 2005-03-21 11:39:00.000000000 -0800
***************
*** 145,150 ****
--- 145,151 ----
<td>$Text{"Bcc"}:</td>
<td> <font color="red" size="-2">$Text{"$Data{"Bcc invalid"}"}</font></td>
</tr>
+ $Include{"TicketFreeTextInput"}
<tr>
<td>$Text{"Subject"}:</td>
<td> <font color="red" size="-2">$Text{"$Data{"Subject invalid"}"}</font></td>
diff -rch otrs.clean/Kernel/Output/HTML/Standard/AgentFreeText.dtl otrs.new/Kernel/Output/HTML/Standard/AgentFreeText.dtl
*** otrs.clean/Kernel/Output/HTML/Standard/AgentFreeText.dtl 2003-12-15 12:26:50.000000000 -0800
--- otrs.new/Kernel/Output/HTML/Standard/AgentFreeText.dtl 2005-03-21 12:43:04.000000000 -0800
***************
*** 36,85 ****
<table border="0">
<tr>
! <td width="20"></td>
<td>$Text{"Key"}:</td>
<td>$Text{"Value"}</td>
</tr>
! <tr>
! <td>1</td>
! <td>$Data{"TicketFreeKeyField1"}:</td>
! <td>$Data{"TicketFreeTextField1"}</td>
! </tr>
! <tr>
! <td>2</td>
! <td>$Data{"TicketFreeKeyField2"}:</td>
! <td>$Data{"TicketFreeTextField2"}</td>
! </tr>
! <tr>
! <td>3</td>
! <td>$Data{"TicketFreeKeyField3"}:</td>
! <td>$Data{"TicketFreeTextField3"}</td>
! </tr>
! <tr>
! <td>4</td>
! <td>$Data{"TicketFreeKeyField4"}:</td>
! <td>$Data{"TicketFreeTextField4"}</td>
! </tr>
! # <tr>
! # <td>5</td>
! # <td>$Data{"TicketFreeKeyField5"}:</td>
! # <td>$Data{"TicketFreeTextField5"}</td>
! # </tr>
! # <tr>
! # <td>6</td>
! # <td>$Data{"TicketFreeKeyField6"}:</td>
! # <td>$Data{"TicketFreeTextField6"}</td>
! # </tr>
! # <tr>
! # <td>7</td>
! # <td>$Data{"TicketFreeKeyField7"}:</td>
! # <td>$Data{"TicketFreeTextField7"}</td>
! # </tr>
! # <tr>
! # <td>8</td>
! # <td>$Data{"TicketFreeKeyField8"}:</td>
! # <td>$Data{"TicketFreeTextField8"}</td>
! # </tr>
</table>
<br>
--- 36,46 ----
<table border="0">
<tr>
! # <td width="20"></td>
<td>$Text{"Key"}:</td>
<td>$Text{"Value"}</td>
</tr>
! $Include{"TicketFreeTextInput"}
</table>
<br>
diff -rch otrs.clean/Kernel/Output/HTML/Standard/AgentPhoneNew.dtl otrs.new/Kernel/Output/HTML/Standard/AgentPhoneNew.dtl
*** otrs.clean/Kernel/Output/HTML/Standard/AgentPhoneNew.dtl 2004-08-19 08:38:50.000000000 -0700
--- otrs.new/Kernel/Output/HTML/Standard/AgentPhoneNew.dtl 2005-03-21 11:36:43.000000000 -0800
***************
*** 131,136 ****
--- 131,137 ----
Steve Churchill wrote: I'm looking at using the FreeTextFields here, but these seem to only be
available as associative hash arrays. While I find this useful, and
like the combo box functionality, I'd still just like some extra "free
text" fields associated with each ticket. Each of these will need to be
new fields in the ticket table of course. I'll try and develop this so
adding more fields is a matter of changing your for loop count. If I can interject, changing the free-text field count is entirely the
wrong way of handling this. It results in the same problem as hard-coded
attachment counts, etc. There should really be a new table for
"free_text_types" that allow admins/agents to create new field
definitions. Each row in the table would define a type that would be
referenced in another table, "free_text(s)". Each row in this table would
be a unique free_text that would refer back to the ticket_id for the
ticket it's associated with, and have a foreign key back to the
free_text_types table. Not only does this scale by just looping through
the array of $sth->fetchrow_hashref(s), but new free_text entries can
based on existing "types" by referencing back to the free_text_types table
and forming the basis for a drop-down.
Does my rambling make any sense? :)
--
Jason Dixon 301.286.8635 voice
NASA / Goddard Space Flight Center jason@nccs.nasa.gov
AMTI, Inc. Building 28, Room S212
Code 931
_______________________________________________
OTRS mailing list: dev - Webpage: http://otrs.org/
Archive: http://lists.otrs.org/pipermail/dev
To unsubscribe: http://lists.otrs.org/cgi-bin/listinfo/dev Hi Steve,
Steve Churchill wrote: What you're saying makes sense, but I dont have the time right now :) I'm <extending> the current otrs functionality. I've pretty much hacked it all out. Theres only 2 things that bother me.. if anyone wants to take a look I've supplied the patches Questions:
Not sure I need to update w/ TicketRFreeTextGet? (since I'm not using hash arrays, just scalars) I've added 2 dtl files for input/output of these fields. They display
differently in some areas. Its due to the initialization of
the objects. I'm just stuck. For example AgentUtilities TicketSearch
looks fine. But CustomerTicketSearch doesnt display the form fields! :/
Any ideas? At first, it's not clear to me why not using the "normal" TicketFreeText.
IMO, you can also use this as:
Key: Input Field
like:
[Kernel/Config.pm]
$Self->{"TicketFreeKey4"} = {
'Application' => 'Application',
};
[...]
Without a text option, you will get a "normal" input field.
Anyway, I'm not sure, but if you want to use your "TicketRFreeText" in
customer panel, you need to add it in the tempaltes (I have not seen it). Thanks, -steve Martin Edenhofer
--
((otrs.de)) :: OTRS GmbH :: Norsk-Data-Str. 1 :: 61352 Bad Homburg
http://www.otrs.de/ :: Manage your communication!
participants (2)
-
Martin Edenhofer
-
Steve Churchill