Project

General

Profile

Feature #10979

Ajax Calls an API - dataReport

Added by Philipp Gröbelbauer about 1 year ago. Updated 12 months ago.

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

0%

Estimated time:
Discuss:

Description

- QFQ Page Content per AJAX ausführen
- Über API, sodass kein Performance Verlust durch Typo3
- return Resultat des QFQ Page Contents

(HTML Snippet zum Testen hängt an diesem Ticket)


Files

html_snippet.html (2.76 KB) html_snippet.html Philipp Gröbelbauer, 07.08.2020 12:23
dataReport2.png (41.9 KB) dataReport2.png Carsten Rose, 09.08.2020 17:20
dataReport.png (98.5 KB) dataReport.png Carsten Rose, 09.08.2020 17:20
#1

Updated by Carsten Rose about 1 year ago

  • Subject changed from Ajax Calls an API to Ajax Calls an API - dataReport
  • Status changed from New to In Progress
#2

Updated by Carsten Rose about 1 year ago

  • In einer ersten Version wird die regulaere Link Klasse genutzt.
  • Es wird kein HTML/ Javascript generiert, das muss explizit gemacht werden
    SELECT '<a href="typo3conf/ext/qfq/Classes/Api/dataReport.php?s='
           , 'U:uid=159&arg1=Hello&arg2=World|s|r:8' AS _link
           , '">Call 159 (this record)</a>',
    
  • Das '... AS _link' liefert `badcaffee1234`.

Als Return von dem Aufruf kommt 1:1 der Code den der Report ausgibt (kein JSON).

#4

Updated by Carsten Rose about 1 year ago

Diskussion PG, CR:

  • Vorschlag von CR, mit 'JS Templates' zu arbeiten, scheint keine nennenswerte Vorteile zu bringen.
  • Vorschlag von PG, ein '... AS _link' der in den link Parametern CallBack fuer 'success', 'error' vorgibt, scheint keine nennenswerte Vorteile gegenueber der nativen JS Implemention zu bringen.
  • Auf folgendes geeinigt:
    20 {
      sql = SELECT 'J:uid=100&xId=3|s' AS '_link|col1' # Output: 'typo3conf/ext/qfq/Classes/Api/dataReport.php?s=000000000'
    }
    
    30.head = <script>
      function writeYourOwnAjax(){
        $.ajax({
        url: '{{col1:RE}}',
        data: {a:30, b:430, c:0},
        method: 'POST',
        dataType: 'JSON',
        success: function(response) {ajaxSuccess(response);},
        error: function(jqXHR, textStatus, errorThrown) {ajaxError(jqXHR, textStatus, errorThrown);}
        });
        }
        </script>    
    
  • Neuer Hauptqualifier 'J' fuer Ajax.
  • `typo3conf/ext/qfq/Classes/Api/dataReport.php` wird hart reinkodiert.
  • Parameter koennen 'plain' oder 'SIP kodiert' uebergeben werden.
  • `r:8' ist nicht mehr noetig.
  • Der Output der QFQ-Records wird ausgegeben.
  • Es gibt zwei neue Variablen (ohne Zeilennummer, werden ersetzt nachdem Report durchgelaufen ist):
    statusCode = {{statusCode:R}}   //200  404
    statusMessage = missing value
    
  • Enthaelt der statusCode einen Wert !=200, wird JS den 'error' CallBack aufrufen.
  • statusMessage kann mehr Details enthalten.
  • Sollte es OS / PHP Probleme geben, sind diese Werte sowieso gestzt.
  • Neu kann zusaetzlich der User Code die Werte beeinflussen. Ein StatusCode !=200 koennte (wenn implementiert) eine Standard QFQ Error Box anzeigen.
#5

Updated by Carsten Rose about 1 year ago

  • Assignee changed from Carsten Rose to Marc Egger
#6

Updated by Marc Egger about 1 year ago

  • Status changed from In Progress to Priorize
#7

Updated by Carsten Rose about 1 year ago

Unfinished implementation (already used by Teaching Tools) and small documentation under http://docs.qfq.io/en/develop/Report.html#api-call-qfq-report.

#8

Updated by Marc Egger about 1 year ago

  • Status changed from Priorize to Closed

Es ist nun moeglich, auch die header der antwort zu setzen.
Ich habe die Doku etwas ausgebessert.
Bis ein neuer Request kommt, wuerde ich die Implementation so lassen.

#9

Updated by Carsten Rose 12 months ago

  • Target version changed from 21.8.0 to 20.11.0

Also available in: Atom PDF