Visa/dölj Skapa DitaMAP på mappsnabbmenyn i webbredigeraren

I den här artikeln får vi lära oss att anpassa webbredigeraren för stödlinjer så att den döljer eller visar alternativet "Create DitaMap" på mappsnabbmenyn baserat på användar-/gruppbehörigheter.
I det här fallet döljer vi det här alternativet för alla användare som inte är författare.

Krav

Vi kommer att utnyttja AEM Guides Extension-paketet som gör att du kan anpassa gränssnittet för ditt program efter dina behov.
Gå igenom den här dokumentationen för att få mer information om hur Guides Extension Framework fungerar.

Nu kan du komma igång och lära dig hur du anpassar mappens snabbmeny för att dölja det här alternativet för alla användare som inte är författare.

Som du kan se nedan är alternativet"create DitaMap" synligt för en författaranvändare.

Visa alternativet Skapa DitaMap

Låt oss nu se hur vi kan dölja det här alternativet med hjälp av Guides Extension Framework.

Implementeringssteg

Implementeringen är uppdelad i delar nedan:

  • Ändringar i Folder_options-kontrollenheten

    Varje snabbmeny har ett kontrollenhets-ID kopplat till sig. Den här kontrollenheten hanterar funktionen vid händelse för de olika alternativen på snabbmenyn.

    I det här exemplet anpassar vi mappens snabbmeny för att dölja alternativet"Create DitaMap" för icke-författare. För detta kommer vi att göra ändringar i filen folder_options.ts som finns under /src i databasen med stödlinjer för tilläggsramverk.

    Vi använder "viewState" som "REPLACE" för att dölja det här alternativet från snabbmenyn.
    Vi anropar en ny widget i den här mappen_options via tangenten 'id'.

const folderOptions = {
  id: "folder_options",
  contextMenuWidget: "repository_panel",
  view: {
    items: [
      {
        component: "widget",
        id: "customditamap",
        target: {
          key: "displayName",
          value: "DITA Map",
          viewState: VIEW_STATE.REPLACE,
        },
      },
    ],
  },
};
  • Skapande av en ny widget som hanterar logiken

    En ny widget (custom options.ts) behövs för att skriva logiken som döljer det här alternativet endast för användare som inte är författare. För att uppnå detta har vi använt nyckeln show som fungerar som en växlingsknapp i vår JSON-struktur.

    Du kan skriva en egen extern server för att kontrollera gruppinformationen. På så sätt kan du även anpassa mappmenyalternativ för din anpassade grupp.
    I det här exemplet har vi utnyttjat anropet OTB AEM 'rolesapi' för att hämta användarinformationen och ange svaret i 'isAuthor' enligt ovanstående kodavsnitt.

const folderOptions = {
  id: "customditamap",
  view: {
    component: "button",
    quiet: true,
    icon: "breakdownAdd",
    label: "DITA Map",
    "on-click": "createNewDitaMap",
    show: "@extraProps.isAuthor",
  },
};

Genom detta kan vi dölja knappen med etiketten"Dita Map" baserat på värdet för"show".

Vi har lagt till en kontrollenhet för att ställa in attributet isAuthor i modellen. Detta kan göras med följande syntax i kontrollenheten.

this.model.extraProps.set("key", value);

Här är nyckeln 'isAuthor' och värdet är svaret från rolesapi-anropet.
Vi har också definierat händelsen createNewDitaMap för att aktivera alternativet create DitaMap (för författaranvändare).

controller: {
    init: function () {
      this.model.extraProps.set("isAuthor", false);

      rolesApiResponse.then((result) => {
        console.log(result);
        this.model.extraProps.set(
          "isAuthor",
          result["/content/dam"].roles.authors
        );

        console.log("testresult" + result["/content/dam"].roles.authors);
      });
    },
    createNewDitaMap() {
      repositoryController && repositoryController.next("create_new.map");
    },
  },
  • Lägger till den anpassade koden

    Importera mappen_options.ts och customOptions.ts till filen index.ts under /src.

Testning

  • Logga in på AEM med en användare som inte är en del av författargruppen. Alternativet Skapa DitaMap är dolt på mappens snabbmeny enligt nedan.
    Det här användningsfallet har lagts till i GIT, se relaterade resurser nedan.

Dölj alternativet Skapa DitaMap

Relaterade resurser

recommendation-more-help
11125c99-e1a1-4369-b5d7-fb3098b9b178