Dynamische tegelondertitels in het hoofdmenu
De dynamische verandering van de bijschriften in het hoofdmenu wordt uitgevoerd in de OnOpenMenu Trigger van het bijbehorende hoofdmenu. Op deze manier kunnen het pictogram, de kleur en de tekst van de tegel worden aangepast.
Pictogrammen/kleuren
Het pictogram en de kleur van de hoofdmenutegels worden opgeslagen in de tabel ACF Anvaigo Page Element Menu. Om deze waarden op de app te wijzigen, moet eerst de overeenkomstige vermelding in de tabel worden geïdentificeerd. Alle menu-items die niet bij een Anvaigo Page horen, worden gemarkeerd door het veld Anvaigo Page is leeg.
local anvaigoPageElementMenu = Record('ACF Anvaigo Page Element Menu');
-- [[get Main Menu Entry for My Messages]]
anvaigoPageElementMenu:SETRANGE('Anvaigo Page Code','');
anvaigoPageElementMenu:SETRANGE('Action Code','');
anvaigoPageElementMenu:SETRANGE('Linked Anvaigo Page','ASLS_NOTIFICATIONS');
anvaigoPageElementMenu:FINDFIRST();
In dit item kunnen het symbool en de achtergrondkleur dynamisch worden gewijzigd door de velden Background Color en Icon Description te wijzigen. Een compleet voorbeeld van de meldingen zou er zo uit kunnen zien:
local anvaigoPageElementMenu = Record('ACF Anvaigo Page Element Menu');
local ACFNotification = Record('ACF Notification');
local colorRed = '#bd3939';
local colorGreen = '#00b050';
local colorBlue = '#5b9bd5';
local colorGray = '#7c7c7c';
-- [[get Main Menu Entry for My Messages]]
anvaigoPageElementMenu:SETRANGE('Anvaigo Page Code','');
anvaigoPageElementMenu:SETRANGE('Action Code','');
anvaigoPageElementMenu:SETRANGE('Linked Anvaigo Page','ASLS_NOTIFICATIONS');
anvaigoPageElementMenu:FINDFIRST();
--[[check if there are unread Notifications]]
ACFNotification:SETRANGE('Status', 5);
if ACFNotification:ISEMPTY() then
--[[no unread messages]]
--[[set the background color to gray and set the symbol to "mail"]]
anvaigoPageElementMenu:SETVALUE('Background Color', colorGray);
anvaigoPageElementMenu:SETVALUE('Icon Description', 'mail');
anvaigoPageElementMenu:MODIFY(false);
else
--[[there are unread messages]]
--[[set the background color to red and set the symbol to "mail_open"]]
anvaigoPageElementMenu:SETVALUE('Background Color', colorRed);
anvaigoPageElementMenu:SETVALUE('Icon Description', 'mail_open');
anvaigoPageElementMenu:MODIFY(false);
end;
Tekst
De teksten voor de hoofdmenu-items zijn gedefinieerd in de tabel ACF Multilanguage. Ze worden geïdentificeerd aan de hand van table number, PK-velden en language. Het veld bevat de tekst die wordt weergegeven. Voor de tabel ACF Anvaigo Page Element Menu (waarin de hoofdmenu’s zijn opgeslagen) kunnen deze als volgt worden gevonden en gewijzigd:
local anvaigoPageElementMenu = Record('ACF Anvaigo Page Element Menu');
anvaigoPageElementMenu:SETRANGE('Anvaigo Page Code','');
anvaigoPageElementMenu:SETRANGE('Action Code','');
anvaigoPageElementMenu:SETRANGE('Linked Anvaigo Page','ASLS_NOTIFICATIONS');
anvaigoPageElementMenu:FINDFIRST();
--[[Get Multilanguage Entry for currently selected Language and Main Menu entry]]
local multilanguage = Record('ACF Multilanguage');
multilanguage:SETRANGE('PK Table No.', anvaigoPageElementMenu:GETTABLENO());
multilanguage:SETRANGE('Language', GLOBALLANGUAGECODE());
multilanguage:SETRANGE('PK No. 1', anvaigoPageElementMenu:GETVALUE('Anvaigo Page Element Line No.'));
multilanguage:SETRANGE('PK No. 2', anvaigoPageElementMenu:GETVALUE('Entry No.'));
multilanguage:FINDFIRST();
multilanguage:SETVALUE('Value','Hello World');
multilanguage:MODIFY(false);
Voorbeeld van het veranderen van de Notificatie Tegel van de Anvaigo Base Apps
Het voorbeeld van de meldingen ziet er dan als volgt uit, inclusief het wijzigen van de teksten:
local function changeText(anvaigoPageElementMenu,text)
--[[Get Multilanguage Entry for currently selected Language and Main Menu entry]]
local multilanguage = Record('ACF Multilanguage');
multilanguage:SETRANGE('PK Table No.', anvaigoPageElementMenu:GETTABLENO());
multilanguage:SETRANGE('Language', GLOBALLANGUAGECODE());
multilanguage:SETRANGE('PK No. 1', anvaigoPageElementMenu:GETVALUE('Anvaigo Page Element Line No.'));
multilanguage:SETRANGE('PK No. 2', anvaigoPageElementMenu:GETVALUE('Entry No.'));
multilanguage:FINDFIRST();
multilanguage:SETVALUE('Value',text);
multilanguage:MODIFY(false);
end;
local anvaigoPageElementMenu = Record('ACF Anvaigo Page Element Menu');
local ACFNotification = Record('ACF Notification');
local colorRed = '#bd3939';
local colorGreen = '#00b050';
local colorBlue = '#5b9bd5';
local colorGray = '#7c7c7c';
-- [[get Main Menu Entry for My Messages]]
anvaigoPageElementMenu:SETRANGE('Anvaigo Page Code','');
anvaigoPageElementMenu:SETRANGE('Action Code','');
anvaigoPageElementMenu:SETRANGE('Linked Anvaigo Page','ASLS_NOTIFICATIONS');
anvaigoPageElementMenu:FINDFIRST();
--[[check if there are unread Notifications]]
local total = ACFNotification:COUNT();
ACFNotification:SETRANGE('Status', 5);
local unread = ACFNotification:COUNT();
if ACFNotification:ISEMPTY() then
--[[no unread messages]]
--[[set the background color to gray and set the symbol to "mail"]]
anvaigoPageElementMenu:SETVALUE('Background Color', colorGray);
anvaigoPageElementMenu:SETVALUE('Icon Description', 'mail');
anvaigoPageElementMenu:MODIFY(false);
--[[change Text accordingly]]
changeText(anvaigoPageElementMenu,GETTEXT('ASLS_NOTIFICATIONS',total));
else
--[[there are unread messages]]
--[[set the background color to red and set the symbol to "mail_open"]]
anvaigoPageElementMenu:SETVALUE('Background Color', colorRed);
anvaigoPageElementMenu:SETVALUE('Icon Description', 'mail_open');
anvaigoPageElementMenu:MODIFY(false);
--[[change Text accordingly]]
changeText(anvaigoPageElementMenu,GETTEXT('ASLS_NOTIFICATIONS_UNREAD',total,unread));
end;