Skip to content

Post Style View

Solved Customisation
67 3 27.4k 2
  • @cagatay yep, I’ll take a look at this tomorrow and we’ll get it resolved.

    @phenomlab thank you waiting your free time 😊 👍

  • @phenomlab thank you waiting your free time 😊 👍

    @cagatay Should look a bit better now - just finishing up the jQuery code as that is not firing properly. Let me know

  • @cagatay Should look a bit better now - just finishing up the jQuery code as that is not firing properly. Let me know

    @phenomlab yes i entered new topic and new post, seems everything is working great. thanks Mark…

  • @phenomlab yes i entered new topic and new post, seems everything is working great. thanks Mark…

    @cagatay Thanks for confirming. Just finishing up the jQuery functions so if you are logged in as admin, the page might reload a few times, but this is expected

  • @cagatay Thanks for confirming. Just finishing up the jQuery functions so if you are logged in as admin, the page might reload a few times, but this is expected

  • @cagatay Seems fine to me ?

    25678c08-ae90-4da6-95a5-c3b1229e7e08-image.png

  • @cagatay Seems fine to me ?

    25678c08-ae90-4da6-95a5-c3b1229e7e08-image.png

    @phenomlab pls refresh?

  • @cagatay I have. No issues on my side

  • @cagatay I have. No issues on my side

    @phenomlab maybe it depends on me or my web browser. thank you 🙂

  • @phenomlab maybe it depends on me or my web browser. thank you 🙂

    @cagatay No problems. I checked this in an incognito session also, with no issues

    748735c8-4141-4185-9d46-4eb3f8023744-image.png

  • @phenomlab maybe it depends on me or my web browser. thank you 🙂

    @cagatay said in Post Style View:

    maybe it depends on me or my web browser. thank you

    One thing I have noticed is that there are a number of errors on your site in the console. My concern here is that the jQuery functions I added are not being executed. For example, I removed the below function from your site about 30 minutes ago because it’s malformed

    });ment).ready(function () {
        function animateTags() {
        	if (ajaxify.data.template.name === 'categories') {
        		var tags = $('.popular-tags .tag-item');
        		var bar = $('<div class="popular-tags-bar"></div>');
        		tags.append(bar);
        		
        		var max;
        		
        		setTimeout(function() {
            		tags.each(function() {
            		   var bar = $(this).find('.popular-tags-bar');
            		   var val = parseInt(bar.parents('a').find('.tag-topic-count').text(), 10);
            		   max = max > val ? max : val;
            		   
            		   bar.css({
            		       width: val / max * 100 + '%'
            		   });
            		});
        		}, 100)
        	}
        }
        animateTags();
        $(window).on('action:ajaxify.end', animateTags);
    });
    

    As you can see, this isn’t right at all. It should be

    $(document).ready(function () {
        function animateTags() {
            if (ajaxify.data.template.name === 'categories') {
                var tags = $('.popular-tags .tag-item');
                var bar = $('<div class="popular-tags-bar"></div>');
                tags.append(bar);
    
                var max;
    
                setTimeout(function () {
                    tags.each(function () {
                        var bar = $(this).find('.popular-tags-bar');
                        var val = parseInt(bar.parents('a').find('.tag-topic-count').text(), 10);
                        max = max > val ? max : val;
    
                        bar.css({
                            width: val / max * 100 + '%'
                        });
                    });
                }, 100);
            }
        }
        animateTags();
        $(window).on('action:ajaxify.end', animateTags);
    });
    

    I’ve put this back how it should be, but am curious as to where that came from.

  • @cagatay said in Post Style View:

    maybe it depends on me or my web browser. thank you

    One thing I have noticed is that there are a number of errors on your site in the console. My concern here is that the jQuery functions I added are not being executed. For example, I removed the below function from your site about 30 minutes ago because it’s malformed

    });ment).ready(function () {
        function animateTags() {
        	if (ajaxify.data.template.name === 'categories') {
        		var tags = $('.popular-tags .tag-item');
        		var bar = $('<div class="popular-tags-bar"></div>');
        		tags.append(bar);
        		
        		var max;
        		
        		setTimeout(function() {
            		tags.each(function() {
            		   var bar = $(this).find('.popular-tags-bar');
            		   var val = parseInt(bar.parents('a').find('.tag-topic-count').text(), 10);
            		   max = max > val ? max : val;
            		   
            		   bar.css({
            		       width: val / max * 100 + '%'
            		   });
            		});
        		}, 100)
        	}
        }
        animateTags();
        $(window).on('action:ajaxify.end', animateTags);
    });
    

    As you can see, this isn’t right at all. It should be

    $(document).ready(function () {
        function animateTags() {
            if (ajaxify.data.template.name === 'categories') {
                var tags = $('.popular-tags .tag-item');
                var bar = $('<div class="popular-tags-bar"></div>');
                tags.append(bar);
    
                var max;
    
                setTimeout(function () {
                    tags.each(function () {
                        var bar = $(this).find('.popular-tags-bar');
                        var val = parseInt(bar.parents('a').find('.tag-topic-count').text(), 10);
                        max = max > val ? max : val;
    
                        bar.css({
                            width: val / max * 100 + '%'
                        });
                    });
                }, 100);
            }
        }
        animateTags();
        $(window).on('action:ajaxify.end', animateTags);
    });
    

    I’ve put this back how it should be, but am curious as to where that came from.

    @phenomlab i can not understand how it can be, i do not touch anything js side.

    so now everything is working and code is okey hope so?

  • @phenomlab i can not understand how it can be, i do not touch anything js side.

    so now everything is working and code is okey hope so?

    @cagatay Not entirely. There is an ajax call I need to use called action:ajaxify.loaded but this does not seem to be firing on your site. It’s opposite, action:ajaxify.end works fine (as you’ll see if you press F5) but the former does not, and I can’t see any reason as to why.

  • @cagatay Not entirely. There is an ajax call I need to use called action:ajaxify.loaded but this does not seem to be firing on your site. It’s opposite, action:ajaxify.end works fine (as you’ll see if you press F5) but the former does not, and I can’t see any reason as to why.

    @phenomlab maybe it depends on my nodebb version or really i can not say anything coz i don not know what is the ajax code as well 🙂

  • @phenomlab maybe it depends on my nodebb version or really i can not say anything coz i don not know what is the ajax code as well 🙂

    @cagatay Your NodeBB is up to date, so not an issue there. Just seems odd that no matter what I try, it doesn’t trigger. Investigating

  • @cagatay Your NodeBB is up to date, so not an issue there. Just seems odd that no matter what I try, it doesn’t trigger. Investigating

    @phenomlab maybe there is a problem in my vps or ubuntu is not clearlu working or library etc…

  • @phenomlab maybe there is a problem in my vps or ubuntu is not clearlu working or library etc…

    @cagatay Not sure, but will check out a theory I have first before we go down that route.

  • @phenomlab maybe there is a problem in my vps or ubuntu is not clearlu working or library etc…

    @cagatay Found the issue. It appears that the hook I should be calling is in fact action:posts.loaded and not action:ajaxify.loaded 🤦

    Should be fixed now but take a look. The best way to test this is to find a topic with lots of posts, and scroll to the bottom. Then, reload the page, and start scrolling up from the bottom to the top. As the new posts are added into the DOM, that function I wrote should execute and add the missing class

    For anyone else following this thread, the two required jQuery functions are

        $(window).on('action:posts.loaded', function(data) {
            $(document).ready(function() {
            if ($('li[component="post"]').hasClass("")) {
                console.log("New posts detected,so adding classes for messenger type view");
                $('li[component="post"]').addClass('topic-response-post');
            }
        });
    });
        $(window).on('action:ajaxify.end', function(data) {
            $(document).ready(function() {
            if ($('li[component="post"]').hasClass("")) {
                console.log("Adding required classes for messenger type view");
                $('li[component="post"]').addClass('topic-response-post');
            }
        });
    });
    
  • @cagatay Found the issue. It appears that the hook I should be calling is in fact action:posts.loaded and not action:ajaxify.loaded 🤦

    Should be fixed now but take a look. The best way to test this is to find a topic with lots of posts, and scroll to the bottom. Then, reload the page, and start scrolling up from the bottom to the top. As the new posts are added into the DOM, that function I wrote should execute and add the missing class

    For anyone else following this thread, the two required jQuery functions are

        $(window).on('action:posts.loaded', function(data) {
            $(document).ready(function() {
            if ($('li[component="post"]').hasClass("")) {
                console.log("New posts detected,so adding classes for messenger type view");
                $('li[component="post"]').addClass('topic-response-post');
            }
        });
    });
        $(window).on('action:ajaxify.end', function(data) {
            $(document).ready(function() {
            if ($('li[component="post"]').hasClass("")) {
                console.log("Adding required classes for messenger type view");
                $('li[component="post"]').addClass('topic-response-post');
            }
        });
    });
    

    @phenomlab i checked topic with a lots of posts 3 times 🙂 everything is clear and very well now. thank you your effort.

  • @phenomlab i checked topic with a lots of posts 3 times 🙂 everything is clear and very well now. thank you your effort.

    @cagatay No problems. Glad it’s all working. I need to document this for others to be able to use.


