2Abendsegler / GClh

GC little helper II - Some little things to make life easy (on www.geocaching.com). Powerful, configurable tool to improve and expand the geocaching pages.
GNU General Public License v2.0
59 stars 38 forks source link

Message Center: cacher name in greeting doesn't change #901

Closed BlueEagle23 closed 5 years ago

BlueEagle23 commented 5 years ago

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.

Ruko2010 commented 5 years ago

I can reproduce this bug and we will have a look at it. Thanks for reporting.

Ruko2010 commented 5 years ago

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.

Ruko2010 commented 5 years ago

@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)

2Abendsegler commented 5 years ago

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:

  1. Beim Aufbau des Links zum Message Center (aus Cache Listing, TB-Listing ...; das ist eine zentrale Routine) den Receiver nicht ersetzen.

  2. 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")) {
  3. 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;
                }
  4. Bau deine Routinen in den gleichen try.

  5. 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.

2Abendsegler commented 5 years ago

@BlueEagle23 Are you from USA? Sorry for german communication, the theme is complicate and it was easier in the native language. ;)

Ruko2010 commented 5 years ago

@BlueEagle23 the fix is implemented and will be rolled out with the new Version.

2Abendsegler commented 5 years ago

New error with the receiver.

To Reproduce Steps to reproduce the behavior:

  1. Go to message center https://www.geocaching.com/account/messagecenter
  2. Click on one receiver, the name will changed
  3. Click on another receiver, the name will not changed
  4. Call console and see error

grafik

Ruko2010 commented 5 years ago

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.

2Abendsegler commented 5 years ago

Yes. The older coding handle this.