Kapitola Jak doplnit odkaz do notifikace obsahuje následující témata:

Obecné informace

Aktuální verze aplikace umožňuje vložit odkaz do notifikace prostřednictvím správně nastavené notifikační šablony (v předmětu ani v upozornění na ploše (Alert) nelze použít).

Použít odkaz v notifikační šabloně lze pouze pokud je šablona označena příznakem [Formát HTML] = True.

Při startu aplikace se do registrů aktuálního uživatele zaregistruje aplikační protokol hrp. Tato registrace se dá vypnout pomocí AppConfigu

 RegisterApplicationUriOnStartup = "false"

Registrace uri znamená zápis následujících hodnot do registru

 //vytvoří se klíč
HKEY_USERS\Current_user_ID\Software\Classes\hrp
 - (Výchozí hodnota) - stringový popis prokolu
 - URL Protocol - hodnota je prázdný string
// zde se vytvoří klíč 
 - DefaultIcon
 -- (Výchozí hodnota) - Cesta k HRP.exe + řetězec ",0"
// zde se vytvoří klíč
 - shell
 // zde se vytvoří klíč
 -- open
  // zde se vytvoří klíč
  -- command
  --- (Výchozí hodnota) - "D:\Source\HRP\Code\Apps\HRP\XAF.Win\bin\Debug\HRP.exe"  %1

Syntaxe pro přidání odkazu

Pro malé zjednodušení psaní odkazů je nad obsahem nová akce Create Link, která na aktuální polohu kurzoru (v editoru obsahu) vloží přednastavený text pro daný link.

Syntax property editor

Pro další usnadnění psaní notifikací je použit ScintillaPropertyEditor, který umožňuje zvýraznění syntaxe (tag NotificationLink a jeko atributy byly přidány jako klíčové slova, pokud se v atributu CodeEditorOptions.SyntaxType použije hodnota 'NotificationSystem').

Syntaxe pro přidání odkazu, který otevře detail view

 <NotificationLink Action="OpenDetail" ViewId="ProjectCategory_DetailView" Id="{{TargetObject.Id}}">{{TargetObject.Name}}</NotificationLink>
  • Action = "OpenDetail" pro otevření detail view
  • ViewId = Id view v modelu
  • Id = identifikátor objektu pro otevření
  • Do notifikace se zobrazí hodnota mezi tagy <NotificationLink>, v tomto případě TargetObject.Name

Syntaxe pro přidání odkazu, který otevře list view

  <NotificationLink Action="OpenList" ViewId="User_ListView" Filter="">User List View</NotificationLink>
  • Action = "OpenList" pro otevření list view
  • ViewId = Id view v modelu
  • Filter = filter v list view (nepovinný atribut)
  • Do notifikace se zobrazí hodnota mezi tagy <NotificationLink>, v tomto případě 'User List View'

Příklad

Vzorový HTML text v Body s odkazem na příslušný objekt
<p>
Test notification for ProejctCategory
<br>
ProjectCategory: <NotificationLink Action="OpenDetail" ViewId="ProjectCategory_DetailView" Id="{{TargetObject.Id}}">{{TargetObject.Name}}</NotificationLink>
<br>
Owner: <NotificationLink Action="OpenDetail" ViewId="User_DetailView" Id="{{TargetObject.object_owner.Id}}">{{TargetObject.object_owner.Name}}</NotificationLink>
<br>
<br>
ListView for one Onwer in for loop:
{% for i in (1..4) %}
<br>
    - Owner {{i}}: <NotificationLink Action="OpenList" ViewId="User_ListView" Filter="Id = '{{TargetObject.object_owner.Id}}'">{{TargetObject.object_owner.Name}}</NotificationLink>
{% endfor %}
<br>
<br>
<NotificationLink Action="OpenList" ViewId="User_ListView" Filter="">User List View</NotificationLink>
</p>

Výsledná aplikační notifikace:

  • Žádné štítky