[Bug] Codeblock ausklappen geht nicht

Mat

Aktives Mitglied
Wenn ich bei einem langen Codeblock auf den Ausklappen-Button klicke, geschieht nichts. Das Gleiche auch beim Einklappen.

Hier der Code (zum Fehler finden und Ausprobieren):
Javascript:
var CMTV_Code = window.CMTV_Code || {};
(function (b) {
    CMTV_Code.CodeBlock_Copy = new Clipboard('.bbCodeBlock--code .action--copy', {
        target: function (a) {
            return b(a).closest('.bbCodeBlock--code').find('code').get(0);
        },
    });
    CMTV_Code.CodeBlock_Copy.on('success', function (a) {
        a.clearSelection();
        XF.flashMessage(XF.phrase('CMTV_Code_copied'), 1500);
    });
    CMTV_Code.CodeBlock_Expand = XF.Click.newHandler({
        eventNameSpace: 'CMTV_CodeCodeBlock_Expand',
        codeBlockH: null,
        init: function () {
            this.codeBlockH = XF.Element.getHandler(this.$target.closest('.bbCodeBlock--code'), 'CMTV-code-block');
        },
        click: function () {
            this.codeBlockH.resizeButtons.$expand.addClass('action--hidden');
            this.codeBlockH.resizeButtons.$collapse.removeClass('action--hidden');
            this.codeBlockH.$codeContainer.stop().animate(
                {
                    height: this.codeBlockH.maxHeight + 'px',
                },
                200
            );
        },
    });
    CMTV_Code.CodeBlock_Collapse = XF.Click.newHandler({
        eventNameSpace: 'CMTV_CodeCodeBlock_Collapse',
        codeBlockH: null,
        init: function () {
            this.codeBlockH = XF.Element.getHandler(this.$target.closest('.bbCodeBlock--code'), 'CMTV-code-block');
        },
        click: function () {
            this.codeBlockH.resizeButtons.$expand.removeClass('action--hidden');
            this.codeBlockH.resizeButtons.$collapse.addClass('action--hidden');
            this.codeBlockH.$codeContainer.stop().animate(
                {
                    height: this.codeBlockH.minHeight + 'px',
                },
                200
            );
        },
    });
    XF.Click.register('CMTV-code-block-expand', 'CMTV_Code.CodeBlock_Expand');
    XF.Click.register('CMTV-code-block-collapse', 'CMTV_Code.CodeBlock_Collapse');
})(jQuery);

Kann es sein, dass da ein kleiner Tippfehler in den Namespaces ist (fehlender Punkt)? Beim Registrieren der beiden Events verkackt er.
Naja, eigentlich verkackt er schon beim Konstruktor, beim Laden der Seite, also liegt der Fehler vielleicht woanders und ich sehe nur den "falsch" kompillierten Code.

Fehlermeldungen:
Laden eines Beitrags mit Codeblock:
Uncaught TypeError: Illegal constructor.
    <anonymous> code-block-actions.min.js:4
    <anonymous> code-block-actions.min.js:43
code-block-actions.min.js:4

Fehler beim Klicken des Buttons:
Could not find click handler for CMTV-code-block-expand core-compiled.js:143:439
    c https://dev-community.de/js/xf/core-compiled.js?_v=d29b5125:143
    watch https://dev-community.de/js/xf/core-compiled.js?_v=d29b5125:147
    jQuery 8
    watch https://dev-community.de/js/xf/core-compiled.js?_v=d29b5125:147
    register https://dev-community.de/js/xf/core-compiled.js?_v=d29b5125:148
    <anonym> https://dev-community.de/js/xf/core-compiled.js?_v=d29b5125:225
    <anonym> https://dev-community.de/js/xf/core-compiled.js?_v=d29b5125:228

Getestet auf Desktop, mit Firefox, Chrome, Edge.
 
Danke für den Hinweis.

Funktioniert bei mir (gerade auf dem Smartphone) tatsächlich auch nicht.

Schaue ich mir an. Kann gut sein, dass das mit dem kürzlichen XenForo-Update kaputt gegangen ist.

