Skip to content

Threaded post support for NodeBB

Let's Build It
146 5 104.2k 1
  • or maybe for each modification this must be specified twice ?

    THREAD OFF

    /* Start of threaded CSS rules */
    .page-topic .topic .posts.timeline .timeline-event,
    .page-topic .topic .posts.timeline > [component="post/placeholder"],
    .page-topic .topic .posts.timeline > [component="post"] {
      border-left: none;
      transition: transform 0.3s ease !important;
      background: var(--bs-body-bg);
      /* background: var(--bs-body-navbar); */
      border-radius: var(--bs-border-radius);
    }
    

    THREAD ON

    /* Start of threaded CSS rules */
    .page-topic .topic .posts.timeline .timeline-event,
    .page-topic .topic .posts.timeline > [component="post/placeholder"],
    .page-topic .topic .posts.timeline > [component="post"].threaded {
      border-left: none;
      transition: transform 0.3s ease !important;
      /* background: var(--bs-body-bg); */
      background: var(--bs-body-navbar);
      border-radius: var(--bs-border-radius);
    }
    

    Same things for other modif like border radius

    @DownPW Try now.

  • 🙂

    One or 2 classes are missing in Thread ON mode but this is the logic I want.

    What have you done that I can understand and modify?

  • 🙂

    One or 2 classes are missing in Thread ON mode but this is the logic I want.

    What have you done that I can understand and modify?

    @DownPW Good…

    Added

      li.pt-4.threaded {
        background: var(--bs-body-navbar) !important;
    }
    

    Modified

      .page-topic .topic .posts.timeline .timeline-event,
      .page-topic .topic .posts.timeline > [component="post/placeholder"],
      .page-topic .topic .posts.timeline > [component="post"] {
        border-left: none;
        transition: transform 0.3s ease !important;
        background: var(--bs-body-bg); 
        border-radius: var(--bs-border-radius);
      }
    
  • hmm Ok
    For once I don’t understand the logic 🙂

    Just one thing I have added befor one Thread ON mode :

    image.png
    image.png

  • hmm Ok
    For once I don’t understand the logic 🙂

    Just one thing I have added befor one Thread ON mode :

    image.png
    image.png

    @DownPW Caching issue I think. Seems to work ok for me

    Threading On

    00542631-8e3c-4ca7-b7ec-bb851a883bdb-image.png

    Threading Off

    f82a0eba-8361-4900-93e1-2af05e3b33a3-image.png

  • Hmm problem, incognito mode and on your screen = not thread mode with Threadinf ON 🙂 (see my last self post/last post)

    And I see this rest of thread ON border-radius on vanilla :

    image.png

    Seem very hard to understand

  • Hmm problem, incognito mode and on your screen = not thread mode with Threadinf ON 🙂 (see my last self post/last post)

    And I see this rest of thread ON border-radius on vanilla :

    image.png

    Seem very hard to understand

    @DownPW This one?

    9ab34fe4-53c7-4466-b2bf-ee77a9495cf1-image.png

    Seems fine to me?

    For the radius issue on highlight, this will fix it (I updated your CSS already)

    .page-topic .topic .posts.timeline .timeline-event.highlight, .page-topic .topic .posts.timeline > [component="post/placeholder"].highlight, .page-topic .topic .posts.timeline > [component=post].highlight {
        border-left: 2px solid #0d6efd !important;
        margin-left: 22px;
        transition: transform 0.3s ease !important;
        border-radius: 0px;
    }
    

    7de4ff82-561b-49f2-9e80-b4876e2caaba-image.png

  • nope we have top and bottom left border radius. On vanilla harmony, we have not

  • but the most important thing for now is that we lost the Threading effect

  • nope we have top and bottom left border radius. On vanilla harmony, we have not

    @DownPW said in Threading support for NodeBB:

    nope we have top and bottom left border radius. On vanilla harmony, we have not

    No, you don’t - see my screenshot…

  • ah ok you just edited

  • but the most important thing for now is that we lost the Threading effect

    @DownPW said in Threading support for NodeBB:

    but the most important thing for now is that we lost the Threading effect

    Nope. I see this as working correctly in standard and incognito mode.

  • Arf yes sorry. Apologies

    But it’s seem we have lost margin-left

    image.png

    you have same things ?

  • Arf yes sorry. Apologies

    But it’s seem we have lost margin-left

    image.png

    you have same things ?

    @DownPW Can you provide the URL for that specific thread?

  • And this margin :

    image.png

    I have added before a margin between the topic and the timeline icon.

    we’ll come to an understanding 🙂

    But I admit that I don’t really understand.

  • And this margin :

    image.png

    I have added before a margin between the topic and the timeline icon.

    we’ll come to an understanding 🙂

    But I admit that I don’t really understand.

    @DownPW said in Threading support for NodeBB:

    But I admit that I don’t really understand.

    Neither do I ! 😕

  • For this we can use in Threading ON :

    .page-topic .topic .posts.timeline .timeline-event:last-child, .page-topic .topic .posts.timeline>[component="post/placeholder"]:last-child, .page-topic .topic .posts.timeline>[component=post]:last-child {
        margin-left: 0.5rem !important;
    }
    

    And this :

    .page-topic .topic .posts.timeline [component="topic/event"].timeline-event, .page-topic .topic .posts.timeline [component="topic/necro-post"].timeline-event {
        margin-bottom: 10px !important;
    }
    

    RESULT :

    76d758c7-a965-4147-b9a8-2dfd059ba9e4-image.png

  • hi @phenomlab , it is nice that the switch only appears when the screen can be changed however, when the screen size is around 1250 pixels, I guess it does not produce the intended view, maybe you should increase the screen size further to make sure this switch is only available when the screen can accommodate nice thread view?

    Screen Shot 2023-09-13 at 14.23.24.png

  • @phenomlab

    It looks like I got something working by adding this code

    li.pt-4.self-post:not(.self-post .topic-owner-post).threaded {
      margin-left: 0rem;
    }
    
    li.pt-4.self-post.threaded {
      margin-left: 0rem;
    }
    
    li.necro-post.text-muted.timeline-event.d-flex.gap-2.pt-4.threaded {    
      background: transparent !important;
      margin-bottom: 10px !important;
    }
    
  • Better for me now @phenomlab .

    I have just seen this bug (see the video below)

    EXPLAIN:

    I have Threading mode ON, Space bettween timeline event and topic is good. I refresh the page with CTRL + F5.

    The last post is displayed highlighted then the div moves to its original place (too bad, it’s long) with the desired margin and then the beetween timeline event and topic space is no longer the same. To find the correct space that we had before refreshing the page, I have to deactivate Thread mode and reactivate it

    • It’s a shame to wait until the last message is highlighted for the margin to take effect.
    • It’s also a shame to deactivate/reactivate the mode to find the correct margin.

    VIDEO FOR BETTER EXPLAIN :

    blink2.gif


    Other things, I deactivate threadeChat function in function.js because don’t work for now now 😉


