Hur skapar jag en GUI-sida och lägger till kontroller?
För att skapa en ny sida som ska navigeras i genom en Avancerade inställningar Button, följ dessa steg för att lära sig.
- 1Skapa knappen på önskad sida.
- 2Skapa en ny HTML-sida med nödvändiga kontroller som är länkad till den tidigare skapade knappen.
- 3Länka kontrollerna på sidan till en befintlig agent eller skapa en ny agent.
- Detta nya tillägg fanns på SEL-sidan för ett alternativ att aktivera eller inaktivera SELOEMEvent Blocking
- 4I själv.html (// nitrogen_src / src / apps / idracgui / idracgui / web), under avsnittet html, lägg till nedanstående rader.
- <div class = "jumpbar-line"> </div>
<span class = "data-area-jump-items"> </span>
<div class = "data-area-options">
<% writeRes ("gen_OtherOptions "," sv ");%>
<button value = "submit" class = "inline" onclick = "location.href = 'seladvopt.html';">
<span> <% writeRes ("btn_advSettings", "en");%> </span>
</button> </div> - Gen_OtherOptions och btn_advSettings är poster som redan finns i res_en.txt (//nitrogen_src/src/apps/iDracGUI/iDracGUI/src/conf/res_en.txt)
- Dessa skapar ytterligare alternativ: märk och lägg till en [Avancerade inställningar] bredvid den. Location.href = 'seladvopt.html' är länken till den nya HTML-sidan som ska läggas till.
- <div class = "jumpbar-line"> </div>
- 5Skapa den nya HTML-sidan (se src / apps / idracgui / idracgui / web / seladvopt.html för referens)
- Fältlistan kommer att innehålla de nya kontrollerna på sidan som, textfält (skrivskyddad eller R / W), kryssruta etc.
- I fältet Lista:
- fieldList [0] = ny CheckboxMapping ("OemEventFilteringEnabled", "OemEventFilteringEnabled"); // Här är båda tokens samma
- OemEventFilteringEnabled: är id som agenten kommer att känna igen det.
- OemEventFilteringEnabled: Detta KAN vara aim_function_execute ("String"...... där string = OemEventFilteringEnabled.
- I det här fallet rekommenderas det att du inte använder exakt samma sträng som för före exisitng aim_function_execute, om du kör dessa individuellt i GET- och SET-funktionerna flera gånger.
- function pageRendererCallback (xmlDoc) kommer att ha funktionsdeklarationer som:
- Anropa standard bearbetningsmetod.
- Ändrat aktiverat tillstånd för fält baserat på aktuella val.
- function loadPageData laddar data i HTML.
- funktionsformulär Skicka in formuläret.
- Det kan finnas ett behov av att validera data för olika fält
- exempel: ett fält som Baud Rate kan vara mellan värdet x och y etc.. om ett värde utanför intervallet matas in då ett lämpligt felmeddelande..
- Det kan finnas ett behov av att validera data för olika fält
- funktion dependencyChecking (SELOEMDependencyChecking) kontroller:
- Privilege som kan konfigurera och baserat på privilegiet gråtonar de konfigurerbara fälten.
- Om användaren har nödvändig behörighet visas de konfigurerbara fälten ogrå.
- Under detta är den faktiska HTML.
- OBS: Alla funktionsnamn som ändrats från standarden måste uppdateras här.
- Följande är specifika för den nya sidan, om vi återanvänder koden från en befintlig sida måste vi göra nödvändiga ändringar.
- sys_log_eve_adv_settings Vilken är rubriksträngen,
- sys_log_eve_oemeventfilteringenable som är attributetiketten &
- btn_retSystemEventLog Återgå till "Föregående sida" måste läggas till res_en.txt
- Det korrekta funktionsnamnet för beroendekontroll måste uppdateras
- Fältlistans ID-namn OemEventFilteringEnabled bör uppdateras
- <input value = "1" id = "OemEventFilteringEnabled" name = "OemEventFilteringEnabled" type = "checkbox" class = "checkbox" />
- OBS! Därför bör alla nödvändiga tillägg till res_en.txt göras.
- Fältlistan kommer att innehålla de nya kontrollerna på sidan som, textfält (skrivskyddad eller R / W), kryssruta etc.
- 6Lägga till en ny agent eller märka tillsammans med en befintlig agent
- Märka tillsammans med en befintlig agent
- Välj rätt agent, du måste kunna göra det
- preProcessGet: Se till att ID: n du lade till anropades
- ProcessGet: Där data är "GOTTEN" från iDRAC (minne)
- postProcessGet: Där dataändringar återspeglas i GUI
- preProcessSet: Samma som PreProcessGet men anropas endast när en SET-åtgärd händer.
- ProcessSet: Ställ in data från GUI-kontroll i iDRAC (minne)
- postProcessSet: inget särskilt att göra här, men beror på funktionalitet och någon kod kan behövas här.
- Välj rätt agent, du måste kunna göra det
- Lägga till en ny agent
- Lägg till filen.h i src / apps / GUIDataServer / GUI GUIDataServer / include
- Lägg till. cc-fil i src / apps / GUIDataServer / GUI GUIDataServer / src
- Inkludera filen.h i GUIDataHandler.cc och lägg till följande rader,
- SELADV_Agent * selAdvAgent = ny SELADV_Agent (detta);
- addAgent ("OemEventFilteringEnabled", selAdvAgent);
- Om du lägger till en befintlig agent addAgent ("OemEventFilteringEnabled", serviceAgent); // serviceAgent är ett exempel.
- Märka tillsammans med en befintlig agent
- 7Hur get-set-sekvensen går
- När html-sidan laddas (dvs. du navigerar in till den med hjälp av flikar, knappar osv...)
- Get-sekvensen dvs preProcessGet, ProcessGet och postProcessGet körs en gång.
- När en inställning ändras och klicka på knappen Apply
- preProcessSet, ProcessSet och postProcessSet kommer dessutom att ske automatiskt
- preProcessGet, ProcessGet och postProcessGet kommer också att hända.
- När html-sidan laddas (dvs. du navigerar in till den med hjälp av flikar, knappar osv...)
- Här är en felsökningslogg över hur sekvensen går, när användaren navigerar till fliken, ställer in eller rensar värden:
- val är status för OEMEvent-filtret, rc är returvärdet aim_execute.
- SEL OEM EVENT FILTER fil4
1.Enter Tab
GET:
preProcessGet: 1
ProcessGet-filt val: 0, rc = 0
postProcessGet-filt val: 0, rc = 0
2.Manually Ställ in Filter / kryssa i rutan och klicka på Verkställ
SET:
preProcessSet: 1 - - - - - - -Manuell uppsättning
ProcessSet-aktivera = 1:: rc = 0
FÅ: - - - - - - - -Auto Få på APPLY
preProcessGet: 1
ProcessGet-filt val: 1, rc = 0
postProcessGet -filt val: 1, rc = 0
3. Rensa filtret manuellt / avmarkera rutan och klicka på Apply
SET: preProcessSet: 1 - - - - - - - Manual Clear (Set 0)
ProcessSet-enable = 0:: rc = 0
GET: Auto Get on APPLY
preProcessGet: 1
ProcessGet-filt val: 0, rc = 0
postProcessGet-filt val: 0, rc = 0
- - - - - - - - - - - - - - - - - -