2,026

(1 replies, posted in Juicebox-Pro Support)

I see the problem in iOS 9.3.2 but, strangely enough, not in iOS 6.1.6 (where the gallery seems to display and function fine).
However, I have been unable to replicate the problem in a test gallery of my own.
It looks like the problem might somehow be connected to your own web page.
Unfortunately, it's a rather complex web page to try to debug (the gallery seems to be nested within many parent containers) and some trial and error might be required to try to track down the cause of the problem.
The first thing I would try is to temporarily change your Drupal theme to see if this makes a difference.
This might confirm if there is a CSS conflict between your theme and Juicebox.
Also, as you are using the Juicebox module for Drupal, you might like to post over in the Drupal forum, too.
The author of the module might have encountered this issue before or perhaps other users of your current theme have experienced similar issues with other modules.
I hope this points you in the right direction.

2,027

(11 replies, posted in Juicebox-Lite Support)

A couple of things I notice about the code you posted.

(1) In the baseUrl code, many of your strings are enclosed in ticks/backticks instead of regular single (or double) quotes.
Change all instances of ’ and ‘ to either ' or ".

(2) In the iframe code, you have a stray double-quote before the height attribute in the second iframe.

Hopefully making these changes will help.

I expect the baseUrl code may not work (due to Google Drive restrictions) but removing the stray double-quote should hopefully resolve your iframe problem.

That's great! Thank you for letting me know.

I notice that your gallery uses Juicebox-Pro v1.3.2.

Flickr made a change to their API back in 2014 and we updated Juicebox to handle this change in v1.4.2.
Please see this Juicebox blog entry for further information (and the Version History for a full list of changes between versions).

All you need to do to get your gallery up and running again is to upgrade it from v1.3.2 to the current version v1.5.0.
Upgrades are free within the same major version number so you can download the current version for free using the download link from your purchase email (the link always points to the latest version rather than the version you purchased).

Just swap your gallery's current 'jbcore' folder for the version from the Juicebox-Pro v1.5.0 zip package ('juicebox_pro_1.5.0/web/jbcore/').

Full instructions for downloading the latest version and upgrading existing galleries can be found on the Upgrading Juicebox support page.

2,030

(12 replies, posted in Juicebox-Pro Support)

@fkelly12054

When you open an existing gallery in JuiceboxBuilder-Pro, the application reads the image titles and captions from the 'config.xml' file and populates the title and caption fields on the 'Images' tab with them.
This happens regardless of the source of the original title and caption text (whether it was IPTC data or custom text typed in by the user).

If you want to refresh the titles and captions (for example with updated IPTC data), just go to 'Images -> Titles -> Use IPTC Title' and 'Images -> Captions -> Use IPTC Caption' from the drop-down menu at the top. (They will already be selected if they were the original sources but the act of selecting them again will refresh the titles and captions.)

I guess there's always the chance that someone has used IPTC data for the titles or captions but has since modified a few manually in the JuiceboxBuilder-Pro interface. If JuiceboxBuilder-Pro overwrote the titles and captions when an existing gallery was opened (by automatically using current IPTC data), such modifications would be lost.
It's easy enough to refresh the titles and captions via the drop-down menu if necessary.

Please feel free to post suggestions for future versions in the Feature Requests forum thread.
This keeps all the ideas together and ensures that they are not overlooked by the developers.
I do not know the likelihood of suggestions being implemented but this is certainly the best place for all ideas.
Thank you.

2,031

(3 replies, posted in Juicebox-Pro Support)

You're welcome.

2,032

(3 replies, posted in Juicebox-Pro Support)

I thought it sounded vaguely familiar!
I'm glad you've got it working again.
Thank you for letting me know.

2,033

(3 replies, posted in Juicebox-Pro Support)

It looks like the 'juicebox.js' JavaScript file is not being loaded into the <head> section of all your web pages.
WP-Juicebox detects whether or not a Juicebox gallery is present on a page and loads the the 'juicebox.js' file only if necessary.
I'm not sure why this is not working within your own WordPress site (maybe something to do with your gallery shortcodes or the fact that you seem to be embedding galleries into areas such as sidebar widgets) but you can load the 'juicebox.js' file into all your pages by opening the plugin's 'wp-juicebox.php' file in a plain text editor and changing line 30 from:

add_action('the_posts', array(&$this, 'shortcode_check'));

... to:

add_action('wp_enqueue_scripts', array(&$this, 'add_scripts_wp_core'));

Please note that the line number above refers to the current version of WP-Juicebox (v1.5.0) which can be downloaded from the plugin's support page here.

2,034

