mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-03-12 05:58:51 +01:00
Now again using a local etemplate2 instance on the client
This commit is contained in:
parent
36314a077e
commit
dc017ed889
@ -25,7 +25,8 @@
|
|||||||
*
|
*
|
||||||
* etemplate or uietemplate extends boetemplate, all vars and public functions are inherited
|
* etemplate or uietemplate extends boetemplate, all vars and public functions are inherited
|
||||||
*/
|
*/
|
||||||
class etemplate extends boetemplate
|
class etemplate extends etemplate_new {}
|
||||||
|
class etemplate_old extends boetemplate
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* integer debug-level or template-name or cell-type or '' = off
|
* integer debug-level or template-name or cell-type or '' = off
|
||||||
|
@ -102,8 +102,18 @@ class etemplate_new extends etemplate_widget_template
|
|||||||
function exec($method,$content,$sel_options='',$readonlys='',$preserv='',$output_mode=0,$ignore_validation='',$changes='')
|
function exec($method,$content,$sel_options='',$readonlys='',$preserv='',$output_mode=0,$ignore_validation='',$changes='')
|
||||||
{
|
{
|
||||||
|
|
||||||
// Overwrite "nonavbar" is the output_mode is two
|
// Include the etemplate2 javascript code
|
||||||
$GLOBALS['egw_info']['flags']['nonavbar'] = ($output_mode == 2);
|
egw_framework::validate_file('.', 'etemplate2', 'etemplate');
|
||||||
|
|
||||||
|
// load translations
|
||||||
|
translation::add_app('etemplate');
|
||||||
|
foreach(translation::$loaded_apps as $app => $lang)
|
||||||
|
{
|
||||||
|
egw_framework::validate_file('/phpgwapi/lang.php', array(
|
||||||
|
'app' => $app,
|
||||||
|
'lang' => $lang,
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
if (!$this->rel_path) throw new egw_exception_assertion_failed('No (valid) template read!');
|
if (!$this->rel_path) throw new egw_exception_assertion_failed('No (valid) template read!');
|
||||||
|
|
||||||
@ -157,7 +167,7 @@ class etemplate_new extends etemplate_widget_template
|
|||||||
<div id="container"></div>
|
<div id="container"></div>
|
||||||
<script>
|
<script>
|
||||||
egw(window).ready(function() {
|
egw(window).ready(function() {
|
||||||
var et2 = new (egw().etemplate2)(document.getElementById("container"), "etemplate_new::ajax_process_content");
|
var et2 = new etemplate2(document.getElementById("container"), "etemplate_new::ajax_process_content");
|
||||||
et2.load("'.$GLOBALS['egw_info']['server']['webserver_url'].$this->rel_path.'",'.json_encode($data).');
|
et2.load("'.$GLOBALS['egw_info']['server']['webserver_url'].$this->rel_path.'",'.json_encode($data).');
|
||||||
}, null, true);
|
}, null, true);
|
||||||
</script>
|
</script>
|
||||||
|
@ -90,9 +90,13 @@ var et2_nextmatch = et2_DOMWidget.extend(et2_IResizeable, {
|
|||||||
|
|
||||||
this.header = new et2_nextmatch_header_bar(this, this.div);
|
this.header = new et2_nextmatch_header_bar(this, this.div);
|
||||||
|
|
||||||
|
this.innerDiv = $j(document.createElement("div"))
|
||||||
|
.appendTo(this.div);
|
||||||
|
|
||||||
// Create the dynheight component which dynamically scales the inner
|
// Create the dynheight component which dynamically scales the inner
|
||||||
// container.
|
// container.
|
||||||
this.dynheight = new et2_dynheight(null, this.div, 150);
|
this.dynheight = new et2_dynheight(this.egw().window,
|
||||||
|
this.innerDiv, 150);
|
||||||
|
|
||||||
// Create the action manager
|
// Create the action manager
|
||||||
this.actionManager = new egwActionManager();
|
this.actionManager = new egwActionManager();
|
||||||
@ -111,7 +115,7 @@ var et2_nextmatch = et2_DOMWidget.extend(et2_IResizeable, {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Create the outer grid container
|
// Create the outer grid container
|
||||||
this.dataviewContainer = new et2_dataview_gridContainer(this.div,
|
this.dataviewContainer = new et2_dataview_gridContainer(this.innerDiv,
|
||||||
this.dataProvider, this.egw());
|
this.dataProvider, this.egw());
|
||||||
|
|
||||||
this.activeFilters = {};
|
this.activeFilters = {};
|
||||||
@ -631,7 +635,7 @@ var et2_nextmatch = et2_DOMWidget.extend(et2_IResizeable, {
|
|||||||
.append(select.getDOMNode())
|
.append(select.getDOMNode())
|
||||||
.append(okButton.getDOMNode())
|
.append(okButton.getDOMNode())
|
||||||
.append(cancelButton.getDOMNode())
|
.append(cancelButton.getDOMNode())
|
||||||
.appendTo(this.div);
|
.appendTo(this.innerDiv);
|
||||||
|
|
||||||
// Add default checkbox for admins
|
// Add default checkbox for admins
|
||||||
var apps = this.egw().user('apps');
|
var apps = this.egw().user('apps');
|
||||||
|
@ -30,13 +30,12 @@ var et2_dynheight = Class.extend({
|
|||||||
* @param _outerNode is the node which surrounds the _innerNode and to
|
* @param _outerNode is the node which surrounds the _innerNode and to
|
||||||
* which extend the innerNode should be expanded without creating a
|
* which extend the innerNode should be expanded without creating a
|
||||||
* scrollbar. Note: The outer node must be a parent of the inner node.
|
* scrollbar. Note: The outer node must be a parent of the inner node.
|
||||||
* If "null" is passed, the outer node is set to "window".
|
|
||||||
* @param _innerNode is the node which should be scaled. Call update to
|
* @param _innerNode is the node which should be scaled. Call update to
|
||||||
* scale the node.
|
* scale the node.
|
||||||
* @param _minHeight is the minimum height the inner node should have
|
* @param _minHeight is the minimum height the inner node should have
|
||||||
*/
|
*/
|
||||||
init: function(_outerNode, _innerNode, _minHeight) {
|
init: function(_outerNode, _innerNode, _minHeight) {
|
||||||
this.outerNode = _outerNode ? $j(_outerNode) : $j(window);
|
this.outerNode = $j(_outerNode);
|
||||||
this.innerNode = $j(_innerNode);
|
this.innerNode = $j(_innerNode);
|
||||||
this.minHeight = _minHeight;
|
this.minHeight = _minHeight;
|
||||||
|
|
||||||
@ -58,6 +57,9 @@ var et2_dynheight = Class.extend({
|
|||||||
// Initialize the height calculation
|
// Initialize the height calculation
|
||||||
this._initialize();
|
this._initialize();
|
||||||
|
|
||||||
|
console.log(this.outerNode);
|
||||||
|
console.log(this.innerNode);
|
||||||
|
|
||||||
// Get the outer container height
|
// Get the outer container height
|
||||||
var oh = this.outerNode.height();
|
var oh = this.outerNode.height();
|
||||||
|
|
||||||
@ -158,13 +160,6 @@ var et2_dynheight = Class.extend({
|
|||||||
var ih = this.innerNode.height();
|
var ih = this.innerNode.height();
|
||||||
this.innerMargin = ioh - ih;
|
this.innerMargin = ioh - ih;
|
||||||
|
|
||||||
// Calculate the outer margin
|
|
||||||
var node = this.outerNode;
|
|
||||||
if (node[0] == window)
|
|
||||||
{
|
|
||||||
node = $j("body");
|
|
||||||
}
|
|
||||||
|
|
||||||
this.initialized = true;
|
this.initialized = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -50,8 +50,6 @@
|
|||||||
jsapi.egw_json;
|
jsapi.egw_json;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
egw.extend('etemplate2', egw.MODULE_GLOBAL, function() {
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The etemplate2 class manages a certain etemplate2 instance.
|
* The etemplate2 class manages a certain etemplate2 instance.
|
||||||
*
|
*
|
||||||
@ -161,6 +159,7 @@ etemplate2.prototype.load = function(_url, _data)
|
|||||||
// Asynchronously load the XET file (code below is executed ahead of the
|
// Asynchronously load the XET file (code below is executed ahead of the
|
||||||
// code in the callback function)
|
// code in the callback function)
|
||||||
et2_loadXMLFromURL(_url, function(_xmldoc) {
|
et2_loadXMLFromURL(_url, function(_xmldoc) {
|
||||||
|
|
||||||
// Read the XML structure
|
// Read the XML structure
|
||||||
this.widgetContainer.loadFromXML(_xmldoc);
|
this.widgetContainer.loadFromXML(_xmldoc);
|
||||||
|
|
||||||
@ -181,7 +180,7 @@ etemplate2.prototype.load = function(_url, _data)
|
|||||||
this.widgetContainer = new et2_container(null);
|
this.widgetContainer = new et2_container(null);
|
||||||
this.widgetContainer.setApiInstance(egw(egw.elemWindow(this.DOMContainer)));
|
this.widgetContainer.setApiInstance(egw(egw.elemWindow(this.DOMContainer)));
|
||||||
this.widgetContainer.setInstanceManager(this);
|
this.widgetContainer.setInstanceManager(this);
|
||||||
this.widgetContainer.setParentDOMNode(frag);
|
this.widgetContainer.setParentDOMNode(this.DOMContainer);
|
||||||
|
|
||||||
// store the id to submit it back to server
|
// store the id to submit it back to server
|
||||||
if(_data) {
|
if(_data) {
|
||||||
@ -378,8 +377,3 @@ function etemplate2_handle_validation_error(_type, _response)
|
|||||||
egw(window).registerJSONPlugin(etemplate2_handle_load, null, 'et2_load');
|
egw(window).registerJSONPlugin(etemplate2_handle_load, null, 'et2_load');
|
||||||
egw(window).registerJSONPlugin(etemplate2_handle_validation_error, null, 'et2_validation_error');
|
egw(window).registerJSONPlugin(etemplate2_handle_validation_error, null, 'et2_validation_error');
|
||||||
|
|
||||||
// Return the etemplate2 constructor
|
|
||||||
return {'etemplate2': etemplate2};
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ abstract class egw_framework
|
|||||||
'/phpgwapi/js/./egw_json.js',
|
'/phpgwapi/js/./egw_json.js',
|
||||||
// always include javascript helper functions
|
// always include javascript helper functions
|
||||||
'/phpgwapi/js/jsapi/jsapi.js',
|
'/phpgwapi/js/jsapi/jsapi.js',
|
||||||
// '/phpgwapi/js/jsapi/egw.js',
|
'/phpgwapi/js/jsapi/egw.js',
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,6 +28,6 @@
|
|||||||
egw_css;
|
egw_css;
|
||||||
egw_calendar;
|
egw_calendar;
|
||||||
egw_ready;
|
egw_ready;
|
||||||
egw_jquery;
|
// egw_jquery;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -13,6 +13,8 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
/*egw:uses
|
/*egw:uses
|
||||||
|
jquery.jquery_ui;
|
||||||
|
|
||||||
egw_core;
|
egw_core;
|
||||||
egw_preferences;
|
egw_preferences;
|
||||||
egw_jquery;
|
egw_jquery;
|
||||||
@ -58,7 +60,7 @@ egw.extend('calendar', egw.MODULE_WND_LOCAL, function(_app, _wnd) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get the preferences
|
// Get the preferences
|
||||||
_egw.$j(_input).datepicker(params);
|
$j(_input).datepicker(params);
|
||||||
/*
|
/*
|
||||||
onClose: function(date_text, picker) {
|
onClose: function(date_text, picker) {
|
||||||
// Only update if there's a change - "" if no date selected
|
// Only update if there's a change - "" if no date selected
|
||||||
|
@ -89,23 +89,6 @@ class idots_framework extends egw_framework
|
|||||||
if (self::$header_done) return '';
|
if (self::$header_done) return '';
|
||||||
self::$header_done = true;
|
self::$header_done = true;
|
||||||
|
|
||||||
// load translations
|
|
||||||
self::validate_file('jsapi', 'egw', 'phpgwapi');
|
|
||||||
|
|
||||||
translation::add_app('etemplate');
|
|
||||||
foreach(translation::$loaded_apps as $app => $lang)
|
|
||||||
{
|
|
||||||
egw_framework::validate_file('/phpgwapi/lang.php', array(
|
|
||||||
'app' => $app,
|
|
||||||
'lang' => $lang,
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->isTop(false))
|
|
||||||
{
|
|
||||||
self::validate_file('.', 'etemplate2', 'etemplate');
|
|
||||||
}
|
|
||||||
|
|
||||||
// add a content-type header to overwrite an existing default charset in apache (AddDefaultCharset directiv)
|
// add a content-type header to overwrite an existing default charset in apache (AddDefaultCharset directiv)
|
||||||
header('Content-type: text/html; charset='.translation::charset());
|
header('Content-type: text/html; charset='.translation::charset());
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user