Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Dec 13 16:36
    ChristianMayer edited #979
  • Dec 13 16:35
    ChristianMayer labeled #979
  • Dec 13 16:35
    ChristianMayer opened #979
  • Dec 13 16:35
    ChristianMayer milestoned #979
  • Dec 13 16:35
    ChristianMayer labeled #979
  • Dec 11 19:46

    peuter on gh-pages

    Deploy to GitHub Pages: 67e5e3e… (compare)

  • Dec 11 19:25

    peuter on gh-pages

    Deploy to GitHub Pages: 78c1b22… (compare)

  • Dec 11 19:17

    peuter on develop

    Allow user to reload browser af… Merge pull request #978 from Ch… (compare)

  • Dec 11 19:17
    peuter closed #978
  • Dec 11 19:17
    peuter closed #976
  • Dec 11 18:59

    peuter on develop

    Fix bug where the city name was… Merge pull request #975 from Ch… (compare)

  • Dec 11 18:59
    peuter closed #975
  • Dec 11 16:33
    coveralls commented #978
  • Dec 11 16:26
    ChristianMayer commented #956
  • Dec 11 16:25
    ChristianMayer opened #978
  • Dec 11 16:25
    ChristianMayer review_requested #978
  • Dec 11 16:25
    ChristianMayer labeled #978
  • Dec 09 19:58
    ChristianMayer labeled #977
  • Dec 09 19:58
    ChristianMayer opened #977
  • Dec 09 17:36
    coveralls commented #680
Christian Mayer
@ChristianMayer
Habe ich hier was übersehen?
Tobias Bräutigam
@peuter
Im Grunde alles richtig, sofern das so umgesetzt wurde. Es ist ja nicht gesagt, dass es für jedes Objekt ein Topic gibt bei dem man nur den aktuellen Wert des Objekts bekommt. Vielleicht kommen da auch noch Meta-Daten mit, oder man hat sowas ähnliches wie das CometVisu-Protokoll, wo man auf einem Topic eine Menge von Adressen "subscribed" und dann auf einem Untertopic die Werte bekommt. Kann ja jeder so umsetzen wie er möchte. Wenn auch die erstgenannte Variante die sinnvollste ist und vermutlich auch meist so gemacht wird, ist nicht gesagt dass es immer so ist. Aber egal, das wäre ein Problem dem man sich stellen kann, wenn es denn auftritt (was vielleicht ja nie ist).
Ist auf jeden Fall erstmal ne gute Sache MQTT-Support einzubauen.
Christian Mayer
@ChristianMayer
@peuter
@peuter wozu dienen dann die Dateien index-cgi-jquery.html und index-oh2-jquery.html? Die geben als /client/build/index-cgi-jquery.html im Browser aufgerufen nur den Fehler

jquery-CometVisuClient.js:47 Uncaught SyntaxError: Unexpected end of input
index-cgi-jquery.html:11 Uncaught ReferenceError: cv is not defined
    at index-cgi-jquery.html:11
