Иконка раздела в напоминаниях

Создали раздел "Заявки" добавили к нему иконку с прозрачным фоном, для того чтобы при смене цветовой схемы всё корректно отображалось. Но теперь когда создаем напоминание на этот раздел в области уведомлений иконка тоже прозрачная на белом фоне. Соответственно её не видно.

Как сделать чтобы иконка корректно отображалась в списке разделов и в области уведомлений?
И ещё один вопрос: можно ли сделать напоминание на деталь а не на раздел?

Версия 7.5

Нравится

8 комментариев

Вячеслав, добрый день!

1. Если я правильно понял, то изображение для уведомлений можно добавить в модуле «NotificationsModule» (Рис. 1) (предварительно необходимо заместить).

Для корректного отображения необходимо, чтобы размер был 42х42 pixels и была заливка заднего фона (например, серый).

2. Такой возможности в приложении нет.

Заместил NotificationsModule, скопировал исходный код. Загрузил изображение, но получаю ошибку в консоли "Cannot read property 'source' of undefined"
Выяснил что ругается на эту функцию:

            /**
             * Создает контейнер для размещения текста о новых уведомлениях
             * @private
             * @return {Object} Возвращает экземпляр конфигурации контейнера
             */
            getMessageContainer: function() {
                debugger;
                return {
                    className: "Terrasoft.Container",
                    id: "messageContainer",
                    selectors: {wrapEl: "#messageContainer"},
                    classes: {wrapClassName: ["showNewNotificationContainer-class"]},
                    visible: {bindTo: "ShowNewNotificationsVisible"},
                    items: [
                        {
                            className: "Terrasoft.Button",
                            caption: {bindTo: "getShowNewNotificationText"},
                            classes: {textClass: ["showNewNotificationButton-class"]},
                            style: Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
                            iconAlign: Terrasoft.controls.ButtonEnums.iconAlign.LEFT,
                            imageConfig: {
                                source: Terrasoft.ImageSources.URL,
                                url: Terrasoft.ImageUrlBuilder.getUrl(resources.localizableImages.More)
                            },
                            click: {bindTo: "onShowNewNotificationClick"}
                        }
                    ]
                };
            },

Как я понимаю не может получить путь к изображению в строке
"url: Terrasoft.ImageUrlBuilder.getUrl(resources.localizableImages.More)"
потому, что resources.localizableImages.More = undefined

Я так понимаю, что при замещении объекта, localizableImages не подтянулись. Допустим ActivityImage и DocumentImage я могу перезалить. А вот что такое More ?

И в связи с чем вопрос почему на вкладке "Изображения" изображения не отображаются? Я бы мог оттуда их вытащить.

Вячеслав, судя по сообщению:

"Ляутин Вячеслав Андреевич" написал:Заместил NotificationsModule, скопировал исходный код. Загрузил изображение, но получаю ошибку в консоли "Cannot read property 'source' of undefined"

У Вас не подгрузились ресурсы.

Есть не большая специфичность у модулей. При замещении модулей необходимо копировать полностью код, в ручную добавлять в структуру замещенного модуля, например, Images, т.е. копировать из родительского «ActivityImage», «DocumentImage» и т.д. И затем заново загружать изображения в поле «Изображение».
Также название в структуре для всех изображений необходимо задать новое (например, ActivityImageNew), а также изменить в коде на соответствующее название объекта.

Например:

imageConfig: {
source: Terrasoft.ImageSources.URL,
url:Terrasoft.ImageUrlBuilder.getUrl(resources.localizableImages.MoreNew)
},
click: {bindTo: "onShowNewNotificationClick"}
}

"Ляутин Вячеслав Андреевич" написал:
Я так понимаю, что при замещении объекта, localizableImages не подтянулись. Допустим ActivityImage и DocumentImage я могу перезалить. А вот что такое More ?

Это «стрелка», которая отображается, когда панель немного пролистнут вниз и показывает, что присутствуют новые уведомления.

"Ляутин Вячеслав Андреевич" написал:
И в связи с чем вопрос почему на вкладке "Изображения" изображения не отображаются? Я бы мог оттуда их вытащить.

Колонка «Изображение» работает только на импорт файлов.
Изображение можно отобразить используя разметку страницу в браузере.

Например, можно поступить следующим образом, прописать в адресной строке:

https://название_сайта/0/img/source-code/hash/NotificationsModule/More

, где

NotificationsModule – название модуля
More – название изображения

И в результате можно сохранить изображение на рабочий стол.

Загрузил изображение для localizableImages.More

Ошибок нет и все картинки отображаются как и прежде. Т.е. стандартные разделы отображаются иконками с фоном. А мой кастомный раздел "Заявки" на прозрачном фоне, хотя в localizableImages.EmptyImage загрузил иконку с фоном.

На всякий случай загружаю скриншот исходного кода NotificationProvider для моего раздела

NotificationProvider

А еще пришлось переписывать все localizableStrings.

Вячеслав, как писал ранее:

«Есть не большая специфичность у модулей. При замещении модулей необходимо копировать полностью код, в ручную добавлять в структуру замещенного модуля, например, Images, т.е. копировать из родительского «ActivityImage», «DocumentImage» и т.д.»

Чтобы корректно заместить модуль необходимо полностью копировать и переименовывать локализированные строки, так значения родительского объекта не вызовутся.
После проделанных действий обязательно нужно чистить Redis и кэш браузера.

Если данный способ не помог, то можно поступить следующим образом:

- создать справочник через, который можно будет загружать изображения в таблицу SysImage (см. прикрепленный файл;

sozdanie_spravochnika_s_izobrazheniem.docx

- в SysImage найти ID нужного изображения;
- проапдейтить изображения в колонке LogoID для нужного раздела (таблица SysModule);
- почистить Redis и кэш браузера.

Кэш и редис конечно чистил.

Я пока не пробовал способ через справочник. Но в теории мне кажется это не совсем то, что мне надо. У меня уже есть иконка раздела и колонка LogoID в таблице SysModule заполнена для моего раздела "Заявки". Там у меня хранится иконка с прозрачным фоном как я понимаю. А если я вместо неё загружу с фоном тогда при смене цветовой схемы в списке разделов будет не корректно отображаться иконка.

И еще исходя из названия локализированной картинки EmptyImage - она используется когда у раздела нет иконки, а у меня то она есть.

Или я что-то не так понимаю?..

Вячеслав, Вам необходимо загрузить в SysImage изображение. Нет разницы каким способом Вы это сделаете (через новый справочник или например, можно загрузить через мастер раздела изображение а потом вернуть прежнюю).
Если Вы хотите:
1. иконку для левой панели, где размещаются разделы, то Вам необходима прозрачная иконка и проапдейтить колонку «Image32Id» (таблица SysModule);
2. иконку для правой панели (панель уведомлений), то Вам необходима иконка с фоном (заливкой) и проапдейтить колонку «LogoId» (таблица SysModule);

Т.е загружаете изображение, узнаете ID и обновить значение для соответствующей колонки.

Да! Вот именно это мне и нужно было, оказывается колонка "Image32Id" для левой панели а "LogoId" для правой!

Спасибо большое всё заработало!
NotificationsModule можно не трогать.

Показать все комментарии