/** * EGroupware eTemplate2 - JS widget class with value attribute and auto loading * * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License * @package etemplate * @subpackage api * @link http://www.egroupware.org * @author Andreas Stöckel * @copyright Stylite 2011 * @version $Id$ */ "use strict"; /*egw:uses jquery.jquery; et2_core_baseWidget; */ /** * et2_valueWidget is the base class for et2_inputWidget - valueWidget introduces * the "value" attribute and automatically loads it from the "content" array * after loading from XML. * * @augments et2_baseWidget */ var et2_valueWidget = et2_baseWidget.extend( { 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": { "name": "Value", "description": "The value of the widget", "type": "string", "default": et2_no_init } }, /** * * * @memberOf et2_valueWidget * @param _attrs */ transformAttributes: function(_attrs) { this._super.apply(this, arguments); if (this.id) { // Set the value for this element var contentMgr = this.getArrayMgr("content"); if (contentMgr != null) { var val = contentMgr.getEntry(this.id); if (val !== null) { _attrs["value"] = val; } } // Check for already inside namespace if(this.createNamespace && this.getArrayMgr("content").perspectiveData.owner == this) { _attrs["value"] = this.getArrayMgr("content").data; } } } });