(1 replies, posted in Juicebox-Pro Support)

Juicebox uses one set of configuration options for both normal and fullscreen modes and, unfortunately, it is not possible to change configuration option values once a gallery has been loaded.
If you want to change a configuration option value, you would need to reload the gallery afterwards and a gallery cannot be loaded in fullscreen mode (at least not easily and without problems).

The best I can suggest is that you post your suggestion in the Feature Requests forum thread.
This keeps all the ideas together and ensures that they are not overloooked.

Incidentally, the correct syntax for running custom JavaScript when a gallery has been expanded (or closed) is as follows:

jb.onExpand = function(expanded) {
    if (expanded) {
        // Gallery has been expanded
        // Custom JavaScript goes here
    }
    if (!expanded) {
        // Gallery has been closed
        // Custom JavaScript goes here
    };
}

2,035

(3 replies, posted in Juicebox-Pro Support)

You're welcome.

2,036

(3 replies, posted in Juicebox-Pro Support)

Try setting the border-radius property on div.jb-go-back.

<style type="text/css">
    /* Back Button */
    div.jb-go-back {
        -moz-border-radius: 0px !important;
        -webkit-border-radius: 0px !important;
        border-radius: 0px !important;
    }
</style>

Hopefully this will work for you.

I'm glad that solved your problem.
Thank you for letting me know.

Please try the following:

(1) Uninstall JuiceboxBuilder-Pro.

(2) Manually delete the following folder from your hard drive:
/Users/your_username/Library/Application Support/Adobe/AIR/ELS/JuiceboxBuilder-Pro

(3) Search your hard drive for the term 'JuiceboxBuilder-Pro' and delete all entries found.

