Gelöst: widgetOverride, textField - Feldbreite? -> Anpassung fhemweb.js

Begonnen von KNUT345, 22 Juni 2017, 19:05:20

Vorheriges Thema - Nächstes Thema

KNUT345

Hallo Zusammen,
gibt es eine Möglichkeit die Feldbreite eines Eingabefeldes auf z.B. 15 Zeichen zu reduzieren?
Evtl. ähnlich wie es unter https://forum.fhem.de/index.php/topic,35736.msg629709.html#msg629709 gemacht wurde?

Grüße
Knut

KNUT345

Hallo Zusammen,
ich denke die Lösung für mein Problem könnte eine Anpassung meiner fhemweb.js sein.
Was muss ich tun, damit ich ein Textfeld textField_15 mit z.B. 15 Zeichen bekomme?

FW_createTextField(elName, devName, vArr, currVal, set, params, cmd)
{
  if(vArr.length != 1 ||
     (vArr[0] != "textField" &&
      vArr[0] != "textField_15" &&
      vArr[0] != "textFieldNL" &&
      vArr[0] != "textFieldNL_15" &&
      vArr[0] != "textField-long" &&
      vArr[0] != "textFieldNL-long") ||
     (params && params.length))
    return undefined;
 
  var is_long = (vArr[0].indexOf("long") > 0);

  var newEl = $("<div style='display:inline-block'>").get(0);
  if(set && set != "state" && vArr[0].indexOf("NL") < 0)
    $(newEl).append(set+":");
  $(newEl).append('<input type="text" size="30">');
  var inp = $(newEl).find("input").get(0);
  if(elName)
    $(inp).attr('name', elName);
  if(currVal != undefined)
    $(inp).val(currVal);


ich denke es muss an dieser Stelle eingefügt werden
  if(set && set != "state" && vArr[0].indexOf("NL") < 0)
    $(newEl).append(set+":");
  $(newEl).append('<input type="text" size="30">');


aber ich hab keinen Plan.

Noch geschmeidiger wäre natürlich textField_XX mit XX Zeichen.

Kann mir jemand einen Tipp geben?

Danke im voraus und Grüße
Knut

KNUT345


KNUT345


KNUT345

OK ich hab es hinbekommen.

Anpassung der fhemweb.js

  if(vArr.length != 1 ||
     (vArr[0] != "textField" &&
      vArr[0] != "textField_10" &&
      vArr[0] != "textField_15" &&
      vArr[0] != "textFieldNL" &&
      vArr[0] != "textFieldNL_10" &&
      vArr[0] != "textFieldNL_15" &&
      vArr[0] != "textField-long" &&
      vArr[0] != "textFieldNL-long") ||
     (params && params.length))
    return undefined;
 
  var is_long = (vArr[0].indexOf("long") > 0);
 
  var newEl = $("<div style='display:inline-block'>").get(0);
  if(set && set != "state" && vArr[0].indexOf("NL") < 0)
    $(newEl).append(set+":");
  if(set && set != "state" && vArr[0].indexOf("_10") > 0)
    $(newEl).append('<input type="text" size="10">');
  else if(set && set != "state" && vArr[0].indexOf("_15") > 0)
    $(newEl).append('<input type="text" size="15">');
  else
    $(newEl).append('<input type="text" size="30">');


Grüße

KNUT345

Hallo Zusammen,
man muss nur die Doku (richtig) lesen.
Grüße
Knut

defmod Test dummy
attr Test readingList ZeitFH TextFH
attr Test room System->FHEM
attr Test setList TextFH:textFieldNL
attr Test widgetOverride TextFH:textFieldNL,01234567890,8