Closed BlueEagle23 closed 5 years ago
I can reproduce this bug and we will have a look at it. Thanks for reporting.
This is not an easy one. I looked into it and the hard part is, that not all messages are loaded at startup. Geocaching will load 20 Messages on page load. If you scroll down, older messages will be reloaded.
@2Abendsegler Ich hab mir das nochmal angeschaut aber ich bin zu keiner Lösung gekommen wie man die Sache mit den fehlenden Variablen ersetzen sollte. Lässt man die einfach weg, dann fehlen ja Infos, die man sonst hätte. In der aktuellen Version muss man also nur den Namen des Owners in seinem Template austauschen, wenn man da was ändert. Wollen wir das Issue also einfach unter "geht nicht" ablegen? Oder hast du eine Idee für einen Fix (Umsetzung würde ich natürlich machen)
Ich hab mir das auch nochmal angesehen.
Dein Draft macht eigentlich viel zu viel. Wenn wir mal zurückgehen auf das was eigentlich falsch ist, dann ist das ja lediglich der Receiver, weil der eben wechselt. Der Receiver wird bereits im Link zum Message Center ersetzt. Ersetzen wir ihn dort nicht, dann ist genau das das einzige was wir zusätzlich tun müssen. Und das immer.
Ich denke mal laut, was in meinen Augen zu ändern wäre:
Beim Aufbau des Links zum Message Center (aus Cache Listing, TB-Listing ...; das ist eine zentrale Routine) den Receiver nicht ersetzen.
Parameter settings_show_message muss nicht abgefragt werden. Das war mal nötig, heute aber nicht mehr, meine ich. Also etwa so:
// Improve Message.
// if (settings_show_message && is_page("messagecenter")) {
if (is_page("messagecenter")) {
Fkt updateMessage so umbauen, dass die Variable Receiver immer ersetzt wird. Also etwa so:
function updateMessage(waitCount) {
if ($('textarea')[0] && $('textarea')[0].value == "" && $('#cpMsgLogHead .h5')[0].innerHTML != "") {
// Die Variable val mit dem Inhalt der Message würde ich in etwas eindeutiges umbenennen weil die Variable ja nun auch später noch verwendet wird.
if (val == "") {
var rec = decode_innerHTML($('#cpMsgLogHead .h5')[0]);
rec = rec.replace(/^(\s*)/,'').replace(/(\s*)$/,'');
// Hier nur noch das Template aufbauen. Den Receiver hier nicht ersetzen.
// val = buildSendTemplate().replace(/#Receiver#/ig, rec);
val = buildSendTemplate();
}
// Hier den Receiver ersetzen, also immer.
val = val.replace(/#Receiver#/ig, rec);
$('textarea')[0].value = val;
}
Bau deine Routinen in den gleichen try.
Verwende Fkt updateMessage um die Message aufzubauen. Eventuell ist "$('#cpMsgLogHead .h5')[0]" nun nicht mehr richtig. Du hast eine andere Zuordnung. Hier läßt sich aber bestimmt was finden was für alles gilt.
@BlueEagle23 Are you from USA? Sorry for german communication, the theme is complicate and it was easier in the native language. ;)
@BlueEagle23 the fix is implemented and will be rolled out with the new Version.
New error with the receiver.
To Reproduce Steps to reproduce the behavior:
Crap, I think this error is comming up, because we access the msg-center directly and not via a "message this owner" button. So we don't have the text in the URL. I will look into this.
Yes. The older coding handle this.
When I go to Message Center and click on a message in the left pane, GClh automatically enters a greeting in the bottom-right message pane. Example: "Hi BlueEagle23,"
However, when I then click on another message from another geocacher, the greeting remains the same. Instead of greeting the geocacher for the current message, the first geocacher's name remains in the greeting.