(4) Follow the procedure above (Steps #1 - #3) for JuiceboxBuilder-Lite, too.
JuiceboxBuilder-Lite and JuiceboxBuilder-Pro can both be installed and run side by side on the same computer but, being that you are experiencing problems, it might be wise to completely clear your system of all JuiceboxBuilder files before reinstalling JuiceboxBuilder-Pro.

(5) Reinstall JuiceboxBuilder-Pro following the instructions here.

Hopefully this will help.

Also, please let me know what operating system version you are using.
Another user has reported a similar issue (in this forum thread) under OS X 10.11.5 but it turned out that his Mac was behaving strangely in other ways, too (such as not being able to boot into safe mode).

2,039

(5 replies, posted in Juicebox-Pro Support)

You're welcome!
I'm glad you're making progress.

You're welcome.

The 'of' is used in the thumbnail paging text (when showPagingText="TRUE" or showSmallPagingText="TRUE"), for example "2 of 7" (referring to the number of thumbnail pages), as can be seen in this demo gallery.

2,042

(5 replies, posted in Juicebox-Pro Support)

If you are trying to incorporate your own original functionality (switching between different galleries with different heights) and functionality from your forum thread here (to allow different thumbnails configurations depending on the width of the browser window) and also this functionality (changing the height of the galleries depending on the height of the browser window), then things are starting to get really complicated. There is the added complication that setGallerySize() accepts only fixed pixel values and does not accept percentages so you might want to reload the selected gallery with new dimensions (rather than use setGallerySize()) if you want to retain gallery widths of 100%.

Assuming you want both your galleries to be the same size as each other (which is not currently the case) but want their heights to change when a threshold height is crossed, then try replacing:

               <script>
    $(document).ready(function() {
        //load gallery 1
        loadGallery('colStonewareBrickSets/', '650px');
        //initialize top buttons
        $("#button-1").on("click", function(){loadGallery('colStonewareBrick/', '500px');});
        $("#button-2").on("click", function(){loadGallery('colStonewareBrickSets/', '650px');});
    });

    function loadGallery(base, height) {
        new juicebox({
            baseUrl: base,
            containerId: 'juicebox-container',
            backgroundColor: 'fff',
            galleryWidth: '100%',
            galleryHeight: height
        });
    }
          </script>

... with:

<script type="text/javascript">

    var jb;
    var a, b, c; // maxThumbColumbs, maxThumbRows, thumbsPosition
    var y = 'colStonewareBrickSets/'; // Initial baseUrl
    var z; // galleryHeight
    var galleryHeightLarge = '800';
    var galleryHeightSmall = '400';
    var size;
    var thresholdHeight = 480;
    var thresholdWidth = 700;
    var tracker = false;

    function loadGallery(a, b, c, y, z) {
        jb = new juicebox({
            containerId: "juicebox-container",
            baseUrl: y,
            galleryHeight: z,
            galleryWidth: '100%',
            maxThumbColumns: a,
            maxThumbRows: b,
            thumbsPosition: c
        });
        tracker = true;
    }

    function initialLoad() {
        var windowWidth = window.innerWidth ? window.innerWidth : $(window).width();
        var windowHeight = window.inneHeight ? window.inneHeight : $(window).height();
        if (windowWidth < thresholdWidth) {
            a = '10'; // maxThumbRows
            b = '1'; // maxThumbColumns
            c = 'BOTTOM'; // thumbsPosition
        } else {
            a = '3'; // maxThumbRows
            b = '3'; // maxThumbColumns
            c = 'LEFT'; // thumbsPosition
        }
        if (windowHeight < thresholdHeight) {
            size = "SMALL";
            z = galleryHeightSmall; // galleryHeight
        } else {
            size = "LARGE";
            z = galleryHeightLarge; // galleryHeight
        }
        loadGallery(a, b, c, y, z);
    }

    function checkSize() {
        var windowWidth = window.innerWidth ? window.innerWidth : $(window).width();
        var windowHeight = window.inneHeight ? window.inneHeight : $(window).height();
        if (windowWidth < thresholdWidth && c === 'LEFT') {
            a = '10'; // maxThumbRows
            b = '1'; // maxThumbColumns
            c = 'BOTTOM'; // thumbsPosition
            loadGallery(a, b, c, y, z);
        }
        if (windowWidth >= thresholdWidth && c === 'BOTTOM') {
            a = '3'; // maxThumbRows
            b = '3'; // maxThumbColumns
            c = 'LEFT'; // thumbsPosition
            loadGallery(a, b, c, y, z);
        }
        if (windowHeight < thresholdHeight && size === 'LARGE') {
            z = galleryHeightSmall;
            size = 'SMALL';
            loadGallery(a, b, c, y, z);
        }
        if (windowHeight >= thresholdHeight && size === 'SMALL') {
            z = galleryHeightLarge;
            size = 'LARGE';
            loadGallery(a, b, c, y, z);
        }
    }

    $(document).ready(function() {
        initialLoad();
        $(window).resize(checkSize);
        $("#button-1").click(function() {
            y = 'colStonewareBrick/'; // baseUrl
            loadGallery(a, b, c, y, z);
        });
        $("#button-2").click(function() {
            y = 'colStonewareBrickSets/'; // baseUrl
            loadGallery(a, b, c, y, z);
        });
    });

</script>

If you want to do things that Juicebox-Pro was not designed to do (and perhaps make use of the Juicebox-Pro API for certain things, too), then I would certainly recommend taking a look at learning JavaScript. It's really the only way to achieve the things you are asking.
There's a good guide to JavaScript on the Mozilla Developer Network here.
I hope this points you in the right direction.

Incidentally, you could ensure that your galleries are responsive (please see this forum post for details) but this would mean that you would essentially have no control over the shape or size of your gallery (it would be entirely dependent on the shape and size of the user's browser window) and there may very well be gaps above and below (or to the left and right of) the main images in the gallery.
Having two fixed heights (like in the code above) which work well for the most popular browser window shapes and sizes of your target audience might be the best compromise.

2,043

(12 replies, posted in Juicebox-Pro Support)

You are already using a JavaScript function to load a specific gallery (depending on which HTML button is clicked) passing parameters for the baseUrl and galleryHeight.
If you were using just the regular embedding code (found here), then you could simply swap the entire embedding code for my extended version above.
However, incorporating my suggested solution into your existing web page will be a little more complicated as you will need to keep track of which gallery should be reloaded (and its height) when the threshold width is crossed.
Try replacing:

               <script>
    $(document).ready(function() {
        //load gallery 1
        loadGallery('colStonewareBrickSets/', '650px');
        //initialize top buttons
        $("#button-1").on("click", function(){loadGallery('colStonewareBrick/', '500px');});
        $("#button-2").on("click", function(){loadGallery('colStonewareBrickSets/', '650px');});
    });

    function loadGallery(base, height) {
        new juicebox({
            baseUrl: base,
            containerId: 'juicebox-container',
            backgroundColor: 'fff',
            galleryWidth: '100%',
            galleryHeight: height
        });
    }
          </script>

... with:

<script type="text/javascript">

    var a, b, c;
    var y = 'colStonewareBrickSets/'; // Initial baseUrl
    var z = '650'; // Initial galleryHeight
    var thresholdWidth = 700;
    var tracker = false;

    function loadGallery(a, b, c, y, z) {
        new juicebox({
            containerId: "juicebox-container",
            baseUrl: y,
            galleryHeight: z,
            maxThumbColumns: a,
            maxThumbRows: b,
            thumbsPosition: c
        });
        tracker = true;
    }

    function thumbsStatus() {
        var windowWidth = window.innerWidth ? window.innerWidth : $(window).width();
        if (windowWidth < thresholdWidth && (c === 'LEFT' || tracker === false)) {
            a = '10'; // maxThumbRows
            b = '1'; // maxThumbColumns
            c = 'BOTTOM'; // thumbsPosition
            loadGallery(a, b, c, y, z);
        }
        if (windowWidth >= thresholdWidth && (c === 'BOTTOM' || tracker === false)) {
            a = '3'; // maxThumbRows
            b = '3'; // maxThumbColumns
            c = 'LEFT'; // thumbsPosition
            loadGallery(a, b, c, y, z);
        }
    }

    $(document).ready(function() {
        thumbsStatus();
        $(window).resize(thumbsStatus);
        $("#button-1").click(function() {
            y = 'colStonewareBrick/';
            z = '500';
            loadGallery(a, b, c, y, z);
        });
        $("#button-2").click(function() {
            y = 'colStonewareBrickSets/';
            z = '650';
            loadGallery(a, b, c, y, z);
        });
    });

</script>

Hopefully this will help.

The languageList for Juicebox-Pro v1.5.0 is as follows:

"Show Thumbnails|Hide Thumbnails|Expand Gallery|Close Gallery|Open Image in New Window|Images|Next Image|Previous Image|Play Audio|Pause Audio|Show Information|Hide Information|Start AutoPlay|Stop AutoPlay|AutoPlay ON|AutoPlay OFF|Go Back|Buy this Image|Share on Facebook|Share on Twitter|Share on Google+|Share on Pinterest|Share on Tumblr|of|Send Email|Download"

The two new entries at the end "Send Email" and "Download" refer to the Email Button (showEmailButton) and the Download Button (showDownloadButton) respectively.

The International Gallery Text support section has now been updated to reflect this change.

Please note that, unfortunately,  there is currently a problem with the "Download" entry (which always uses the default text of "Download").
A bug report has been logged with the developers and it should hopefully be fixed in the next version.
Apologies for any inconvenience.

2,045

(5 replies, posted in Juicebox-Pro Support)

Under 480px and especially phones (cells) the space above and below the main image is unacceptable large.

Please see this FAQ:
My Juicebox gallery shows too much space above or below the main image, how do I fix this?

If you want to have two different sets of gallery dimensions (depending on the height of the user's browser window), then you could use something like the following.

<script type="text/javascript" src="jbcore/juicebox.js"></script>
<script type="text/javascript">

    var galleryHeightLarge = 800;
    var galleryHeightSmall = 400;
    var galleryWidthLarge = 600;
    var galleryWidthSmall = 300;
    var size;
    var thresholdHeight = 480;
    var tracker = false;

    function changeSize(a, b) {
        window.setTimeout(function() {
            jb.setGallerySize(a, b);
        }, 200);
        tracker = true;
    }

    function checkSize() {
        var windowHeight = window.inneHeight ? window.inneHeight : $(window).height();
        if (windowHeight < thresholdHeight && (size === 'LARGE' || tracker === false)) {
            changeSize(galleryWidthSmall, galleryHeightSmall);
            size = 'SMALL';
        }
        if (windowHeight >= thresholdHeight && (size === 'SMALL' || tracker === false)) {
            changeSize(galleryWidthLarge, galleryHeightLarge);
            size = 'LARGE';
        }
    }

    var jb = new juicebox({
        containerId: "juicebox-container"
    });

    $(document).ready(function() {
        checkSize();
        $(window).resize(checkSize);
    });

</script>

This code checks the browser window's height, initially displays the gallery as appropriate and if the browser window's height changes and crosses a specified threshold height, the gallery's dimensions will change (using the Juicebox-Pro API method setGallerySize()).
Juicebox-Pro was not designed with this in mind (two different sets of gallery dimensions) so a short delay (the setTimout() value of 200ms) is required before calling setGallerySize() to ensure that this works OK.

I hope this helps.

2,046

(12 replies, posted in Juicebox-Pro Support)

There are no configuration options that could be used to achieve this but it could be done with JavaScript as follows.

<script type="text/javascript" src="jbcore/juicebox.js"></script>
<script type="text/javascript">

    var a, b, c;
    var thresholdWidth = 700;
    var tracker = false;

    function loadGallery(a, b, c) {
        new juicebox({
            containerId: "juicebox-container",
            maxThumbColumns: a,
            maxThumbRows: b,
            thumbsPosition: c
        });
        tracker = true;
    }

    function thumbsStatus() {
        var windowWidth = window.innerWidth ? window.innerWidth : $(window).width();
        if (windowWidth < thresholdWidth && (c === 'LEFT' || tracker === false)) {
            a = '10'; // maxThumbRows
            b = '1'; // maxThumbColumns
            c = 'BOTTOM'; // thumbsPosition
            loadGallery(a, b, c);
        }
        if (windowWidth >= thresholdWidth && (c === 'BOTTOM' || tracker === false)) {
            a = '3'; // maxThumbRows
            b = '3'; // maxThumbColumns
            c = 'LEFT'; // thumbsPosition
            loadGallery(a, b, c);
        }
    }

    $(document).ready(function() {
        thumbsStatus();
        $(window).resize(thumbsStatus);
    });

</script>

I hope this helps.

2,047

(5 replies, posted in Juicebox-Pro Support)

Almost, I'd like to have Juicebox build a multi-size image gallery to efficiently deliver image resources appropriately sized for the browsing device (ie. utilise the small, medium and large image options), but also have very large, web-unfriendly, source images easily available for download.

This can still be achieved with my suggestion above. Create a Multi-Size Image gallery with JuiceboxBuilder-Pro, copy your source images into a folder named 'originals', place it in the gallery folder and edit the 'config.xml' file to replace the linkURL paths.

... Juicebox ignores the CRs in my IPTC data. What html would be best to replace the CRs with - <br>?

Yes, <br> would be best.
I've notified the developers of this issue (JuiceboxBuilder ignores line feeds/carriage returns in IPTC data) and it has been logged as a bug so hopefully it will be fixed in a future version.
Thank you for pointing it out.

Is there a MacOS text editor (cheap is preferable, free would be better!) that allows you to make droplets, or some other cunning automated solution?

I'm a PC user so it might be better if I let the Mac users amongst us recommend one.

2,048

(5 replies, posted in Juicebox-Pro Support)

The order of preference that the Download Button uses is as follows.
It will use the linkURL if it exists. If there is no linkURL, then it will use the largeImageUrl. If there is no largeImageUrl, it will use the imageUrl.
The linkURL is first in preference to allow custom files associated with the images (such as .pdf or .zip files) to be downloaded instead of the images themselves.

...but anyone with a larger resolution display will have to load a whopping 4000-6000px 'large' image in the gallery.

That's really the concept behind a Multi-Size Image gallery (that larger images are displayed on larger resolution screens).

It sounds like you're looking to have a single-size image gallery but also have larger images available for download.
Assuming you are allowing JuicboxBuilder to resize your source images and want to use the source images for the Download Button, then this could be achieved as follows.

(1) Create a regular single-size image gallery with JuiceboxBuilder, allowing the application to use the same values for the imageURLs and the linkURLs (which is the default behavior).

(2) Copy your source images (the ones you fed to JuiceboxBuilder to create the gallery) into a new empty folder named 'originals' and place this folder into your gallery folder (alongside the 'images' folder).

(3) Edit your gallery's 'config.xml' file and change all instances of linkURL="images/ to linkURL="originals/.
If you use a text editor such as Notepad++ (free), you can change all instances in a single global search and replace action. It should take less than a minute to edit the file from start to finish.

I hope this helps.

If you are looking to do something with Juicebox that is not currently possible, please feel free to post your ideas in the Feature Requests forum thread.
This keeps all the ideas together and ensures that they are not overlooked by the developers.
Thank you.

... it would throw up an error complaining images must not be bigger than 4096px - this occurred on images smaller than this,

Unfortunately, there is a known bug in JuiceboxBuilder whereby an error can be generated if the resize image dimensions are too large.
The exact dimensions can vary depending on the source images but, under certain circumstances, JuiceboxBuilder can fail (displaying the error message you quoted) if 'Max Width' and 'Max Height' are both greater than 2364.
However, the developers are aware of this issue and are currently investigating it.
Hopefully it will be fixed in a future version.

2,049

(1 replies, posted in Juicebox-Pro Support)

Yes. Juicebox comes bundled with its own version of jQuery (inside the 'juicebox.js' JavaScript file) which it uses internally.
This avoids the need to manually include a separate version of jQuery in the gallery's web page.
However, you can still load jQuery into a web page containing a Juicebox gallery for use elsewhere on the page.
Loading any version of jQuery (including v3.0.0) into a gallery's web page should have no effect on the Juicebox gallery itself.

2,050

(1 replies, posted in Juicebox-Pro Support)

The password protection functionality requires server-side code (PHP) and works only when the gallery has been uploaded to a web sever.
Please see the Password Protection support section for details.