707 lines
23 KiB
C#
707 lines
23 KiB
C#
#pragma warning disable 1591
|
|
//------------------------------------------------------------------------------
|
|
// <auto-generated>
|
|
// This code was generated by a tool.
|
|
// Runtime Version:4.0.30319.42000
|
|
//
|
|
// Changes to this file may cause incorrect behavior and will be lost if
|
|
// the code is regenerated.
|
|
// </auto-generated>
|
|
//------------------------------------------------------------------------------
|
|
|
|
namespace Disco.Web.Areas.Config.Views.Plugins
|
|
{
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Net;
|
|
using System.Text;
|
|
using System.Web;
|
|
using System.Web.Helpers;
|
|
using System.Web.Mvc;
|
|
using System.Web.Mvc.Ajax;
|
|
using System.Web.Mvc.Html;
|
|
using System.Web.Routing;
|
|
using System.Web.Security;
|
|
using System.Web.UI;
|
|
using System.Web.WebPages;
|
|
using Disco;
|
|
using Disco.Models.Repository;
|
|
using Disco.Services;
|
|
using Disco.Services.Authorization;
|
|
using Disco.Services.Web;
|
|
using Disco.Web;
|
|
using Disco.Web.Extensions;
|
|
|
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "2.0.0.0")]
|
|
[System.Web.WebPages.PageVirtualPathAttribute("~/Areas/Config/Views/Plugins/Index.cshtml")]
|
|
public partial class Index : Disco.Services.Web.WebViewPage<Disco.Web.Areas.Config.Models.Plugins.IndexViewModel>
|
|
{
|
|
public Index()
|
|
{
|
|
}
|
|
public override void Execute()
|
|
{
|
|
|
|
#line 2 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
|
|
Authorization.Require(Claims.Config.Plugin.Show);
|
|
|
|
var canConfig = Authorization.Has(Claims.Config.Plugin.Configure);
|
|
var canUninstall = Authorization.Has(Claims.Config.Plugin.Uninstall);
|
|
var canInstall = Authorization.Has(Claims.Config.Plugin.Install);
|
|
|
|
ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "Plugins");
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\r\n<div");
|
|
|
|
WriteLiteral(" id=\"plugins\"");
|
|
|
|
WriteLiteral(">\r\n");
|
|
|
|
|
|
#line 12 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 12 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
|
|
if (Model.PluginManifests.Count == 0)
|
|
{
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" <div");
|
|
|
|
WriteLiteral(" class=\"form\"");
|
|
|
|
WriteLiteral(" style=\"width: 450px; padding: 100px 0;\"");
|
|
|
|
WriteLiteral(">\r\n <h2>No Plugins are Installed</h2>\r\n </div>\r\n");
|
|
|
|
|
|
#line 18 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
}
|
|
else
|
|
{
|
|
var pluginGroups = Model.PluginManifestsByCategory.OrderBy(c => c.Key).ToList();
|
|
|
|
|
|
int itemsPerColumn = pluginGroups.Count / 3;
|
|
var itemNextId = 0;
|
|
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" <table");
|
|
|
|
WriteLiteral(" id=\"pageMenu\"");
|
|
|
|
WriteLiteral(">\r\n <tr>\r\n");
|
|
|
|
|
|
#line 29 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 29 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
for (int i = 0; i < 3; i++)
|
|
{
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" <td>\r\n");
|
|
|
|
|
|
#line 32 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 32 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
|
|
int itemsForThisColumn = itemsPerColumn + (pluginGroups.Count % 3 > i ? 1 : 0);
|
|
for (int i2 = 0; i2 < itemsForThisColumn && itemNextId < pluginGroups.Count; i2++)
|
|
{
|
|
var pluginGroup = pluginGroups[itemNextId];
|
|
itemNextId++;
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" <div");
|
|
|
|
WriteLiteral(" class=\"pageMenuArea\"");
|
|
|
|
WriteLiteral(">\r\n <h2>");
|
|
|
|
|
|
#line 39 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
Write(pluginGroup.Key);
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("</h2>\r\n");
|
|
|
|
|
|
#line 40 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 40 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
foreach (var pluginDefinition in pluginGroup.Value.OrderBy(p => p.Name))
|
|
{
|
|
if (canConfig)
|
|
{
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" <a");
|
|
|
|
WriteAttribute("href", Tuple.Create(" href=\"", 1930), Tuple.Create("\"", 1999)
|
|
|
|
#line 44 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
, Tuple.Create(Tuple.Create("", 1937), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.Config.Plugins.Configure(pluginDefinition.Id))
|
|
|
|
#line default
|
|
#line hidden
|
|
, 1937), false)
|
|
);
|
|
|
|
WriteLiteral(">\r\n <i");
|
|
|
|
WriteLiteral(" class=\"fa fa-cogs\"");
|
|
|
|
WriteLiteral("></i>\r\n <h3>");
|
|
|
|
|
|
#line 46 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
Write(pluginDefinition.Name);
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("</h3>\r\n </a>\r\n");
|
|
|
|
|
|
#line 48 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
}
|
|
else
|
|
{
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" <h3>");
|
|
|
|
|
|
#line 51 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
Write(pluginDefinition.Name);
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("</h3>\r\n");
|
|
|
|
|
|
#line 52 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
}
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" <div");
|
|
|
|
WriteLiteral(" class=\"pageMenuBlurb\"");
|
|
|
|
WriteLiteral(">\r\n <span");
|
|
|
|
WriteLiteral(" class=\"pluginVersion\"");
|
|
|
|
WriteLiteral(">v");
|
|
|
|
|
|
#line 54 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
Write(pluginDefinition.VersionFormatted);
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("</span> | ");
|
|
|
|
|
|
#line 54 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
Write(pluginDefinition.Author);
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" | <a");
|
|
|
|
WriteAttribute("href", Tuple.Create(" href=\"", 2719), Tuple.Create("\"", 2747)
|
|
|
|
#line 54 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
, Tuple.Create(Tuple.Create("", 2726), Tuple.Create<System.Object, System.Int32>(pluginDefinition.Url
|
|
|
|
#line default
|
|
#line hidden
|
|
, 2726), false)
|
|
);
|
|
|
|
WriteLiteral(" title=\"More Information\"");
|
|
|
|
WriteLiteral(" target=\"_blank\"");
|
|
|
|
WriteLiteral("><i");
|
|
|
|
WriteLiteral(" class=\"fa fa-external-link\"");
|
|
|
|
WriteLiteral("></i></a>\r\n </div>\r\n");
|
|
|
|
|
|
#line 56 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
}
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" </div>\r\n");
|
|
|
|
|
|
#line 58 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
}
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\r\n </td>\r\n");
|
|
|
|
|
|
#line 61 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
}
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" </tr>\r\n </table>\r\n");
|
|
|
|
|
|
#line 64 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
if (canUninstall)
|
|
{
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" <div");
|
|
|
|
WriteLiteral(" id=\"dialogUninstallPlugins\"");
|
|
|
|
WriteLiteral(" title=\"Uninstall Plugin\"");
|
|
|
|
WriteLiteral(" class=\"dialog\"");
|
|
|
|
WriteLiteral(">\r\n <div>\r\n");
|
|
|
|
WriteLiteral(" ");
|
|
|
|
|
|
#line 68 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
Write(Html.DropDownList("uninstallPlugin", Model.PluginManifests.OrderBy(p => p.Name).ToSelectListItems(null, true, "Select a Plugin to Uninstall")));
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\r\n </div>\r\n <div>\r\n " +
|
|
"<input");
|
|
|
|
WriteLiteral(" id=\"uninstallPluginData\"");
|
|
|
|
WriteLiteral(" type=\"checkbox\"");
|
|
|
|
WriteLiteral(" /><label");
|
|
|
|
WriteLiteral(" for=\"uninstallPluginData\"");
|
|
|
|
WriteLiteral("> Uninstall Plugin Data</label>\r\n <div");
|
|
|
|
WriteLiteral(" id=\"uninstallPluginDataAlert\"");
|
|
|
|
WriteLiteral(" class=\"info-box error\"");
|
|
|
|
WriteLiteral(" style=\"display: none;\"");
|
|
|
|
WriteLiteral(">\r\n <p");
|
|
|
|
WriteLiteral(" class=\"fa-p\"");
|
|
|
|
WriteLiteral(">\r\n <i");
|
|
|
|
WriteLiteral(" class=\"fa fa-exclamation-triangle\"");
|
|
|
|
WriteLiteral("></i><strong>Warning:</strong> Data will be permanently deleted\r\n " +
|
|
" </p>\r\n </div>\r\n </div>\r\n " +
|
|
" </div>\r\n");
|
|
|
|
WriteLiteral(" <div");
|
|
|
|
WriteLiteral(" id=\"dialogUninstallPluginConfirm\"");
|
|
|
|
WriteLiteral(" title=\"Confirm Plugin Uninstall\"");
|
|
|
|
WriteLiteral(" class=\"dialog\"");
|
|
|
|
WriteLiteral(">\r\n <div");
|
|
|
|
WriteLiteral(" class=\"info-box\"");
|
|
|
|
WriteLiteral(">\r\n <p");
|
|
|
|
WriteLiteral(" class=\"fa-p\"");
|
|
|
|
WriteLiteral(">\r\n <i");
|
|
|
|
WriteLiteral(" class=\"fa fa-info-circle\"");
|
|
|
|
WriteLiteral("></i>Are you sure you want to uninstall this plugin?\r\n </p" +
|
|
">\r\n <h4");
|
|
|
|
WriteLiteral(" id=\"uninstallPluginConfirm\"");
|
|
|
|
WriteLiteral("></h4>\r\n </div>\r\n <div");
|
|
|
|
WriteLiteral(" id=\"uninstallPluginDataConfirm\"");
|
|
|
|
WriteLiteral(" class=\"info-box error\"");
|
|
|
|
WriteLiteral(" style=\"display: none;\"");
|
|
|
|
WriteLiteral(">\r\n <p");
|
|
|
|
WriteLiteral(" class=\"fa-p\"");
|
|
|
|
WriteLiteral(">\r\n <i");
|
|
|
|
WriteLiteral(" class=\"fa fa-exclamation-triangle\"");
|
|
|
|
WriteLiteral("></i><strong>Warning:</strong> Data will be permanently deleted\r\n " +
|
|
" </p>\r\n </div>\r\n");
|
|
|
|
|
|
#line 91 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 91 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
using (Html.BeginForm(MVC.API.Plugin.Uninstall()))
|
|
{
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 93 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
Write(Html.AntiForgeryToken());
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 93 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" <input");
|
|
|
|
WriteLiteral(" type=\"hidden\"");
|
|
|
|
WriteLiteral(" name=\"id\"");
|
|
|
|
WriteLiteral(" id=\"dialogUninstallPluginId\"");
|
|
|
|
WriteLiteral(" />\r\n");
|
|
|
|
WriteLiteral(" <input");
|
|
|
|
WriteLiteral(" type=\"hidden\"");
|
|
|
|
WriteLiteral(" name=\"uninstallData\"");
|
|
|
|
WriteLiteral(" id=\"dialogUninstallPluginData\"");
|
|
|
|
WriteLiteral(" value=\"false\"");
|
|
|
|
WriteLiteral(" />\r\n");
|
|
|
|
|
|
#line 96 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
}
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" </div>\r\n");
|
|
|
|
WriteLiteral(" <script>\r\n $(function () {\r\n\r\n " +
|
|
" let $dialog = null;\r\n\r\n $(\'#buttonUninstall\').on(" +
|
|
"\'click\', function () {\r\n\r\n if (!$dialog) {\r\n " +
|
|
" const $dialogConfirm = $(\'#dialogUninstallPluginConfirm\')" +
|
|
".dialog({\r\n resizable: false,\r\n " +
|
|
" modal: true,\r\n width: 3" +
|
|
"50,\r\n autoOpen: false,\r\n " +
|
|
" buttons: {\r\n \"Confirm Unin" +
|
|
"stall\": function () {\r\n $dialogConfir" +
|
|
"m.find(\'form\').submit();\r\n $(this).di" +
|
|
"alog(\"disable\");\r\n },\r\n " +
|
|
" Cancel: function () {\r\n " +
|
|
" $(\'#uninstallPluginData\').prop(\'checked\', false);\r\n " +
|
|
" $(\'#uninstallPluginDataAlert\').hide();\r\n " +
|
|
" $(this).dialog(\"close\");\r\n " +
|
|
" }\r\n }\r\n " +
|
|
" });\r\n\r\n $dialog = $(\'#dialogUninstallPlug" +
|
|
"ins\').dialog({\r\n resizable: false,\r\n " +
|
|
" modal: true,\r\n wid" +
|
|
"th: 350,\r\n autoOpen: false,\r\n " +
|
|
" buttons: {\r\n \"Uninsta" +
|
|
"ll\": function () {\r\n const $uninstall" +
|
|
"Plugin = $(\'#uninstallPlugin\');\r\n plu" +
|
|
"ginId = $uninstallPlugin.val();\r\n plu" +
|
|
"ginName = $uninstallPlugin.find(\'option:selected\').text();\r\n " +
|
|
" pluginUninstallData = $(\'#uninstallPluginData\').is(\':che" +
|
|
"cked\');\r\n\r\n if (!pluginId) {\r\n " +
|
|
" alert(\'Select a plugin to uninstall\');\r" +
|
|
"\n } else {\r\n " +
|
|
" $(\'#uninstallPluginConfirm\').text(pluginName + \' [\' + plu" +
|
|
"ginId + \']\');\r\n const $uninstallP" +
|
|
"luginDataConfirm = $(\'#uninstallPluginDataConfirm\');\r\n " +
|
|
" if (pluginUninstallData)\r\n " +
|
|
" $uninstallPluginDataConfirm.show();\r\n " +
|
|
" else\r\n " +
|
|
" $uninstallPluginDataConfirm.hide();\r\n\r\n " +
|
|
" $(\'#dialogUninstallPluginId\').val(pluginId);\r\n " +
|
|
" $(\'#dialogUninstallPluginData\').val(pluginUninstallData " +
|
|
"? \'true\' : \'false\');\r\n\r\n $dialogC" +
|
|
"onfirm.dialog(\'open\');\r\n $(this)." +
|
|
"dialog(\"close\");\r\n }\r\n " +
|
|
" },\r\n Cancel: fun" +
|
|
"ction () {\r\n $(\'#uninstallPluginData\'" +
|
|
").prop(\'checked\', false);\r\n $(\'#unins" +
|
|
"tallPluginDataAlert\').hide();\r\n $(thi" +
|
|
"s).dialog(\"close\");\r\n }\r\n " +
|
|
" }\r\n });\r\n\r\n " +
|
|
" $(\'#uninstallPluginData\').change(function () {\r\n " +
|
|
" if ($(this).is(\':checked\')) {\r\n " +
|
|
" $(\'#uninstallPluginDataAlert\').slideDown();\r\n " +
|
|
" } else {\r\n $(\'#uninstallPluginD" +
|
|
"ataAlert\').slideUp();\r\n }\r\n " +
|
|
" });\r\n }\r\n\r\n " +
|
|
"$dialog.dialog(\'open\');\r\n return false;\r\n " +
|
|
" });\r\n });\r\n </script>\r\n");
|
|
|
|
|
|
#line 175 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
}
|
|
if (Model.PluginUpdates.Count > 0)
|
|
{
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" <div");
|
|
|
|
WriteLiteral(" id=\"updateAvailableContainer\"");
|
|
|
|
WriteLiteral(">\r\n <i");
|
|
|
|
WriteLiteral(" class=\"fa fa-cloud-download\"");
|
|
|
|
WriteLiteral("></i>\r\n <div>");
|
|
|
|
|
|
#line 180 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
Write(Model.PluginUpdates.Count);
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" plugin update");
|
|
|
|
|
|
#line 180 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
Write(Model.PluginUpdates.Count == 1 ? " is" : "s are");
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" available</div>\r\n");
|
|
|
|
|
|
#line 181 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 181 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
if (canInstall)
|
|
{
|
|
using (Html.BeginForm(MVC.API.Plugin.UpdateAll()))
|
|
{
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 185 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
Write(Html.AntiForgeryToken());
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 185 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" <button");
|
|
|
|
WriteLiteral(" class=\"button small alert\"");
|
|
|
|
WriteLiteral(" type=\"submit\"");
|
|
|
|
WriteLiteral(">Update All</button>\r\n");
|
|
|
|
|
|
#line 187 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
}
|
|
}
|
|
else
|
|
{
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" <div");
|
|
|
|
WriteLiteral(" class=\"smallMessage\"");
|
|
|
|
WriteLiteral(">You do not have sufficient permission to install these updates.</div>\r\n");
|
|
|
|
|
|
#line 192 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
}
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" </div>\r\n");
|
|
|
|
WriteLiteral(@" <script>
|
|
(function () {
|
|
$(function () {
|
|
var layout_PageHeading = $('#layout_PageHeading').height(80);
|
|
var updateAvailableContainer = $('#updateAvailableContainer');
|
|
updateAvailableContainer.appendTo(layout_PageHeading);
|
|
});
|
|
})();
|
|
</script>
|
|
");
|
|
|
|
|
|
#line 203 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
|
|
}
|
|
}
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\r\n</div>\r\n<div");
|
|
|
|
WriteLiteral(" class=\"actionBar\"");
|
|
|
|
WriteLiteral(">\r\n");
|
|
|
|
|
|
#line 209 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 209 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
if (canUninstall && Model.PluginManifests.Count > 0)
|
|
{
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 211 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
Write(Html.ActionLinkButton("Uninstall Plugins", MVC.Config.Plugins.Index(), "buttonUninstall"));
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 211 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
|
|
}
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" ");
|
|
|
|
|
|
#line 213 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
if (canInstall)
|
|
{
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 215 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
Write(Html.ActionLinkButton("Install Plugins", MVC.Config.Plugins.Install()));
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 215 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
|
|
|
|
}
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("</div>\r\n");
|
|
|
|
}
|
|
}
|
|
}
|
|
#pragma warning restore 1591
|