Tobias Bräutigam
@peuter
Ich denke mal dass das einfach nur Beispiele sind, wie man den Client benutzt mit den jeweiligen Backends und in der JQuery-Version. Scheint aber so zu sein, als ob der Client Build kaputt wäre. Da fehlt ein abschließendes } in der vorletzten Code-Zeile. So wäre es korrekt if (typeof exports != "undefined") {for (var key in qx) {exports[key] = qx[key];}}
Christian Mayer
@ChristianMayer
Was anderes: Paho ist unter der EDL und/oder(?) EPL der Version 1 lizensiert. Offiziell ist das nicht mit der GPL kompatibel, erst die Version 2.
Andererseits würden wir das ja nun unverändert als Lib rein packen, inkl. seiner eigenen Lizenz - also nicht den Code selbst mischen. Man könnte das sogar per CDN beziehen um ganz klar zu machen, dass nicht nicht vermischt ist.
=> Tja, ist das so nun kompatibel oder nicht?!?...
Tobias Bräutigam
@peuter
Wenn ich das hier richtig deute, dann bleibt da nur der Weg über CDN: https://www.eclipse.org/legal/eplfaq.php#USEINANOTHER
Tobias Bräutigam
@peuter
Oder eine andere Javascript MQTT Bibltiothek nutzen mit "freundlicherer" Lizenz: https://github.com/mqttjs/MQTT.js => MIT Lizenz
Tobias Bräutigam
@peuter
@ChristianMayer Ich habe gerade nochmal eine Reihe von Fixes in den PR mit dem neuen Manager gepushed. Da waren doch noch ziemlich viele Fehler drin. Was ich nicht nachvollziehen konnte war Dein Problem mit dem Text-Editor. Ich habe den mal auf die neueste Version aktualisiert (d.h. Du müsstest ein npm install machen nach dem pullen). Wenn das Problem immer noch besteht: Gibt es da keine Fehlermeldung auf der Konsole? Ansonsten habe die die Grundfunktionen jetzt getestet und es hatte alles funktioniert (Dateien anlegen/duplizieren/löschen/editieren).
Christian Mayer
@ChristianMayer
@peuter beim Scrollen im Manager 2.0 kommen lauter Meldungen auf der Konsole (Chorme):
Event.js:201 [Intervention] Unable to preventDefault inside passive event listener due to target being treated as passive. See https://www.chromestatus.com/features/6662647093133312
qx.bom.Event.preventDefault()    @    Event.js:201
qx.event.type.Native.prototype.preventDefault()    @    Native.js:100
(anonymous)    @    EventHandler.js:327
qx.event.Utils.then()    @    Utils.js:158
qx.ui.core.EventHandler.prototype._dispatchEvent()    @    EventHandler.js:321
(anonymous)    @    AbstractBubbling.js:276
qx.event.Utils.series()    @    Utils.js:331
(anonymous)    @    AbstractBubbling.js:262
qx.event.Utils.series()    @    Utils.js:331
(anonymous)    @    AbstractBubbling.js:257
qx.event.Utils.then()    @    Utils.js:158
qx.event.dispatch.AbstractBubbling.prototype.dispatchEvent()    @    AbstractBubbling.js:253
qx.event.Manager.prototype.dispatchEvent()    @    Manager.js:924
(anonymous)    @    Registration.js:346
qx.event.Utils.then()    @    Utils.js:158
qx.event.Registration.fireEvent()    @    Registration.js:345
qx.event.handler.Gesture.prototype._fireEvent()    @    Gesture.js:195
qx.event.handler.GestureCore.prototype.__fireRollEvent()    @    GestureCore.js:726
qx.event.handler.GestureCore.prototype._fireRoll()    @    GestureCore.js:826
(anonymous)    @    Function.js:337
Christian Mayer
@ChristianMayer
Beim Öffnen der Datei im Text-Editor kommt:
Script.js:246 GET https://timberwolf76.local/proxy/visugit/node_modules/monaco-editor/dev/vs/loader.js net::ERR_ABORTED 404
Native.js:48 1525099 cv.ui.manager.editor.Source: { ../../node_modules/monaco-editor/dev/vs/loader.js, 0 }
Bei Vergleich mit alter Version kommt:
FileHandlerRegistry.js:181 Uncaught TypeError: file.isTemporary is not a function
    at wrapper.cv.ui.manager.control.FileHandlerRegistry.prototype.__canHandle() [as __canHandle] (FileHandlerRegistry.js:181)
    at wrapper.<anonymous> (FileHandlerRegistry.js:119)
    at Array.forEach (<anonymous>)
    at wrapper.cv.ui.manager.control.FileHandlerRegistry.prototype.getFileHandler() [as getFileHandler] (FileHandlerRegistry.js:117)
    at wrapper.cv.ui.manager.Main.prototype.openFile() [as openFile] (Main.js:347)
    at wrapper.cv.ui.manager.Main.prototype._onManagerEvent() [as _onManagerEvent] (Main.js:238)
    at wrapper.qx.event.message.Bus.prototype.__callSubscribers() [as __callSubscribers] (Bus.js:360)
    at wrapper.qx.event.message.Bus.prototype.dispatch() [as dispatch] (Bus.js:293)
    at wrapper.qx.event.message.Bus.prototype.dispatchByName() [as dispatchByName] (Bus.js:326)
    at Function.qx.event.message.Bus.dispatchByName() [as dispatchByName] (Bus.js:114)
    at wrapper.cv.ui.manager.contextmenu.FileItem.prototype._onCompareWith() [as _onCompareWith] (FileItem.js:179)
    at Direct.js:136
    at Function.qx.event.Utils.then() [as then] (Utils.js:158)
    at Direct.js:135
    at Array.forEach (<anonymous>)
    at wrapper.qx.event.dispatch.Direct.prototype.dispatchEvent() (Direct.js:120)
