Module: statt/buchung/event/mitarbeiter/mitarbeiterEditormanager

Dieses Modul definiert die Klasse MitarbeiterEditormanager.

Ein GUI um die Mitarbeitereinsatzplanung im Bezug auf ein konkretes Modul zu unterstützen. Highlights:

  1. In 3 Spalten werden die MA zwischen verfügbar, angefragt und bestätigt per dnd verschoben.
  2. Alle Mitarbeiter haben ein Tooltip mit den aktuellen Kontaktinformationen. Dieses ist anklickbar, ein Klick auf die E-Mail öffnet eine neue E-Mail mit dem namen des Moduls als Betreff.
  3. Beim Ändern des Status (Offen, Anfrage, Zusage, Absage, Bestaetigt) durch dnd wird der Ist-Status berücksichtigt. Es sind nur solche Aktionen per dnd möglich die Sinn machen.
  4. In der Spalte Anfrage öffnet sich beim Anklicken des Mitarbeiternamens ein Inlineeditor mit 3 Buttons um den Status zwischen Anfrage, Zusage und Absage ändern zu können.
  5. In der Spalte Bestätigt öffnet sich beim Anklicken des Mitarbeiternamens ein Inlineeditor mit einer Listbox um die Funktion des Mitarbeiters bearbeiten zu können
Source:
See:

Extends

Requires

Members

moduleName

Properties:
Name Type Description
moduleName String

Name des Moduls aus lokaler Konstante

Source:

(inner, constant) dndContainerAngefragt :String

Type:
  • String
Default Value:
  • "dndContainerAngefragt"
Source:

(inner, constant) dndContainerBestaetigt :String

Type:
  • String
Default Value:
  • "dndContainerBestaetigt"
Source:

(inner, constant) dndContainerVerfuegbar :String

Type:
  • String
Default Value:
  • "dndContainerVerfuegbar"
Source:

(inner, constant) opcDropEventModulMitarbeiter :OPCODE

Type:
  • OPCODE
Default Value:
  • 255161
Source:

(inner, constant) opcOptionlistProduktFunktion :OPCODE

Type:
  • OPCODE
Default Value:
  • 256236
Source:

(inner, constant) opcOptionlistProduktMitarbeiterRelationModul :OPCODE

Type:
  • OPCODE
Default Value:
  • 256307
Source:

(inner, constant) opcPortraitMitarbeiter :OPCODE

Type:
  • OPCODE
Default Value:
  • 256316
Source:

(inner, constant) opcSendEmailAbsageNachEinteilungToMitarbeiter :OPCODE

Parameter für den Dialog

Type:
  • OPCODE
Default Value:
  • 256328
Source:

(inner, constant) opcSendEmailAbsageNachStornoToMitarbeiter :OPCODE

Parameter für den Dialog

Type:
  • OPCODE
Default Value:
  • 256327
Source:

(inner, constant) opcSendEmailAnfrageToMitarbeiter :OPCODE

Parameter für den Dialog

Type:
  • OPCODE
Default Value:
  • 256318
Source:

(inner, constant) opcSendEmailBestaetigungToMitarbeiter :OPCODE

Parameter für den Dialog

Type:
  • OPCODE
Default Value:
  • 256319
Source:

(inner, constant) opcSendEmailErinnerungToMitarbeiter :OPCODE

Parameter für den Dialog

Type:
  • OPCODE
Default Value:
  • 256320
Source:

(inner, constant) opcStoreEventModulMitarbeiter :OPCODE

Type:
  • OPCODE
Default Value:
  • 255160
Source:

(inner, constant) opcTemplateEventModulMitarbeiter :OPCODE

Type:
  • OPCODE
Default Value:
  • 255162
Source:

(inner, constant) statusAbsage :String

Type:
  • String
Default Value:
  • "absage"
Source:

(inner, constant) statusAnfrage :String

Type:
  • String
Default Value:
  • "anfrage"
Source:

(inner, constant) statusBestaetigt :String

Type:
  • String
Default Value:
  • "bestaetigt"
Source:

(inner, constant) statusOffen :String

Type:
  • String
Default Value:
  • "offen"
Source:

(inner, constant) statusZusage :String

Type:
  • String
Default Value:
  • "zusage"
Source:

Methods

afterDrop()

