/** * eGroupware JavaScript Framework - Non UI classes * * @link http://www.egroupware.org * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License * @author Andreas Stoeckel * @version $Id$ */ /*---------------------------- Class egw_fw_class_application ----------------------------*/ /** * application class constructor * * @param {type} _parentFw * @param {type} _appName * @param {type} _displayName * @param {type} _icon * @param {type} _indexUrl * @param {type} _sideboxWidth * @param {type} _baseUrl * @param {type} _internalName * @returns {egw_fw_class_application} */ function egw_fw_class_application(_parentFw, _appName, _displayName, _icon, _indexUrl, _sideboxWidth, _baseUrl, _internalName) { //Copy the application properties this.appName = _appName; this.internalName = _internalName; this.displayName = _displayName; this.icon = _icon; this.indexUrl = _indexUrl; this.sidebox_md5 = ''; this.hasPrerequisites; this.baseUrl = _baseUrl; this.website_title = ''; this.app_header = ''; this.sideboxWidth = _sideboxWidth; //Setup a link to the parent framework class this.parentFw = _parentFw; //Preset some variables this.hasSideboxMenuContent = false; this.sidemenuEntry = null; this.tab = null; this.browser = null; } /** * Returns an menuaction inside the jdots_framework for this application. * without a "this" context (by directly calling egw_fw_class_application.prototype.getAjaxUrl) * or passing null to a "call" call "home" will be used as application name and * the the base url will be omitted (default behaviour for all applications which) * lie inside the default egw instance. * * @param {string} _fun is the function which shall be called on the server. */ egw_fw_class_application.prototype.getMenuaction = function(_fun) { var baseUrl = ''; var appName = 'home'; if (this) { baseUrl = this.getBaseUrl(); appName = this.internalName; } // Check whether the baseurl is actually set. If not, then this application // resides inside the same egw instance as the jdots framework. We'll simply // return a menu action and not a full featured url here. if (baseUrl != '') { baseUrl = baseUrl + 'json.php?menuaction='; } // use template handler to call current framework, eg. pixelegg return baseUrl + appName + '.jdots_framework.' + _fun + '.template'; }; /** * Returns the base url for this application. If the application resides inside * the default egw instance, '' will be returned unless the _force parameter is * set to true. * * @param {boolean} _force Optional parameter. If set, getBaseUrl will return the * webserverUrl instead of '' if the application resides inside the main * egw instance. */ egw_fw_class_application.prototype.getBaseUrl = function(_force) { if (this.baseUrl) { return this.baseUrl; } else if ((typeof _force != 'undefined') && _force) { return egw_topWindow().egw_webserverUrl; } else { return ''; } }; function egw_fw_getMenuaction(_fun) { return egw_fw_class_application.prototype.getMenuaction.call(null, _fun); } /*---------------------------- Class egw_fw_class_callback ----------------------------*/ function egw_fw_class_callback(_context, _proc) { this.context = _context; this.proc = _proc; } egw_fw_class_callback.prototype.call = function() { return this.proc.apply(this.context, arguments); }; array_remove = function(array, index) { array.splice(index, 1); };