Christian Mayer
@ChristianMayer

Umbenennen einer Media-Datei ist in der UI erst mal i.O. - aber auf der Konsole kommt:

Xhr.js:442 PUT https://timberwolf76.local/proxy/visugit/git/source/rest/cv/index.php/fs/move?src=/media/460EXP%20.pdf&target=460EXP_2.pdf 500
Native.js:48 328823 cv.io.rest.Client: <html><head><meta http-equiv='Content-Type' content='text/html; charset=utf-8'><title>Slim Application Error</title><style>body{margin:0;padding:30px;font:12px/1.5 Helvetica,Arial,Verdana,sans-serif;}h1{margin:0;font-size:48px;font-weight:normal;line-height:48px;}strong{display:inline-block;width:65px;}</style></head><body><h1>Slim Application Error</h1><p>The application could not run because of the following error:</p><h2>Details</h2><div><strong>Type:</strong> ArgumentCountError</div><div><strong>Message:</strong> Too few arguments to function OpenAPIServer\Api\FsApi::getMount(), 0 passed in /var/www/html/git/source/rest/cv/src/Api/FsApi.php on line 94 and exactly 1 expected</div><div><strong>File:</strong> /var/www/html/git/source/rest/cv/src/Api/FsApi.php</div><div><strong>Line:</strong> 310</div><h2>Trace</h2><pre>#0 /var/www/html/git/source/rest/cv/src/Api/FsApi.php(94): OpenAPIServer\Api\FsApi-&gt;getMount()
#1 [internal function]: OpenAPIServer\Api\FsApi-&gt;move(Object(Slim\Http\Request), Object(Slim\Http\Response), Array)
#2 /var/www/html/git/source/rest/cv/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponse.php(41): call_user_func(Array, Object(Slim\Http\Request), Object(Slim\Http\Response), Array)
#3 /var/www/html/git/source/rest/cv/vendor/slim/slim/Slim/Route.php(356): Slim\Handlers\Strategies\RequestResponse-&gt;__invoke(Array, Object(Slim\Http\Request), Object(Slim\Http\Response), Array)
#4 /var/www/html/git/source/rest/cv/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\Route-&gt;__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response))
#5 /var/www/html/git/source/rest/cv/vendor/slim/slim/Slim/Route.php(334): Slim\Route-&gt;callMiddlewareStack(Object(Slim\Http\Request), Object(Slim\Http\Response))
#6 /var/www/html/git/source/rest/cv/vendor/slim/slim/Slim/App.php(515): Slim\Route-&gt;run(Object(Slim\Http\Request), Object(Slim\Http\Response))
#7 /var/www/html/git/source/rest/cv/index.php(111): Slim\App-&gt;__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response))
#8 [internal function]: Closure-&gt;{closure}(Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Slim\App))
#9 /var/www/html/git/source/rest/cv/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array(Object(Closure), Array)
#10 [internal function]: Slim\DeferredCallable-&gt;__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Slim\App))
#11 /var/www/html/git/source/rest/cv/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func(Object(Slim\DeferredCallable), Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Slim\App))
#12 /var/www/html/git/source/rest/cv/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\App-&gt;Slim\{closure}(Object(Slim\Http\Request), Object(Slim\Http\Response))
#13 /var/www/html/git/source/rest/cv/vendor/slim/slim/Slim/App.php(405): Slim\App-&gt;callMiddlewareStack(Object(Slim\Http\Request), Object(Slim\Http\Response))
#14 /var/www/html/git/source/rest/cv/vendor/slim/slim/Slim/App.php(313): Slim\App-&gt;process(Object(Slim\Http\Request), Object(Slim\Http\Response))
#15 /var/www/html/git/source/rest/cv/index.php(118): Slim\App-&gt;run()
#16 {main}</pre></body></html>

Nach Reload wurde die Datei nicht umbenannt

