assign default (background-)images to buttons based on their id

This commit is contained in:
Ralf Becker 2014-01-31 11:24:43 +00:00
parent 7c28c6c016
commit 18154600ea

View File

@ -60,16 +60,36 @@ var et2_button = et2_baseWidget.extend([et2_IInput, et2_IDetachedDOM],
name: "Add image in front of text", name: "Add image in front of text",
type: "boolean", type: "boolean",
description: "Adds image in front of text instead of just using an image with text as tooltip", description: "Adds image in front of text instead of just using an image with text as tooltip",
default: false default: et2_no_init // to leave it undefined, if not defined, so background-image is assigned by default
}, },
// No such thing as a required button // No such thing as a required button
"needed": { "needed": {
"ignore": true, "ignore": true
} }
}, },
legacyOptions: ["image", "ro_image"], legacyOptions: ["image", "ro_image"],
/**
* images to be used as background-image, if none is explicitly applied and id matches given regular expression
*/
default_background_images: {
save: /save(&|\[|$)/,
apply: /apply(&|\[|$)/,
cancel: /cancel(&|\[|$)/,
delete: /delete(&|\[|$)/,
edit: /edit(&|\[|$)/,
next: /next(&|\[|$)/,
finish: /cancel(&|\[|$)/,
previous: /delete(&|\[|$)/,
copy: /copy(&|\[|$)/,
more: /cancel(&|\[|$)/,
check: /check(&|\[|$)/,
ok: /ok(&|\[|$)/,
close: /close(&|\[|$)/,
add: /(add(&|\[|$)|create)/ // customfields use create*
},
/** /**
* Constructor * Constructor
* *
@ -98,6 +118,31 @@ var et2_button = et2_baseWidget.extend([et2_IInput, et2_IDetachedDOM],
} }
}, },
/**
* Apply the "modifications" to the element and translate attributes marked
* with "translate: true"
*
* Reimplemented here to assign default background-images to buttons
*
* @param {object} _attrs
*/
transformAttributes: function(_attrs)
{
if (this.id && typeof _attrs.background_image == 'undefined' && !_attrs.image)
{
for(var image in this.default_background_images)
{
if (this.id.match(this.default_background_images[image]))
{
_attrs.image = image;
_attrs.background_image = true;
break;
}
}
}
this._super.apply(this, arguments);
},
set_accesskey: function(key) { set_accesskey: function(key) {
jQuery(this.node).attr("accesskey", key); jQuery(this.node).attr("accesskey", key);
}, },
@ -177,7 +222,7 @@ var et2_button = et2_baseWidget.extend([et2_IInput, et2_IDetachedDOM],
/** /**
* Set options.readonly and update image * Set options.readonly and update image
* *
* @param boolean _ro * @param {boolean} _ro
*/ */
set_readonly: function(_ro) set_readonly: function(_ro)
{ {
@ -240,6 +285,8 @@ var et2_button = et2_baseWidget.extend([et2_IInput, et2_IDetachedDOM],
/** /**
* Set tab index * Set tab index
*
* @param {number} index
*/ */
set_tabindex: function(index) { set_tabindex: function(index) {
jQuery(this.btn).attr("tabindex", index); jQuery(this.btn).attr("tabindex", index);
@ -275,10 +322,12 @@ var et2_button = et2_baseWidget.extend([et2_IInput, et2_IDetachedDOM],
/** /**
* et2_IDetachedDOM * et2_IDetachedDOM
*
* @param {array} _attrs
*/ */
getDetachedAttributes: function(_attrs) getDetachedAttributes: function(_attrs)
{ {
_attrs.push("label", "value", "class", "image", "ro_image","onclick" ); _attrs.push("label", "value", "class", "image", "ro_image", "onclick", "background_image" );
}, },
getDetachedNodes: function() getDetachedNodes: function()