importPackage(Packages.de.elo.ix.client); //@include lib_Class.js //@include lib_sol.common.Config.js //@include lib_sol.common.IxUtils.js //@include lib_sol.common.UserUtils.js //@include lib_sol.common.UserProfile.js //@include lib_sol.common.ix.ServiceBase.js //@include lib_sol.notify.Utils.js var logger = sol.create("sol.Logger", { scope: "sol.notify.ix.services.ReportConfig" }); /** * Reads and writes the report configuration * * # Get and set user options notify mail * * sol.common.IxUtils.execute("RF_sol_notify_service_ReportConfig_Write", { * enableMail: true, * sendAlways: true, * withGroups: true, * withDeputies: true, * withWeekend: true, * onlyOnce: true, * newsMyElo: true * }); * * var userNotifyCfg = sol.common.IxUtils.execute("RF_sol_notify_service_ReportConfig_Read", {}); * * # Get and set user options notify mail for another user * * In addition the userId can be given if the current user has administrative rights. * * sol.common.IxUtils.execute("RF_sol_notify_service_ReportConfig_Write", { * userId: "3" * }); * * @author JHR, ELO Digital Office GmbH * @version 1.00.000 * * @eloix * @requires moment.js * @requires sol.common.Config * @requires sol.common.IxUtils * @requires sol.common.UserUtils * @requires sol.common.UserProfile * @requires sol.common.ix.ServiceBase * @requires sol.notify.Utils */ sol.define("sol.notify.ix.services.ReportConfig", { extend: "sol.common.ix.ServiceBase", /** * @cfg {String} userId (optional) * If not set, the current user (from the connection) will be used. * A `userId` can only be provided by users with main administrator right. */ initialize: function (config) { var me = this, currentUser; me.$super("sol.common.ix.ServiceBase", "initialize", [config]); currentUser = sol.common.UserUtils.getCurrentUserInfo().id; if (me.userId && !sol.common.UserUtils.isMainAdmin(currentUser)) { throw "IllegalAccess: user unauthorized"; } me.userId = me.userId || currentUser; }, /** * @private * Reads the notify config * @return {Object} */ read: function () { var me = this, reportConfig; reportConfig = sol.notify.Utils.readReportConfig(me.userId); return { reportConfig: reportConfig }; }, /** * @private * Writes the notify config */ write: function () { var me = this; if (!me.reportConfig) { throw "IllegalState: 'reportConfiguration' reguired"; } sol.notify.Utils.writeReportConfig(me.userId, me.reportConfig); } }); /** * @member sol.notify.ix.services.ReportConfig * @method RF_sol_notify_service_ReportConfig_Read * @static * @inheritdoc sol.common.ix.ServiceBase#RF_ServiceBaseName */ function RF_sol_notify_service_ReportConfig_Read(ec, args) { var params, service, result; logger.enter("RF_sol_notify_service_ReportConfig_Read", args); params = sol.common.ix.RfUtils.parseAndCheckParams(ec, arguments.callee.name, args); service = sol.create("sol.notify.ix.services.ReportConfig", params); result = sol.common.ix.RfUtils.stringify(service.read()); logger.exit("RF_sol_notify_service_ReportConfig_Read", result); return result; } /** * @member sol.notify.ix.services.ReportConfig * @method RF_sol_notify_service_ReportConfig_Write * @static * @inheritdoc sol.common.ix.ServiceBase#RF_ServiceBaseName */ function RF_sol_notify_service_ReportConfig_Write(ec, args) { var params, service, result; logger.enter("RF_sol_notify_service_ReportConfig_Write", args); params = sol.common.ix.RfUtils.parseAndCheckParams(ec, arguments.callee.name, args, "reportConfig"); service = sol.create("sol.notify.ix.services.ReportConfig", params); result = sol.common.ix.RfUtils.stringify(service.write()); logger.exit("RF_sol_notify_service_ReportConfig_Write", result); return result; }