Project

General

Profile

Actions

Feature #14995

open

Search in DB for occurrences of a string

Added by Carsten Rose 3 months ago. Updated 8 days ago.

Status:
In Progress
Priority:
Normal
Assignee:
Enis Nuredini
Target version:
Start date:
05.11.2022
Due date:
% Done:

0%

Estimated time:
Discuss:
Prio Planung:
No

Description

Beim Refactoring fragt man sich oft wo wird ein String (z.B. ein Spaltenname) verwendet?

Fuer T3 gibt es eine recht gute (effziente) Suche.

Fuer QFQ waere es gut wenn wir etwas vergleichbares haetten. Ggfs. auch fuer T3 (das koennen wir zwar nicht verlinken, aber zumindest die uid und den T3 Pagenamen angeben.

  • Suchstring
  • Checkbox: exact oder wildcard
  • Checkbox: a) Limit 100, b) all
  • Suche in allen Spalten von Form & FormElement.
  • Checkbox: Suche in allen Tabellen.
  • Ausgabe Matches pro Tabelle
  • FormElemente die disabled sind: entsprechend markieren das sie disabled sind.
  • Verlinkung (Edit) um den Match zu bearbeiten:
    • Pro Match/Tabelle wird nach Forms gesucht die die aktuelle Tabelle als Primary Table haben.
    • Haben die gefundenen Forms in 'required_edit' etwas eingetragen?
      • Ja: 'Edit' ist disabled.
      • Nein: 'Edit' is enabled.
    • Gibt es mehrere passende Forms, werden alle angegeben / verlinkt
  • Neu: Im Form 'FormElement' soll es neu einen Link geben um das 'Form' (normalerweise erreichbar via Back Button der hier aber nicht funktioniert) aufzurufen.
  • Ist es moeglich den gefundenen Text zu markieren? Ohne das die Markierung bei einem Save gespeichert wuerde.
  • Bei Suche in T3 waeren vermutlich die Tabellen 'pages' und 'tt_content' interessant. Wichtig ist das 'deleted' Records nicht selektiert werden und 'disabled' markiert werden das sie disabled sind.
  • Die ganze Logik koennte mit auf der Seite des FormEditor implementiert werden - die Seite gibt es schon und es passt auch inhaltlich einigermassen.
  • Nice to have: Radiolist 'todo'
    • Eine Suche wird mit dem Suchbegriff gespeichert (Browser Localstore) und eine ID zugeordnet.
    • Jeder Treffer bekommt eine Radioinput mit 'open,done,wdc' mit einer eindeutigen (HTML-)ID: searchid_dbname_tablename_recordid
    • Der Radio input state wird im Browser Localstore gespeichert.
    • Es gibt einen Clear Button um die Suchanfragen und zugehoerige Radio input Werte zu loeschen.
    • Alte Suchanfragen koennen wieder aufgerufen werden - inkl. Restore wie weit man mit dem Refactoring gekommen ist.

Gedanken
--------

QFQ:

  • Wenn wir eine stored procedure machen, die als Parameter den Suchstring und einen Tabellennamen bekommt (Return: set of record id die matches), koennte man ggfs. den Rest in QFQ Report Notation umsetzen.
  • Wuerde die SP ein Resultset zurueckliefern, koennte darueber iteriert werden.
  • Den QFQ Code koennte man evtl. auf der FormEditor Seite implementieren oder wie beim FormEditor die Seite als JSON mitliefern.

PHP:

  • Wenn wir das in PHP Programmieren waere eine Ausgabe moeglich vergleichbar mit der Wiki Suche in Redmine. Es koennte die Spalte angegeben werden in der der Match war.

Files


Related issues

Has duplicate QFQ - Feature #12477: Support for refactoring: Form, FormElement, diverse Tabellen/Spalten, tt-content RecordsRejectedCarsten Rose02.05.2021

Actions
Actions #1

Updated by Carsten Rose 3 months ago

  • Tracker changed from Support to Feature
Actions #2

Updated by Carsten Rose 3 months ago

  • Description updated (diff)
Actions #3

Updated by Carsten Rose 3 months ago

Actions #4

Updated by Carsten Rose 2 months ago

  • Description updated (diff)
Actions #5

Updated by Carsten Rose 2 months ago

  • Description updated (diff)
Actions #6

Updated by Enis Nuredini 2 months ago

  • Status changed from New to In Progress
Actions #7

Updated by Enis Nuredini 2 months ago

  • Assignee changed from Support: Web to Enis Nuredini
Actions #8

Updated by Enis Nuredini 2 months ago

  • Status changed from In Progress to ToDo
Actions #9

Updated by Carsten Rose 2 months ago

  • Target version changed from 22.2.1 to 23.2.0
Actions #10

Updated by Carsten Rose 25 days ago

  • Status changed from ToDo to Priorize
  • Target version changed from 23.2.0 to 23.1.2
Actions #11

Updated by Enis Nuredini 14 days ago

  • Status changed from Priorize to In Progress
Actions #12

Updated by Carsten Rose 8 days ago

Fuer das MedTool funktioniert die Suche aktuell nur nach FtG. Die Suche muss konfigurierbar (Source: Tabellen, Spalten) werden.

Fuer dieses Ticket haben wir eine aehnliche Problematik: wir haetten gern eine einfache Moeglichkeit x Tabellen mit y Spalten zu durchsuchen.

Wir koennen dieses Ticket

  1. hart in PHP programmieren
  2. hart in einem Report definieren
  3. eine Notation definieren mit der Queries dynamisch gebaut werden (JSON Konstrukt mit Spaltennamen die zu 'OR' Bedingungen explodiert wird)
  4. PHP Funktionen via Report aufgerufen werden koennen.
  5. ...
Actions #13

Updated by Carsten Rose 2 days ago

  • Has duplicate Feature #12477: Support for refactoring: Form, FormElement, diverse Tabellen/Spalten, tt-content Records added
Actions

Also available in: Atom PDF