Windows JavaScript rozšíření pro správu sady Azure Pack Client-Side
Platí pro: Windows Azure Pack
Hello World ukázkové Visual Studio Project cesty: Microsoft.WAP.Samples.HelloWorld.TenantExtension\Content\*.js a Microsoft.WAP.Samples.HelloWorld.AdminExtension\Content\*.js
JavaScript vyžadovaný rozšířením portálu pro správu sady Azure Pack Windows by mělo být vloženo do šablon a definováno v manifestu. Tím se javascript načte do prohlížeče při načtení portálu Windows Azure Pack. Stejně jako u šablon stylů neexistuje žádná izolace pro skripty – všechny skripty se načtou dohromady. Proto důrazně doporučujeme používat techniky izolace JavaScriptu, jako jsou obory názvů.
Layout
Můžete mít tolik souborů JavaScriptu, kolik vyžaduje vaše rozšíření. Doporučuje se ale sledovat rozložení souboru a oddělení podobné ukázce Hello World:
Microsoft.WAP.Samples.HelloWorld.TenantExtension (or Microsoft.WAP.Samples.HelloWorld.AdminExtension)
\Styles
\Templates
extensions.data.js
[ExtensionName]Extension.js (e.g. DomainTenantExtension.js)
\Scripts
(Individual scripts per tab or dialog)
Hlavními body tohoto rozložení jsou:
Existují dva javascriptové soubory mimo adresář \Scripts – tyto obsahují inicializační kód pro část prohlížeče na straně klienta rozšíření.
Všechny ostatní soubory JavaScriptu jsou v adresáři \Scripts. Každé hlavní zobrazení uživatelského rozhraní rozšíření, jako jsou karty nebo dialogy, má svůj vlastní soubor. Kód uvnitř je v jednom oboru názvů rozšíření.
Inicializace skriptu Java
Inicializační soubory JavaScriptu jsou:
Microsoft.WAP.Samples.HelloWorld.TenantExtension\extensions.data.js
Microsoft.WAP.Samples.HelloWorld.TenantExtension\HelloWorldTenant Extension.js
Microsoft.WAP.Samples.HelloWorld.AdminExtension\extensions.data.js
Microsoft.WAP.Samples.HelloWorld.AdminExtension\HelloWorldAdminExtension.js
Inicializace javascriptové části rozšíření na straně klienta je ve dvou částech. První deklaruje rozšíření architektury, druhá část vyplní chování a hlavní komponenty uživatelského rozhraní, jako jsou tabulátory a tlačítka příkazového řádku. Důvodem tohoto rozdělení je, že rozšíření umožňuje zkontrolovat, jestli se má zobrazit. Uživatel se například nemusí přihlásit k odběru plánu, který zahrnuje vaše prostředky, v takovém případě by se zobrazení nepotřebné. To ukazuje funkce HelloWorldTenantExtensionActivationInit v Microsoft.WAP.Samples.HelloWorld.TenantExtension\Content\HelloWorldTenantExtension.js:
HelloWorldTenantExtensionActivationInit = function () {
var subs = Exp.Rdfe.getSubscriptionList(),
subscriptionRegisteredToService = global.Exp.Rdfe.getSubscriptionsRegisteredToService("helloworld"),
helloWorldExtension = $.extend(this, global.HelloWorldTenantExtension);
// Don't activate the extension if user doesn't have a plan that includes the service.
if (subscriptionRegisteredToService.length === 0) {
return false; // Don't want to activate? Just bail
}
//var quickCreateViewModel = new global.HelloWorldTenantExtension.ViewModels.QuickCreateViewModel();
$.extend(helloWorldExtension, {
viewModelUris: [helloWorldExtension.Controller.userInfoUrl],
displayName: "Hello World",
navigationalViewModelUri: {
uri: helloWorldExtension.Controller.listFileSharesUrl,
ajaxData: function () {
return global.Exp.Rdfe.getSubscriptionIdsRegisteredToService(serviceName);
}
},
displayStatus: global.waz.interaction.statusIconHelper(global.HelloWorldTenantExtension.FileSharesTab.statusIcons, "Status"),
menuItems: [
{
name: "FileShares",
displayName: "Hello World",
url: "#Workspaces/HelloWorldTenantExtension",
preview: "createPreview",
subMenu: [
{
name: "Create",
displayName: "Create File Share",
description: "Quickly Create File Share on a File Server",
template: "CreateFileShare",
label: "Create",
subMenu: [
{
name: "QuickCreate",
displayName: "FileFile",
template: "CreateFileShare"
}
]//,
//data: quickCreateViewModel,
//open: global.HelloWorldTenantExtension.ViewModels.onOpened,
//ok: global.HelloWorldTenantExtension.ViewModels.onOk
//execute: global.HelloWorldTenantExtension.CreateWizard.showCreateWizard
}
]
}
],
getResources: function () {
return resources;
}
});
// TODO: (fx-isolation) Refactor navigation
helloWorldExtension.onNavigateAway = onNavigateAway;
helloWorldExtension.navigation = navigation;
Shell.UI.Pivots.registerExtension(helloWorldExtension, function () {
Exp.Navigation.initializePivots(this, this.navigation);
});
// Finally activate and give "the" helloWorldExtension the activated extension since a good bit of code depends on it
$.extend(global.HelloWorldTenantExtension, Shell.Extensions.activate(helloWorldExtension));
};
Stejně jako jakýkoli jiný JavaScript vyžadovaný pro vaše rozšíření by měl být deklarován v manifestu pro vaše rozšíření. První část deklarace přípony, pokud používá navrhované rozložení souboru z dřívějšího, se provádí v souboru extensions.data.js. Ukázka Hello World obsahuje tento kód v Microsoft.WAP.Samples.HelloWorld.TenantExtension\Content\extensions.data.js:
(function (global, undefined) {
"use strict";
var extensions = [{
name: "HelloWorldTenantExtension",
displayName: "Hello World",
iconUri: "/Content/HelloWorldTenant/HelloWorldTenant.png",
iconShowCount: false,
iconTextOffset: 11,
iconInvertTextColor: true,
displayOrderHint: 2 // Display it right after WebSites extension (order 1)
}];
global.Shell.Internal.ExtensionProviders.addLocal(extensions);
})(this);
Vlastnost |
Popis |
---|---|
displayName |
Text zobrazený v levém navigačním panelu rozšíření |
iconUri |
Absolutní cesta k obrázku použitému jako ikona rozšíření |
iconShowCount |
Přepíná zobrazení počtu položek v rozšíření na ikoně rozšíření. |
iconTextOffset, iconInvertTextColor |
Jemně odstupňovaná kontrola nad zobrazením položky rozšíření v levém navigačním panelu. |
displayOrderHint |
Umístění v seznamu rozšíření v levém navigačním panelu Nižší číslo odpovídá blíž k horní části levého navigačního podokna. |
Druhá část deklarace přípony, pokud používáte navrhované rozložení souboru v implementaci Windows portálu pro správu sady Azure Pack Client-Side rozšíření, probíhá v souboru [ExtensionName]Extension.js souboru (kde [ExtensionName] je název přípony). Obsah v tomto souboru je obecně v oboru široký. Mezi příklady toho, co se obvykle provádí v tomto souboru, patří:
Nastavení oboru názvů JavaScriptu pro kód rozšíření
Deklarování všech karet rozšíření bude mít.
Deklarováním všech položek nabídky Přidat nový bude rozšíření přispívat.
Definování jakéhokoli chování globálního rozšíření Například co dělat, když se rozšíření poprvé otevře.
Karta nebo dialogové okno JavaScript Files
Pokud použijete navrhované rozdělení skriptu a rozložení souboru, každá karta nebo dialogové okno budou mít v adresáři \Scripts vlastní javascriptový soubor. Každý soubor skriptu musí být deklarován v manifestu pro vaši příponu, pokud se má načíst. Doporučujeme, aby váš javascriptový kód existoval v rámci oboru názvů, aby nerušil kód z jiných rozšíření. Pokud se stejný obor názvů používá mezi všemi vašimi soubory, měli byste být schopni odkazovat na funkce z jiných souborů, což znamená, že inicializace JavaScript může odkazovat na funkci v průvodci JavaScript, která vytvoří průvodce, místo aby byla funkce pro vytvoření průvodce součástí JavaScriptu inicializace.
Další informace o provádění akcí v uživatelském rozhraní najdete v tématu Provádění běžných úloh v rozšíření portálu pro správu sady Azure Pack Windows.
Viz také
Windows rozšíření uživatelského rozhraní portálu Management Portal sady Azure Pack