Module: statt/buchung/mitarbeiter/urlaub/tableEditor

Dieses Modul definiert die Klasse statt/buchung/mitarbeiter/urlaub/tableEditor

Author:
  • sdw.systems
Source:
See:
  • module:sdw/inline/editorMetadata
  • module:sdw/inline/editormanager

Extends

  • module:sdw/templates/inline/tableEditor

Requires

Members

moduleName

Properties:
Name Type Description
moduleName String

Name des Moduls aus lokaler Konstante

Source:

Methods

checkDaterangesAreDisjoint(Matrix) → {Boolean}

Überprüft ob die von-bis-Bereiche in den einzelnen Zeilen der übergebenen Matrix überschneidungsfrei sind. Durch die Verwendung von 2 geschachtelten array.some Methoden wird sichergestellt dass das 1. Vorkommen einer Überschneidung den Algorithmus abbrechen lässt. Die übergebene Matrix ist entweder this.cellControls, d.h. die Überprüfung findet mit sich selber statt. Das ist der Fall beim store-Vorgang, oder aber die Liste der addRowControls, die für diesen Zweck in ein äußeres Array geschachtelt wird.

Parameters:
Name Type Description
Matrix Object

aus Zeilen und Spalten. Jede Zeile der Matrix wird mit this.cellControls vergleichen.

Source:
Returns:

true falls alle Zeiträume überschneidungsfrei sind, sonst false.

Type
Boolean

createCellControl(row, cal, metadataItemCol, beforeImageItem) → {Object}

Überschreibt die Implementierung der Basisklasse.

Parameters:
Name Type Description
row Number

Die Zeilennummer der Zelle

cal Number

Die Spaltennummer der Zelle

metadataItemCol Object

Ein Zeiger auf das zutreffende Col-Objekt der EditorMetadaten

beforeImageItem Object

Ein Zeiger auf das relevante Objekt des beforeImages, das der initiale Wert des Editors darstellt.

Source:
Returns:

Ein dijit/form/control-Objekt

Type
Object

getStartDateForTemplate() → {Object/String}

Stellt das Beginn-Datum zur Verfügung das in der von-Datebox im Template voreingestellt ist Kann von den abgeleiteten Klasse einfach überschrieben werden. Diese Implementierung gibt das aktuelle Datum als Date-Objekt zurück. Es kann aber auch ein ISO-Datestring zurückgegeben werden.

Source:
Returns:

Die Vorbelegung der von-Datebox im Template, entweder ein JS-Date-Objekt oder ein ISO Datestring

Type
Object/String

isValid() → {Boolen}

Überschreibt die Implementierung der Basisklasse und prüft zusätzlich ob von und bis für alle Zeilen in der richtigen Reihenfolge sind falls die Implementierung der Basisklasse selbst für die Controls valid zurückgibt. Danach wird geprüft ob die Dateranges überscheidungsfrei sind

Source:
Returns:

true wenn alle Wertepaare {von, bis} in der richtigen Reihenfolge und überschneidungsfrei sind, sonst false.

Type
Boolen

resetAddRowControls()

Überschreibt die Methode des Basisklasse, hier sollen die Vorauswahlen einfach bestehen bleiben

Source:

templateRowControlsAreValid() → {Boolean}

Ergänzt die Implementierung der Basisklasse um zu prüfen ob von und bis in der richtigen Reihenfolge sind und in Bezug auf die bereits existierenden Zeilen der Tablle disjunkte Dateranges haben. Das passiert aber nur, wenn die Methode der Basisklasse valid zurückgibt. Das ist die Basisprüfung, denn nur wenn alle Controls valid sind kann ein control-übergreifender Check sinnvoll erfolgen. Alle Tests sind also sequtentiell:

  • Erst prüf die Implementierung der Vaterklasse ob die Controls selber valide sind
  • Wenn ja prüft diese Implementierung die Reihenfolge von-bis im addRowControl
  • Wenn die stimmt prüft diese Implementierung, ob es Konflikte zwischen dem DateRange der addRowControls und den bereits existierenden Zeilen gibt
Source:
Returns:

false falls von nach bis, sonst das Ergebnis der Implementierung der Vaterklasse

Type
Boolean