Improve renderer
[tine20] / tine20 / Addressbook / js / ImageRenderer.js
1 /*
2  * Tine 2.0
3  *
4  * @license     http://www.gnu.org/licenses/agpl.html AGPL Version 3
5  * @author      Michael Spahn <m.spahn@metaways.de>
6  * @copyright   Copyright (c) 2017 Metaways Infosystems GmbH (http://www.metaways.de)
7  */
8 Ext.ns('Tine.Addressbook');
9
10 /**
11  * Render given image
12  *
13  * @namespace   Tine.Addressbook
14  * @author      Michael Spahn <m.spahn@metaways.de>
15  * @singleton
16  */
17 Tine.Addressbook.imageRenderer = function (jpegphoto, metadata, record) {
18     function getImageUrl(url, width, height, contact) {
19         var mtime = contact.last_modified_time || contact.creation_time;
20         if (url.match(/&/)) {
21             url = Ext.ux.util.ImageURL.prototype.parseURL(url);
22             url.width = width;
23             url.height = height;
24             url.ratiomode = 0;
25             url.mtime = Ext.isDate(mtime) ? mtime.getTime() : new Date().getTime();
26         }
27         return url;
28     }
29
30     var url = getImageUrl(jpegphoto, 90, 113, record.data);
31
32     return '<img src="' + url + '" />';
33 };
34
35 Tine.widgets.grid.RendererManager.register('Addressbook', 'Addressbook_Model_Contact', 'image', Tine.Addressbook.imageRenderer, 'displayPanel');