web/data/cubicweb.image.js
author Sylvain Thénault <sylvain.thenault@logilab.fr>
Thu, 22 Sep 2011 16:12:23 +0200
changeset 7827 9bbf83f68bcc
parent 6215 759cf097f5aa
permissions -rw-r--r--
[entity] upgrade fetch_[unrelated_]order to benefit from changes introduced in 3.14 (closes #1942758) of rql generation parts of the ORM now based on rql syntax tree. This allows more powerful and flexible sort control by giving them the syntax tree instead of manipulating string. Also: * prefix new methods by 'cw_' * fix cases that currently crash in 3.14 due to the refactoring

jQuery.fn.autoResize = function() {
    // remove enforced with / height (by CSS and/or HTML attributes)
    this.css("width", "auto").css("height", "auto");
    this.removeAttr("width").removeAttr("height"); // Remove
    // compute image size / max allowed size to fit screen
    var imgHSize = this.width();
    var maxHSize = $(window).width() - ($(document).width() - imgHSize);
    var imgVSize = this.height();
    // we don't mind if content in [content]footer moved out of the screen
    var maxVSize = $(window).height() - ($(document).height() - imgVSize) + $('#footer').height() + $('#contentfooter').height();
    if (maxHSize > 0 && maxVSize > 0) {
        // if image don't fit screen, set width or height so that
        // browser keep img ratio, ensuring the other dimension will
        // also fit the screen
        if (imgHSize > maxHSize && ((imgVSize / imgHSize) * maxHSize) <= maxVSize) {
            this.css("width", maxHSize);
        } else if (imgVSize > maxVSize && ((imgHSize / imgVSize) * maxVSize) <= maxHSize) {
            this.css("height", maxVSize);
        }
        else {
            // image already fit in screen, don't scale it up
        }
    } else {
        // can't fit image in, don't do anything
    }
};


$(document).ready(function() {
        $("img.contentimage").load(function() {$(this).autoResize()});
});