Project

General

Profile

Actions

Feature #17462

closed

New formElement Chat

Added by Enis Nuredini 7 months ago. Updated 5 months ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
Start date:
12.12.2023
Due date:
% Done:

0%

Estimated time:
Discuss:
Prio Planung:
No
Vote:

Description

A new formElement named Chat should be implemented. It contains the chat window and an input field inside a fieldset border. At the top there is a search bar to switch between the searched string inside the chat.

Predefined columns: rId, tableName, formParam, customJson, grIdGroup, pIdCreator, actionFlag

Over the parameter field there should be available:
  • columnMap=[apId:rId,pId:pIdCreator,grIdStatus:xGrIdStatus,...]
  • tableName=history[, note]
  • pIdCreator=
  • username=
  • grIdGroupList=
  • grIdCreatorGroupList=
  • xGrIdStatus=
  • threadId=
  • formParam=
  • customJson=
  • submitReference= (default: form)

In current qfq.js the enter key and input handler from inside a chat searchbar should be ignored.

Konzept: https://git.math.uzh.ch/typo3/qfq/-/blob/develop/Documentation-develop/CHAT.md?ref_type=heads


Files


Related issues

Related to QFQ - Feature #17540: FE Chat V1.1ClosedEnis Nuredini08.01.2024

Actions
Related to QFQ - Feature #14993: MedTool fragt an nach einer Chat LoesungClosedSupport: Web04.11.2022

Actions
Related to QFQ - Feature #17790: QFQ Chat V1.3NewEnis Nuredini02.02.2024

Actions
Actions #1

Updated by Enis Nuredini 7 months ago

  • Description updated (diff)
Actions #2

Updated by Enis Nuredini 6 months ago

  • Description updated (diff)
Actions #3

Updated by Enis Nuredini 6 months ago

  • Status changed from New to Feedback

Während der Implementierung ist mir der Sinn von folgenden Parametern entgangen:
- formParam=
- customJson=
- threadId=
- submitReference= (default: form)

Actions #4

Updated by Enis Nuredini 6 months ago

  • Description updated (diff)
Actions #5

Updated by Enis Nuredini 6 months ago

  • Description updated (diff)
Actions #6

Updated by Enis Nuredini 6 months ago

  • Description updated (diff)
Actions #7

Updated by Enis Nuredini 6 months ago

threadId

Überschneidet sich stark mit dem existierenden grIdGroupList. Dort werden die Nachrichten schon zusammen gruppiert und ausgegeben. Ich hab das Gefühl es erzielt das gleiche Resultat je nach Anwendung.

Es wird eine Gruppe erstellt für die Rueckfrage an den Antragsteller, ID = 60
Und eine Gruppe für Rueckfrage zum Vize-Dean, ID = 61

Die jeweilige Gruppe wird dem jeweiligen Chat im Formular über Parameter konifguriert.

Personen die zu der zweiten Gruppe gehören sollten (z.b. Dekanat, Vize-Decan) oder der ersten Gruppe (Dekanat) bekommen die GroupId als Property zugewiesen.

Im Falle von Rückfrage an den Antragsteller wird im Formular des Antragstellers einfach folgendes gesetzt:

grIdGroupList = 60
grIdCreatorGroupList = 60 #Um den Access aufzuheben kann einfach die gleiche ID wie bei grIdGroupList angegeben werden. Somit bleibt dieser parameter multifunktional.

Wird der Chat mit der konfigurierten Gruppe geöffnet, so wird zuerst geprüft ob die eingeloggte Person diese Gruppe als Property besitzt (grIdCreatorGroupList, wenn nicht: readonly und 'No access to chat'). Falls ja dann werden die Nachrichten mit der gleichen grIdGroupList angezeigt und es kann selbst eine Nachricht verfasst werden.

Die grIdThread führt nach meinem Verständnis zum gleichen Ergebnis, es werden mehrere Nachrichten zusammengeführt und so ausgegeben.

Mit grIdThread würde es so aussehen:

grIdThread = 60

Keine Gruppenbeschränkung, werden alle Chat Nachrichten mit dem gleichen grIdThread angezeigt.

grIdThread = 60
grIdGroupList = 60
grIdCreatorGroupList = {{SELECT GROUP_CONCAT(prop.xId) FROM Person AS p, Properties AS prop, Ggroup AS grPropertyCategory WHERE p.id = prop.pId AND prop.catId = grPropertyCategory.id AND grPropertyCategory.reference = 'mef_bef_misc_property_group' GROUP BY p.id}}

Mit Gruppenbeschränkung, falls nicht in Gruppe dann nichts anzeigen und Access vermeiden. Ansonsten alle Chat Nachrichten mit dem gleichen grIdThread anzeigen.

Die threadId wird vom ersten Chat record übernommen. Nach dem der aller erste Chat record gesetzt wird braucht es ein erneutes UPDATE statement um die threadId bei dieser anzupassen (unschön). Bei allen daruaffolgenden ist es kein Problem mehr.

Fazit:
-------
Als Resultat würde ich das ganze so anpassen dass die Parameter grIdGroupList und grIdCreatorGroupLIst nur für die Logik der Kontrolle des Access verwendet wird.

threadId wird nicht vom User selbst sondern automatisch durch die selektierten Chat Records gesetzt.
Die richtige Zuweisung an Gruppen erfolgt über grIdThread (Was ebenfalls Ggroups oder dergleichen sein werden)

Actions #9

Updated by Carsten Rose 6 months ago

  • Description updated (diff)
Actions #10

Updated by Carsten Rose 5 months ago

  • Status changed from Feedback to Closed
  • Target version changed from 24.8.0 to 24.1.0.rc1
Actions #11

Updated by Carsten Rose 5 months ago

Actions #12

Updated by Carsten Rose 5 months ago

  • Related to Feature #14993: MedTool fragt an nach einer Chat Loesung added
Actions #13

Updated by Carsten Rose 5 months ago

  • Description updated (diff)
Actions #14

Updated by Carsten Rose 4 months ago

Actions

Also available in: Atom PDF