Коллеги, подскажите как работают напоминания?
А именно: как происходит проверка на появление новых напоминаний?
Вот предположим, я создал задачу, где стоит галка "Напомнить ответственному". В таблице Reminding появилась новая запись. Как система делает проверку о новых записях в таблице? Где можно найти и отредактировать событие (процесс) делающее 'колокольчик' желтым и меняющее на нем число напоминаний?
Нравится
В странице MainPage, обработчике PageLoadcomplete вызывается клиентский код, который вызывает ядровый метод UserConnection.DBEngine.GetContactCounters() и по возвращаемому значения отображает напоминания и письма. UserConnection.DBEngine.GetContactCounters() в свою очередь вызывает хранимую функцию [fn_GetContactCounters]. Все, что вы можете поменять, это код в главной странице. который меняет кнопку напоминаний.
Вот часть джаваскриптового кода, которая Вам нужна. Теоретически можно перед строкой
PageContainer_NewRemindingsCountButton.setCaption(userCounters.newRemindingsCount.toString());
сначала считывать этот Caption и сравнивать с полученным значением, так Вы узнаете изменилось ли количество. Тут же можете вызвать window.open() и открыть окно сообщения.
function updateRemindings(userCounters) { var messagePanel = Ext.FormValidator.getVMP(); if (!messagePanel) { return; } var mi = Ext.get(messageId); var miIsEmpty = Ext.isEmpty(mi); PageContainer_NewRemindingsCountButton.setCaption(userCounters.newRemindingsCount.toString()); PageContainer_NewRemindingsCountButton.setEnabled(userCounters.newRemindingsCount > 0); if (userCounters.newRemindingsCount && userCounters.newRemindingsCount > 0) { PageContainer_NewRemindingsCountButton.setButtonStyle('yellow'); } else { PageContainer_NewRemindingsCountButton.setButtonStyle('blue'); } PageContainer_UnreadEmailCountButton.setEnabled(userCounters.unreadEmailsCount > 0); PageContainer_UnreadEmailCountButton.setCaption(userCounters.unreadEmailsCount.toString()); if (userCounters.unreadEmailsCount && userCounters.unreadEmailsCount > 0) { PageContainer_UnreadEmailCountButton.setButtonStyle('yellow'); } else { PageContainer_UnreadEmailCountButton.setButtonStyle('blue'); } }