mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-27 17:18:54 +01:00
Added very basic implementation for reading the content array
This commit is contained in:
parent
4f2eeaafe1
commit
9ea38d694b
44
etemplate/js/et2_contentArrayMgr.js
Normal file
44
etemplate/js/et2_contentArrayMgr.js
Normal file
@ -0,0 +1,44 @@
|
||||
/**
|
||||
* eGroupWare eTemplate2 - JS content array manager
|
||||
*
|
||||
* @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";
|
||||
|
||||
function et2_contentArrayMgr(_data, _parentMgr)
|
||||
{
|
||||
if (typeof _parentMgr == "undefined")
|
||||
{
|
||||
_parentMgr = null;
|
||||
}
|
||||
|
||||
// Copy the parent manager which is needed to access relative data when
|
||||
// being in a relative perspective of the manager
|
||||
this.parentMgr = _parentMgr;
|
||||
|
||||
// Hold a reference to the data
|
||||
this.data = _data;
|
||||
}
|
||||
|
||||
et2_contentArrayMgr.prototype.getValueForID = function(_id)
|
||||
{
|
||||
if (typeof this.data[_id] != "undefined")
|
||||
{
|
||||
return this.data[_id];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
et2_contentArrayMgr.prototype.openPerspective = function(_rootId)
|
||||
{
|
||||
return new et2_contentArrayMgr(this._data[_rootId], this);
|
||||
}
|
||||
|
@ -69,6 +69,20 @@ var et2_inputWidget = et2_baseWidget.extend(et2_IInput, {
|
||||
}
|
||||
},
|
||||
|
||||
set_id: function(_value) {
|
||||
this._super.apply(this, arguments);
|
||||
|
||||
var mgr = this.getContentMgr();
|
||||
if (_value != '' && mgr != null)
|
||||
{
|
||||
var val = mgr.getValueForID(this.id);
|
||||
if (val !== null)
|
||||
{
|
||||
this.set_value(val);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
get_value: function() {
|
||||
return this.getValue();
|
||||
},
|
||||
|
@ -58,7 +58,7 @@ var et2_widget = Class.extend({
|
||||
"id": {
|
||||
"name": "ID",
|
||||
"type": "string",
|
||||
"description": "Unique identifier of the widget",
|
||||
"description": "Unique identifier of the widget"
|
||||
},
|
||||
|
||||
/**
|
||||
@ -93,6 +93,7 @@ var et2_widget = Class.extend({
|
||||
}
|
||||
|
||||
this.id = "";
|
||||
this._mgr = null;
|
||||
|
||||
// Copy the parent parameter and add this widget to its parent children
|
||||
// list.
|
||||
@ -426,6 +427,23 @@ var et2_widget = Class.extend({
|
||||
{
|
||||
this._children[i].update();
|
||||
}
|
||||
},
|
||||
|
||||
setContentMgr: function(_mgr) {
|
||||
this._mgr = _mgr;
|
||||
},
|
||||
|
||||
getContentMgr: function() {
|
||||
if (this._mgr != null)
|
||||
{
|
||||
return this._mgr;
|
||||
}
|
||||
else if (this._parent)
|
||||
{
|
||||
return this._parent.getContentMgr();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
});
|
||||
|
95
etemplate/js/test/et2_test_timesheet_edit.json
Normal file
95
etemplate/js/test/et2_test_timesheet_edit.json
Normal file
@ -0,0 +1,95 @@
|
||||
var timesheet_data = {
|
||||
"content":{
|
||||
"ts_id":"1",
|
||||
"ts_project":null,
|
||||
"ts_title":"Test geschrieben",
|
||||
"ts_description":null,
|
||||
"ts_start":1307030400,
|
||||
"ts_duration":"150",
|
||||
"ts_quantity":"2.5",
|
||||
"ts_unitprice":null,
|
||||
"cat_id":null,
|
||||
"ts_owner":"5",
|
||||
"ts_modified":1307039479,
|
||||
"ts_modifier":"5",
|
||||
"pl_id":null,
|
||||
"ts_status":null,
|
||||
"user_timezone_read":"Europe/Berlin",
|
||||
"msg":null,
|
||||
"view":false,
|
||||
"tabs":null,
|
||||
"link_to":{
|
||||
"to_id":"1",
|
||||
"to_app":"timesheet"
|
||||
},
|
||||
"js":"<script>\u000a\u000a</script>\u000a",
|
||||
"ts_quantity_blur":2.5,
|
||||
"start_time":"18:00",
|
||||
"pm_integration":null,
|
||||
"no_ts_status":true,
|
||||
"all_pm_ids":[],
|
||||
"history":{
|
||||
"id":"1",
|
||||
"app":"timesheet",
|
||||
"status-widgets":{
|
||||
"ts_status":[],
|
||||
"ts_modifier":"select-account",
|
||||
"cat_id":"select-cat"
|
||||
}
|
||||
},
|
||||
"ts_title_blur":null
|
||||
},
|
||||
"sel_options":{
|
||||
"status":{
|
||||
"ts_project":"Project",
|
||||
"ts_title":"Title",
|
||||
"cat_id":"Category",
|
||||
"ts_description":"Description",
|
||||
"ts_start":"Start",
|
||||
"ts_duration":"Duration",
|
||||
"ts_quantity":"Quantity",
|
||||
"ts_unitprice":"Unitprice",
|
||||
"ts_owner":"Owner",
|
||||
"ts_modifier":"Modifier",
|
||||
"ts_status":"Status",
|
||||
"pm_id":"Projectid",
|
||||
"customfields":"Custom fields"
|
||||
},
|
||||
"ts_owner":{
|
||||
"5":"User, admin"
|
||||
},
|
||||
"ts_status":[]
|
||||
},
|
||||
"readonlys":{
|
||||
"button[delete]":false,
|
||||
"button[edit]":true,
|
||||
"button[save]":false,
|
||||
"button[save_new]":false,
|
||||
"button[apply]":false,
|
||||
"ts_owner":true,
|
||||
"tabs":{
|
||||
"customfields":true
|
||||
}
|
||||
},
|
||||
"preserv":{
|
||||
"ts_id":"1",
|
||||
"ts_project":null,
|
||||
"ts_title":"Test geschrieben",
|
||||
"ts_description":null,
|
||||
"ts_start":1307030400,
|
||||
"ts_duration":"150",
|
||||
"ts_quantity":"2.5",
|
||||
"ts_unitprice":null,
|
||||
"cat_id":null,
|
||||
"ts_owner":"5",
|
||||
"ts_modified":1307039479,
|
||||
"ts_modifier":"5",
|
||||
"pl_id":null,
|
||||
"ts_status":null,
|
||||
"user_timezone_read":"Europe/Berlin",
|
||||
"view":false,
|
||||
"referer":"timesheet.timesheet_ui.index",
|
||||
"ts_title_blur":null
|
||||
}
|
||||
}
|
||||
|
@ -15,8 +15,12 @@
|
||||
<script src="../et2_button.js"></script>
|
||||
<script src="../et2_box.js"></script>
|
||||
<script src="../et2_textbox.js"></script>
|
||||
<script src="../et2_contentArrayMgr.js"></script>
|
||||
<!--<script src="../et2_tabs.js"></script>-->
|
||||
<script src="../lib/tooltip.js"></script>
|
||||
|
||||
<script src="et2_test_timesheet_edit.json"></script>
|
||||
|
||||
<style type="text/css">
|
||||
body {
|
||||
font-family: Lucida Grande, sans-serif;
|
||||
@ -166,7 +170,7 @@
|
||||
<h1>EGroupware ETemplate2 Test</h1>
|
||||
<div class="header">Choose one of the following tests:</div>
|
||||
<div id="linklist">
|
||||
<a href="#" onclick="open_xet('et2_test_timesheet_edit.xet');">Timesheet edit dialog</a>
|
||||
<a href="#" onclick="open_xet('et2_test_timesheet_edit.xet', timesheet_data.content);">Timesheet edit dialog</a>
|
||||
<a href="#" onclick="open_xet('et2_test_template.xet');">Template proxy test</a>
|
||||
<a href="#" onclick="open_xet('et2_test_grid.xet');">Grid test</a>
|
||||
<a href="#" onclick="open_xet('et2_test_tabbox.xet');">Tabs test</a>
|
||||
@ -174,13 +178,21 @@
|
||||
<a href="#" onclick="open_xet('et2_test_description.xet');">Description test</a>
|
||||
</div>
|
||||
<div class="header">ETemplate2 container:</div>
|
||||
<div id="time"></div>
|
||||
<div id="container"></div>
|
||||
<script>
|
||||
var container = null;
|
||||
|
||||
function open_xet(file) {
|
||||
function open_xet(file, content) {
|
||||
if (typeof content == "undefined")
|
||||
{
|
||||
content = {};
|
||||
}
|
||||
|
||||
et2_loadXMLFromURL(file,
|
||||
function(_xmldoc) {
|
||||
var t1 = (new Date).getTime();
|
||||
|
||||
if (container != null)
|
||||
{
|
||||
container.destroy();
|
||||
@ -189,7 +201,11 @@
|
||||
|
||||
container = new et2_container(null);
|
||||
container.setParentDOMNode(document.getElementById("container"));
|
||||
container.setContentMgr(new et2_contentArrayMgr(content));
|
||||
container.loadFromXML(_xmldoc);
|
||||
|
||||
var t2 = (new Date).getTime();
|
||||
$j("#time").text("Building the template took " + (t2 - t1) + "ms");
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
Loading…
Reference in New Issue
Block a user