Vorschlag für Auswertung der fhemweb_url

Begonnen von klausw, 22 Januar 2018, 00:12:43

Vorheriges Thema - Nächstes Thema

klausw

Hallo setstate,

folgendes Problem:

auf zwei FHEM/FTUI Systeme wird über Apache Reverse Proxy zugegriffen.
Daher musste beim zweiten System der Webroot von "fhem" nach "fewo" umbenannt werden
Eins der Systeme ist über UMTS/VPN eingebunden
Auf das fewo System möchte ich auch lokal zugreifen können da dies erheblich schneller geht.
Bisher benötige ich dafür 2 unterschiedliche index.html mit verschiedenen fhemweb_url Konfigurationen
Wenn nach
ftui.config.fhemDir = $("meta[name='fhemweb_url']").attr("content") || location.origin + "/fhem/";
die Zeilen
if(new RegExp("(?!\/)").test($("meta[name='fhemweb_url']").attr("content"))) {
ftui.config.fhemDir = location.origin + "/" + ftui.config.fhemDir + "/";
}

in die fhem-tablet-ui eingefügt werden könnte man durch Angabe eines Pfadnamens die URL flexibel zusammenbauen, genau so wie du es beim weglassen von fhemweb_url schon für den Pfad fhem machst.

Könntest du dir vorstellen das einzubauen?

Grüße
Klaus
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

setstate

Hallo Klaus,

wann soll der RegEx greifen? Gib mal bitte zwei Beispiele für jeweils true und false.

klausw

die RegEx ist true wenn kein "/" in der fhemweb_url ist:
fhem
fhem2
fewo

in diesem Fall soll location.origin davorgestellt werden


False ist sie in diesen Fällen:
http://192.168.4.4/fhem2/
https://test.dyndns.de/fhem2/

allerdings auch bei
/fhem2
Aber das würde auch in deiner aktuellen Version nicht funktionieren
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

klausw

Hallo setstate,

würdest du so was in der Art einbauen?
Soll ich noch was verändern?
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

setstate

#4
kann ich so übernehmen. Mir fällt jetzt auch keine bessere Lösung ein.

Nachtrag:
Wenn der Tag leer ist, klappt es nicht. Daher muss danach getestet werden


        var fhemUrl = $("meta[name='fhemweb_url']").attr("content");
        ftui.config.fhemDir = fhemUrl || location.origin + "/fhem/";
        if (fhemUrl && new RegExp("(?!\/)").test(fhemUrl)) {
            ftui.config.fhemDir = location.origin + "/" + ftui.config.fhemDir + "/";
        }