Überschreibt die Implementierung der Basisklasse. Propagiert die Änderungen asynchron an die API und updated den Store. Kritisch sind nur 2 Ereignisse:

  1. Wenn aus Verfuegbar->Angefragt wird muss ein Template geholt werden und der bisherige de_stattbuchung_produkt_Mitarbeiter ein de_stattbuchung_event_modul_Mitarbeiter werden. Dazu werden die Daten des Templates verwendet: Klasse ändern, OID üerschreiben, 3 Listobjects, StattConst.classProduktMitarbeiter, StattConst.classEventModul und StattConst.classProduktFunktion hinzufügen.
  2. Vice versa: Wenn aus Angefragt->Verfügbar wird. Hier kommt kein Template sondern nur die Status deleted zurück. In dem Fall die Klasse auf StattConst.classProduktMitarbeiter setzen, die OID aus item.StattConst.classProduktMitarbeiter.oid holen und direkt beim item setzen und die drei Listobjects StattConst.classEventModul, StattConst.classEventModul und StattConst.classProduktFunktion aus dem item löschen.

Besonders bearbeitet werden muss dann nur noch das Verschieben einer Zusage nach Bestätigt, alle anderen Updates werden durch die Inline-Editoren besorgt. In diesem Fall wird das Update an die API propagiert, das Response ist ein Item das direkt in den Tree eingehängt werden kann, unterhalb des aktuell ausgewählten Nodes maMitarbeiter: this.containerView.tree.addChildNode(response, this.dataItem, SDWConst.jsonItems, false);

Source:

beforeDrop()

Überschreibt die Implementierung der Basisklasse. In Abhängigkeit des Zielcontainers werden Attribute des Items im Store gesetzt:

  1. Zeitstempel im Info-Bereich storeItem[0].info.* werden gesetzt oder gelöscht
  2. Der neue Status wird auf den Defaultstatus des Containers gesetzt.
Source:

creator(storeItem, hint)

Überschreibt die Methode der Basisklasse. Erstellt die Visualisierung der dnd-Items. Achtung: Läuft im Scope der dnd-Source. Der Editormanager (also diese Klasse hier) muss mit this.delegate angesprochen werden.

Parameters:
Name Type Description
storeItem Object

Das Item, wird durch eine Query aus dem Store zur Verfügung gestellt

Properties
Name Type Description
id UUID

Die id des Items im Store, nicht im Dom!

klasse String

Die fachliche Klasse des Items im Store

label String

Der Anzeigename des Items wie er auf der Oberfläche und im Avatar erscheinen soll

oid OID

Die oid des Items im Store

status String

Der Status des items entscheidet, in welche Source das item initial einsortiert wird und in welche anderen dndSourcen er gedroppt werden kann.

info Object

Zusätzlich anzuzeigende Informationen

Properties
Name Type Description
anfrage Timestamp

Zusätzlich anzuzeigende Informationen

absage Timestamp

Zusätzlich anzuzeigende Informationen

abestaetigt Timestamp

Zusätzlich anzuzeigende Informationen

zusage Timestamp

Zusätzlich anzuzeigende Informationen

hint String

Leer oder "avatar". Entscheidet, ob der Avatar (sichtbar beim Verschieben) oder die normale Version (sichtbar in der Liste) gebaut wird.

Source:

onClickToolbarButton(domId) → {Boolean}

Ünerschreibt die Implementierung der Basisklasse und dispatcht die Buttonclicks

Parameters:
Name Type Description
domId String

Eine Konstante die angibt, welcher Button gedrückt worden ist

Source:
Returns:

Zeigt an, ob der Event hier verarbeitet werden konnte oder nicht.

Type
Boolean

setProperties()

Überschreibt die Implementierung der Basisklasse um Eigenschaften zu setzen. Sucht die notwendigen Parameter für den storeCommand aus dem Tree zusammen und setzt den storeCommand.

  1. Alle potentiellen und alle bereits zugewiesenen MA holen und in den Store stecken
  2. Das dndContainerobjekt füllen und setzen
Source:

updateFunktion(storeItem, OID, Label)

Setzt die Funktion des storeItems auf den neuen Wert und sendet ein update Request an die API.

Parameters:
Name Type Description
storeItem Object

Zeiger auf ein DataItem des Stores

OID OID

Die OID der neu ausgewählten Funktion vom Typ StattConst.classProduktFunktion

Label String

Der Label der neu ausgewählten Funktion vom Typ StattConst.classProduktFunktion

Source:

updateStatus(storeItem, zeitstempel, status)

Setzt den Status des storeItems auf den neuen Wert, passt die Infozeilen an und sendet ein update Request an die API

Parameters:
Name Type Description
storeItem Object

Zeiger auf ein Dataiten des Stores

zeitstempel ISO-Timestamp

Der Zeitstempel, auf den neu zu setzende Status gesetzt werden

status String

Enthält eine der oben definierten Statuskonstanten, statusOffen, statusZusage, statusAbsage

Source: