Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 1cd0721d

Von Sven Schöling vor mehr als 12 Jahren hinzugefügt

  • ID 1cd0721d9aa749dda37f3dccaa3da2ba0ebcd2cd
  • Vorgänger a4f1494f
  • Nachfolger 7c39f113

customer_autocomplete

Javascript war nicht in der Lage mehr als ein Feld zu handhaben. Es ist
jetzt ausgelagert in ein Javascript und wird nur bei Bedarf geladen.

Unterschiede anzeigen:

SL/Template/Plugin/L.pm
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
$::request->{layout}->add_javascripts('autocomplete_customer.js');
$self->hidden_tag($name, (ref $value && $value->can('id') ? $value->id : ''), class => 'customer_autocomplete') .
$self->input_tag("$name_e\_name", (ref $value && $value->can('name')) ? $value->name : '', %params);
}
# simple version with select_tag
js/autocomplete_customer.js
$(function(){
$('input.customer_autocomplete').each(function(i,real){
var dummy = $('#' + real.id + '_name');
$(dummy).autocomplete({
source: function(req, rsp) {
$.ajax({
url: 'controller.pl?action=Customer/ajax_autocomplete',
dataType: "json",
data: {
term: req.term,
current: function() { real.val },
obsolete: 0,
},
success: function (data){ rsp(data) }
});
},
limit: 20,
delay: 50,
select: function(event, ui) {
$(real).val(ui.item.id);
$(dummy).val(ui.item.name);
},
});
})
})

Auch abrufbar als: Unified diff