MetaModels / core

MetaModels Core Module
GNU Lesser General Public License v3.0
96 stars 42 forks source link

[2.1.1 bundle_all] Datei-Element nimmt nach "Speichern und neu" keine Dateien an #1323

Closed Samson1964 closed 4 years ago

Samson1964 commented 5 years ago

Das Download-Attribut will manchmal ausgewählte Dateien nicht "festhalten". Man wählt Datei(en) aus, klickt auf Anwenden, aber es wird nichts übernommen. Erst wenn man den neuen Datensatz speichert klappt "Anwenden".

Nochmal die Schritte im Einzelnen: 1) Datensatz anlegen 2) Download auswählen und anwenden - klappt 3) Speichern und neu 4) Download auswählen und anwenden - klappt nicht 5) Datensatz speichern 6) Download auswählen und anwenden - klappt

zonky2 commented 5 years ago

kannst Du parallel die Debugkonsole deines Browsers öffnen und "Netzwerk" einstellen - wenn es nicht funktioniert, benötigen wir die Aufrufe (URL) und was ggf. zurück kommt - ggf. auch mal mit Symfony-Toolbar testen (https://metamodels.readthedocs.io/de/latest/cookbook/symfony/mm-2-1-tips.html#symfony-toolbar) dann erscheint unten einige blinkende Links, wenn ein Ajax-Error kommt.

Samson1964 commented 5 years ago

UNGÜLTIGE ANFRAGE:

Angefragte Adresse:https://www.schachbund.de/contao?do=metamodel_mm_bundeskongresse&act=create&id=&after=mm_bundeskongresse::23&rt=pE57WvoLrbfHWElxgfKR4ACwzQW8jWXZVq4cMYCjk9Y&ref=mh50PbU8 Anfragemethode:POST Externe Adresse:[2a00:1158:1000:408::4f]:443 Status-Code: 500 Version:HTTP/1.1 Referrer Policy:origin

Antwortkopfzeilen: Cache-Control max-age=0, must-revalidate, private Connection close Content-Type text/html; charset=UTF-8 Date Tue, 23 Jul 2019 18:39:03 GMT Referrer-Policy no-referrer-when-downgrade, strict-origin-when-cross-origin Server Apache/2.4.39 Transfer-Encoding chunked X-Content-Type-Options nosniff x-powered-by PHP/7.1.23 X-XSS-Protection 1; mode=block

Anfragekopfzeilen: Accept application/json Accept-Encoding gzip, deflate, br Accept-Language de,en-US;q=0.7,en;q=0.3 Connection keep-alive Content-Length 166 Content-type application/x-www-form-urlencoded; charset=utf-8 Cookie cto_lwid=da593730-b241-4378-bb…EhOQmR0QT09; BE_PAGE_OFFSET=0 Host www.schachbund.de Referer https://www.schachbund.de/ User-Agent Mozilla/5.0 (Windows NT 10.0; …) Gecko/20100101 Firefox/68.0 X-Request JSON X-Requested-With XMLHttpRequest

PARAMETER DER UNGÜLTIGEN ABFRAGE (Punkt 4)

Suchbegriff: do metamodel_mm_bundeskongresse act create id
after mm_bundeskongresse::23 rt pE57WvoLrbfHWElxgfKR4ACwzQW8jWXZVq4cMYCjk9Y ref mh50PbU8

Formulardaten: action reloadFiletree name dateien value files/dsb/kongresse/protokolle/Kongress_1983-12_Marburg.pdf REQUEST_TOKEN pE57WvoLrbfHWElxgfKR4ACwzQW8jWXZVq4cMYCjk9Y

PARAMETER DER ERFOLGREICHEN ABFRAGE DANACH (Punkt 6)

Suchbegriff: do metamodel_mm_bundeskongresse act edit id mm_bundeskongresse::24 after mm_bundeskongresse::23 rt pE57WvoLrbfHWElxgfKR4ACwzQW8jWXZVq4cMYCjk9Y ref hMpfMmon

Formulardaten
action reloadFiletree name dateien value files/dsb/kongresse/protokolle/Kongress_1983-12_Marburg.pdf REQUEST_TOKEN pE57WvoLrbfHWElxgfKR4ACwzQW8jWXZVq4cMYCjk9Y

PARAMETER DER ERFOLGREICHEN ABFRAGE (Punkt 2)

Suchbegriff: do metamodel_mm_bundeskongresse act create rt pE57WvoLrbfHWElxgfKR4ACwzQW8jWXZVq4cMYCjk9Y ref WXFThYDl

Formulardaten
action reloadFiletree name dateien value files/dsb/kongresse/protokolle/Kongress_1983-05_Saarbruecken.pdf REQUEST_TOKEN pE57WvoLrbfHWElxgfKR4ACwzQW8jWXZVq4cMYCjk9Y


Auffallend bei der ungültigen Anfrage gegenüber der erfolgreichen (auch mit Datensatz neu): Es wird der after-Parameter gesetzt und eine leere id gesendet.

zonky2 commented 5 years ago

o.k. - damit sollte @baumannsven was anfangen können

discordier commented 5 years ago
Angefragte Adresse:https://www.schachbund.de/contao?do=metamodel_mm_bundeskongresse&act=create&id=&after=mm_bundeskongresse::23&rt=pE57WvoLrbfHWElxgfKR4ACwzQW8jWXZVq4cMYCjk9Y&ref=mh50PbU8
Anfragemethode:POST
Externe Adresse:[2a00:1158:1000:408::4f]:443
Status-Code: 500

Da sollte was im error log und in der symfony console stehen was da an Exception geschmissen wurde.

In der Symfony Debug Konsole kann man oben links auf "last 10" gehen, dann sieht man die letzten 10 Requests, einer davon ist der 500er (rot markiert). Bitte da drauf gehen und bei den Errors reinschauen was genau da an Fehler geworfen wurde und den Stacktrace bitte auch dazu.

Samson1964 commented 5 years ago

Jetzt muß ich nur noch den Trick wissen, wie man diese Symfony-Toolbar angezeigt bekommt. Ich habe im app_dev-Modus noch nie eine Toolbar gesehen, wenn kein Fehler auftrat.

zonky2 commented 5 years ago

@Samson1964 was steht in dem geposteten Link? https://metamodels.readthedocs.io/de/latest/cookbook/symfony/mm-2-1-tips.html#symfony-toolbar

das Handbuch scheint Dir ein Graus zu sein :D

Samson1964 commented 5 years ago

Dein Sarkasmus hilft hier nicht weiter. In dem Handbuch steht: "Mit dem Seitenaufruf per app_dev wird auch das Caching von Contao unterbunden und man muss den Cache nicht so häufig leeren - bedeutet aber auch, dass die Seite ohne app_dev ggf. „anders aussieht“ => Cache löschen. Zudem wird die Debug-Toolbar von Symfony im Browser eingeblendet." Ich habe app_dev.php in der URL, aber trotzdem keine Toolbar! Wahrscheinlich muß ich jetzt den dump-Code in dem einen Template eintragen. Also was unter https://metamodels.readthedocs.io/de/latest/cookbook/debug/templates.html#rst-cookbook-debug-templates steht. Keine Ahnung wie ich damit eine Ausgabe (der Toolbar) im BE bekomme...

zonky2 commented 5 years ago

hast Du die Zugangsdaten für app_dev erstellt? den dump-Aufruf muss du nur machen, wenn Du irgendwelche Variablen ansehen möchtest... die Toolbar sollte auch so kommen

Samson1964 commented 5 years ago

Ich benutze den Debug-Modus in Contao 4 regelmäßig. Im Seitenquelltext habe ich nur die Kommentare für die Template-Namen, aber keinen Hinweis auf die Toolbar. Die sehe ich nur, wenn ein Fehler auftritt - und dann gleich das ganze Symfony-Debug-Zeug. Und das ist aktuell nicht der Fall.

Samson1964 commented 5 years ago

P.S. In Contao 4.6 habe ich die Toolbar, in 4.7 nicht.

Samson1964 commented 5 years ago

Ich habe einen Verdacht. Mal fe_page checken.... .... wars auch nicht. Ich habe in der 4.6er die Toolbar im Quelltext, in der 4.7er nicht.

discordier commented 5 years ago

AFAIR musst du dir den debug Modus in 4.7 per Contao Manager aktivieren (unter Tools glaub ich).

zonky2 commented 5 years ago

entweder die Datei .env mit in den Testcase umziehen oder über Manager anlegen oder per Konsole https://metamodels.readthedocs.io/de/latest/cookbook/symfony/mm-2-1-tips.html#symfony-toolbar

Samson1964 commented 5 years ago

Bei "Mehrere bearbeiten" geht das Download-Element übrigens auch nicht.

Im CM ist der Debug-Modus aktiviert und es gibt die datei .env. Debug-Modus funktioniert auch wunderbar, wenn ich wissen will was für ein Fehler aufgetreten ist. Im fehlerfreien Modus wird nur der HTML-Code mit Kommentaren modifiziert, aber es wird keine Toolbar eingebaut.

zonky2 commented 5 years ago

Bei "Mehrere bearbeiten" geht das Download-Element übrigens auch nicht.

meinst Du das File-Attribut/File-Picker?

Samson1964 commented 5 years ago

Der Attribut-Typ ist deutsch "Datei". Halt für das Download-Element.

zonky2 commented 5 years ago

Der Attribut-Typ ist deutsch "Datei". Halt für das Download-Element.

o.k. das File/Datei-Attribut... ist mit "Download" nicht gleich zu setzen - auch wenn Du ggf. das gerade für einen Download verwendest... das ist auch z.B. für die Bildauswahl für Einzelbilder/Galerie/Slider usw.

Samson1964 commented 5 years ago

Das ist der 500er bei "Mehrere bearbeiten". Ich werde danach mal schauen, was beim Eingangsfall ausgespuckt wird.

ErrorException:
Warning: Invalid argument supplied for foreach()

  at /vendor/contao-community-alliance/dc-general/src/Contao/View/Contao2BackendView/Subscriber/MultipleHandlerSubscriber.php:272
  at ContaoCommunityAlliance\DcGeneral\Contao\View\Contao2BackendView\Subscriber\MultipleHandlerSubscriber->findModelIdByPropertyName(object(BuildWidgetEvent))
     (/vendor/contao-community-alliance/dc-general/src/Contao/View/Contao2BackendView/Subscriber/MultipleHandlerSubscriber.php:205)
  at ContaoCommunityAlliance\DcGeneral\Contao\View\Contao2BackendView\Subscriber\MultipleHandlerSubscriber->handleOriginalWidget(object(BuildWidgetEvent), 'dc-general.view.contao2backend.build-widget', object(EventDispatcher))
     (/vendor/symfony/event-dispatcher/EventDispatcher.php:212)
  at Symfony\Component\EventDispatcher\EventDispatcher->doDispatch(array(array(object(MultipleHandlerSubscriber), 'handleOriginalWidget'), array(object(NameAndDescriptionListener), 'buildWidget'), array(object(JumpToListener), 'buildWidget'), array(object(DisableMandatoryListener), 'handle'), array(object(DisableReadOnlyListener), 'handle'), array(object(LegendTitleListener), 'buildWidget'), array(object(FilterParamWidgetListener), 'handle'), array(object(BackendTableListener), 'fillExtraData'), array(object(BackendListener), 'getFiltersParams'), array(object(BackendEventsListener), 'getFiltersParams'), array(object(ColorPickerWizardListener), 'handleEvent'), array(object(WidgetBuilder), 'handleEvent')), 'dc-general.view.contao2backend.build-widget', object(BuildWidgetEvent))
     (/vendor/symfony/event-dispatcher/EventDispatcher.php:44)
  at Symfony\Component\EventDispatcher\EventDispatcher->dispatch('dc-general.view.contao2backend.build-widget', object(BuildWidgetEvent))
     (/vendor/contao-community-alliance/dc-general/src/Contao/View/Contao2BackendView/ContaoWidgetManager.php:265)
  at ContaoCommunityAlliance\DcGeneral\Contao\View\Contao2BackendView\ContaoWidgetManager->getWidget('dateien', object(PropertyValueBag))
     (/vendor/contao-community-alliance/dc-general/src/Contao/View/Contao2BackendView/ContaoWidgetManager.php:403)
  at ContaoCommunityAlliance\DcGeneral\Contao\View\Contao2BackendView\ContaoWidgetManager->processInput(object(PropertyValueBag))
     (/vendor/contao-community-alliance/dc-general/src/Controller/Ajax3X.php:82)
  at ContaoCommunityAlliance\DcGeneral\Controller\Ajax3X->getWidget('dateien', null, '2cab7b68-5216-11e5-8bef-50e549420dda')
     (/vendor/contao-community-alliance/dc-general/src/Controller/Ajax3X.php:242)
  at ContaoCommunityAlliance\DcGeneral\Controller\Ajax3X->reloadTree()
     (/vendor/contao-community-alliance/dc-general/src/Controller/Ajax3X.php:260)
  at ContaoCommunityAlliance\DcGeneral\Controller\Ajax3X->reloadFiletree()
     (/vendor/contao-community-alliance/dc-general/src/Controller/Ajax.php:240)
  at ContaoCommunityAlliance\DcGeneral\Controller\Ajax->executePostActions(object(DcCompat))
     (/vendor/contao-community-alliance/dc-general/src/Contao/View/Contao2BackendView/BaseView.php:377)
  at ContaoCommunityAlliance\DcGeneral\Contao\View\Contao2BackendView\BaseView->handleAjaxCall()
     (/vendor/contao-community-alliance/dc-general/src/DC/General.php:141)
  at ContaoCommunityAlliance\DcGeneral\DC\General->checkAjaxCall()
     (/vendor/contao-community-alliance/dc-general/src/DC/General.php:104)
  at ContaoCommunityAlliance\DcGeneral\DC\General->__construct('mm_bundeskongresse', array('tables' => array('mm_bundeskongresse'), 'callback' => 'MetaModels\\BackendIntegration\\Module'))
     (/vendor/contao/core-bundle/src/Resources/contao/classes/Backend.php:399)
  at Contao\Backend->getBackendModule('metamodel_mm_bundeskongresse', null)
     (/vendor/contao/core-bundle/src/Resources/contao/controllers/BackendMain.php:169)
  at Contao\BackendMain->run()
     (/vendor/contao/core-bundle/src/Controller/BackendController.php:48)
  at Contao\CoreBundle\Controller\BackendController->mainAction()
     (/vendor/symfony/http-kernel/HttpKernel.php:151)
  at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1)
     (/vendor/symfony/http-kernel/HttpKernel.php:68)
  at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, true)
     (/vendor/symfony/http-kernel/Kernel.php:200)
  at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
     (/web/app_dev.php:83)
