changeset 1489:02e055d9b84e

digicat about button works now.
author robcast
date Sat, 27 Feb 2016 21:07:25 +0100
parents 49a5b1e73098
children e469a6e04b64
files webapp/src/main/webapp/jquery/jquery.digicat.js
diffstat 1 files changed, 67 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/webapp/src/main/webapp/jquery/jquery.digicat.js	Fri Feb 26 18:57:43 2016 +0100
+++ b/webapp/src/main/webapp/jquery/jquery.digicat.js	Sat Feb 27 21:07:25 2016 +0100
@@ -223,6 +223,42 @@
             redisplay(data);
         },
 
+        /** show the 'about' window
+         * 
+         * @param data
+         */
+        about : function(data) {
+            //FIXME: highlightButtons(data, 'about', on);
+            var $elem = data.$elem;
+            var settings = data.settings;
+            var cssPrefix = settings.cssPrefix;
+            var aboutSelector = '#'+cssPrefix+'about';
+            if (isOnScreen(data, aboutSelector)) {
+                $(aboutSelector).fadeToggle();
+                return;
+            }
+            // make relative logoUrl absolute
+            var logoUrl = settings.logoUrl;
+            if (logoUrl.charAt(0) !== '/' && logoUrl.substring(0,3) !== 'http') {
+                logoUrl = settings.digilibBaseUrl + '/' + logoUrl;
+            }
+            var html = '\
+                <div id="'+cssPrefix+'about" class="'+cssPrefix+'about" style="display:none">\
+                    <p>Digilib Image Viewer</p>\
+                    <a href="'+settings.homeUrl+'">\
+                        <img class="'+settings.cssPrefix+'logo" title="Digilib" src="'+logoUrl+'"/>\
+                    </a>\
+                    <p>Version: '+settings.version+'</p>\
+                </div>';
+            var $about = $(html);
+            $about.appendTo($elem);
+            $about.on('click.digilib', function () {
+                withdraw($about);
+                });
+            $about.fadeIn();
+            centerOnScreen(data, $about);
+        },
+
     };
 
     /**
@@ -309,6 +345,13 @@
         return geom.size(imgW, imgH);
     };
 
+    /** 
+     * returns a rectangle.with the fullscreen dimensions 
+     */
+    var getFullscreenRect = function (data) {
+        return geom.rectangle(getFullscreenImgSize(data));
+    };
+
     /**
      * return a query string from key names from a parameter hash (ignores keys
      * if the same value is in defaults)
@@ -536,6 +579,30 @@
         return typeof value === 'number' && isFinite(value);
     };
 
+    /** center an item on the visible screen rect
+     */
+     var centerOnScreen = function (data, $div) {
+         if ($div == null) return;
+         var r = geom.rectangle($div);
+         var s = getFullscreenRect(data);
+         r.setCenter(s.getCenter());
+         r.getPosition().adjustDiv($div);
+     };
+
+     /** find an element in digilib $elem
+     */
+     var find = function (data, selector) {
+         var $obj = data.$elem.find(selector);
+         return ($obj.length > 0) ? $obj : null;
+     };
+
+    /** does element exist in digilib?
+     */
+     var isOnScreen = function (data, selector) {
+         var $obj = find(data, selector);
+         return ($obj != null);
+     };
+
     /**
      * functions to export to plugins.
      */