@model Disco.Web.Areas.Config.Models.Plugins.InstallModel @using Disco.Services.Plugins; @{ Authorization.Require(Claims.Config.Plugin.Install); var canInstallLocal = Authorization.Has(Claims.Config.Plugin.InstallLocal); ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "Plugins", MVC.Config.Plugins.Index(), "Install Plugin"); }

The plugin library [https://discoict.com.au] was last updated @CommonHelpers.FriendlyDate((Model.Library.ManifestDate > DateTime.Now ? DateTime.Now : Model.Library.ManifestDate))

@if (Model.Library.Plugins.Count == 0) {

No Plugins are Available

} else { var pluginGroups = Model.AvailablePlugins;
@foreach (var pluginGroup in pluginGroups) {

@pluginGroup.Item1

@foreach (var plugin in pluginGroup.Item2) { var installedPlugin = Plugins.PluginInstalled(plugin.Item1.Id) ? Plugins.GetPlugin(plugin.Item1.Id) : null; }

@plugin.Item1.Name @if (installedPlugin == null) { Install } else { if (Version.Parse(plugin.Item2.Version) > installedPlugin.Version) { Update } else { Installed } }

@(new HtmlString(plugin.Item1.Description))
}
}

Warning: All plugins run with the same level of network privileges as the Disco Web App.
Only Install plugins from a trusted source.

@if (canInstallLocal) {
@using (Html.BeginForm(MVC.API.Plugin.InstallLocal(), FormMethod.Post, new { enctype = "multipart/form-data" })) { }

Warning: All plugins run with the same level of network privileges as the Disco Web App.
Only install plugins from a trusted source.

}
@Html.ActionLinkButton("Update Plugin Library", MVC.API.Plugin.UpdateLibraryManifest()) @if (canInstallLocal) { @Html.ActionLinkButton("Install Plugin Package", MVC.API.Plugin.InstallLocal(), "buttonUpload") }