Tobias Bräutigam
@peuter
So das meiste davon dürfte gefixt sein. Um die Scrolling-Fehlermeldung wegzubekommen, muss ich ein Update von Qooxdoo machen, d.h. Du musst nach dem pullen einmal git submodule update und dann zur Sicherheit auch ./generate.py source machen. Ob der Fehler mit dem Texteditor weg ist, weiß ich nicht. Ich habe was an den Pfaden geändert, aber da der Fehler bei mit nicht auftritt weiß ich nicht ob das hilft.
Christian Mayer
@ChristianMayer
grafik.png
Typo
Einstellung: Expertenmodus -> Schön diese Verzeichnis-Ansicht zu haben. Aber hier sind die Möglichkeiten noch nicht abgestimmt, z.B. kommt man auf Backup und kann dort auf Umbenennen gehen
=> Ich denke hier ist weniger deutlich mehr
Grundsätzlich denke ich sollte der Manager erst mal nur dafür da sein, dass ein "Nicht-Admin" die wichtigsten Dinge managen kann ohne auf das Dateisystem herunter gehen zu müssen. Bzw. verstehen zu müssen wie es da aussieht
Daher ist hier eine Abstraktion durchaus wünschenswert.
Christian Mayer
@ChristianMayer
Durch den Expertenmodus (evtl auch anders?) kann ich z.B. eine neue Config-Datei anlegen - im Media Ordner
=> Das sollte deutlich restriktiver sein um den Anwender vor Fehlbedienung zu schützen
Bzw. habe gerade gesehen, dass auch im normalen Modus ein Datei->Neu->Neue Konfigurationsdatei die unter Media erzeugt hatte
Christian Mayer
@ChristianMayer
Ui, keine Ahnnug was ich gemacht habe, habe aber nach einigem Rumspielen mehrere dieser Fehlermeldungen auf der Konsole:
Native.js:48 3000568 : Error in the 'Dispose' queue:Error: Property model of an instance of cv.ui.manager.form.SectionListItem is not (yet) ready!
cv.log.appender.Native.process()    @    Native.js:48
qx.log.Logger.__log()    @    Logger.js:603
qx.log.Logger.error()    @    Logger.js:307
self.__retries    @    Manager.js:193
qx.ui.core.queue.Manager.__executeAndRescheduleOnError()    @    Manager.js:222
qx.ui.core.queue.Manager.flush()    @    Manager.js:183
(anonymous)    @    Direct.js:136
qx.event.Utils.then()    @    Utils.js:158
(anonymous)    @    Direct.js:135
qx.event.dispatch.Direct.prototype.dispatchEvent()    @    Direct.js:120
wrappedFunction    @    Interface.js:537
qx.event.Manager.prototype.dispatchEvent()    @    Manager.js:924
(anonymous)    @    Registration.js:346
qx.event.Utils.then()    @    Utils.js:158
qx.event.Registration.fireEvent()    @    Registration.js:345
(anonymous)    @    Pointer.js:167
qx.event.Utils.then()    @    Utils.js:158
qx.event.handler.Pointer.prototype._fireEvent()    @    Pointer.js:165
qx.event.handler.Pointer.prototype._onPointerEvent()    @    Pointer.js:180
(anonymous)    @    Function.js:337
Wenn man eine Datei neu erzeugt, sollte der Reload/Refresh automatisch passieren, sonst wundert man sich was aus der aktuellen Datei wurde
Aber unterm Strich: jetzt ist's schon deutlich besser! Wirkliche Show-Stopper sind mir nicht aufgefallen. (Ist aber nun schon einiges an Funktionalität, so dass ein komplettes Testen eine Herausforderung wird)
Christian Mayer
@ChristianMayer

@peuter beim MQTT scheitere ich die ganze Zeit nun ganz am Anfang. Und an Qx. Ich bekomme die Bibliotheks-Datei nicht eingebunden.
Ein

      "add-script" : [
        {
          "uri" : "resource/mqtt/browserMqtt.js"
        }
      ],
      "copy-files" : {
        "files": [
          "resource/mqtt/browserMqtt.js"
        ]
      }

sorgt zwar dafür, dass build/resource/mqtt/browserMqtt.js vorhanden ist. Aber der Browser lädt diese Datei nicht, d.h. ich kann die Lib nicht verwenden.
=> Was mache ich hier falsch?