Did this solution help you?
Did you find the suggested solution useful? Support 💗 Sudonix with a coffee
If your organisation needs deeper expertise around infrastructure, security, or technology leadership, learn more about Phenomlab Ltd. Many of the deeper technical guides behind Sudonix are published there.

Related Topics
  • Test World Of Sudonix

    World test tester world sudonix
    1
    0 Votes
    1 Posts
    357 Views
    No one has replied
  • 2 Votes
    94 Posts
    20k Views
    @willi@social.tchncs.de a VPS can be had from DigitalOcean or Vultr quite economically (although I know that isn’t always the case in some countries) You can also use our referral link for an account credit too!
  • Opening links in nodebb widget

    Solved Configure nodebb
    6
    4 Votes
    6 Posts
    2k Views
    A more efficient way of including this would be to not over complicate it and leverage a standard iframe (providing the CSP headers of the remote site permit this) like below <iframe src="https://www.classmarker.com/online-test/start/?quiz=gag66aea7922f0a5" width="700" height="800"></iframe> This works first time every time on your site as intended.
  • 5 Votes
    4 Posts
    2k Views
    @DownPW thanks. I forgot about that.
  • 1 Votes
    1 Posts
    1k Views
    No one has replied
  • Top Ranked Forums

    Chitchat nodebb top ranked
    9
    1
    3 Votes
    9 Posts
    3k Views
    The real issue here is that most people consider forums to be “dead” in the sense that nobody uses them anymore, and social media groups have taken their place. Their once dominant stance in the 90’s and early 00’s will never be experienced again, but having said that, there are a number of forums that did in fact survive the social media onslaught, and still enjoy a large user base. Forums tend to be niche. One that immediately sticks out is Reddit - despite looking like it was designed in the 80s, it still has an enormous user base. Another is Stack Overflow, which needs no introduction. The key to any forum is the content it offers, and the more people whom contribute in terms of posting , the more popular and widely respected it becomes as a reliable source of information. Forums are still intensely popular with gamers, alongside those that offer tips on hacking etc.
  • NodeBB 1.19.3

    Solved Performance nodebb 1.19.3 performance
    33
    4 Votes
    33 Posts
    13k Views
    @phenomlab I find the problem Mark The error message indicated this path : http://localhost:4567/assets/plugins/nodebb-plugin-emoji/emoji/styles.css?v=6983dobg16u I change the path url on config.json [image: 1645128773854-47bacc80-f141-41e4-a261-3f8d650cc6f6-image.png] And all it’s good Weird, I didn’t have to change that path before 1.19.3 But this does not prevent the problem from a clean install with Emoji Plugin EDIT: After test, that resolv the problem installation for 1.18.x but not for 1.19.x (I have other error message when I run ./nodebb Setup For resume: NodeJS 16_x with 1.18.x is ok
  • [NodeBB] Creating new user to auto post content

    Solved Customisation
    3
    0 Votes
    3 Posts
    2k Views
    @phenomlab many thanks Mark .