Domino 9 und frühere Versionen > ND9: Entwicklung
XPages: Unterschiedliche Datumseingabedarstellung bei verschiedenen Usern
Flachmann:
Ich stehe mal wieder auf dem Schlauch und hoffe auf Euch Coder-Gurus. 8)
Folgendes Eingabefeld habe ich in einer CC einer XPage.
--- Code: ---<xp:inputText id="inpBirth" value="#{docUser.Birth}">
<xp:dateTimeHelper id="dtHelper"></xp:dateTimeHelper>
<xp:this.converter>
<xp:convertDateTime type="date"></xp:convertDateTime>
</xp:this.converter>
</xp:inputText>
--- Ende Code ---
Wenn ich die XPage als Entwickler (ACL 'Manager') zum Ändern öffne, erscheint das Feld wie erwartet mit dem Datum im Format DD.MM.YYYY und der Datumsauswahlbox (dateTimeHelper) dahinter. Öffne ich dieselbe XPage auf demselben Rechner/Browser als anderer (Test)-User (ACL 'Author') wird das Datum "umgekehrt" mit YYYY-MM-DD vorbelegt und die Datumsauswahlbox nicht angezeigt. Den Inhalt des Feldes kann ich dann ändern (wobei das Format korrigiert werden muss) und auch erfolgreich speichern.
Da es sich um den selben Rechner und denselben Browser handelt kann ich lokale Einstellungen ausschließen. Interessanterweise funktionieren Format und Datumsauswahlbox auf einer anderen XPage in derselben Anwendung für den Test-User. Den einzigen Unterschied, den ich erkenne, sind die unterschiedlichen Zugriffsebenen. Ansonsten dürfen beide User das Dokument ändern. Auch die Nutzung von IE oder FF ist davon unabhängig.
Ein ähnlicher Effekt tritt in einer ExtLib djextNameTextBox auf. Normalerweise werden dort gewählte Namen als "Buttons" dargestellt. Im obigen Fall, auf der selben XPage, aber als einfache Eingabebox.
Was könnte hier die Ursache sein? Ich bin mit meinen Ideen am Ende!
Flachmann:
Und wie erwartet sieht der erzeugte HTML-Code unterschiedlich aus.
Dies ist der HTML-Code des Feldes, wo es nicht funktioniert, also ohne Datumsauswahlschalter:
--- Code: ---<div id="view:_id1:_id2:_id5:_id68:facetInput">
<input id="view:_id1:_id2:_id5:_id68:facetInput:inpBirth" class="form-control" value="1990-07-25"
name="view:_id1:_id2:_id5:_id68:facetInput:inpBirth" dojotype="ibm.xsp.widget.layout.DateTextBox"
iconstyleclass="xspInputFieldDatePickerIcon"
constraints="{datePattern:"dd.MM.yyyy",timePattern:"HH:mm:ss",selector:"date"}" type="text">
</div>
--- Ende Code ---
Dies der viel längere Code, bei dem es funktioniert. Hier werden die Steuerelemente für die Datumsauswahl erzeugt.
--- Code: ---<div id="view:_id1:_id2:_id5:_id68:facetInput">
<div id="widget_view:_id1:_id2:_id5:_id68:facetInput:inpBirth"
class="dijit dijitReset dijitInline dijitLeft form-control dijitTextBox dijitComboBox dijitDateTextBox xspInputFieldEditBox dijitValidationTextBox"
role="combobox" style="top:0px;height:16px" widgetid="view:_id1:_id2:_id5:_id68:facetInput:inpBirth" lang="de">
<div class="dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer"
data-dojo-attach-point="_buttonNode, _popupStateNode" role="presentation">
<div class="dijitReset dijitValidationContainer">
<input class="dijitReset dijitInputField dijitValidationIcon dijitValidationInner" value="? " tabindex="-1" readonly="readonly" role="presentation" type="text">
</div>
<div class="dijitReset dijitInputField dijitInputContainer">
<input id="view:_id1:_id2:_id5:_id68:facetInput:inpBirth" class="dijitReset dijitInputInner" autocomplete="off" data-dojo-attach-point="textbox,focusNode"
role="textbox" aria-haspopup="true" tabindex="0" value="25.07.1990" aria-invalid="false" type="text">
<input name="view:_id1:_id2:_id5:_id68:facetInput:inpBirth" value="1990-07-25" type="hidden">
</div>
</div>
</div>
--- Ende Code ---
Flachmann:
Hatte noch niemand dieses Phänomen oder eine Ideenursache? Ich finde es äußerst seltsam. :-:
Ich habe auch mal Screenshots im Eidt-Modus angehängt, wie das Feld einmal als Admin (ACL 'Manager') und einmal als normaler User (ACL 'Author') aussieht. Es ist die selbe XPage, der selbe Datensatz, nur der EffectiveUser ein anderer. Beide User dürfen das Dokument ändern. - Aber einmal wird das Datum "lesbar" dargestellt, einmal nicht. Einmal mit Datumsauwahl, einmal nicht.
Sven Hasselbach:
Ich habe mir das mal angeschaut, und der "normale" HTML Code, der vom Server ausgeliefert wird, ist der, der bei Dir ohne Datumsauswahl.
Das "funktionierende" Beispiel ist ja der Code, der dann durch Dojo danach im Browser generiert wird, daher tippe ich darauf, dass irgendein JavaScript-Fehler auftritt und Dojo mit in den Abgrund reißt. Was sagt den die JS Console im Browser?
Flachmann:
Erst mal danke für Deine Unterstützung. In die Konsole hatte ich schon mal geschaut, aber nichts erkannt. ::) Bei beiden Users zeigt Firebug identischen Inhalt an. Die beiden 'not found' kommen wohl von irgendeiner fehlenden "de-de"-Language-Sache. Die kommen häufiger und sind wohl unkritisch.
POST https://myserver.com/Templates/MyApp.nsf/xpUser.xsp...&$$ajaxid=view%3A_id1%3A_id2%3AapplicationLayout 200 OK 63ms
GET https://myserver.com/xsp/.ibmxspres/.extlib/responsive/dijit/xsp/bootstrap/NameTextBox.js 200 OK 52ms
GET https://myserver.com/xsp/.ibmxspres/.extlib/responsive/dijit/xsp/bootstrap/ListTextBox.js 200 OK 75ms
GET https://myserver.com/xsp/.ibmxspres/.extlib/dijit/ListTextBox.js 200 OK 51ms
GET https://myserver.com/xsp/.ibmxspres/.extlib/dijit/_ListTextBox.js 200 OK 35ms
GET https://myserver.com/xsp/.ibmxspres/.extlib/dijit/ExtLib.js 200 OK 41ms
GET https://myserver.com/xsp/.ibmxspres/.extlib/dijit/nls/listbox.js 200 OK 51ms
GET https://myserver.com/xsp/.ibmxspres/.extlib/dijit/nls/de/listbox.js 200 OK 41ms
GET https://myserver.com/xsp/.ibmxspres/.extlib/dijit/nls/de-de/listbox.js 404 Not Found 15ms
"NetworkError: 404 Not Found - https://myserver.com/xsp/.ibmxspres/.extlib/dijit/nls/de-de/listbox.js"
GET https://myserver.com/xsp/.ibmxspres/.extlib/dijit/templates/ListTextBox.html 200 OK 13ms
...
GET https://myserver.com/xsp/.ibmxspres/.extlib/dijit/nls/de/pickers.js 200 OK 10ms
GET https://myserver.com/xsp/.ibmxspres/.extlib/dijit/nls/de-de/pickers.js 404 Not Found 16ms
"NetworkError: 404 Not Found - https://myserver.com/xsp/.ibmxspres/.extlib/dijit/nls/de-de/pickers.js"
GET https://myserver.com/xsp/.ibmxspres/.extlib/dijit/templates/PickerName.html 200 OK 58ms
GET https://myserver.com/xsp/.ibmxspres/.extlib/responsive/dijit/xsp/bootstrap/templates/PickerName.html 200 OK 46ms
GET https://myserver.com/xsp/.ibmxspres/dojoroot-1.9.7/ibm/xsp/widget/layout/DateTextBox.js 200 OK 59ms
...
Darum habe ich mal mit der im FF eingebauten Konsole geschaut. Meldungen sehen optisch etwas anders aus, sind inhaltlich aber identisch. Allerdings wird hier beim Test-User eine Fehlermeldung ('dojo/parser::parse() error') ausgegeben, die beim Admin-User nicht kommt:
...
XML-Verarbeitungsfehler: Doppeltes Attribut
Adresse: https://server.com/xsp/.ibmxspres/.extlib/responsive/dijit/xsp/bootstrap/templates/PickerName.html Zeile Nr. 32, Spalte 159: PickerName.html:32:159
dojo/parser::parse() error ReferenceError: view__id1__id2__id5__id12__id22_facetColumn__id24 is not defined @Ff&@Fi&@B3c&@Im.js:432:9501
Stack-Trace:
@https://myserver.com/xsp/.ibmxspres/.mini/dojo-1.9.7/.de-de/@Ff&@Fi&@B3c&@Im.js line 432 > eval:1:2
_11@https://myserver.com/xsp/.ibmxspres/.mini/dojo-1.9.7/.de-de/@Ff&@Fi&@B3c&@Im.js:432:326
$DDSv_@https://myserver.com/xsp/.ibmxspres/.mini/dojo-1.9.7/.de-de/@Ff&@Fi&@B3c&@Im.js:432:4488
$DDSu_/_37<@https://myserver.com/xsp/.ibmxspres/.mini/dojo-1.9.7/.de-de/@Ff&@Fi&@B3c&@Im.js:432:2050
$DDSY_@https://myserver.com/xsp/.ibmxspres/dojoroot-1.9.7/dojo/dojo.js:15:138451
$DDSu_@https://myserver.com/xsp/.ibmxspres/.mini/dojo-1.9.7/.de-de/@Ff&@Fi&@B3c&@Im.js:432:1879
$DDSz_/p<@https://myserver.com/xsp/.ibmxspres/.mini/dojo-1.9.7/.de-de/@Ff&@Fi&@B3c&@Im.js:432:9392
_45c@https://myserver.com/xsp/.ibmxspres/dojoroot-1.9.7/dojo/dojo.js:15:118591
_45b/_469.then@https://myserver.com/xsp/.ibmxspres/dojoroot-1.9.7/dojo/dojo.js:15:120499
$DDSz_@https://myserver.com/xsp/.ibmxspres/.mini/dojo-1.9.7/.de-de/@Ff&@Fi&@B3c&@Im.js:432:9299
x_pd@https://myserver.com/xsp/.ibmxspres/.mini/dojo-1.9.7/.de-de/@Ff&@Fi&@B3c&@Im.js:447:25982
x_rn@https://myserver.com/xsp/.ibmxspres/.mini/dojo-1.9.7/.de-de/@Ff&@Fi&@B3c&@Im.js:447:25084
xfpre_l@https://myserver.com/xsp/.ibmxspres/.mini/dojo-1.9.7/.de-de/@Ff&@Fi&@B3c&@Im.js:447:20996
$DDX2_/<@https://myserver.com/xsp/.ibmxspres/dojoroot-1.9.7/dojo/dojo.js:15:113514
_188@https://myserver.com/xsp/.ibmxspres/dojoroot-1.9.7/dojo/dojo.js:15:36775
_186@https://myserver.com/xsp/.ibmxspres/dojoroot-1.9.7/dojo/dojo.js:15:36467
dojo/_base/Deferred/</dojo.Deferred/this.callback@https://myserver.com/xsp/.ibmxspres/dojoroot-1.9.7/dojo/dojo.js:15:37532
_188@https://myserver.com/xsp/.ibmxspres/dojoroot-1.9.7/dojo/dojo.js:15:37031
_186@https://myserver.com/xsp/.ibmxspres/dojoroot-1.9.7/dojo/dojo.js:15:36467
dojo/_base/Deferred/</dojo.Deferred/this.callback@https://myserver.com/xsp/.ibmxspres/dojoroot-1.9.7/dojo/dojo.js:15:37532
$DDX7_/<@https://myserver.com/xsp/.ibmxspres/dojoroot-1.9.7/dojo/dojo.js:15:116280
_45c@https://myserver.com/xsp/.ibmxspres/dojoroot-1.9.7/dojo/dojo.js:15:118591
_456@https://myserver.com/xsp/.ibmxspres/dojoroot-1.9.7/dojo/dojo.js:15:118455
$DDXW_@https://myserver.com/xsp/.ibmxspres/dojoroot-1.9.7/dojo/dojo.js:15:119930
_462@https://myserver.com/xsp/.ibmxspres/dojoroot-1.9.7/dojo/dojo.js:15:119192
_45c@https://myserver.com/xsp/.ibmxspres/dojoroot-1.9.7/dojo/dojo.js:15:118807
_456@https://myserver.com/xsp/.ibmxspres/dojoroot-1.9.7/dojo/dojo.js:15:118455
$DDXW_@https://myserver.com/xsp/.ibmxspres/dojoroot-1.9.7/dojo/dojo.js:15:119930
_462@https://myserver.com/xsp/.ibmxspres/dojoroot-1.9.7/dojo/dojo.js:15:119192
_45c@https://myserver.com/xsp/.ibmxspres/dojoroot-1.9.7/dojo/dojo.js:15:118872
_456@https://myserver.com/xsp/.ibmxspres/dojoroot-1.9.7/dojo/dojo.js:15:118455
$DDXW_@https://myserver.com/xsp/.ibmxspres/dojoroot-1.9.7/dojo/dojo.js:15:119930
_462@https://myserver.com/xsp/.ibmxspres/dojoroot-1.9.7/dojo/dojo.js:15:119192
_45c@https://myserver.com/xsp/.ibmxspres/dojoroot-1.9.7/dojo/dojo.js:15:118807
_456@https://myserver.com/xsp/.ibmxspres/dojoroot-1.9.7/dojo/dojo.js:15:118455
$DDXW_@https://myserver.com/xsp/.ibmxspres/dojoroot-1.9.7/dojo/dojo.js:15:119930
_390@https://myserver.com/xsp/.ibmxspres/dojoroot-1.9.7/dojo/dojo.js:15:95835
_39c@https://myserver.com/xsp/.ibmxspres/dojoroot-1.9.7/dojo/dojo.js:15:96161
@Ff&@Fi&@B3c&@Im.js:432:9501
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln