importPackage(Packages.de.elo.ix.client); //@include lib_Class.js /** * This class provides basic provider for ix (admin) connections. * * @class sol.common.ix.ConnectionUtils * @singleton * @eloix * */ sol.define("sol.common.IxConnectionUtils", { singleton: true, /** * Returns `ixConnectAdmin` connection object as soon it is defined. * Otherwise usually `ixConnect` object will be returned * @param {Boolean} asAdmin If `true` and admin context is available it will be returned ixConnectAdmin */ getConnection: function (asAdmin) { return ((asAdmin == true && typeof ixConnectAdmin !== "undefined")) ? ixConnectAdmin : ixConnect; }, /** * Change temporary timeZone of the current ixConnection. * * It is important that you restore the timeZone of the connection when you don't use * it anymore * * var timeZoneEvent = sol.common.IxConnectionUtils.useTemporaryTimeZone(timeZone); * ... * timeZoneEvent.restore() * * * @param {String} timeZone * @returns */ useTimeZone: function (timeZone) { var me = this, savedTimeZone, connection; connection = me.getConnection(); savedTimeZone = ixConnect.loginResult.clientInfo.timeZone; connection.loginResult.clientInfo.timeZone = timeZone; return { savedTimeZone: savedTimeZone, restore: function () { // return callback to restore timeZone of the connection me.logger.debug("restore ixConnect timeZone ", savedTimeZone); connection.loginResult.clientInfo.timeZone = savedTimeZone; } }; }, /** * @returns current logged in user */ getCurrentUser: function () { return ixConnect && ixConnect.loginResult.user; } });