20120213

Nachtrag

  • Ein Bug weniger: GridPanel.set_status() speichert jetzt die aktuelle Seite der PagingToolbar.
  • Ein weiterer Bug weniger, der schon in der 1.3.8 drin war und den ich jetzt erst entdeckt habe: Man konnte im Reiter “Kompetenzen” einer Person nichts eingeben (alle Auswahllisten waren leer). Das lag daran, dass lino.utils.choosers.Chooser.get_request_choices() die known values ignorierte.

Diese beiden Bugfixes sind nachträglich noch in der /releases/1.3.9 mit drin.

Grids having the correct number of rows

There was still a bug in 1.3.9:

  1. Wenn man z.B. im Detail eines Benutzers auf den Aktenreiter “Kalender” klickt, dann funktioniert beim ersten Mal calculatePageSize() nicht korrekt. Er zeigt nur 5 Zeilen an, auch wenn es deren mehr gibt. Erst wenn man Refresh klickt, wird die korrekte Zeilenanzahl geladen.

The general question for this problem is: How can I automatically set the pageSize of a PagingToolbar so that it takes as many rows as fit into the GridPanel?

I did not find a correct answer using Google, although it seems to be a common problem. For example:

I solved it now by capturing a combination of the resize and viewready events:

initComponent : function() {
  ...
  this.on('resize', function(){  this.refresh(); },this);
  this.on('viewready', function(){ this.view_is_ready = true; this.refresh(); },this);
  }

refresh : function() {
  ...
  if (! this.view_is_ready) return;
  ...
  this.store.load(options);
},

Thanks also to http://www.sencha.com/learn/grid-faq who collected and published Aaron Conran’s simple captureEvents utility which helped my to discover the viewready event:

function captureEvents(observable) {
    Ext.util.Observable.capture(
        observable,
        function(eventName) {
            console.info(eventName);
        },
        this
    );
}

CSS Tooltips

Tried to integrate Alexander Dawson’s CSS tooltips into Lino. Problem seems to be that ExtJS does some trickery with CSS which partly overrides Dawson’s definitions. So I didn’t yet manage to get them work when defined on field labels in an ExtJS form.