egroupware/etemplate/js/et2_widget_image.js
Ralf Becker 499726cb23 using egw.image(), thought there are some problems:
- src attribute get never translated: fixed
- label is in etemplate not the alt attribute, it is a title / tooltip (probably ok as alt too)
- egw.image should be called with appname part of template
- if image is not found, etemplate should render an empty widget, not a broken one
2011-08-31 06:29:51 +00:00

73 lines
1.5 KiB
JavaScript

/**
* eGroupWare eTemplate2 - JS Description object
*
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @package etemplate
* @subpackage api
* @link http://www.egroupware.org
* @author Nathan Gray
* @copyright Nathan Gray 2011
* @version $Id$
*/
"use strict";
/*egw:uses
jquery.jquery;
et2_core_baseWidget;
*/
/**
* Class which implements the "image" XET-Tag
*/
var et2_image = et2_baseWidget.extend({
attributes: {
"src": {
"name": "Image",
"type": "string",
"description": "Displayed image"
},
"link": {
},
"link_target":{
},
"imagemap":{
},
"link_size":{
}
},
legacyOptions: ["link", "link_target", "imagemap", "link_size"],
init: function() {
this._super.apply(this, arguments);
// Create the image or a/image tag
this.image = this.node = $j(document.createElement("img"));
if(this.options.link)
{
this.node = $j(document.createElement("a"));
this.image.appendTo(this.node);
}
this.setDOMNode(this.node[0]);
},
set_label: function(_value) {
if(_value == this.options.label) return;
this.options.label = _value;
// label is NOT the alt attribute in eTemplate, but the title/tooltip
this.image.attr("alt", _value);
},
set_src: function(_value) {
this.options.src = _value;
// using current app (default) is not exactly right, it should be the app of the template, eg. "addressbook" for "addressbook.edit"
this.image.attr("src", egw.image(_value, egw_appName) || _value);
}
});
et2_register_widget(et2_image, ["image"]);