12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- function init_components_part(input){
- if(input.is(":visible")) {
- var partPicker = input.clone();
- input.before(partPicker);
- if(input.parent().hasClass("input-group")){
- input.parent().after(input.detach());
- input.before('<div id="part-anchor" class="dropdown-anchor"></div>');
- }
- input.hide();
- partPicker.addClass('data-type-part').removeAttr("data-type").removeAttr('name').removeAttr('id').removeAttr('onchange');
- partPicker.attr('data-source',input.attr('id'));
- }else{
- partPicker = $('[data-source="'+input.attr('id')+'"]');
- }
-
-
- input.change(function(){
- partPicker.prop('disabled',true).val('Chargement...');
- $.action({
- action : 'get_part_by_id',
- id : input.val(),
-
- before : input.attr('data-before'),
- },function(r){
- partPicker.prop('disabled',input.prop('disabled'));
- if(r.part && r.part.label){
- partPicker.val(r.part.label);
- }else{
- partPicker.val('');
- }
- });
- });
- if(input.val() !=''){
- partPicker.prop('disabled',true).val('Chargement...');
- $.action({
- action : 'get_part_by_id',
- id : input.val(),
-
- before : input.attr('data-before'),
- },function(r){
- partPicker.prop('disabled',input.prop('disabled'));
- if(r.part && r.part.label){
- partPicker.val(r.part.label);
- }else{
- partPicker.val('');
- }
- });
- }
-
-
- partPicker.keyup(function(){
- input.val('');
- });
- var parent = input.attr('data-parent');
- partPicker.autocomplete({
- action : 'autocomplete_part',
- data : {
-
- before : input.attr('data-before'),
- parent:function(){ return $(parent).val(); }
- },
- skin : function(item){
- var html = '';
- var re = new RegExp(partPicker.val(),"gi");
- name = item.name.replace(re, function (x) {
- return '<strong>'+x+'</strong>';
- });
- html += '<div class="part-logo d-inline mr-2"><img src="'+item.picture+'" class="avatar-mini avatar-rounded"></div>';
- html += '<div class="user-infos d-inline"><span>'+name+'</span>';
- html += '<div class="clear"></div>';
-
- return html;
- },
- onClick : function(selected,element){
- input.val(selected.id);
- input.trigger('change');
- },
- onBlur : function(selected,element){
- if(input.attr('data-force')!='false' && input.val()=='') partPicker.val('');
- if(partPicker.val()=='') {
- input.val('');
- }
- input.trigger('blur');
- }
- });
- }
|