Samson1964 commented 5 years ago

Nochmal kurz:

Uncaught PHP Exception ErrorException: "Warning: Invalid argument supplied for foreach()" at /vendor/contao-community-alliance/dc-general/src/Contao/View/Contao2BackendView/Subscriber/MultipleHandlerSubscriber.php line 272

Samson1964 commented 5 years ago

Okay, der Fehler im Eingangsthread ist ein anderer:

Uncaught PHP Exception ContaoCommunityAlliance\DcGeneral\Exception\DcGeneralInvalidArgumentException: "Can't instantiate model id. No data provider name given." at /vendor/contao-community-alliance/dc-general/src/Data/ModelId.php line 59

Stacktrace:

ContaoCommunityAlliance\DcGeneral\Exception\DcGeneralInvalidArgumentException:
Can't instantiate model id. No data provider name given.

  at /vendor/contao-community-alliance/dc-general/src/Data/ModelId.php:59
  at ContaoCommunityAlliance\DcGeneral\Data\ModelId->__construct(null, '')
     (/vendor/contao-community-alliance/dc-general/src/Contao/View/Contao2BackendView/BaseView.php:366)
  at ContaoCommunityAlliance\DcGeneral\Contao\View\Contao2BackendView\BaseView->handleAjaxCall()
     (/vendor/contao-community-alliance/dc-general/src/DC/General.php:141)
  at ContaoCommunityAlliance\DcGeneral\DC\General->checkAjaxCall()
     (/vendor/contao-community-alliance/dc-general/src/DC/General.php:104)
  at ContaoCommunityAlliance\DcGeneral\DC\General->__construct('mm_bundeskongresse', array('tables' => array('mm_bundeskongresse'), 'callback' => 'MetaModels\\BackendIntegration\\Module'))
     (/vendor/contao/core-bundle/src/Resources/contao/classes/Backend.php:399)
  at Contao\Backend->getBackendModule('metamodel_mm_bundeskongresse', null)
     (/vendor/contao/core-bundle/src/Resources/contao/controllers/BackendMain.php:169)
  at Contao\BackendMain->run()
     (/vendor/contao/core-bundle/src/Controller/BackendController.php:48)
  at Contao\CoreBundle\Controller\BackendController->mainAction()
     (/vendor/symfony/http-kernel/HttpKernel.php:151)
  at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1)
     (/vendor/symfony/http-kernel/HttpKernel.php:68)
  at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, true)
     (/vendor/symfony/http-kernel/Kernel.php:200)
  at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
     (/web/app_dev.php:83)
zonky2 commented 5 years ago

Bei "Mehrere bearbeiten" geht das Download-Element übrigens auch nicht.

siehe https://github.com/MetaModels/attribute_file/issues/68

zonky2 commented 5 years ago

@Samson1964 bitte ein downgrade auf Contao LTS (4.4.40) machen und testen - das Problem dürfte von Contao 4.7 kommen

offiziell wird von MM nur die LTS unterstützt und geprüft - siehe https://metamodels.readthedocs.io/de/latest/manual/install.html#installation-von-mm-2-1

discordier commented 5 years ago

@zonky2 Zusatz: da bald die 4.8 kommt, sollten wir es mit dieser auch nochmal gegen testen.

zonky2 commented 5 years ago

mit Contao 4.4.40 getestet - funktioniert i.O. daher nächster Check MM 2.2

zonky2 commented 4 years ago

mit Contao 4.9 (dev-master) getestet - funktioniert