forked from extern/egroupware
extending jdots and pixelegg framework from new desktop framework, allowing pixelegg to overwrite iframe height calculation
This commit is contained in:
parent
7268ef429d
commit
4890c219cc
@ -22,6 +22,10 @@ class pixelegg_framework extends jdots_framework
|
||||
* Appname used for everything but JS includes, which we re-use from jdots
|
||||
*/
|
||||
const APP = 'pixelegg';
|
||||
/**
|
||||
* Appname used to include javascript code
|
||||
*/
|
||||
const JS_INCLUDE_APP = 'pixelegg';
|
||||
|
||||
/**
|
||||
* Enable to use this template sets login.tpl for login page
|
||||
|
77
pixelegg/js/fw_pixelegg.js
Normal file
77
pixelegg/js/fw_pixelegg.js
Normal file
@ -0,0 +1,77 @@
|
||||
/**
|
||||
* EGroupware jDots / Stylite template
|
||||
*
|
||||
* @package framework
|
||||
* @author Hadi Nategh <hn@stylite.de>
|
||||
* @author Andreas Stoeckel <as@stylite.de>
|
||||
* @copyright Stylite AG 2014
|
||||
* @description Create jdots framework
|
||||
*/
|
||||
|
||||
"use strict";
|
||||
/*egw:uses
|
||||
jquery.jquery;
|
||||
framework.fw_desktop;
|
||||
*/
|
||||
(function(window){
|
||||
/**
|
||||
* jdots framework object defenition
|
||||
* here we can add framework methods and also override fw_desktop methods if it is neccessary
|
||||
*/
|
||||
var fw_pixelegg = fw_desktop.extend(
|
||||
{
|
||||
/**
|
||||
* Callback to calculate height of browser iframe or div
|
||||
*
|
||||
* @param {object} _iframe dom node of iframe or null for div
|
||||
* @returns number in pixel
|
||||
*/
|
||||
getIFrameHeight: function(_iframe)
|
||||
{
|
||||
var height = this._super.apply(this, arguments);
|
||||
|
||||
return height - 28;
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Initialise framework
|
||||
*/
|
||||
egw_LAB.wait(function() {
|
||||
function egw_setSideboxSize(_size)
|
||||
{
|
||||
document.getElementById('egw_fw_main').style.marginLeft = _size + 'px';
|
||||
document.getElementById('egw_fw_sidebar').style.width = _size + 'px';
|
||||
}
|
||||
|
||||
$j(document).ready(function() {
|
||||
window.framework = new fw_pixelegg("egw_fw_sidemenu", "egw_fw_tabs",
|
||||
window.egw_webserverUrl, egw_setSideboxSize,"egw_fw_splitter", 255, 215); // should be identical to jdots_framework::(DEFAULT|MIN)_SIDEBAR_WIDTH
|
||||
window.callManual = window.framework.callManual;
|
||||
jQuery('#egw_fw_print').click(function(){window.framework.print();});
|
||||
jQuery('#egw_fw_logout').click(function(){ window.framework.redirect(this.getAttribute('data-logout-url')); });
|
||||
jQuery('form[name^="tz_selection"]').children().on('change', function(){framework.tzSelection(this.value); return false;});
|
||||
window.egw.link_quick_add('quick_add');
|
||||
|
||||
// allowing javascript urls in topmenu and sidebox only under CSP by binding click handlers to them
|
||||
var href_regexp = /^javascript:([^\(]+)\((.*)?\);?$/;
|
||||
jQuery('#egw_fw_topmenu_items,#egw_fw_topmenu_info_items,#egw_fw_sidemenu,#egw_fw_footer').on('click','a[href^="javascript:"]',function(ev){
|
||||
ev.stopPropagation(); // do NOT execute regular event, as it will violate CSP, when handler does NOT return false
|
||||
var matches = this.href.match(href_regexp);
|
||||
var args = [];
|
||||
if (matches.length > 1 && matches[2] !== undefined)
|
||||
{
|
||||
try {
|
||||
args = JSON.parse('['+matches[2]+']');
|
||||
}
|
||||
catch(e) { // deal with '-encloded strings (JSON allows only ")
|
||||
args = JSON.parse('['+matches[2].replace(/','/g, '","').replace(/((^|,)'|'(,|$))/g, '$2"$3')+']');
|
||||
}
|
||||
}
|
||||
args.unshift(matches[1]);
|
||||
et2_call.apply(this, args);
|
||||
return false; // IE11 seems to require this, ev.stopPropagation() does NOT stop link from being executed
|
||||
});
|
||||
});
|
||||
});
|
||||
})(window);
|
Loading…
Reference in New Issue
Block a user