Коллеги подскажите пожалуйста есть необходимость в окружение добавить пользовательский компонент и получать к нему доступ через Terrasoft.{пользовательский компонент}.
Трудность заключается в том, что данные компонента находятся в БД и на данный момент получаются с помощью конфигурационного сервиса. Сам компонент заполняется в callback функции. То есть доступен не сразу, а только после получения ответа от сервиса.
Каким образом можно создать компонент например при инициализации сессии пользователя либо при первичной загрузки интерфейса?
Нравится
Егор, а в чём отличие Вашего компонента от какой-то стандартной функциональности, например, AcademyUtilities? Там тоже в функции getAcademyUrlFromLookup получают данные из базы по SQ, что происходит не мгновенно.
/** * Gets academy URL from lookup. * @private * @param {Object} config Configuration object. * @param {Function} config.callback Callback function. */ getAcademyUrlFromLookup: function(config) { var cacheItemName = "AcademyURL_" + Terrasoft.currentUserCultureName; var getLmsUrlQuery = Ext.create("Terrasoft.EntitySchemaQuery", { rootSchemaName: "AcademyURL", rowCount: 1, serverESQCacheParameters: { cacheLevel: Terrasoft.ESQServerCacheLevels.WORKSPACE, cacheGroup: "AcademyUtilities", cacheItemName: cacheItemName } }); getLmsUrlQuery.clientESQCacheParameters = {cacheItemName: cacheItemName}; getLmsUrlQuery.addColumn("Description", "Description"); getLmsUrlQuery.getEntityCollection(function(response) { var collection = response.collection; var academyRootUrl = ""; if (collection.getCount()) { academyRootUrl = collection.first().get("Description"); } Ext.callback(config.callback, this, [academyRootUrl]); }, this); }
Или под компонентом имеете в виду что-то другое, вроде виджета в итогах или iframe на главной странице?