Solange kann man ja unten am Rand die Schiebefunktion nutzen.
 
Ich hatte mir das letztens wieder angeschaut. Kann es sein, dass es an einem veralteten Plugin liegt, das leider nicht mehr weiterentwickelt wird?


Wenn es daran liegt, dann kann gut sein, dass es nicht mehr mit der aktuellen Forenversion kompatibel ist.

Vielleicht brauchen wir einen eigenen Fork oder den hier:

Ich würde es gerne testen, aber Docker und XF 2.x mögen sich irgendwie nicht. :cry:
 
Danke, dass du mich nochmal dran erinnert hast und dir das näher angeschaut hast. :)

Wir setzen tatsächlich auf zwei Add-ons von CMTV, darunter "Code" in Version 2.2, die mittlerweile leider nicht mehr weiterentwickelt werden. Das war mir ehrlich gesagt gar nicht bewusst.

Höchstwahrscheinlich wird es daran liegen. Wir sind mittlerweile bei XenForo 2.2.12.

Ich kann dir vorerst aber leider nur zurückmelden, dass ich das Ganze auf meiner Todo-Liste habe und möglichst zeitnah bearbeiten wollen würde, wenn ich denn gesundheitlich dazu aktuell in der Lage wäre. :cautious:

Habe schon eine gefühlte Ewigkeit sämtliche Projekte schleifen lassen und kaum am PC gesessen und wahrscheinlich wird sich das auch erstmal nicht großartig ändern.


Was meinst du damit, dass XF und Docker sich nicht vertragen? Du hast ja sowieso nicht den Quellcode des Forums, weswegen du eigentlich auch gar nichts testen kannst...

Was ich natürlich einfach mal ausprobieren könnte, ist, den Fork herunterzuladen und zu installieren. Wahrscheinlich wäre es aber besser, ein aktives Add-on zu finden, das die Funktionalität von "Code" gut ersetzt.
Falls es das nicht gibt, wäre ein eigener Fork auch eine Option, die aber natürlich wesentlich mehr Arbeit erfordert.

Eigentlich wäre es an der Zeit, mal zu überlegen, ob ich euch den Quellcode des Forums nicht privat irgendwie bei GitHub zur Verfügung stellen könnte.
Ich hatte sowieso geplant, mir bei Gelegenheit eine vollständige lokale Entwicklungsumgebung für XenForo einzurichten bzw. das Forum auch neu aufzusetzen, sodass ich Änderungen vorher immer schön lokal testen kann, statt an der mittlerweile etwas auseinanderfallenden Live-Version des Forums zu werkeln.
 
Mach dir keinen Stress. Das Forum funktioniert ja. Aus- und Einklappen ist jetzt nicht so schlimm. ;)

Dachte nur, dass es vielleicht mit einem einfachen Plugin-Update klappen könnte. Bis ich dann gesehen hab, dass es nicht mehr weiterentwickelt wird.

Du hast ja sowieso nicht den Quellcode des Forums, weswegen du eigentlich auch gar nichts testen kannst...
Wollte eine leere Beispielinstallation mit den aktiven Plugins ausprobieren. Offizielle Docker-Images habe ich nicht gefunden, aber 1 inoffizielles gesehen, das bei mir nicht ohne Weiteres laufen wollte.
 
Ja, Docker Images wird es nicht geben, da XF ja proprietär ist. Das inoffizielle ist dementsprechend auch eher illegal.

Wie gesagt: Wenn ich mal die Energie habe, werde ich sicherlich mal versuchen, den Fork zu installieren und ggf. eine saubere Testumgebung einzurichten. Das dauert aber wahrscheinlich noch etwas.
 
Man braucht grundsätzlich eine Lizenz, um den Quellcode herunterzuladen.
Ob man das dann lokal in einer Dev-Umgebung oder live auf einem Webserver installiert, ist relativ egal, wobei eine Lizenz immer nur für eine Live-Seite aber theoretisch für unendliche viele Dev-Umgebungen gilt.
 
Zurück
Oben Unten