Skip to content

Switch between list and card view function

Moved Let's Build It
107 4 56.6k 1
  • I can possibly use this code if you find a solution (or not)
    With just a left border on post-content

    .category-card .lastpost .post-content {
        border-left: 2px solid grey;
    }
    
    .category-card .lastpost a img {
        display: none;
    }
    
    .category-card .line-clamp-sm-2 {
        margin-left: 38px !important;
    }
    

    Result :

    8235af26-ad1f-49de-8463-27314ed8d0bb-image.png

    wrote on last edited by
    #55

    @DownPW that looks really good!

  • wrote on last edited by DownPW
    #56

    hmm no @phenomlab
    it’s ok on your site but not on mine 😞

    look at the screens above


    if I not display this class too, I have no avatar on all the site because it’s the original class .

    In fact I can’t do anything. In all cases, avatars with the wrong location are displayed in the same way

    or you would have to make sure that this element never appears with card view on this page but I’m not even sure that would work

  • wrote on last edited by
    #57

    if you have solution for me, I take it

  • if you have solution for me, I take it

    wrote on last edited by phenomlab
    #58

    @DownPW I’ll need to put something together based on your dev site.

    EDIT: If you have a look at sudonix.dev (closed dev site, so you’ll need to login) you’ll see that this is no longer exposed to CF, and works as intended.

  • wrote on last edited by
    #59

    Yes I believe you that it works without CF 🙂

    I would just like to see if a solution is possible with CF even if it means deleting this d**n avatar on post-content

  • Yes I believe you that it works without CF 🙂

    I would just like to see if a solution is possible with CF even if it means deleting this d**n avatar on post-content

    wrote on last edited by phenomlab
    #60

    @DownPW I’m sure we can do something here.

    Actually, can you try and remove the minification etc on CSS and JS in CF for your domain and see if this makes any difference?

  • @DownPW I’m sure we can do something here.

    Actually, can you try and remove the minification etc on CSS and JS in CF for your domain and see if this makes any difference?

    wrote on last edited by DownPW
    #61

    @phenomlab said in Switch between list and card view function:

    Actually, can you try and remove the minification etc on CSS and JS in CF for your domain and see if t

    Sorry my friend, can you be more specific ?

  • @phenomlab said in Switch between list and card view function:

    Actually, can you try and remove the minification etc on CSS and JS in CF for your domain and see if t

    Sorry my friend, can you be more specific ?

    wrote on last edited by
    #62

    @DownPW this setting

    27c7b6e7-2f63-4fbe-94f4-e46279093008-image.png

  • wrote on last edited by
    #63

    hello.

    how OK

    minification etc on CSS and JS in CF is already disabled

  • hello.

    how OK

    minification etc on CSS and JS in CF is already disabled

    wrote on last edited by
    #64

    @DownPW thanks. Just wanted to eliminate a thought I had around the JS being executed in the wrong order.

  • hmmm, on my website, in fact the elements on the class have not been applied are still displayed 😞

    c5b2d73d-de9f-4fa7-ab4f-fcc6ab610549-image.png

    Is there a way to prevent them from showing up either?

    wrote on last edited by phenomlab
    #65

    @DownPW said in Switch between list and card view function:

    Is there a way to prevent them from showing up either?

    You should be able to use the below CSS to hide that specific avatar

    .category-card .lastpost a img {
        margin-top: 10px;
        margin-left: -185px;
        display: none;
    }
    

    And

    .category-card span.avatar.avatar-tooltip.not-responsive.avatar-rounded {
        display: none;
    }
    
  • Too bad. I will therefore not be able to use this function or perhaps by just deleting the problematic avatar if that is possible

    wrote on last edited by
    #66

    @DownPW said in Switch between list and card view function:

    Too bad. I will therefore not be able to use this function or perhaps by just deleting the problematic avatar if that is possible

    FIXED: Looks like I was using an incorrect hook 😞 have rectified that now, so can you please pull the latest functions.js and test?

    https://github.com/phenomlab/harmony-card-view/blob/main/functions.js

  • wrote on last edited by
    #67

    I switched my domain back to CF, and all the previous bugs came back 😞 However, I’ve re-written the code to use custom CSS instead of external CSS, and this so far looks good in test. I want to evaluate this a bit more before I release the updated code, but so far, this looks like it’s going to work.

  • wrote on last edited by phenomlab
    #68

    @DownPW I think I might finally have it - code that works in CF with no bugs… 🐛

    Can you please test this code (which is running in sudonix.dev) and let me know what you think? It’s not ready for publish just yet but will be once I’ve tidied up a few things.

  • wrote on last edited by
    #69

    Hello Mark

    It looks pretty good on your test platform. I didn’t notice the bug there.

    Let’s see what it looks like on another server with CF.

  • Hello Mark

    It looks pretty good on your test platform. I didn’t notice the bug there.

    Let’s see what it looks like on another server with CF.

    wrote on last edited by
    #70

    @DownPW Great. There is still one small bug I noticed, but I think that might be a caching issue. This new code is refactored, and has structurally changed. I’ll post the new code in the main topic, plus updated instructions.

  • wrote on last edited by phenomlab
    #71

    After a significant rewrite of the code plus the CSS, I’m pleased to release this stable version. There are some changes however.

    1. The external CSS file is no longer needed (you can delete it). As a result, the CSS you see in the below file needs to be copied into
    /admin/appearance/customise#custom-css
    

    https://github.com/phenomlab/harmony-card-view/blob/main/card.css

    1. The JS code has been refactored, and the code contained in the link below needs to be copied into
    /admin/appearance/customise#custom-js
    

    You need to overwrite existing code if you have it

    https://github.com/phenomlab/harmony-card-view/blob/main/functions.js

    IMPORTANT

    If you use Cloudflare, you MUST disable the HTML minification if you use it

    39da7dc0-8632-415e-820b-7aa1d2d5a57c-image.png

    If everything went well, you should see this

    d979fca7-317d-4875-90f6-7ff8551d6359-image.png

    If it doesn’t look like the above, the main reason for this is that you are using Cloudflare and have not disabled HTML minification. If this setting is enabled, the JS code will insert additional classes into the DOM as it should, although CF has a bad habit of changing the execution order meaning the CSS is not correctly applied to the first set of returned topics - an example of that below

    74c43f42-7745-4142-8351-19504dbf90d9-image.png

    If you experience this issue, please ensure that you’ve disabled HTML minification.

    Enjoy the new layout. Any issues, let me know.

  • phenomlab phenomlab moved this topic from Customisation on
  • wrote on last edited by
    #72

    Test ASAP this version on my dev environment with CF my friend.
    Thank you so much

  • wrote on last edited by DownPW
    #73

    Still doesn’t work for me 😞

    I’m in DNS only mode in CF,

    ba6cbcbd-6439-44b4-9340-3877b96bb657-image.png

    I deactivated CF and it’s the same :

    e619cf13-0d4b-4a77-93bc-c326f7b45652-image.png

    I deleted all my custom CSS and JS on nodebb ACP, leaving only those for the card view and I have the same problem.

    I admit that I don’t understand anything anymore.

  • Still doesn’t work for me 😞

    I’m in DNS only mode in CF,

    ba6cbcbd-6439-44b4-9340-3877b96bb657-image.png

    I deactivated CF and it’s the same :

    e619cf13-0d4b-4a77-93bc-c326f7b45652-image.png

    I deleted all my custom CSS and JS on nodebb ACP, leaving only those for the card view and I have the same problem.

    I admit that I don’t understand anything anymore.

    wrote on last edited by
    #74

    @DownPW I think I see why.

    Can you locate this css block

    .category-card .lastpost a img {
        margin-top: 10px;
        margin-left: -185px;
    }
    

    and change it to

    .category-card .lastpost a img, span.avatar.avatar-tooltip.not-responsive.avatar-rounded {
        margin-top: 10px;
        margin-left: -178px;
    }
    

    I did not account for the usage of standard avatars (the ones were it uses the first letter of the username) - I use a custom “guest” or “no upload” image defined here

    55b58cdb-cda4-4ff7-9fa3-bbc08aa8c900-image.png

    Whereas your site doesn’t have this and therefore replaces the CSS class which we have not previously targeted

    ae0bb9e5-65ca-471f-a393-4c08e335dae6-image.png

    I’m confident that this will resolve the issue (famous last words)…


