'Create DitaMAP' in het contextmenu van mappen in de webbrowser tonen/verbergen

In dit artikel, zullen wij leren hoe te om de Redacteur van het Web van Gidsen aan te passen om de optie "Create DitaMap"in het menu van de omslagcontext op basis van gebruiker/groepstoestemmingen te verbergen of te tonen.
In dit gebruiksgeval wordt deze optie voor alle gebruikers zonder auteur verborgen.

Voorwaarden

We gebruiken het extensiepakket voor AEM hulplijnen, waarmee u de gebruikersinterface van uw app naar wens kunt aanpassen.
Gelieve dit door te nemen documentatie voor meer inzicht in de werking van het Extension Framework van Guides.

Nu gaat u aan de slag en leert u hoe u het contextmenu van de map kunt aanpassen om deze optie te verbergen voor alle gebruikers die geen auteur zijn.

Zoals u onder codefragment kunt zien, is de optie "DitaMap maken" zichtbaar voor een auteur-gebruiker.

DitaMap maken weergeven, optie

Laten we nu bekijken hoe we deze optie kunnen verbergen met het Guides Extension Framework.

Implementatiestappen

De implementatie is onderverdeeld in de volgende onderdelen:

  • Wijzigingen in de controller Folder_options

    Aan elk contextmenu is een controller-id gekoppeld. Deze controller handelt de gebeurtenisfunctionaliteit voor de verschillende contextmenu-opties af.

    In dit voorbeeld passen we het contextmenu van de map aan om de optie 'Create DitaMap' voor niet-auteurs te verbergen. Hiervoor zullen we wijzigingen aanbrengen in het bestand folder_options.ts dat zich onder /src bevindt in de gegevensopslagruimte van het raamwerk voor hulplijnen.

    We gebruiken "viewState" als "REPLACE" om deze optie in het contextmenu te verbergen.
    We roepen een nieuwe widget in deze folder_options door sleutel 'id' aan.

const folderOptions = {
  id: "folder_options",
  contextMenuWidget: "repository_panel",
  view: {
    items: [
      {
        component: "widget",
        id: "customditamap",
        target: {
          key: "displayName",
          value: "DITA Map",
          viewState: VIEW_STATE.REPLACE,
        },
      },
    ],
  },
};
  • Een nieuwe widget maken om de logica af te handelen

    Er is een nieuwe widget gemaakt (customoptions.ts) om de logica te schrijven waarmee deze optie alleen voor niet-auteurgebruikers kan worden verborgen. Om dit te bereiken hebben we de "show"-toets gebruikt, die fungeert als schakeloptie in onze JSON-structuur.

    U kunt uw eigen externe servlet schrijven om de groepdetails te controleren. Op deze manier kunt u ook de opties voor het mapmenu aanpassen voor uw aangepaste groep.
    In dit voorbeeld hebben we de OOTB-AEM 'rolesapi'-aanroep benut om de gebruikersgegevens op te halen en de reactie in 'isAuthor' in te stellen, zoals in bovenstaande fragmenten wordt getoond.

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

Hiermee kunnen we de knop verbergen met het label 'Dita Map' op basis van de waarde 'show'.

We hebben een controller toegevoegd om het kenmerk 'isAuthor' in het model in te stellen. Dit kan met de volgende syntaxis in de controller worden gedaan.

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

Hier is de sleutel 'isAuthor' en de waarde is de reactie van de rolesapi vraag.
We hebben ook de gebeurtenis 'createNewDitaMap' gedefinieerd om de optie DitaMap maken in te schakelen (voor auteur-gebruikers).

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");
    },
  },
  • De aangepaste code toevoegen

    Importeer de bestanden folder_options.ts en customoptions.ts in het bestand index.ts onder /src.

Testen

  • Meld u aan bij AEM met een gebruiker die geen deel uitmaakt van een groep auteurs. De optie DitaMap maken wordt verborgen in het contextmenu van elke map, zoals hieronder wordt weergegeven.
    Dit gebruikscase is toegevoegd aan GIT. Zie hieronder de gerelateerde bronnen.

De optie DitaMap maken verbergen

Gerelateerde bronnen

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