Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 46e1177c

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

  • ID 46e1177c8b8a14cfef2765e1f7b784116bddfc17
  • Vorgänger 4d0bc1f1
  • Nachfolger 303a4d5d

PartPicker: Diverse Verbesserungen

- Dialog vergrössert
- Unterstützung für Listenansicht
- Bild hoch Bild runter im paginaten gemappt
- Focus nach Klickauswahl wieder auf das ursprüngliche Feld gesetzt
- Unterscheidung zwischen minimaler Rückmeldung (nur id und name) und fettem
json Objekt verbessert. Im letzten Fall wird immer garantiert das komplette
Objekt ausgeliefert.

Unterschiede anzeigen:

js/autocomplete_part.js
8 8
      ESCAPE: 27,
9 9
      ENTER:  13,
10 10
      TAB:    9,
11
      LEFT:   37,
12
      RIGHT:  39,
13
      PAGE_UP: 33,
14
      PAGE_DOWN: 34,
11 15
    };
12 16
    var o = $.extend({
13 17
      limit: 20,
14 18
      delay: 50,
19
      fat_set_item: 0, // use this option to get a fat item json with all
20
                       // relevant data instead of the guaranteed id + name
15 21
    }, options);
16 22
    var STATES = {
17 23
      UNIQUE: 1,
......
35 41
          real_id: real_id,
36 42
        }, ajax_data($dummy.val())),
37 43
        id: 'part_selection',
38
        dialog: { title: k.t8('Part picker') }
44
        dialog: {
45
          title: k.t8('Part picker'),
46
          width: 800,
47
          height: 800,
48
        }
39 49
      });
40 50
      window.clearTimeout(timer);
41 51
      return true;
......
46 56
        'filter.all:substr::ilike': term,
47 57
        'filter.obsolete': 0,
48 58
        'filter.unit_obj.convertible_to': $convertible_unit && $convertible_unit.val() ? $convertible_unit.val() : '',
59
        no_paginate:  $('#no_paginate').prop('checked') ? 1 : 0,
49 60
        column:   $column && $column.val() ? $column.val() : '',
50 61
        current:  $real.val(),
51 62
      };
......
71 82
      state = STATES.PICKED;
72 83
      last_real = $real.val();
73 84
      last_dummy = $dummy.val();
74
      $real.trigger('change').trigger('set_item:PartPicker', item);
85
      $real.trigger('change');
86

  
87
      if (o.fat_set_item) {
88
        $.ajax({
89
          url: 'controller.pl?action=Part/show.json',
90
          data: { id: item.id },
91
          success: function(rsp) {
92
            $real.trigger('set_item:PartPicker', rsp);
93
          },
94
        });
95
      } else {
96
        $real.trigger('set_item:PartPicker', item);
97
      }
75 98
    }
76 99

  
77 100
    function make_defined_state () {
......
94 117
    };
95 118

  
96 119
    function result_timer (event) {
120
      if (!$('no_paginate').prop('checked')) {
121
        if (event.keyCode == KEY.PAGE_UP) {
122
          $('#part_picker_result a.paginate-prev').click();
123
          return;
124
        }
125
        if (event.keyCode == KEY.PAGE_DOWN) {
126
          $('#part_picker_result a.paginate-next').click();
127
          return;
128
        }
129
      }
97 130
      window.clearTimeout(timer);
98 131
      timer = window.setTimeout(update_results, 100);
99 132
    }
......
175 208
    var picker = $('<div>');
176 209
    $dummy.after(pcont);
177 210
    pcont.append(picker);
178
    picker.addClass('icon16 CRM--Schnellsuche').click(open_dialog);
211
    picker.addClass('icon16 crm--search').click(open_dialog);
179 212

  
180 213
    var pp = {
181 214
      real:           function() { return $real },
......
192 225
        $('div.part_picker_part').each(function(){
193 226
          $(this).click(function(){
194 227
            set_item({
195
              name: $(this).children('input.part_picker_description').val(),
196 228
              id:   $(this).children('input.part_picker_id').val(),
229
              name: $(this).children('input.part_picker_description').val(),
230
              unit: $(this).children('input.part_picker_unit').val(),
197 231
            });
198 232
            close_popup();
233
            $dummy.focus();
199 234
            return true;
200 235
          });
201 236
        });

Auch abrufbar als: Unified diff