Skip to content

Switch between list and card view function

Moved Let's Build It
107 4 56.6k 1
  • 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)…

  • wrote on last edited by
    #75

    I’m with my childs, test asap 🙂

  • I’m with my childs, test asap 🙂

    wrote on last edited by
    #76

    @DownPW I see you set a default avatar 🙂 ?

    83f97f4c-2471-40b5-a58d-ff2d4860ec3e-image.png

    On checking your site, this has resolved the issue, but you should still have that CSS I defined above. As soon as you validate, I will add this to the code.

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

    wrote on last edited by DownPW
    #77

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

    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

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

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

    Seems to work 🙂

    So actually all the avatars where the problem occurs are account avatars which have no profile image (very good remark)

    If i set default avatar, the bug is resolved.

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

    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

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

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

    Seems to work 🙂

    So actually all the avatars where the problem occurs are account avatars which have no profile image (very good remark)

    If i set default avatar, the bug is resolved.

    wrote on last edited by phenomlab
    #78

    @DownPW Yes, but it’s not a “bug” - it’s something I didn’t consider during the design, but the updated CSS will address that. Glad it works!!

    Updated CSS committed.

    https://github.com/phenomlab/harmony-card-view/commit/f0d95fff9fc545a7155ae50055336a173ffe4064

  • wrote on last edited by
    #79

    Yes, I completely understand what you mean.

    Finally the first code should work but it’s a blessing in disguise. I think the no external stylesheet approach is much better.

  • Yes, I completely understand what you mean.

    Finally the first code should work but it’s a blessing in disguise. I think the no external stylesheet approach is much better.

    wrote on last edited by phenomlab
    #80

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

    I think the no external stylesheet approach is much better.

    Yes it’s better to have it all in one place, but the custom css is not minified so not optimised out of the gate. Easy to address but if you frequently change css then you’d have to reverse the minify each time to make what you have readable.

  • wrote on last edited by
    #81

    oh yeahh, actually I hadn’t thought about that 🙂

  • wrote on last edited by DownPW
    #82

    I notice this my friend whe we use this css:

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

    with no default avatar on ACP (OK with default avatar on ACP)

    image.png


Related Topics
  • Extended functions for Q&A NodeBB plugin

    Let's Build It q&a panels cards
    3
    4
    5 Votes
    3 Posts
    3k Views
    DownPW
    Very good like always
  • navigation menu panel on mobile

    Solved Customisation nodebb css
    8
    1
    7 Votes
    8 Posts
    3k Views
    phenomlab
    @crazycells hmm. That’s odd. I haven’t made any changes from recollection but I could be wrong. I’ll need to check. EDIT - very strange. I honestly don’t recall adding the below CSS block to alter the bottom bar, but you’re right… .bottombar-nav { padding: 0px !important; } I’ve removed this so it reflects stock Harmony.
  • The theme came with space on left side

    Solved WordPress css
    7
    3 Votes
    7 Posts
    2k Views
    Sala
    @phenomlab yes it’s a different theme. The other one was not offering much on editable sidebar. It was like flarum hahah
  • 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
  • Rotating Star Effect

    Solved Let's Build It wordpress css
    17
    12 Votes
    17 Posts
    5k Views
    Hari
    @phenomlab thanks a lot for these, both of the below are awesome! https://codepen.io/bennettfeely/pen/vYLmYJz https://codepen.io/C-L-the-selector/pen/MWZbWBo
  • Create a dynamic category list

    Moved Let's Build It dynamic categories api
    16
    3
    14 Votes
    16 Posts
    7k Views
    phenomlab
    Hmm - seems I never committed this code. I’ll do that now… EDIT - here it is https://github.com/phenomlab/category-list/tree/main
  • Fixing YouTube videos css

    Solved WordPress css
    8
    2 Votes
    8 Posts
    3k Views
    Sala
    @phenomlab It looks good, but not anymore. I’ve already lost so much time. Now it’s time to move on
  • 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.