Tobias Bräutigam
@peuter
Wenn die Datei im Build-Verzeichnis vorhanden ist, bedeutet das, dass der copy-filesEintrag korrekt funktioniert. Wenn die aber im Browser nicht geladen wird, dann funktioniert der add-script Eintrag nicht korrekt. Das kann ich aber anhand des Schnipsels nicht beurteilen. Da müsstest Du mal den gesamten Inhalt vom jobs-teil der config.json posten.
Ich vermute mal das add-scripts nicht unterhalb von jobs.common ist, oder?
Christian Mayer
@ChristianMayer
Doch
  "jobs": {
    "common": {
      "=include" : [ "${APPLICATION}.*" ],
      //"=exclude" : [ "qx.io.*" ],
      "lint-check": { "allowed-globals": [ "cv", "$" ] },
      "environment" : {
        "APPLICATION" : "${APPLICATION}",
        "qx.promise": false,
        "qx.theme" : null,
        "cv.xhr": ["qx", "jquery"]
      },
      "compile-options" :
      {
        "paths"  :
        {
          "loader-template": "oo.loader.tmpl.js"
        }
      },
      "add-script" : [
        {
          "uri" : "resource/mqtt/browserMqtt.js"
        }
      ],
      "copy-files" : {
        "files": [
          "resource/mqtt/browserMqtt.js"
        ]
      }
    },
Das ist in der normalen client/config.json drinnen
Tobias Bräutigam
@peuter
Oh, ich fürchte das liegt an dem Loader-Template "oo.loader.tmpl.js". War bisher nicht nötig, dass der Client externe Bibliotheken lädt, daher habe ich da ein Template benutzt, was sowas nicht kann, aber dafür sehr leichtgewichtig ist. Zum Testen kannst Du den gesamten "compile-options" Eintrag mal löschen. Ist aber gut möglich, dass dann andere Probleme auftreten. Langfristig müssen wir da eine andere Lösung überlegen, denn da der Client keine Vollwertige Qooxdoo-Application ist, sondern nur eine Library würde ich da schon gerne bei dem einfachen Loader bleiben.
Tobias Bräutigam
@peuter

Nochmal zu den gemeldeten Fehler in #947:

  • Config-Dateien werden jetzt immer im Root-Ordner erzeugt, egal wo man sich gerade befindet
  • Die Fehlermeldung kam, wenn man die hidden.php ein zweites mal öffnet => ist jetzt aber weg
  • Typo in Übersetzung ist gefixt

Was nun noch offen ist:

  • Umbenennen im Backup-Ordner: Grundsätzlich darf man dass, wenn man die entsprechenden Schreibrechte für die Datei hat. Da müsste ich jetzt eine künstliche Restriktion einbauen. Da das aber der "Expertenmodus" ist, weiß ich nicht ob man das einfach so lässt wie es ist. Löschen darf man ja auch, und will man vielleicht auch mal. Wenn man dass aus Versehen macht ist es deutlich schlimmer als das Umbenennen.
  • Falls ich was übersehen habe, wäre das auch noch offen, hab ich was übersehen?

Funktioniert der Text-Editor denn jetzt bei Dir?

Tobias Bräutigam
@peuter

HIer wird beschrieben, wie man die mqtt-Bibliothek einbinden könnte: https://qooxdoo.readthedocs.io/en/latest/pages/development/using_non_qx_libs.html#wrapping-the-third-party-code-in-an-own-qooxdoo-library

Kurz gesagt für den Client: Ich nehme mal an dass es da dann sowas wir cv.io.client.transport.Mqtt geben wird. Darin sollte dann der qx.util.DynamicScriptLoader benutzt werden, um die Mqtt-Bibliothek nachzuladen. Das hätte den Vorteil, dass die nur geladen wird, wenn man Mqtt auch benutzt.

Christian Mayer
@ChristianMayer
Ja, Texteditor geht nun (öffnet sich und Datei; Speichern hab ich noch nicht getestet; es gibt auch Berichte, dass der im aktuellen Release wohl ab und zu leere Dateien speichert)
Der Client sollte weiterhin sehr leichtgewichtig bleiben, d.h. mal schaun was ich da nun machen kann
Bei den Backup-Dateien würde ich nur ein Löschen (= Platz freigeben) und ein Zurück-Kopieren in den Haupt-Ordner ermöglichen. Alles andere birgt die Möglichkeit, dass der Anwender sich in den Fuß schießt. Hier ist weniger wohl mehr
Tobias Bräutigam
@peuter
Ganz so werde ich das im ersten Wurf nicht umsetzen können. Ich habe erstmal nur Lese- und Schreibrechte für die Dateien/Ordner implementiert. Um eine Datei löschen zu können, muss man Schreibrechte haben. Getrennt kann man das momentan nicht einstellen im Sinne von nicht schreiben, aber dafür löschen. Das Zurück-Kopieren kann man erstmal auch nur indem man beide Dateien öffnet und dann den Inhalt rüber kopiert. Im Grunde müsste der Backup-Ordner sich so verhalten wie der Papierkorb (Dateien endgültig löschen, nur lesend öffnen oder wieder herstellen). Das würde ich dann aber mal auf die TODO-Liste für später schreiben.
Christian Mayer
@ChristianMayer
Ja genau, wie ein Papierkorb. Aber bisschen besser: nicht nur ein "alles leeren" sondern eher ein "leere bis auf die x neuesten" oder einer "leere bis auf den letzten monat" o.ä.
Ja, kann auch später kommen
Christian Mayer
@ChristianMayer
@peuter hab mal einige (im Wesentlichen Useability) Punkte von #947 eingetragen.
Christian Mayer
@ChristianMayer

@peuter wie ist denn das System des Übersetzens und der Popup gedacht?
Wenn ich beim aktuellen Git bewusst eine nicht existente Config laden möchte, bleibt der im Code hängen, da über ConfigLoader.js:169 ein var title = qx.locale.Manager.tr('Config-File Error!'); aufgerufen wird und folglich ein "Übersetzungs-Object" bis zum Popup durchgereicht wird, was im Popup.js:128 this.__elementMap.title.appendChild(attributes.title); natürlich scheitert, da dort nun ein DOM-Node erwartet wird.
=> Irgend wo zwischen drinnen hätte mal jemand aus dem Übersetzungs-Objekt einen String erzeugen (casten) müssen.

Wo sollte das passieren (bzw. an welcher Stelle ist das verloren gegangen)?

Tobias Bräutigam
@peuter
Da an der Stelle ja zum Teil weitere Strings bzw. HTML Code hinzugefügt wird (zumindest bei den anderen Fehlermöglichkeiten in der message), müsste das wohl sofort passieren. Generell wäre es aber richtiger den erst dort zu übersetzen wo er ins DOM eingefügt wird, in dem Fall also in der Popup.js.
Wenn ich das allerdings probiere, funktioniert das genau einmal beim ersten Neuladen nach der Codeänderung. Beim zweiten Mal ist der Text wieder Englisch. Das scheint irgendeine Race-Condition zu sein?! Kann ich mir gerade nicht erklären und mir fehlt momentan auch die Zeit da auf Ursachensuche zu gehen.
Christian Mayer
@ChristianMayer
Was spricht dagegen, immer pauschal die Codestelle dafür verantwortlich zu halten die .tr() aufruft?
Die ist ja quasi "schuld" dass es kein String mehr ist.
Christian Mayer
@ChristianMayer
@peuter ah, wenn ich https://www.qooxdoo.org/5.0.1/pages/development/internationalization.html#tr korrekt verstehe scheint sich bei uns irgendwie das Problem eingeschlichen zu haben, dass wohl qx.dynlocale auf true stehen müsste und somit das tr() ein qx.locale.LocalizedString und keinen String zurück gibt.
Keine Ahnung wo das passiert ist, in der Vergangenheit hat's ja funktioniert.
Und keine Ahnung wo ich das nun setzen muss, dass es wieder auf false steht, so dass die Popups wieder funktioniren
Hm, wobei in der 0.11.0 ist qx.core.Environment.get("qx.dynlocale") auch true - und es funktioniert
Tobias Bräutigam
@peuter
Environment Variablen werden in der config.json gesetzt. Also hier https://github.com/CometVisu/CometVisu/blob/develop/config.json#L114 einfach "qx.dynlocale" : false hinzufügen und einmal neu generieren.Da wir keine dynamische Änderung der Sprache brauchen werden können wir das ruhig abschalten. Warum das früher funktioniert hat kann ich allerdings auch nicht erklären.