Changeset 1370

Show
Ignore:
Timestamp:
16/11/09 13:16:40 (3 months ago)
Author:
karel
Message:

Don't escape the autocomplete template values and don't use 'options' to pass configuration attributes

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/modules/kauri-forms/kauri-forms-extra/src/main/kauri/static/autocomplete/js/autocomplete.js

    r1369 r1370  
    4343 
    4444    AutocompleteControl.prototype.initElements = function(create) { 
     45        debugger; 
    4546        $acinput = kf.ControlElements.lookup(this, "acinput", true); 
    4647 
    4748        var me = this; 
    4849         
    49         var inputTemplate = new kp.UriTemplate("{email}"); 
    50         var listTemplate  = new kp.UriTemplate("{id} - {email})"); 
    51         var valueTemplate = new kp.UriTemplate("{id}"); 
     50        var inputTemplate = new kp.UriTemplate(this.inputTemplate, {skipEscape: true}); 
     51        var listTemplate  = new kp.UriTemplate(this.listTemplate, {skipEscape: true}); 
     52        var valueTemplate = new kp.UriTemplate(this.valueTemplate, {skipEscape: true}); 
    5253         
    53         $acinput.autocomplete(this.options.dataUri,
     54        var jqOptions =
    5455          dataType: "json",  
    5556          parse: function(data) { 
     
    6364            return listTemplate.expand(data, true); 
    6465          } 
    65         }).bind("result", function(event, objData, valueData) { 
     66        }; 
     67        if (this.filterParam) { 
     68          jqOptions.filterParam = this.filterParam; 
     69        } 
     70         
     71        $acinput.autocomplete(this.dataUri, jqOptions).bind("result", function(event, objData, valueData) { 
    6672          alert('You selected ' + valueData); 
    6773        }); 
  • trunk/modules/kauri-forms/kauri-forms-extra/src/main/kauri/static/autocomplete/js/jquery.autocomplete.js

    r1368 r1370  
    345345            }); 
    346346             
     347            var data = $.extend({ 
     348                    limit: options.max 
     349                }, extraParams); 
     350            data[options.filterParam] = lastWord(term); 
    347351            $.ajax({ 
    348352                // try to leverage ajaxQueue plugin to abort previous requests 
     
    352356                dataType: options.dataType, 
    353357                url: options.url, 
    354                 data: $.extend({ 
    355                     q: lastWord(term), 
    356                     limit: options.max 
    357                 }, extraParams), 
     358                data: data, 
    358359                success: function(data) { 
    359360                    var parsed = options.parse && options.parse(data) || parse(data); 
     
    416417    }, 
    417418    scroll: true, 
    418     scrollHeight: 180 
     419    scrollHeight: 180, 
     420    filerParam: 'q' 
    419421}; 
    420422 
  • trunk/samples/kauri-forms-sample/src/main/kauri/pages/autocomplete-control.html.xml

    r1369 r1370  
    1818                  "control": { 
    1919                      "base": "autocomplete-control", 
    20                       "options": { 
    21                           "dataUri": "${publicUri('service:/data/contact/')}", 
    22                           "valueTemplate": "{id}", 
    23                           "labelTemplate": "{name}", 
    24                           "nullable": true 
    25                       } 
     20                      "dataUri": "${publicUri('service:/data/contact/')}", 
     21                      "valueTemplate": "value:{id}", 
     22                      "inputTemplate": "input:{id} - {name}", 
     23                      "listTemplate": "list:{id} - {name} {email}" 
    2624                  } 
    2725              }