Related Topics
  • Material View Support for Stock NodeBB

    Unsolved Let's Build It material view javascript css
    51
    4
    15 Votes
    51 Posts
    27k Views
    DownPW
    Oh yes, that’s what’s super cool, I learn something every day. Afterwards I start from so low in JS
  • Widget | CSS customization

    Solved WordPress css
    53
    17 Votes
    53 Posts
    19k Views
    phenomlab
    @Sala the only way you can achieve this is to use a robots.txt file and disallow access to those links.
  • hover link effect

    Solved Customisation css link hover
    18
    1
    6 Votes
    18 Posts
    7k Views
    phenomlab
    @DownPW Looking at the underlying code, class start is being added on hover by jQuery in this function document.querySelectorAll(".button-gradient, .button-transparent").forEach((button) => { const style = getComputedStyle(button); const lines = document.createElement("div"); lines.classList.add("lines"); const groupTop = document.createElement("div"); const groupBottom = document.createElement("div"); const svg = createSVG( button.offsetWidth, button.offsetHeight, parseInt(style.borderRadius, 10) ); groupTop.appendChild(svg); groupTop.appendChild(svg.cloneNode(true)); groupTop.appendChild(svg.cloneNode(true)); groupTop.appendChild(svg.cloneNode(true)); groupBottom.appendChild(svg.cloneNode(true)); groupBottom.appendChild(svg.cloneNode(true)); groupBottom.appendChild(svg.cloneNode(true)); groupBottom.appendChild(svg.cloneNode(true)); lines.appendChild(groupTop); lines.appendChild(groupBottom); button.appendChild(lines); button.addEventListener("pointerenter", () => { button.classList.add("start"); }); svg.addEventListener("animationend", () => { button.classList.remove("start"); }); }); }) The CSS for start is below .button-gradient.start .lines svg, .button-transparent.start .lines svg { animation: stroke 0.3s linear; } And this is the corresponding keyframe @keyframes stroke { 30%, 55% { opacity: 1; } 100% { stroke-dashoffset: 5; opacity: 0; } } It’s using both CSS and SVG, so might not be a simple affair to replicate without the SVG files.
  • New message CSS problem

    Unsolved Customisation css
    11
    1
    2 Votes
    11 Posts
    4k Views
    phenomlab
    @DownPW hi. Sorry for digging up an old post, but I’m going through items still unresolved and was looking to get an understanding of where you are currently with this?
  • Fontawesome 5

    Unsolved Customisation fonts css nodebb
    14
    1 Votes
    14 Posts
    6k Views
    phenomlab
    @pwsincd hi. Just following up on this thread (I know it’s old) but was curious to understand if it’s still an issue or not ?
  • [NODEBB] Help for my custom CSS

    Solved Customisation nodebb css bugfix
    258
    49 Votes
    258 Posts
    168k Views
    cagatay
    mark hi, Refused to apply style from ‘https://efelsefe.com/assets/customfonts/FontAwesome-6-Pro/pro/css/v4-font-face.css’ because its MIME type (‘text/plain’) is not a supported stylesheet MIME type, and strict MIME checking is enabled. I keep getting this error.
  • tag icon in front of tags

    Solved Customisation css
    5
    3 Votes
    5 Posts
    2k Views
    crazycells
    @phenomlab said in tag icon in front of tags: @crazycells Are you using Font Awesome Free ? If so, try this span.tag:before { content: "\f02b"; font-family: "Font Awesome 5 Free"; margin-right: 5px; margin-left: 5px; font-weight: 900; } yeap, this worked thanks a lot.
  • Minor cosmetic layout chages

    Announcements layout
    4
    2
    0 Votes
    4 Posts
    2k Views
    JAC
    @phenomlab said in Minor cosmetic layout chages: @jac I like a challenge