Related Topics
  • What’s going on with NodeBB?

    Performance nodebb script die
    20
    8 Votes
    20 Posts
    4k Views
    @cagatay The most reliable way to upgrade Node.js on Ubuntu depends on how you originally installed it. Method 1: Using NVM (Recommended) If you already use Node Version Manager (NVM), upgrading is simple. NVM allows you to keep both versions and switch between them if needed. Install Node 22: nvm install 22 Switch to Node 22: nvm use 22 Set it as your default: nvm alias default 22 Verify the change: node -v Method 2: Using NodeSource (PPA) If you installed Node.js via apt using the NodeSource repository, you need to update the repository script to point to the new version. Remove the old NodeSource list (optional but cleaner): sudo rm /etc/apt/sources.list.d/nodesource.list Download and run the NodeSource setup script for Node 22: curl -fsSL [https://deb.nodesource.com/setup_22.x](https://deb.nodesource.com/setup_22.x) | sudo -E bash - Install/Upgrade Node.js: sudo apt-get install -y nodejs Verify the installation: node -v Method 3: Using the ‘n’ Package If you have npm installed, you can use the n interactive manager. Clear the npm cache: sudo npm cache clean -f Install the ‘n’ helper: sudo npm install -g n Install Node 22: sudo n 22 Update your shell: hash -r Troubleshooting Permission Denied: If you see permission errors using Method 2 or 3, ensure you are using sudo. Path Issues: If node -v still shows version 20 after upgrading via NVM, restart your terminal or run source ~/.bashrc. Conflicts: Avoid mixing these methods. If you switch from apt to nvm, it is best to sudo apt remove nodejs first to avoid path conflicts.
  • 3 Votes
    2 Posts
    2k Views
    Very great
  • Bug Report

    Solved Bugs nodebb bugs
    47
    1
    26 Votes
    47 Posts
    17k Views
    @crazycells Good points, thanks. I completely forgot that classes are added - makes life much simpler! EDIT - seems this is pretty straightforward, and only needs the below CSS .upvoted i { color: var(--bs-user-level) !important; } This then yields [image: 1718028529465-3f072f8a-ebfa-4910-8723-73c493b8e4eb-image.png] However, the caveat here is that the .upvoted class will only show for your upvotes, and nobody else’s. However, this does satisfy the original request however I would love to see my upvoted posts more clearly, because currently, when I upvote, nothing on the post tool is changing, it would be nicer if there is an indication that I have upvoted (like a filled or colored triangle?)
  • Composer options on nodebb

    Solved Configure nodebb
    8
    1
    3 Votes
    8 Posts
    2k Views
    @Panda You should be able to expose the CSS for these using F12 to get into console [image: 1686833368846-3591518c-e3a3-4ada-a43c-6b32a5e0359c-image.png] [image: 1686833399483-a2b8ed46-4157-4ff2-85f0-576543380107-image.png] That should then expose the element once selected [image: 1686833431032-89d9c545-a47a-40d1-98f4-80cf3b958e8f-image.png] Here’s the below CSS you need based on the screenshot provided. .composer .formatting-bar .formatting-group li[data-format="picture-o"], .composer .formatting-bar .formatting-group li[data-format="spoiler"] { display: none; }
  • adding some console.log to Nodebb

    Solved Customisation nodebb
    4
    1 Votes
    4 Posts
    2k Views
    @eeeee if you’re using the console, you could try node app.js > app.log 2>&1 This would redirect stdout to a file named app.log and redirect stderr to stdout. I’m not sure about standard logging under NodeBB, but there is an error log located at logs/error.log. Failing that, you could always stop the NodeBB service then use ./nodebb dev from the console which would then provide debug output.
  • IRC Server/Client - Chat App with NodeBB

    Linux nodebb irc server client
    6
    1 Votes
    6 Posts
    3k Views
    @Hari not sure from the consumer perspective, but Skype has been all but completely consumed by Microsoft Teams when it comes to business usage.
  • [NODEBB] Help for my custom CSS

    Solved Customisation nodebb css bugfix
    258
    49 Votes
    258 Posts
    149k Views
    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.
  • Nodebb Hashtag plugin

    Solved General
    15
    1 Votes
    15 Posts
    5k Views
    @jac Great ! I’ll close this off.