-sub date_tag {
- my ($self, $name, $value, @slurp) = @_;
- my %params = _hashify(@slurp);
- my $name_e = _H($name);
- my $seq = _tag_id();
- my $datefmt = apply {
- s/d+/\%d/gi;
- s/m+/\%m/gi;
- s/y+/\%Y/gi;
- } $::myconfig{"dateformat"};
-
- my $cal_align = delete $params{cal_align} || 'BR';
- my $onchange = delete $params{onchange};
- my $str_value = blessed $value ? $value->to_lxoffice : $value;
-
- $self->input_tag($name, $str_value,
- id => $name_e,
- size => 11,
- title => _H($::myconfig{dateformat}),
- onBlur => 'check_right_date_format(this)',
- ($onchange ? (
- onChange => $onchange,
- ) : ()),
- %params,
- ) . ((!$params{no_cal} && !$params{readonly}) ?
- $self->html_tag('img', undef,
- src => 'image/calendar.png',
- alt => $::locale->text('Calendar'),
- id => "trigger$seq",
- title => _H($::myconfig{dateformat}),
- %params,
- ) .
- $self->javascript(
- "Calendar.setup({ inputField: '$name_e', ifFormat: '$datefmt', align: '$cal_align', button: 'trigger$seq' });"
- ) : '');
-}
-
-sub customer_picker {
- my ($self, $name, $value, %params) = @_;
- my $name_e = _H($name);
-
- $self->hidden_tag($name, (ref $value && $value->can('id')) ? $value->id : '') .
- $self->input_tag("$name_e\_name", (ref $value && $value->can('name')) ? $value->name : '', %params) .
- $self->javascript(<<JS);
-function autocomplete_customer (selector, column) {
- \$(function(){ \$(selector).autocomplete({
- source: function(req, rsp) {
- \$.ajax({
- url: 'controller.pl?action=Customer/ajax_autocomplete',
- dataType: "json",
- data: {
- column: column,
- term: req.term,
- current: function() { \$('#$name_e').val() },
- obsolete: 0,
- },
- success: function (data){ rsp(data) }
- });
- },
- limit: 20,
- delay: 50,
- select: function(event, ui) {
- \$('#$name_e').val(ui.item.id);
- \$('#$name_e\_name').val(ui.item.name);
- },
- })});
-}
-autocomplete_customer('#$name_e\_name');
-JS
-}