Permissions & Authorization for Users #24

Initial Release; Includes Database and MVC refactoring
This commit is contained in:
Gary Sharp
2013-10-10 19:13:16 +11:00
parent 172ce5524a
commit a099d68915
458 changed files with 40221 additions and 12130 deletions
@@ -1,5 +1,7 @@
@model Disco.Web.Areas.Config.Models.Plugins.PluginConfigurationViewModel
@{
Authorization.Require(Claims.Config.Plugin.Configure);
ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "Plugins", MVC.Config.Plugins.Index(), Model.Manifest.Name);
}
@using (Html.BeginForm())
+102 -77
View File
@@ -1,6 +1,12 @@
@model Disco.Web.Areas.Config.Models.Plugins.IndexViewModel
@using Disco.Services.Plugins;
@{
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");
}
<div id="plugins">
@@ -34,9 +40,16 @@
<h2>@Plugins.PluginFeatureCategoryDisplayName(pluginGroup.Item1)</h2>
@foreach (var pluginDefinition in pluginGroup.Item2)
{
if (canConfig)
{
<a href="@Url.Action(MVC.Config.Plugins.Configure(pluginDefinition.Id))">
<h3>@pluginDefinition.Name</h3>
</a>
}
else
{
<h3>@pluginDefinition.Name</h3>
}
<div class="pageMenuBlurb">
<span class="pluginVersion">v@(pluginDefinition.VersionFormatted)</span> | @pluginDefinition.Author | <a href="@pluginDefinition.Url" target="_blank">More Information</a>
</div>
@@ -48,6 +61,8 @@
}
</tr>
</table>
if (canUninstall)
{
<div id="dialogUninstallPlugins" title="Uninstall Plugin">
<div>
@Html.DropDownList("uninstallPlugin", Model.PluginManifests.ToSelectListItems(null, true, "Select a Plugin to Uninstall"))
@@ -72,91 +87,98 @@
$(function () {
// Uninstall
var uninstallUrl = '@(Url.Action(MVC.API.Plugin.Uninstall()))/';
var uninstallPlugin, uninstallPluginData, $dialogConfirm, uninstallPluginConfirm, uninstallPluginDataConfirm;
var uninstallPlugin, uninstallPluginData, $dialogConfirm, uninstallPluginConfirm, uninstallPluginDataConfirm;
var pluginId, pluginName, pluginUninstallData;
var pluginId, pluginName, pluginUninstallData;
var $dialog = $('#dialogUninstallPlugins').dialog({
resizable: false,
modal: true,
width: 350,
autoOpen: false,
buttons: {
"Uninstall": function () {
pluginId = uninstallPlugin.val();
pluginName = uninstallPlugin.find('option:selected').text();
pluginUninstallData = uninstallPluginData.is(':checked');
var $dialog = $('#dialogUninstallPlugins').dialog({
resizable: false,
modal: true,
width: 350,
autoOpen: false,
buttons: {
"Uninstall": function () {
pluginId = uninstallPlugin.val();
pluginName = uninstallPlugin.find('option:selected').text();
pluginUninstallData = uninstallPluginData.is(':checked');
if (!pluginId) {
alert('Select a plugin to uninstall');
} else {
uninstallPluginConfirm.text(pluginName + ' [' + pluginId + ']');
if (pluginUninstallData)
uninstallPluginDataConfirm.show();
else
uninstallPluginDataConfirm.hide();
$dialogConfirm.dialog('open');
$(this).dialog("close");
}
},
Cancel: function () {
uninstallPluginData.prop('checked', false);
$('#uninstallPluginDataAlert').hide();
$(this).dialog("close");
}
}
});
$dialogConfirm = $('#dialogUninstallPluginConfirm').dialog({
resizable: false,
modal: true,
width: 350,
autoOpen: false,
buttons: {
"Confirm Uninstall": function () {
var url = uninstallUrl + pluginId;
if (pluginUninstallData)
url += '?UninstallData=true'
else
url += '?UninstallData=false'
window.location.href = url;
$(this).dialog("disable");
},
Cancel: function () {
uninstallPluginData.prop('checked', false);
$('#uninstallPluginDataAlert').hide();
$(this).dialog("close");
}
}
});
uninstallPlugin = $('#uninstallPlugin');
uninstallPluginData = $('#uninstallPluginData');
uninstallPluginConfirm = $('#uninstallPluginConfirm');
uninstallPluginDataConfirm = $('#uninstallPluginDataConfirm');
$('#buttonUninstall').click(function () {
$dialog.dialog('open');
return false;
});
$('#uninstallPluginData').change(function () {
if ($(this).is(':checked')) {
$('#uninstallPluginDataAlert').slideDown();
if (!pluginId) {
alert('Select a plugin to uninstall');
} else {
$('#uninstallPluginDataAlert').slideUp();
uninstallPluginConfirm.text(pluginName + ' [' + pluginId + ']');
if (pluginUninstallData)
uninstallPluginDataConfirm.show();
else
uninstallPluginDataConfirm.hide();
$dialogConfirm.dialog('open');
$(this).dialog("close");
}
});
});
},
Cancel: function () {
uninstallPluginData.prop('checked', false);
$('#uninstallPluginDataAlert').hide();
$(this).dialog("close");
}
}
});
$dialogConfirm = $('#dialogUninstallPluginConfirm').dialog({
resizable: false,
modal: true,
width: 350,
autoOpen: false,
buttons: {
"Confirm Uninstall": function () {
var url = uninstallUrl + pluginId;
if (pluginUninstallData)
url += '?UninstallData=true'
else
url += '?UninstallData=false'
window.location.href = url;
$(this).dialog("disable");
},
Cancel: function () {
uninstallPluginData.prop('checked', false);
$('#uninstallPluginDataAlert').hide();
$(this).dialog("close");
}
}
});
uninstallPlugin = $('#uninstallPlugin');
uninstallPluginData = $('#uninstallPluginData');
uninstallPluginConfirm = $('#uninstallPluginConfirm');
uninstallPluginDataConfirm = $('#uninstallPluginDataConfirm');
$('#buttonUninstall').click(function () {
$dialog.dialog('open');
return false;
});
$('#uninstallPluginData').change(function () {
if ($(this).is(':checked')) {
$('#uninstallPluginDataAlert').slideDown();
} else {
$('#uninstallPluginDataAlert').slideUp();
}
});
});
</script>
}
if (Model.PluginUpdates.Count > 0)
{
<div id="updateAvailableContainer">
<div>@(Model.PluginUpdates.Count) plugin update@(Model.PluginUpdates.Count == 1 ? " is" : "s are") available</div>
@Html.ActionLinkButton("Update Now", MVC.API.Plugin.UpdateAll())
@if (canInstall)
{
@Html.ActionLinkButton("Update Now", MVC.API.Plugin.UpdateAll())
}
else
{
<div class="smallMessage">You do not have sufficient permission to install these updates.</div>
}
</div>
<script>
(function () {
@@ -172,9 +194,12 @@
}
</div>
<div class="actionBar">
@if (Model.PluginManifests.Count > 0)
@if (canUninstall && Model.PluginManifests.Count > 0)
{
@Html.ActionLinkButton("Uninstall Plugins", MVC.Config.Plugins.Index(), "buttonUninstall")
}
@Html.ActionLinkButton("Install Plugins", MVC.Config.Plugins.Install())
@if (canInstall)
{
@Html.ActionLinkButton("Install Plugins", MVC.Config.Plugins.Install())
}
</div>
@@ -2,7 +2,7 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.18033
// Runtime Version:4.0.30319.18051
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@@ -28,18 +28,20 @@ namespace Disco.Web.Areas.Config.Views.Plugins
using System.Web.WebPages;
using Disco.BI.Extensions;
using Disco.Models.Repository;
using Disco.Services.Authorization;
#line 2 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
using Disco.Services.Plugins;
#line default
#line hidden
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 : System.Web.Mvc.WebViewPage<Disco.Web.Areas.Config.Models.Plugins.IndexViewModel>
public partial class Index : Disco.Services.Web.WebViewPage<Disco.Web.Areas.Config.Models.Plugins.IndexViewModel>
{
public Index()
{
@@ -49,6 +51,12 @@ namespace Disco.Web.Areas.Config.Views.Plugins
#line 3 "..\..\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");
@@ -61,13 +69,13 @@ WriteLiteral(" id=\"plugins\"");
WriteLiteral(">\r\n");
#line 7 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line 13 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line default
#line hidden
#line 7 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line 13 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
if (Model.PluginManifests.Count == 0)
{
@@ -84,7 +92,7 @@ WriteLiteral(" style=\"width: 450px; padding: 100px 0;\"");
WriteLiteral(">\r\n <h2>No Plugins are Installed</h2>\r\n </div> \r\n");
#line 13 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line 19 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
}
else
{
@@ -105,13 +113,13 @@ WriteLiteral(" id=\"pageMenu\"");
WriteLiteral(">\r\n <tr>\r\n");
#line 24 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line 30 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line default
#line hidden
#line 24 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line 30 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
for (int i = 0; i < 3; i++)
{
@@ -121,13 +129,13 @@ WriteLiteral(">\r\n <tr>\r\n");
WriteLiteral(" <td>\r\n");
#line 27 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line 33 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line default
#line hidden
#line 27 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line 33 "..\..\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++)
@@ -145,7 +153,7 @@ WriteLiteral(" class=\"pageMenuArea\"");
WriteLiteral(">\r\n <h2>");
#line 34 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line 40 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
Write(Plugins.PluginFeatureCategoryDisplayName(pluginGroup.Item1));
@@ -154,35 +162,37 @@ WriteLiteral(">\r\n <h2>");
WriteLiteral("</h2>\r\n");
#line 35 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line 41 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line default
#line hidden
#line 35 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line 41 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
foreach (var pluginDefinition in pluginGroup.Item2)
{
if (canConfig)
{
#line default
#line hidden
WriteLiteral(" <a");
WriteAttribute("href", Tuple.Create(" href=\"", 1439), Tuple.Create("\"", 1508)
WriteAttribute("href", Tuple.Create(" href=\"", 1807), Tuple.Create("\"", 1876)
#line 37 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
, Tuple.Create(Tuple.Create("", 1446), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.Config.Plugins.Configure(pluginDefinition.Id))
#line 45 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
, Tuple.Create(Tuple.Create("", 1814), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.Config.Plugins.Configure(pluginDefinition.Id))
#line default
#line hidden
, 1446), false)
, 1814), false)
);
WriteLiteral(">\r\n <h3>");
#line 38 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line 46 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
Write(pluginDefinition.Name);
@@ -190,6 +200,33 @@ WriteLiteral(">\r\n <h3>");
#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\"");
@@ -201,7 +238,7 @@ WriteLiteral(" class=\"pluginVersion\"");
WriteLiteral(">v");
#line 41 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line 54 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
Write(pluginDefinition.VersionFormatted);
@@ -210,7 +247,7 @@ WriteLiteral(">v");
WriteLiteral("</span> | ");
#line 41 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line 54 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
Write(pluginDefinition.Author);
@@ -218,14 +255,14 @@ WriteLiteral("</span> | ");
#line hidden
WriteLiteral(" | <a");
WriteAttribute("href", Tuple.Create(" href=\"", 1836), Tuple.Create("\"", 1864)
WriteAttribute("href", Tuple.Create(" href=\"", 2432), Tuple.Create("\"", 2460)
#line 41 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
, Tuple.Create(Tuple.Create("", 1843), Tuple.Create<System.Object, System.Int32>(pluginDefinition.Url
#line 54 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
, Tuple.Create(Tuple.Create("", 2439), Tuple.Create<System.Object, System.Int32>(pluginDefinition.Url
#line default
#line hidden
, 1843), false)
, 2439), false)
);
WriteLiteral(" target=\"_blank\"");
@@ -233,7 +270,7 @@ WriteLiteral(" target=\"_blank\"");
WriteLiteral(">More Information</a>\r\n </div>\r\n");
#line 43 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line 56 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
}
@@ -242,7 +279,7 @@ WriteLiteral(">More Information</a>\r\n </div
WriteLiteral(" </div>\r\n");
#line 45 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line 58 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
}
@@ -251,7 +288,7 @@ WriteLiteral(" </div>\r\n");
WriteLiteral("\r\n </td>\r\n");
#line 48 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line 61 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
}
@@ -259,6 +296,14 @@ WriteLiteral("\r\n </td>\r\n");
#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\"");
@@ -270,7 +315,7 @@ WriteLiteral(">\r\n <div>\r\n");
WriteLiteral(" ");
#line 53 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line 68 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
Write(Html.DropDownList("uninstallPlugin", Model.PluginManifests.ToSelectListItems(null, true, "Select a Plugin to Uninstall")));
@@ -346,61 +391,54 @@ WriteLiteral(" <script>\r\n $(function () {\r\n
" var uninstallUrl = \'");
#line 74 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line 89 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
Write(Url.Action(MVC.API.Plugin.Uninstall()));
#line default
#line hidden
WriteLiteral("/\';\r\n var uninstallPlugin, uninstallPluginData, $dialogConfirm, un" +
"installPluginConfirm, uninstallPluginDataConfirm;\r\n\r\n var pluginI" +
"d, pluginName, pluginUninstallData;\r\n\r\n var $dialog = $(\'#dialogU" +
"ninstallPlugins\').dialog({\r\n resizable: false,\r\n " +
" modal: true,\r\n width: 350,\r\n autoOp" +
"en: false,\r\n buttons: {\r\n \"Uninstall\":" +
" function () {\r\n pluginId = uninstallPlugin.val();\r\n " +
" pluginName = uninstallPlugin.find(\'option:selected\')." +
"text();\r\n pluginUninstallData = uninstallPluginData.i" +
"s(\':checked\');\r\n\r\n if (!pluginId) {\r\n " +
" alert(\'Select a plugin to uninstall\');\r\n " +
" } else {\r\n uninstallPluginConfirm.text(plugin" +
"Name + \' [\' + pluginId + \']\');\r\n if (pluginUninst" +
"allData)\r\n uninstallPluginDataConfirm.show();" +
"\r\n else\r\n unin" +
"stallPluginDataConfirm.hide();\r\n\r\n $dialogConfirm" +
".dialog(\'open\');\r\n $(this).dialog(\"close\");\r\n " +
" }\r\n },\r\n C" +
"ancel: function () {\r\n uninstallPluginData.prop(\'chec" +
"ked\', false);\r\n $(\'#uninstallPluginDataAlert\').hide()" +
";\r\n $(this).dialog(\"close\");\r\n " +
" }\r\n }\r\n });\r\n\r\n $dialogConfirm" +
" = $(\'#dialogUninstallPluginConfirm\').dialog({\r\n resizable: f" +
"alse,\r\n modal: true,\r\n width: 350,\r\n " +
" autoOpen: false,\r\n buttons: {\r\n " +
" \"Confirm Uninstall\": function () {\r\n var url " +
"= uninstallUrl + pluginId;\r\n if (pluginUninstallData)" +
"\r\n url += \'?UninstallData=true\'\r\n " +
" else\r\n url += \'?UninstallData=false\'\r" +
"\n\r\n window.location.href = url;\r\n " +
" $(this).dialog(\"disable\");\r\n },\r\n " +
" Cancel: function () {\r\n uninstallPluginData.p" +
"rop(\'checked\', false);\r\n $(\'#uninstallPluginDataAlert" +
"\').hide();\r\n $(this).dialog(\"close\");\r\n " +
" }\r\n }\r\n });\r\n\r\n unins" +
"tallPlugin = $(\'#uninstallPlugin\');\r\n uninstallPluginData = $(\'#u" +
"ninstallPluginData\');\r\n uninstallPluginConfirm = $(\'#uninstallPlu" +
"ginConfirm\');\r\n uninstallPluginDataConfirm = $(\'#uninstallPluginD" +
"ataConfirm\');\r\n\r\n $(\'#buttonUninstall\').click(function () {\r\n " +
" $dialog.dialog(\'open\');\r\n return false;\r\n " +
" });\r\n\r\n $(\'#uninstallPluginData\').change(function () " +
"{\r\n if ($(this).is(\':checked\')) {\r\n $(" +
"\'#uninstallPluginDataAlert\').slideDown();\r\n } else {\r\n " +
" $(\'#uninstallPluginDataAlert\').slideUp();\r\n " +
"}\r\n });\r\n });\r\n </script>\r\n");
WriteLiteral("/\';\r\n var uninstallPlugin, uninstallPluginData, $dialogConfirm, uninstallP" +
"luginConfirm, uninstallPluginDataConfirm;\r\n\r\n var pluginId, pluginName, p" +
"luginUninstallData;\r\n\r\n var $dialog = $(\'#dialogUninstallPlugins\').dialog" +
"({\r\n resizable: false,\r\n modal: true,\r\n width: " +
"350,\r\n autoOpen: false,\r\n buttons: {\r\n \"Uni" +
"nstall\": function () {\r\n pluginId = uninstallPlugin.val();\r\n " +
" pluginName = uninstallPlugin.find(\'option:selected\').text();\r" +
"\n pluginUninstallData = uninstallPluginData.is(\':checked\');\r\n" +
"\r\n if (!pluginId) {\r\n alert(\'Select a " +
"plugin to uninstall\');\r\n } else {\r\n un" +
"installPluginConfirm.text(pluginName + \' [\' + pluginId + \']\');\r\n " +
" if (pluginUninstallData)\r\n uninstallPluginDat" +
"aConfirm.show();\r\n else\r\n unin" +
"stallPluginDataConfirm.hide();\r\n\r\n $dialogConfirm.dialog(" +
"\'open\');\r\n $(this).dialog(\"close\");\r\n " +
"}\r\n },\r\n Cancel: function () {\r\n " +
" uninstallPluginData.prop(\'checked\', false);\r\n $(\'#uninstall" +
"PluginDataAlert\').hide();\r\n $(this).dialog(\"close\");\r\n " +
" }\r\n }\r\n });\r\n\r\n $dialogConfirm = $(\'#dialogUni" +
"nstallPluginConfirm\').dialog({\r\n resizable: false,\r\n modal" +
": true,\r\n width: 350,\r\n autoOpen: false,\r\n butt" +
"ons: {\r\n \"Confirm Uninstall\": function () {\r\n " +
"var url = uninstallUrl + pluginId;\r\n if (pluginUninstallData)" +
"\r\n url += \'?UninstallData=true\'\r\n else" +
"\r\n url += \'?UninstallData=false\'\r\n\r\n w" +
"indow.location.href = url;\r\n $(this).dialog(\"disable\");\r\n " +
" },\r\n Cancel: function () {\r\n unins" +
"tallPluginData.prop(\'checked\', false);\r\n $(\'#uninstallPluginD" +
"ataAlert\').hide();\r\n $(this).dialog(\"close\");\r\n " +
" }\r\n }\r\n });\r\n\r\n uninstallPlugin = $(\'#uninstallPlugin" +
"\');\r\n uninstallPluginData = $(\'#uninstallPluginData\');\r\n uninstall" +
"PluginConfirm = $(\'#uninstallPluginConfirm\');\r\n uninstallPluginDataConfir" +
"m = $(\'#uninstallPluginDataConfirm\');\r\n\r\n $(\'#buttonUninstall\').click(fun" +
"ction () {\r\n $dialog.dialog(\'open\');\r\n return false;\r\n " +
" });\r\n\r\n $(\'#uninstallPluginData\').change(function () {\r\n i" +
"f ($(this).is(\':checked\')) {\r\n $(\'#uninstallPluginDataAlert\').sli" +
"deDown();\r\n } else {\r\n $(\'#uninstallPluginDataAlert\')." +
"slideUp();\r\n }\r\n });\r\n });\r\n </script>\r\n");
#line 154 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line 169 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
}
if (Model.PluginUpdates.Count > 0)
{
@@ -414,7 +452,7 @@ WriteLiteral(" id=\"updateAvailableContainer\"");
WriteLiteral(">\r\n <div>");
#line 158 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line 173 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
Write(Model.PluginUpdates.Count);
@@ -423,7 +461,7 @@ WriteLiteral(">\r\n <div>");
WriteLiteral(" plugin update");
#line 158 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line 173 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
Write(Model.PluginUpdates.Count == 1 ? " is" : "s are");
@@ -431,16 +469,51 @@ WriteLiteral(" plugin update");
#line hidden
WriteLiteral(" available</div>\r\n");
WriteLiteral(" ");
#line 159 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
Write(Html.ActionLinkButton("Update Now", MVC.API.Plugin.UpdateAll()));
#line 174 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line default
#line hidden
#line 174 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
if (canInstall)
{
#line default
#line hidden
#line 176 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
Write(Html.ActionLinkButton("Update Now", MVC.API.Plugin.UpdateAll()));
#line default
#line hidden
WriteLiteral("\r\n </div>\r\n");
#line 176 "..\..\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 181 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
}
#line default
#line hidden
WriteLiteral(" </div>\r\n");
WriteLiteral(@" <script>
(function () {
@@ -454,7 +527,7 @@ WriteLiteral(@" <script>
");
#line 170 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line 192 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
}
}
@@ -468,28 +541,28 @@ WriteLiteral(" class=\"actionBar\"");
WriteLiteral(">\r\n");
#line 175 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line 197 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line default
#line hidden
#line 175 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
if (Model.PluginManifests.Count > 0)
#line 197 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
if (canUninstall && Model.PluginManifests.Count > 0)
{
#line default
#line hidden
#line 177 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line 199 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
Write(Html.ActionLinkButton("Uninstall Plugins", MVC.Config.Plugins.Index(), "buttonUninstall"));
#line default
#line hidden
#line 177 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
#line 199 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
}
@@ -499,13 +572,29 @@ WriteLiteral(">\r\n");
WriteLiteral(" ");
#line 179 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
Write(Html.ActionLinkButton("Install Plugins", MVC.Config.Plugins.Install()));
#line 201 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
if (canInstall)
{
#line default
#line hidden
#line 203 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
Write(Html.ActionLinkButton("Install Plugins", MVC.Config.Plugins.Install()));
#line default
#line hidden
WriteLiteral("\r\n</div>\r\n");
#line 203 "..\..\Areas\Config\Views\Plugins\Index.cshtml"
}
#line default
#line hidden
WriteLiteral("</div>\r\n");
}
}
@@ -1,6 +1,10 @@
@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");
}
<div id="pluginCatalog">
@@ -31,14 +35,20 @@
var installedPlugin = Plugins.PluginInstalled(plugin.Id) ? Plugins.GetPlugin(plugin.Id) : null;
<div class="pageMenuArea pluginItem@(installedPlugin != null ? " pluginInstalled" : string.Empty)">
<h2 class="pluginName">@plugin.Name
@if (installedPlugin == null){
<a class="pluginInstallLink button" href="@(Url.Action(MVC.API.Plugin.Install(plugin.Id)))">Install</a>
}else{
if (Version.Parse(plugin.LatestVersion) > installedPlugin.Version){
<a class="pluginUpdateLink button" href="@(Url.Action(MVC.API.Plugin.Update(plugin.Id)))">Update</a>
}else{
<a class="pluginInstalledLink button disabled" href="#">Installed</a>
@if (installedPlugin == null)
{
<a class="pluginInstallLink button" href="@(Url.Action(MVC.API.Plugin.Install(plugin.Id)))">Install</a>
}
else
{
if (Version.Parse(plugin.LatestVersion) > installedPlugin.Version)
{
<a class="pluginUpdateLink button" href="@(Url.Action(MVC.API.Plugin.Update(plugin.Id)))">Update</a>
}
else
{
<a class="pluginInstalledLink button disabled" href="#">Installed</a>
}
}
</h2>
<div class="pluginItemBlurb">@(new HtmlString(plugin.Blurb))</div>
@@ -63,19 +73,22 @@
<strong>Only Install plugins from a trusted source.</strong>
</div>
</div>
<div id="dialogUploadPlugin" title="Install Plugin Package">
<div style="padding-bottom: 10px;">
@using (Html.BeginForm(MVC.API.Plugin.InstallLocal(), FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<label for="pluginFile">Plugin Package: </label>
<input id="pluginFile" name="Plugin" type="file" />
}
@if (canInstallLocal)
{
<div id="dialogUploadPlugin" title="Install Plugin Package">
<div style="padding-bottom: 10px;">
@using (Html.BeginForm(MVC.API.Plugin.InstallLocal(), FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<label for="pluginFile">Plugin Package: </label>
<input id="pluginFile" name="Plugin" type="file" />
}
</div>
<div style="padding: 0.7em 0.7em; margin-top: 8px;" class="ui-state-error ui-corner-all">
<span style="margin-right: 0.3em; margin-bottom: 2em; float: left;" class="ui-icon ui-icon-alert"></span>Warning: All plugins run with the same level of network privileges as the Disco Web App.<br />
<strong>Only install plugins from a trusted source.</strong>
</div>
</div>
<div style="padding: 0.7em 0.7em; margin-top: 8px;" class="ui-state-error ui-corner-all">
<span style="margin-right: 0.3em; margin-bottom: 2em; float: left;" class="ui-icon ui-icon-alert"></span>Warning: All plugins run with the same level of network privileges as the Disco Web App.<br />
<strong>Only install plugins from a trusted source.</strong>
</div>
</div>
}
<script>
$(function () {
var $selectedPlugin;
@@ -132,6 +145,8 @@
return false;
});
@if (canInstallLocal)
{<text>
// Upload
var $dialogUpload = $('#dialogUploadPlugin').dialog({
resizable: false,
@@ -157,9 +172,13 @@
$dialogUpload.dialog('open');
return false;
});
</text>}
});
</script>
<div class="actionBar">
@Html.ActionLinkButton("Update Catalogue", MVC.API.Plugin.UpdateLibraryCatalogue())
@Html.ActionLinkButton("Install Plugin Package", MVC.API.Plugin.InstallLocal(), "buttonUpload")
@if (canInstallLocal)
{
@Html.ActionLinkButton("Install Plugin Package", MVC.API.Plugin.InstallLocal(), "buttonUpload")
}
</div>
@@ -2,7 +2,7 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.18033
// Runtime Version:4.0.30319.18051
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@@ -28,18 +28,20 @@ namespace Disco.Web.Areas.Config.Views.Plugins
using System.Web.WebPages;
using Disco.BI.Extensions;
using Disco.Models.Repository;
using Disco.Services.Authorization;
#line 2 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
using Disco.Services.Plugins;
#line default
#line hidden
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/Install.cshtml")]
public partial class Install : System.Web.Mvc.WebViewPage<Disco.Web.Areas.Config.Models.Plugins.InstallModel>
public partial class Install : Disco.Services.Web.WebViewPage<Disco.Web.Areas.Config.Models.Plugins.InstallModel>
{
public Install()
{
@@ -49,6 +51,10 @@ namespace Disco.Web.Areas.Config.Views.Plugins
#line 3 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
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");
@@ -69,7 +75,7 @@ WriteLiteral(" href=\"http://discoict.com.au/\"");
WriteLiteral(">http://discoict.com.au</a>] was last updated ");
#line 7 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
#line 11 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
Write(CommonHelpers.FriendlyDate(Model.Catalogue.ResponseTimestamp));
@@ -78,13 +84,13 @@ WriteLiteral(">http://discoict.com.au</a>] was last updated ");
WriteLiteral("\r\n </h4>\r\n");
#line 9 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
#line 13 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
#line default
#line hidden
#line 9 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
#line 13 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
if (Model.Catalogue.Plugins.Count == 0)
{
@@ -100,7 +106,7 @@ WriteLiteral(" style=\"width: 450px; padding: 100px 0;\"");
WriteLiteral(">\r\n <h2>No Plugins are Available</h2>\r\n </div> \r\n");
#line 14 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
#line 18 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
}
else
{
@@ -118,13 +124,13 @@ WriteLiteral(" id=\"pageMenu\"");
WriteLiteral(">\r\n <tr>\r\n");
#line 22 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
#line 26 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
#line default
#line hidden
#line 22 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
#line 26 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
for (int i = 0; i < 3; i++)
{
@@ -134,13 +140,13 @@ WriteLiteral(">\r\n <tr>\r\n");
WriteLiteral(" <td>\r\n");
#line 25 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
#line 29 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
#line default
#line hidden
#line 25 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
#line 29 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
int itemsForThisColumn = itemsPerColumn + (plugins.Count % 3 > i ? 1 : 0);
for (int i2 = 0; i2 < itemsForThisColumn && itemNextId < plugins.Count; i2++)
@@ -154,16 +160,16 @@ WriteLiteral(" <td>\r\n");
#line hidden
WriteLiteral(" <div");
WriteAttribute("class", Tuple.Create(" class=\"", 1449), Tuple.Create("\"", 1542)
, Tuple.Create(Tuple.Create("", 1457), Tuple.Create("pageMenuArea", 1457), true)
, Tuple.Create(Tuple.Create(" ", 1469), Tuple.Create("pluginItem", 1470), true)
WriteAttribute("class", Tuple.Create(" class=\"", 1592), Tuple.Create("\"", 1685)
, Tuple.Create(Tuple.Create("", 1600), Tuple.Create("pageMenuArea", 1600), true)
, Tuple.Create(Tuple.Create(" ", 1612), Tuple.Create("pluginItem", 1613), true)
#line 32 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
, Tuple.Create(Tuple.Create("", 1480), Tuple.Create<System.Object, System.Int32>(installedPlugin != null ? " pluginInstalled" : string.Empty
#line 36 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
, Tuple.Create(Tuple.Create("", 1623), Tuple.Create<System.Object, System.Int32>(installedPlugin != null ? " pluginInstalled" : string.Empty
#line default
#line hidden
, 1480), false)
, 1623), false)
);
WriteLiteral(">\r\n <h2");
@@ -173,7 +179,7 @@ WriteLiteral(" class=\"pluginName\"");
WriteLiteral(">");
#line 33 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
#line 37 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
Write(plugin.Name);
@@ -182,38 +188,42 @@ WriteLiteral(">");
WriteLiteral("\r\n");
#line 34 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
#line 38 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
#line default
#line hidden
#line 34 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
if (installedPlugin == null){
#line 38 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
if (installedPlugin == null)
{
#line default
#line hidden
WriteLiteral(" <a");
WriteLiteral(" <a");
WriteLiteral(" class=\"pluginInstallLink button\"");
WriteAttribute("href", Tuple.Create(" href=\"", 1754), Tuple.Create("\"", 1809)
WriteAttribute("href", Tuple.Create(" href=\"", 1939), Tuple.Create("\"", 1994)
#line 35 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
, Tuple.Create(Tuple.Create("", 1761), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.API.Plugin.Install(plugin.Id))
#line 40 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
, Tuple.Create(Tuple.Create("", 1946), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.API.Plugin.Install(plugin.Id))
#line default
#line hidden
, 1761), false)
, 1946), false)
);
WriteLiteral(">Install</a>\r\n");
#line 36 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
}else{
if (Version.Parse(plugin.LatestVersion) > installedPlugin.Version){
#line 41 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
}
else
{
if (Version.Parse(plugin.LatestVersion) > installedPlugin.Version)
{
#line default
@@ -222,21 +232,23 @@ WriteLiteral(" <a");
WriteLiteral(" class=\"pluginUpdateLink button\"");
WriteAttribute("href", Tuple.Create(" href=\"", 2047), Tuple.Create("\"", 2101)
WriteAttribute("href", Tuple.Create(" href=\"", 2354), Tuple.Create("\"", 2408)
#line 38 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
, Tuple.Create(Tuple.Create("", 2054), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.API.Plugin.Update(plugin.Id))
#line 46 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
, Tuple.Create(Tuple.Create("", 2361), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.API.Plugin.Update(plugin.Id))
#line default
#line hidden
, 2054), false)
, 2361), false)
);
WriteLiteral(">Update</a> \r\n");
#line 39 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
}else{
#line 47 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
}
else
{
#line default
@@ -250,8 +262,8 @@ WriteLiteral(" href=\"#\"");
WriteLiteral(">Installed</a> \r\n");
#line 41 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
}
#line 51 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
}
}
@@ -264,7 +276,7 @@ WriteLiteral(" class=\"pluginItemBlurb\"");
WriteLiteral(">");
#line 44 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
#line 54 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
Write(new HtmlString(plugin.Blurb));
@@ -281,7 +293,7 @@ WriteLiteral(" class=\"pluginId\"");
WriteLiteral(">");
#line 46 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
#line 56 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
Write(plugin.Id);
@@ -294,7 +306,7 @@ WriteLiteral(" class=\"pluginVersion\"");
WriteLiteral(">v");
#line 46 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
#line 56 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
Write(plugin.LatestVersion);
@@ -303,7 +315,7 @@ WriteLiteral(">v");
WriteLiteral("</span> | ");
#line 46 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
#line 56 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
Write(plugin.Author);
@@ -311,14 +323,14 @@ WriteLiteral("</span> | ");
#line hidden
WriteLiteral(" | <a");
WriteAttribute("href", Tuple.Create(" href=\"", 2716), Tuple.Create("\"", 2734)
WriteAttribute("href", Tuple.Create(" href=\"", 3115), Tuple.Create("\"", 3133)
#line 46 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
, Tuple.Create(Tuple.Create("", 2723), Tuple.Create<System.Object, System.Int32>(plugin.Url
#line 56 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
, Tuple.Create(Tuple.Create("", 3122), Tuple.Create<System.Object, System.Int32>(plugin.Url
#line default
#line hidden
, 2723), false)
, 3122), false)
);
WriteLiteral(" target=\"_blank\"");
@@ -327,7 +339,7 @@ WriteLiteral(">More Information</a>\r\n </div>\r\
" </div>\r\n");
#line 49 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
#line 59 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
}
@@ -336,7 +348,7 @@ WriteLiteral(">More Information</a>\r\n </div>\r\
WriteLiteral("\r\n </td>\r\n");
#line 52 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
#line 62 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
}
@@ -345,7 +357,7 @@ WriteLiteral("\r\n </td>\r\n");
WriteLiteral(" </tr>\r\n </table>\r\n");
#line 55 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
#line 65 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
}
@@ -379,39 +391,49 @@ WriteLiteral(" class=\"ui-icon ui-icon-alert\"");
WriteLiteral("></span>Warning: All plugins run with the same level of network privileges as the" +
" Disco Web App.<br />\r\n <strong>Only Install plugins from a trusted sourc" +
"e.</strong>\r\n </div>\r\n</div>\r\n<div");
"e.</strong>\r\n </div>\r\n</div>\r\n");
#line 76 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
if (canInstallLocal)
{
#line default
#line hidden
WriteLiteral(" <div");
WriteLiteral(" id=\"dialogUploadPlugin\"");
WriteLiteral(" title=\"Install Plugin Package\"");
WriteLiteral(">\r\n <div");
WriteLiteral(">\r\n <div");
WriteLiteral(" style=\"padding-bottom: 10px;\"");
WriteLiteral(">\r\n");
#line 68 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
#line 80 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
#line default
#line hidden
#line 68 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
using (Html.BeginForm(MVC.API.Plugin.InstallLocal(), FormMethod.Post, new { enctype = "multipart/form-data" }))
{
#line 80 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
using (Html.BeginForm(MVC.API.Plugin.InstallLocal(), FormMethod.Post, new { enctype = "multipart/form-data" }))
{
#line default
#line hidden
WriteLiteral(" <label");
WriteLiteral(" <label");
WriteLiteral(" for=\"pluginFile\"");
WriteLiteral(">Plugin Package: </label>\r\n");
WriteLiteral(" <input");
WriteLiteral(" <input");
WriteLiteral(" id=\"pluginFile\"");
@@ -422,65 +444,112 @@ WriteLiteral(" type=\"file\"");
WriteLiteral(" />\r\n");
#line 72 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
}
#line 84 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
}
#line default
#line hidden
WriteLiteral(" </div>\r\n <div");
WriteLiteral(" </div>\r\n <div");
WriteLiteral(" style=\"padding: 0.7em 0.7em; margin-top: 8px;\"");
WriteLiteral(" class=\"ui-state-error ui-corner-all\"");
WriteLiteral(">\r\n <span");
WriteLiteral(">\r\n <span");
WriteLiteral(" style=\"margin-right: 0.3em; margin-bottom: 2em; float: left;\"");
WriteLiteral(" class=\"ui-icon ui-icon-alert\"");
WriteLiteral("></span>Warning: All plugins run with the same level of network privileges as the" +
" Disco Web App.<br />\r\n <strong>Only install plugins from a trusted sourc" +
"e.</strong>\r\n </div>\r\n</div>\r\n<script>\r\n $(function () {\r\n var $sel" +
"ectedPlugin;\r\n var $selectedPluginUrl;\r\n\r\n // Install\r\n var" +
" $dialogInstall = $(\'#dialogInstallPlugin\').dialog({\r\n resizable: fal" +
"se,\r\n modal: true,\r\n width: 350,\r\n autoOpen: fa" +
"lse,\r\n buttons: {\r\n \"Install\": function () {\r\n " +
" if ($selectedPlugin == null || !$selectedPluginUrl) {\r\n " +
" $(this).dialog(\"close\");\r\n return;\r\n " +
" }\r\n $(this).dialog(\"disable\");\r\n\r\n " +
" window.location.href = $selectedPluginUrl;\r\n },\r\n " +
" Cancel: function () {\r\n $selectedPlugin = null;\r\n " +
" $(this).dialog(\"close\");\r\n }\r\n }\r\n }" +
");\r\n $(\'#pageMenu\').find(\'a.pluginInstallLink\').click(function () {\r\n " +
" $this = $(this);\r\n\r\n $selectedPlugin = $this.closest(\'.plugin" +
"Item\');\r\n $selectedPluginUrl = $this.attr(\'href\');\r\n\r\n $(\'" +
"#dialogInstallPluginName\').text($selectedPlugin.find(\'.pluginName\').text());\r\n " +
" $(\'#dialogInstallPluginDetails\').text($selectedPlugin.find(\'.pluginId\'" +
").text() + \' | \' + $selectedPlugin.find(\'.pluginVersion\').text());\r\n\r\n " +
" $dialogInstall.dialog(\'option\', \'title\', \'Install this Plugin?\');\r\n " +
" $dialogInstall.dialog(\'open\');\r\n\r\n return false;\r\n });\r\n " +
" $(\'#pageMenu\').find(\'a.pluginUpdateLink\').click(function () {\r\n $t" +
"his = $(this);\r\n\r\n $selectedPlugin = $this.closest(\'.pluginItem\');\r\n " +
" $selectedPluginUrl = $this.attr(\'href\');\r\n\r\n $(\'#dialogIns" +
"tallPluginName\').text($selectedPlugin.find(\'.pluginName\').text());\r\n " +
"$(\'#dialogInstallPluginDetails\').text($selectedPlugin.find(\'.pluginId\').text() +" +
" \' | \' + $selectedPlugin.find(\'.pluginVersion\').text());\r\n\r\n $dialogI" +
"nstall.dialog(\'option\', \'title\', \'Update this Plugin?\');\r\n $dialogIns" +
"tall.dialog(\'open\');\r\n\r\n return false;\r\n });\r\n\r\n // Upl" +
"oad\r\n var $dialogUpload = $(\'#dialogUploadPlugin\').dialog({\r\n " +
"resizable: false,\r\n modal: true,\r\n width: 350,\r\n " +
" autoOpen: false,\r\n buttons: {\r\n \"Upload & Install\": " +
"function () {\r\n var pluginFile = $(\'#pluginFile\');\r\n " +
" if (pluginFile.val()) {\r\n pluginFile.closest(\'" +
"form\').submit();\r\n $(this).dialog(\'disable\');\r\n " +
" } else {\r\n alert(\'Choose a Plugin Package to Up" +
"load\');\r\n }\r\n },\r\n Cancel: func" +
"tion () {\r\n $(this).dialog(\"close\");\r\n }\r\n " +
" }\r\n });\r\n $(\'#buttonUpload\').click(function () {\r\n " +
" $dialogUpload.dialog(\'open\');\r\n return false;\r\n });\r\n }" +
");\r\n</script>\r\n<div");
" Disco Web App.<br />\r\n <strong>Only install plugins from a trusted s" +
"ource.</strong>\r\n </div>\r\n </div>\r\n");
#line 91 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
}
#line default
#line hidden
WriteLiteral("<script>\r\n $(function () {\r\n var $selectedPlugin;\r\n var $selecte" +
"dPluginUrl;\r\n\r\n // Install\r\n var $dialogInstall = $(\'#dialogInstal" +
"lPlugin\').dialog({\r\n resizable: false,\r\n modal: true,\r\n " +
" width: 350,\r\n autoOpen: false,\r\n buttons: {\r\n " +
" \"Install\": function () {\r\n if ($selectedPlugin ==" +
" null || !$selectedPluginUrl) {\r\n $(this).dialog(\"close\")" +
";\r\n return;\r\n }\r\n $" +
"(this).dialog(\"disable\");\r\n\r\n window.location.href = $selecte" +
"dPluginUrl;\r\n },\r\n Cancel: function () {\r\n " +
" $selectedPlugin = null;\r\n $(this).dialog(\"close\")" +
";\r\n }\r\n }\r\n });\r\n $(\'#pageMenu\').find(\'a" +
".pluginInstallLink\').click(function () {\r\n $this = $(this);\r\n\r\n " +
" $selectedPlugin = $this.closest(\'.pluginItem\');\r\n $selectedPlug" +
"inUrl = $this.attr(\'href\');\r\n\r\n $(\'#dialogInstallPluginName\').text($s" +
"electedPlugin.find(\'.pluginName\').text());\r\n $(\'#dialogInstallPluginD" +
"etails\').text($selectedPlugin.find(\'.pluginId\').text() + \' | \' + $selectedPlugin" +
".find(\'.pluginVersion\').text());\r\n\r\n $dialogInstall.dialog(\'option\', " +
"\'title\', \'Install this Plugin?\');\r\n $dialogInstall.dialog(\'open\');\r\n\r" +
"\n return false;\r\n });\r\n $(\'#pageMenu\').find(\'a.pluginUp" +
"dateLink\').click(function () {\r\n $this = $(this);\r\n\r\n $sel" +
"ectedPlugin = $this.closest(\'.pluginItem\');\r\n $selectedPluginUrl = $t" +
"his.attr(\'href\');\r\n\r\n $(\'#dialogInstallPluginName\').text($selectedPlu" +
"gin.find(\'.pluginName\').text());\r\n $(\'#dialogInstallPluginDetails\').t" +
"ext($selectedPlugin.find(\'.pluginId\').text() + \' | \' + $selectedPlugin.find(\'.pl" +
"uginVersion\').text());\r\n\r\n $dialogInstall.dialog(\'option\', \'title\', \'" +
"Update this Plugin?\');\r\n $dialogInstall.dialog(\'open\');\r\n\r\n " +
" return false;\r\n });\r\n\r\n");
#line 148 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
#line default
#line hidden
#line 148 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
if (canInstallLocal)
{
#line default
#line hidden
WriteLiteral(@"
// Upload
var $dialogUpload = $('#dialogUploadPlugin').dialog({
resizable: false,
modal: true,
width: 350,
autoOpen: false,
buttons: {
""Upload & Install"": function () {
var pluginFile = $('#pluginFile');
if (pluginFile.val()) {
pluginFile.closest('form').submit();
$(this).dialog('disable');
} else {
alert('Choose a Plugin Package to Upload');
}
},
Cancel: function () {
$(this).dialog(""close"");
}
}
});
$('#buttonUpload').click(function () {
$dialogUpload.dialog('open');
return false;
});
");
#line 175 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
}
#line default
#line hidden
WriteLiteral(" });\r\n</script>\r\n<div");
WriteLiteral(" class=\"actionBar\"");
@@ -489,7 +558,7 @@ WriteLiteral(">\r\n");
WriteLiteral(" ");
#line 163 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
#line 179 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
Write(Html.ActionLinkButton("Update Catalogue", MVC.API.Plugin.UpdateLibraryCatalogue()));
@@ -497,16 +566,36 @@ Write(Html.ActionLinkButton("Update Catalogue", MVC.API.Plugin.UpdateLibraryCata
#line hidden
WriteLiteral("\r\n");
WriteLiteral(" ");
#line 164 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
Write(Html.ActionLinkButton("Install Plugin Package", MVC.API.Plugin.InstallLocal(), "buttonUpload"));
#line 180 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
#line default
#line hidden
#line 180 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
if (canInstallLocal)
{
#line default
#line hidden
#line 182 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
Write(Html.ActionLinkButton("Install Plugin Package", MVC.API.Plugin.InstallLocal(), "buttonUpload"));
#line default
#line hidden
WriteLiteral("\r\n</div>\r\n");
#line 182 "..\..\Areas\Config\Views\Plugins\Install.cshtml"
}
#line default
#line hidden
WriteLiteral("</div>\r\n");
}
}
@@ -2,7 +2,7 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.18033
// Runtime Version:4.0.30319.18051
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@@ -28,12 +28,14 @@ namespace Disco.Web.Areas.Config.Views.Plugins
using System.Web.WebPages;
using Disco.BI.Extensions;
using Disco.Models.Repository;
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/Configure.cshtml")]
public partial class Configure : System.Web.Mvc.WebViewPage<Disco.Web.Areas.Config.Models.Plugins.PluginConfigurationViewModel>
public partial class Configure : Disco.Services.Web.WebViewPage<Disco.Web.Areas.Config.Models.Plugins.PluginConfigurationViewModel>
{
public Configure()
{
@@ -43,6 +45,8 @@ namespace Disco.Web.Areas.Config.Views.Plugins
#line 2 "..\..\Areas\Config\Views\Plugins\Configure.cshtml"
Authorization.Require(Claims.Config.Plugin.Configure);
ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "Plugins", MVC.Config.Plugins.Index(), Model.Manifest.Name);
@@ -51,7 +55,7 @@ namespace Disco.Web.Areas.Config.Views.Plugins
WriteLiteral("\r\n");
#line 5 "..\..\Areas\Config\Views\Plugins\Configure.cshtml"
#line 7 "..\..\Areas\Config\Views\Plugins\Configure.cshtml"
using (Html.BeginForm())
{
@@ -59,14 +63,14 @@ WriteLiteral("\r\n");
#line default
#line hidden
#line 7 "..\..\Areas\Config\Views\Plugins\Configure.cshtml"
#line 9 "..\..\Areas\Config\Views\Plugins\Configure.cshtml"
Write(Html.ValidationSummary(false));
#line default
#line hidden
#line 7 "..\..\Areas\Config\Views\Plugins\Configure.cshtml"
#line 9 "..\..\Areas\Config\Views\Plugins\Configure.cshtml"
@@ -81,7 +85,7 @@ WriteLiteral(">\r\n");
WriteLiteral(" ");
#line 9 "..\..\Areas\Config\Views\Plugins\Configure.cshtml"
#line 11 "..\..\Areas\Config\Views\Plugins\Configure.cshtml"
Write(Html.PartialCompiled(Model.PluginViewType, Model.PluginViewModel));
@@ -104,7 +108,7 @@ WriteLiteral(" value=\"Save Configuration\"");
WriteLiteral(" />\r\n </div>\r\n");
#line 14 "..\..\Areas\Config\Views\Plugins\Configure.cshtml"
#line 16 "..\..\Areas\Config\Views\Plugins\Configure.cshtml"
}
#line default