comparison webapp/src/main/webapp/jquery/jquery.digilib.js @ 1052:0d2491acfe70

simplify 'about' div
author hertzhaft
date Mon, 26 Mar 2012 22:22:08 +0200
parents 4f17420392a9
children 86ba65b86d52
comparison
equal deleted inserted replaced
1051:ad769aaea759 1052:0d2491acfe70
79 'suppressParamNames' : null, 79 'suppressParamNames' : null,
80 // mode of operation: 80 // mode of operation:
81 // fullscreen = take parameters from page URL, keep state in page URL 81 // fullscreen = take parameters from page URL, keep state in page URL
82 // embedded = take parameters from Javascript options, keep state inside object 82 // embedded = take parameters from Javascript options, keep state inside object
83 'interactionMode' : 'fullscreen', 83 'interactionMode' : 'fullscreen',
84 // is the "about" window shown?
85 'isAboutDivVisible' : false,
86 // default size of preview image for drag-scroll (preferrably same as Bird's Eye View image) 84 // default size of preview image for drag-scroll (preferrably same as Bird's Eye View image)
87 'previewImgWidth' : 200, 85 'previewImgWidth' : 200,
88 'previewImgHeight' : 200, 86 'previewImgHeight' : 200,
89 // maximum width or height of preview background image for drag-scroll 87 // maximum width or height of preview background image for drag-scroll
90 'maxBgSize' : 10000, 88 'maxBgSize' : 10000,
238 if (data.scaleMode === 'pixel' || data.scaleMode === 'size') { 236 if (data.scaleMode === 'pixel' || data.scaleMode === 'size') {
239 loadImageInfo(data); // triggers "imageInfo" on completion 237 loadImageInfo(data); // triggers "imageInfo" on completion
240 } 238 }
241 // create HTML structure for scaler 239 // create HTML structure for scaler
242 setupScalerDiv(data); 240 setupScalerDiv(data);
243 // about window creation - TODO: could be deferred? restrict to only one item?
244 setupAboutDiv(data);
245 // send setup event 241 // send setup event
246 $(data).trigger('setup'); 242 $(data).trigger('setup');
247 }); 243 });
248 }, 244 },
249 245
259 data.digilib.remove(); 255 data.digilib.remove();
260 $elem.removeData('digilib'); 256 $elem.removeData('digilib');
261 }); 257 });
262 }, 258 },
263 259
264 /** show or hide the 'about' window 260 /** show the 'about' window
265 * 261 *
266 * @param data 262 * @param data
267 * @param show 263 */
268 */ 264 about : function(data) {
269 showAboutDiv : function(data, show) { 265 //FIXME: highlightButtons(data, 'about', on);
270 var on = showDiv(data.settings.isAboutDivVisible, data.$aboutDiv, show); 266 var $elem = data.$elem;
271 data.settings.isAboutDivVisible = on; 267 var settings = data.settings;
272 //FIXME: highlightButtons(data, 'help', on); 268 var cssPrefix = settings.cssPrefix;
269 var $about = $elem.find('#'+cssPrefix+'about');
270 if ($about.length > 0) return; // already onscreen
271 // make relative logoUrl absolute
272 var logoUrl = settings.logoUrl;
273 if (logoUrl.charAt(0) !== '/' && logoUrl.substring(0,3) !== 'http') {
274 logoUrl = settings.digilibBaseUrl + '/' + logoUrl;
275 }
276 var html = '\
277 <div id="'+cssPrefix+'about" class="'+cssPrefix+'about" style="display:none">\
278 <p>Digilib Image Viewer</p>\
279 <a href="'+settings.homeUrl+'">\
280 <img class="'+settings.cssPrefix+'logo" title="Digilib" src="'+logoUrl+'"/>\
281 </a>\
282 <p>Version: '+settings.version+'</p>\
283 </div>';
284 $about = $(html);
285 $about.appendTo($elem);
286 $about.on('click.digilib', function () {
287 withdraw($about);
288 });
289 $about.fadeIn();
290 centerOnScreen(data, $about);
273 }, 291 },
274 292
275 /** goto given page nr (+/-: relative) 293 /** goto given page nr (+/-: relative)
276 * 294 *
277 * @param data 295 * @param data
434 } 452 }
435 } 453 }
436 } else { 454 } else {
437 if (rgbm != null) data.settings.rgbm = rgbm; 455 if (rgbm != null) data.settings.rgbm = rgbm;
438 if (rgba != null) data.settings.rgba = rgba; 456 if (rgba != null) data.settings.rgba = rgba;
439 redisplay(data); 457 redisplay(data);
440 } 458 }
441 }, 459 },
442 460
443 /** reset image parameters to defaults 461 /** reset image parameters to defaults
444 * TODO: improve this! 462 * TODO: improve this!
1035 $img.load(scalerImgLoadedHandler(data)); 1053 $img.load(scalerImgLoadedHandler(data));
1036 $img.error(function () {console.error("error loading scaler image");}); 1054 $img.error(function () {console.error("error loading scaler image");});
1037 $img.attr('src', scalerUrl); 1055 $img.attr('src', scalerUrl);
1038 }; 1056 };
1039 1057
1040 /** creates HTML structure for the about view in elem 1058 /** shows some div (toggle visibility if show is null)
1041 *
1042 */
1043 var setupAboutDiv = function (data) {
1044 var $elem = data.$elem;
1045 var settings = data.settings;
1046 var $aboutDiv = $('<div class="'+settings.cssPrefix+'about" style="display:none"/>');
1047 var $header = $('<p>Digilib Image Viewer</p>');
1048 var $link = $('<a/>');
1049 var $logo = $('<img class="'+settings.cssPrefix+'logo" title="digilib"/>');
1050 var $content = $('<p/>');
1051 $elem.append($aboutDiv);
1052 $aboutDiv.append($header);
1053 $aboutDiv.append($link);
1054 $aboutDiv.append($content);
1055 $link.append($logo);
1056 logoUrl = settings.logoUrl;
1057 // make relative logoUrl absolute
1058 if (logoUrl.charAt(0) !== '/' && logoUrl.substring(0,3) !== 'http') {
1059 logoUrl = settings.digilibBaseUrl + '/' + logoUrl;
1060 }
1061 $logo.attr('src', logoUrl);
1062 $link.attr('href', settings.homeUrl);
1063 $content.text('Version: ' + settings.version);
1064 data.$aboutDiv = $aboutDiv;
1065 // click hides
1066 $aboutDiv.on('click.digilib', function () {
1067 actions['showAboutDiv'](data, false);
1068 });
1069 };
1070
1071 /** shows some window e.g. 'about' (toggle visibility if show is null)
1072 * 1059 *
1073 */ 1060 */
1074 var showDiv = function (isVisible, $div, show) { 1061 var showDiv = function (isVisible, $div, show) {
1075 if (show == null) { 1062 if (show == null) {
1076 // toggle visibility 1063 // toggle visibility