B083239D717B45498566C82E8931F08E
  • Thomas Pollinger
  • 04.02.2019
  • DE

AssetFolder Plug-In API

Seit der Einführung des neuen Asset Folder in Release 16.0.x, wurde auch eine kleine erste Version einer JavaScript Plug-In-Api dazugepackt. Man findet die Beispiele dazu in dem AssetFolder-Example, welches mit SP2 bzw. SP3 des Management Server beigelegt wurde. Hier die Auflistung der aktuell verfügbaren Funktionen:

//Getting the login GUID:
var loginGuid = opener.PluginApi.getLoginGuid();

//Go to gallery:
opener.PluginApi.goToGallery();
opener.PluginApi.goToGallery(folderId);
opener.PluginApi.goToGallery(folderId, assetId);

//Go to details:
opener.PluginApi.goToDetails(assetId);

//Go to image editor:
opener.PluginApi.goToEditor(assetId);

//Refresh current view:
opener.PluginApi.refresh();

Doch wie es immer so ist, fängt man erstmal an mit dieser Integration Plug-Ins zu bauen. Findet man schnell heraus, was einem noch so fehlt. Aus diesem Grund habe ich mir mal Gedanken gemacht, welche Erweiterungen man in der JavaScript Plug-In-Api für den AssetFolder Sinn machen würden. Aber auch, wenn man den Gedanken weiter zu Ende denkt, was in anderen Modulen (SmartEdit, SmartTree usw.) ebenfalls nach der selben Art und Weise genial wäre:

 

Asset-Folder (REST-API) => kleinere Anpassung:

opener.PluginApi.Assets.goToGallery();
opener.PluginApi.Assets.goToGallery(folderId);
opener.PluginApi.Assets.goToGallery(folderId, assetId);

opener.PluginApi.Assets.goToDetails(assetId);
opener.PluginApi.Assets.goToEditor(assetId);

opener.PluginApi.Assets.refresh();

 

SmartEdit (Navigation left):

opener.PluginApi.Panel.Navigation.show();
opener.PluginApi.Panel.Navigation.hide();
opener.PluginApi.Panel.Navigation.refresh();

opener.PluginApi.Panel.Navigation.Tree.foldOut();
opener.PluginApi.Panel.Navigation.Tree.foldUp();
opener.PluginApi.Panel.Navigation.Tree.goTo(pageId);
opener.PluginApi.Panel.Navigation.Tree.get(selected);

 

SmartEdit (Panels right):

opener.PluginApi.Panel.show();
opener.PluginApi.Panel.hide();

opener.PluginApi.Panel.Clipboard.refresh();
opener.PluginApi.Panel.Clipboard.add(pageId);
opener.PluginApi.Panel.Clipboard.remove(all|selected|pageId);
opener.PluginApi.Panel.Clipboard.select(all|pageId);
opener.PluginApi.Panel.Clipboard.deselect(all|pageId);
opener.PluginApi.Panel.Clipboard.get(all|selected|pageId);

opener.PluginApi.Panel.Assets.refresh();
opener.PluginApi.Panel.Assets.search(assetFilename|assetId);
opener.PluginApi.Panel.Assets.select(all|assetFilename|assetId); // if it makes sense to select all
opener.PluginApi.Panel.Assets.deselect(all|assetFilename|assetId); // if it makes sense to select all
opener.PluginApi.Panel.Assets.get(all|selected|assetId); // if it makes sense to select all

opener.PluginApi.Panel.PageSearch.refresh();
opener.PluginApi.Panel.PageSearch.execute(searchId|searchName);
opener.PluginApi.Panel.PageSearch.select(all|pageId|pageName); // if it makes sense to select all
opener.PluginApi.Panel.PageSearch.deselect(all|pageId|pageName); // if it makes sense to select all
opener.PluginApi.Panel.PageSearch.get(all|selected|pageId|pageName); // if it makes sense to select all

opener.PluginApi.Panel.ContentClasses.refresh();
opener.PluginApi.Panel.ContentClasses.search(contentClassId|contentClassName);
opener.PluginApi.Panel.ContentClasses.select(all|contentClassId|contentClassName); // if it makes sense to select all
opener.PluginApi.Panel.ContentClasses.deselect(all|contentClassId|contentClassName); // if it makes sense to select all
opener.PluginApi.Panel.ContentClasses.get(all|selected|contentClassId|contentClassName); // if it makes sense to select all

 

SmartEdit (common):

opener.PluginApi.goToEditingMode();
opener.PluginApi.goToCompare();
opener.PluginApi.goToFormMode();
opener.PluginApi.goToPreview();

 

SmartEdit & SmartTree (common):

opener.PluginApi.Page.goTo(pageId);
opener.PluginApi.Page.get(selected); // returns all meaningful data, similar to the small (i)
opener.PluginApi.ProjectVariant.goTo(projectVariantId);
opener.PluginApi.ProjectVariant.get(selected);
opener.PluginApi.LanguageVariant.goTo(languageVariantId);
opener.PluginApi.LanguageVariant.get(selected);
opener.PluginApi.getCurrentInformations(); // The message and the status of the small light bulb

 

SmartTree & Server-Manager (common):

opener.PluginApi.Clipboard.refresh();
opener.PluginApi.Clipboard.add(itemId|itemName); // itemName if necessary with RegEx
opener.PluginApi.Clipboard.remove(all|selected|itemId|itemName); // itemName if necessary with RegEx
opener.PluginApi.Clipboard.get(all|selected|itemId|itemName); // itemName if necessary with RegEx
opener.PluginApi.Clipboard.select(all|itemId|itemName); // itemName if necessary with RegEx
opener.PluginApi.Clipboard.deselect(all|itemId|itemName); // itemName if necessary with RegEx

opener.PluginApi.ActionMenu.refresh()
opener.PluginApi.Tree.refresh(all|selected|treeId) // all useful possibilities
opener.PluginApi.Tree.goTo(treeId); // all useful possibilities
opener.PluginApi.Tree.get(selected); // returns all meaningful data, similar to the small (i)
opener.PluginApi.Tree.foldOut(all|selected|treeId); // if it makes sense to foldout all
opener.PluginApi.Tree.foldUp(all|selected|treeId); // if it makes sense to foldup all

 

SmartEdit, SmartTree, Server Manager & Assets:

opener.PluginApi.Session.refresh();
opener.PluginApi.Session.get(all|specific); // returns all or specific meaningful data

Über den Autor:
Thomas Pollinger

... ist Senior Site Reliability Engineer bei der Vodafone GmbH in Düsseldorf. Seit dem Jahr 2007 betreut er zusammen mit seinen Kollegen die OpenText- (vormals RedDot-) Plattform Web Site Management für die deutsche Konzernzentrale.

Er entwickelt Erweiterungen in Form von Plug-Ins und PowerShell Skripten. Seit den Anfängen in 2001 (RedDot CMS 4.0) kennt er sich speziell mit der Arbeitweise und den Funktionen des Management Server aus.