mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-28 01:29:05 +01:00
Add label attribute
This commit is contained in:
parent
55d5bd98f8
commit
12b8dc1ed4
@ -25,6 +25,13 @@
|
|||||||
var et2_description = et2_baseWidget.extend([et2_IDetachedDOM],
|
var et2_description = et2_baseWidget.extend([et2_IDetachedDOM],
|
||||||
{
|
{
|
||||||
attributes: {
|
attributes: {
|
||||||
|
"label": {
|
||||||
|
"name": "Label",
|
||||||
|
"default": "",
|
||||||
|
"type": "string",
|
||||||
|
"description": "The label is displayed by default in front (for radiobuttons behind) each widget (if not empty). If you want to specify a different position, use a '%s' in the label, which gets replaced by the widget itself. Eg. '%s Name' to have the label Name behind a checkbox. The label can contain variables, as descript for name. If the label starts with a '@' it is replaced by the value of the content-array at this index (with the '@'-removed and after expanding the variables).",
|
||||||
|
"translate": true
|
||||||
|
},
|
||||||
"value": {
|
"value": {
|
||||||
"name": "Value",
|
"name": "Value",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
@ -119,6 +126,63 @@ var et2_description = et2_baseWidget.extend([et2_IDetachedDOM],
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
set_label: function(_value) {
|
||||||
|
// Abort if ther was no change in the label
|
||||||
|
if (_value == this.label)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_value)
|
||||||
|
{
|
||||||
|
// Create the label container if it didn't exist yet
|
||||||
|
if (this._labelContainer == null)
|
||||||
|
{
|
||||||
|
this._labelContainer = $j(document.createElement("label"))
|
||||||
|
.addClass("et2_label");
|
||||||
|
this.getSurroundings().insertDOMNode(this._labelContainer[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clear the label container.
|
||||||
|
this._labelContainer.empty();
|
||||||
|
|
||||||
|
// Create the placeholder element and set it
|
||||||
|
var ph = document.createElement("span");
|
||||||
|
this.getSurroundings().setWidgetPlaceholder(ph);
|
||||||
|
|
||||||
|
// Split the label at the "%s"
|
||||||
|
var parts = et2_csvSplit(_value, 2, "%s");
|
||||||
|
|
||||||
|
// Update the content of the label container
|
||||||
|
for (var i = 0; i < parts.length; i++)
|
||||||
|
{
|
||||||
|
if (parts[i])
|
||||||
|
{
|
||||||
|
this._labelContainer.append(document.createTextNode(parts[i]));
|
||||||
|
}
|
||||||
|
if (i == 0)
|
||||||
|
{
|
||||||
|
this._labelContainer.append(ph);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Delete the labelContainer from the surroundings object
|
||||||
|
if (this._labelContainer)
|
||||||
|
{
|
||||||
|
this.getSurroundings().removeDOMNode(this._labelContainer[0]);
|
||||||
|
}
|
||||||
|
this._labelContainer = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update the surroundings in order to reflect the change in the label
|
||||||
|
this.getSurroundings().update();
|
||||||
|
|
||||||
|
// Copy the given value
|
||||||
|
this.label = _value;
|
||||||
|
},
|
||||||
|
|
||||||
set_value: function(_value) {
|
set_value: function(_value) {
|
||||||
if (!_value) _value = "";
|
if (!_value) _value = "";
|
||||||
if (!this.options.no_lang) _value = this.egw().lang(_value);
|
if (!this.options.no_lang) _value = this.egw().lang(_value);
|
||||||
|
Loading…
Reference in New Issue
Block a user