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

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

Версия 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 можно не трогать.

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

Не получается добавить иконку для раздела. При сохранении получаю следующее сообщение:
"Изменения применены с ошибкой. Невозможно получить значение колонки SourceControlLogin, так как она не была загружена"
В чем может быть проблема?

Нравится

3 комментария

Здравствуйте, Александр.

Вам следует отказаться от использования закоммиченного в хранилище пакета в качестве текущего. Создайте пользовательский пакет для нужд мастера разделов, не публикуйте его в хранилище и установите текущим в системных настройках.

Спасибо, помогло! А таким же принципом для редактирования уже созданных разделов можно?
При попытке их редактирования не сохраняются сделанные изменения. Приходится все делать вручную.

Не сохарнялись, скорее всего, по той же причине.

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

Создал новый раздел, иконку сразу добавлять не стал. Теперь не знаю как добавить, по-старому, как описано тут не получается. У меня XRM 3.4.1.101. Знатоки, подскажите.

Нравится

1 комментарий

Никита Олегович, добавьте изображение в сервисы il_Main и il_Main16 (по аналогии с существующими разделами, например, Accounts). Название изображения должно соответствовать названию созданного раздела + Normal.

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

Для того, чтобы добавить новую или изменить существую иконку к разделу , следует сделать следующее (на примере версии 3.4.0):

1. Запустить Terrasoft Administrator
2. Открыть сервис il_MainWorkspace

1

3. В левой части в дереве изображений можно добавить новое изображение либо заменить существующее:

1

4. Для загрузки нового изображения следует воспользоваться иконкой загрузки:

1

Изображения к разделу могут быть четырех типов:
• Hot – активная иконка раздела (при наведении курсора мышки)
• Normal – обычное отображение иконки
• Hot_16 – активная иконка раздела при выборе раздела
• Normal_16 - обычное отображение иконки при выборе раздела

1

Пример иконок для разного типа показан ниже (на примере раздела «Контрагенты»):

1

Стандартный размер иконки раздела – 39х39 пикселей, при выборе раздела – 16х16 пикселей.
Пример отображения иконки выбора раздела Вы можете увидеть при работе с мастером рабочих мест:

1

Нравится

Поделиться

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

Добрый день!

Не совсем понятно, как добавить иконку для нового раздела. К примеру, скопировать иконку другого раздела. подскажите, пожалуйста.

Лена, подготовила для Вас инструкцию по добавлению иконки для раздела (во вложении).

Спасибо большое за инструкцию. Правда, не понятен вот этот пункт:

"Бондарь Наталия" написал:
Затем используя опцию «Открыть» панели инструментов данного элемента сервиса, добавить в Terrasoft созданное ранее изображение.

Не вижу опцию "Открыть", да и саму панель инструментов.

И рисунок обязательно новый создатвать или можно скопировать (не используюя граф. редакторы) рисунок другого раздела?

На скриншоте выделила опцию "Открыть":

/system/files/1_128.png

Чтобы скопировать рисунок другого раздела, необходимо:
- Сохранить изображение другого раздела в файл:
/system/files/2_70.png
- Затем создать новый элемент в il_Main и загрузить сохраненное изображение из предыдущего пункта.

Спасибо. Теперь, всё удалось.

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

Ниже описан вариант решения для отображения необходимой иконки в зависимости от определенного условия возле записи в реестре. Релизовано на примере признака "Важность" в окне напоминаний.

1

То есть, при установке признака «Важность» будет появляться иконка возле записи в реестре.

Перед изменениями советую сделать бекап базы данных.

Для этой реализации необходимо:

1. Создать новый сервис ImageList:

1

2. Заполнить поля обращения к нему и добавить изображение:

1

3. Загрузить картинку и сохранить изменения:

1

4. Открыть окно редактирования грида (wnd_RemindingsGridArea).
5. Выделить элемент grdData. В нем выбрать созданный ImageList, установить свойство HasCustomDraw – True.

1

6. Теперь необходимо перейти на вкладку «события» и дважды щелкнуть на поле «OnGetRowDrawInfo» для создания функции. Откроется окно скрипта, необходимо вернуться обратно к окну wnd_RemindingsGridArea и сохранить изменения.

1

7. В открывшемся окне скрипта, необходимо добавить текст кода, как показано на скриншоте и сохранить изменения:

            var Dataset = dlData.Dataset;    

            var check = GetFieldValueFromDisabledField(Dataset,'Urgent');

            if (check) {
            ImageName.Value = 'Check';
            }
            else
            {
            ImageName.Value = '';
            }

1

8. Необходимо добавить поле в таблицу tbl_Reminding, как показано на скриншоте и сохранить изменения:

1

9. Далее требуется добавить выборку в sq_Reminding, как показано на скриншоте:

1

10. Добавить новое булевское поле в ds_Reminding:

1

11. Заполнить поля и сохранить изменения:

1

12. Открыть карточку wnd_RemindingEdit и добавить элемент BoolDataControl:

1

13. Заполнить свойства, как показано на скриншоте, и сохранить изменения:

1

Нравится

Поделиться

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