Your comments

LOL!  You just posted the exact behavior I described above.

The strips and strips2 page you showed me mimic the exact behavior of "bypass single root folder" being off using 1 shared folder per library under a single category. I cannot fix that.  That is an Ubooquity thing.  It's because, as I stated above, Ubooquity does not treat shared library folders in the same way it treats them when displaying the random or latest categories.  It separates them.  Thus, you get the page between the home page and the libraries.  And that creates even more problems for the home page navigation because it will HAVE to show strips and strips2 under the "Browse" tab rather than "Comics" as the category.

So, with the current theme, I would have to rework the entire navigation system on the home page, trap for the strips and strips2 page between the home page and libraries, then rework the breadcrumb navigation throughout the libraries.

And while I "can" and "will" do this, if necessary, the better solution (IMHO) is to have Tom address the way Ubooquity handles multiple shared folders under a single category.  

Why?  Because if you want the extra page that is generated when "bypass single root folder" is off, you can already do that.  What you currently can't do is skip that page if you have multiple shared folders under 1 category.  However, again, if Ubooquity treated multiple shared library folders under 1 category as 1 drive rather than insisting on separating them, it would not create the extra page unless you told it to by leaving "bypass single root folder" off.

I know that Tom already has a list of stuff to do and that he is extremely busy for the next few weeks or so.  But I will ask about this and see if he has any plans on addressing this or even views it as a viable solution BEFORE I decide how to proceed with fixing the theme.

Thank you for your help in this matter Dennis.  And if I do need to completely overhaul the theme, I will probably be asking you more questions about how you think we should address the 'offending' extra page issue in the theme.

Peace!

G




Hey Dennis,

I'm still running some tests and trying to brainstorm this, but I keep running into a few problems.

1.  It seems as if Ubooquity treats multiple shared folders under a single category the same way it treats a single shared folder under single category with "bypass single root folder" turned off... which inserts a page between the home and library pages... which, in turn, screws up the dynamic navigation on the home page and the dynamic breadcrumbs in the libraries.

2. When you launch a scan, Ubooquity assigns a unique numeric id to every file and folder it scans.  Then, it uses those numeric ids in its URLs to access the associated files/folders.  Problem being, there is no way to predict what number Ubooquity will assign to your main comic/book/mag/doc/etc page(s) - making dynamic navigation and breadcrumbs MUCH harder to achieve.

3. I'm pretty sure Ubooquity only displays the latest category.  So, Latest Comics would be the latest comics across both shared folders - making sliders for both on the home page pretty much impossible. 

Personally, I never even thought about adding multiple shared folders under a single category, but a can see the need.  I have over 50,000 comics alone.  So, I understand. :)

What would help tremendously is if Ubooquity treated multiple shared folders under a single category like an expansion of a single library of comics/books/mags/docs rather than treating them as separate folders.  Like when you expand your RAID array with a new drive rather than adding a new drive letter.  I mean, it makes sense since the latest and random comics/books/etc already do that. <shugs>

Thoughts?  I'm open.  You got a vision?  Spill it. LOL!


Hey Dennis, 

I created a new thread bc this one should be used for Ubooquity 3.1 to avoid confusion. :)

I'm going to reply to you there.

Thanks,

G

Database script?

I'm not in charge of that unless you're talking about my theme or theme editor.  The theme editor doesn't 'scan' anything.  It just looks for the themescript.js in the location you provide so you can edit it safely.  After you save the information and hit exit, the program stops in the background.

Ahhh, the joys of sharring! I see the problem.

I did not trap for multiple comic/book/magazine/document file bases. I keep all mine under 1 folder so...

I'll take a look and see what I can come up with to address that issue.

Just for you Dennis (since you asked so nicely).

Renegade Reader v1.04

The docs are included along with a nifty little themescript editor for Linux that I'll port to Windows when I get the chance.

Have fun and let me know what you think! ;)

I can confirm this.  Epubs will not close in any browser.

Was looking through my logs today and I found this:

0822 23:56:45 [qtp1943408246-64] ERROR com.ubooquity.d.b - Request not handled (should never happen, this is a bug !): /ubooquity/theme/common/latestcomics.png

20250822 23:56:45 [qtp1943408246-67] WARN o.e.jetty.io.AbstractConnection - Failed callback

java.io.IOException: Close SendCallback@f79f443[PENDING][i=null,cb=null] in state PENDING

at org.eclipse.jetty.util.IteratingCallback.close(IteratingCallback.java:458)

at org.eclipse.jetty.server.HttpConnection.onClose(HttpConnection.java:551)

at org.eclipse.jetty.io.SelectorManager.connectionClosed(SelectorManager.java:330)

at org.eclipse.jetty.io.ManagedSelector$DestroyEndPoint.run(ManagedSelector.java:1113)

at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:969)

at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1194)

at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1149)

at java.base/java.lang.Thread.run(Unknown Source)

The file is there and displays correctly in my theme.  <shrugs>

No.  You answered my question. :)

Mustache has a "content delivery network" (CDN) that, basically, allowed me to use mustache.render("template id") to create my own mustache tags as well as port some of Ubooquity's mustache variables.

Like this:

This is my breadcrumb rendering: 

function renderBreadcrumbs() { 

  const breadcrumbs = JSON.parse(sessionStorage.getItem('breadcrumbs')) || [];

  const breadcrumbNav = document.querySelector('.breadcrumb'); 

  if (!breadcrumbNav) { console.error("Breadcrumb navigation container not found."); 

    return; 

  } 

  breadcrumbNav.innerHTML = ''; 

  const template = document.getElementById('breadcrumb-template').innerHTML;   

  breadcrumbNav.innerHTML = breadcrumbs.map(breadcrumb => { return Mustache.render(template, { breadcrumbUrl: breadcrumb.url, breadcrumbTitle: formatAuthorName(breadcrumb.title) }); }).join('');

  }

This where I loaded the mustache CDN so that the above mustache.render() works:

function loadMustache(callback) { 

  if (typeof Mustache === 'undefined') { 

    const script = document.createElement("script"); 

    script.src = "https://cdn.jsdelivr.net/npm/mustache@4.2.0/mustache.min.js"; 

    script.onload = callback;

    script.onerror = () => console.error("Failed to load Mustache.js.");

    document.head.appendChild(script);

    } else {

        callback(); } 

    }

What I was wondering is, if Ubooquity contained a JMustache CDN so theme creators could easily create their own mustache variables or pass Ubooquity's mustache variables where they aren't normally available (like I did with the RAW files section to create an audio book section)?  In other words, I wanted to know if I could actually use mustache.compile() and mustache.render() in my themescript as well as the predefined variables?  And I beleive the answer was "no".


If I am correct and the answer is "no".   Would you consider looking into adding a mustache CDN internally to Ubooquity in the future or do you think it would cause more headaches than it's worth?




Another question:  I've been trying to get a reverse proxy to work with Ubooquity.  However, it seems that no matter what I do with the NAS reverse proxy service or Nginx, itself.  Weirdly, it can't find tools.js, themescript.js, or sha-256.min (which is preventing java from executing). 

Course, this could just be that I'm missing something obvious...  Any help anyone?