@@ -19,6 +19,7 @@ namespace Disco.Web.Areas.Config.Controllers
|
||||
{
|
||||
LongRunningJobDaysThreshold = Database.DiscoConfiguration.JobPreferences.LongRunningJobDaysThreshold,
|
||||
StaleJobMinutesThreshold = Database.DiscoConfiguration.JobPreferences.StaleJobMinutesThreshold,
|
||||
DefaultNoticeboardTheme = Database.DiscoConfiguration.JobPreferences.DefaultNoticeboardTheme,
|
||||
LocationMode = Database.DiscoConfiguration.JobPreferences.LocationMode,
|
||||
LocationList = Database.DiscoConfiguration.JobPreferences.LocationList
|
||||
};
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
using Disco.Models.BI.Job;
|
||||
using Disco.Data.Repository;
|
||||
using Disco.Models.BI.Job;
|
||||
using Disco.Models.UI.Config.JobPreferences;
|
||||
using Disco.Services.Extensions;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.Mvc;
|
||||
|
||||
namespace Disco.Web.Areas.Config.Models.JobPreferences
|
||||
{
|
||||
@@ -13,9 +13,31 @@ namespace Disco.Web.Areas.Config.Models.JobPreferences
|
||||
{
|
||||
public int LongRunningJobDaysThreshold { get; set; }
|
||||
public int StaleJobMinutesThreshold { get; set; }
|
||||
public string DefaultNoticeboardTheme { get; set; }
|
||||
public LocationModes LocationMode { get; set; }
|
||||
public List<string> LocationList { get; set; }
|
||||
|
||||
public List<KeyValuePair<string, string>> DefaultNoticeboardThemeOptions()
|
||||
{
|
||||
return UIHelpers.NoticeboardThemes.ToList();
|
||||
}
|
||||
|
||||
public Lazy<List<Disco.Models.Repository.DeviceProfile>> DeviceProfiles = new Lazy<List<Disco.Models.Repository.DeviceProfile>>(() =>
|
||||
{
|
||||
using (var database = new DiscoDataContext())
|
||||
{
|
||||
return database.DeviceProfiles.OrderBy(a => a.Description).ToList();
|
||||
}
|
||||
});
|
||||
|
||||
public Lazy<List<Disco.Models.BI.Config.OrganisationAddress>> OrganisationAddresses = new Lazy<List<Disco.Models.BI.Config.OrganisationAddress>>(() =>
|
||||
{
|
||||
using (var database = new DiscoDataContext())
|
||||
{
|
||||
return database.DiscoConfiguration.OrganisationAddresses.Addresses.OrderBy(a => a.Name).ToList();
|
||||
}
|
||||
});
|
||||
|
||||
public List<KeyValuePair<int, string>> LongRunningJobDaysThresholdOptions()
|
||||
{
|
||||
var options = new List<KeyValuePair<int, string>>() {
|
||||
|
||||
@@ -12,5 +12,6 @@
|
||||
Html.BundleDeferred("~/ClientScripts/Modules/Disco-AjaxHelperIcons");
|
||||
}
|
||||
Html.RenderPartial(MVC.Config.JobPreferences.Views.Parts.General);
|
||||
Html.RenderPartial(MVC.Config.JobPreferences.Views.Parts.Reports);
|
||||
Html.RenderPartial(MVC.Config.JobPreferences.Views.Parts.Locations);
|
||||
}
|
||||
@@ -59,6 +59,7 @@ namespace Disco.Web.Areas.Config.Views.JobPreferences
|
||||
Html.BundleDeferred("~/ClientScripts/Modules/Disco-AjaxHelperIcons");
|
||||
}
|
||||
Html.RenderPartial(MVC.Config.JobPreferences.Views.Parts.General);
|
||||
Html.RenderPartial(MVC.Config.JobPreferences.Views.Parts.Reports);
|
||||
Html.RenderPartial(MVC.Config.JobPreferences.Views.Parts.Locations);
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,249 @@
|
||||
@model Disco.Web.Areas.Config.Models.JobPreferences.IndexModel
|
||||
@{
|
||||
Authorization.Require(Claims.Config.JobPreferences.Show);
|
||||
|
||||
var canConfig = Authorization.Has(Claims.Config.JobPreferences.Configure);
|
||||
}
|
||||
<div id="Config_ReportPrefs" class="form" style="width: 530px;">
|
||||
<h2>Report Preferences</h2>
|
||||
<table>
|
||||
<tr>
|
||||
<th style="width: 200px">Noticeboard Default Theme:
|
||||
</th>
|
||||
<td>@if (canConfig)
|
||||
{
|
||||
@Html.DropDownListFor(model => model.DefaultNoticeboardTheme, Model.DefaultNoticeboardThemeOptions().Select(o => new SelectListItem() { Value = o.Key, Text = o.Value }))
|
||||
@AjaxHelpers.AjaxSave()
|
||||
@AjaxHelpers.AjaxLoader()
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
$element = $('#DefaultNoticeboardTheme');
|
||||
|
||||
document.DiscoFunctions.PropertyChangeHelper(
|
||||
$element,
|
||||
null,
|
||||
'@(Url.Action(MVC.API.JobPreferences.UpdateDefaultNoticeboardTheme()))',
|
||||
'DefaultNoticeboardTheme');
|
||||
|
||||
$element.change(function () {
|
||||
$('#Config_ReportPrefs_Preview').attr('class', 'theme-' + $(this).val());
|
||||
});
|
||||
});
|
||||
</script>
|
||||
}
|
||||
else
|
||||
{
|
||||
@Model.DefaultNoticeboardThemeOptions().First(o => o.Key == Model.DefaultNoticeboardTheme).Value
|
||||
}
|
||||
<div id="Config_ReportPrefs_Preview" class="theme-@(Model.DefaultNoticeboardTheme)">
|
||||
<div class="heading">Noticeboard Heading</div>
|
||||
<div class="column-heading">Column One</div>
|
||||
<div class="column-heading">Column Two</div>
|
||||
<div class="column-heading">Column Three</div>
|
||||
<div class="column"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div>
|
||||
<div class="column"><span></span><span class="alert"></span><span></span><span></span></div>
|
||||
<div class="column"><span></span><span></span><span class="alert"></span><span></span><span class="alert"></span><span></span><span></span><span></span><span></span><span></span></div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th> </th>
|
||||
<td>
|
||||
<button id="Config_ReportPrefs_Builder_Button" class="button small">Link Builder</button>
|
||||
<div class="info-box">
|
||||
<p class="fa-p">
|
||||
<i class="fa fa-info-circle"></i>Report Links can be created which override the default theme and filter the data shown.
|
||||
</p>
|
||||
</div>
|
||||
<div id="Config_ReportPrefs_Builder" title="Report Link Builder" class="dialog">
|
||||
<form>
|
||||
<div class="report">
|
||||
<h3>Report</h3>
|
||||
<ul class="none">
|
||||
<li>
|
||||
<input type="radio" id="Config_ReportPrefs_Builder_NTHDU" name="Report" class="themeable" data-url="@(Url.ActionAbsolute(MVC.Public.UserHeldDevices.Noticeboard()))" checked="checked" /><label for="Config_ReportPrefs_Builder_NTHDU">Technician Held Devices for Users (Noticeboard)</label>
|
||||
</li>
|
||||
<li>
|
||||
<input type="radio" id="Config_ReportPrefs_Builder_THDU" name="Report" data-url="@(Url.ActionAbsolute(MVC.Public.UserHeldDevices.Index()))" /><label for="Config_ReportPrefs_Builder_THDU">Technician Held Devices for Users (Report)</label>
|
||||
</li>
|
||||
<li>
|
||||
<input type="radio" id="Config_ReportPrefs_Builder_NTHD" name="Report" class="themeable" data-url="@(Url.ActionAbsolute(MVC.Public.HeldDevices.Noticeboard()))" /><label for="Config_ReportPrefs_Builder_NTHD">Technician Held Devices (Noticeboard)</label>
|
||||
</li>
|
||||
<li>
|
||||
<input type="radio" id="Config_ReportPrefs_Builder_THD" name="Report" data-url="@(Url.ActionAbsolute(MVC.Public.HeldDevices.Index()))" /><label for="Config_ReportPrefs_Builder_THD">Technician Held Devices (Report)</label>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="theme">
|
||||
<h3>Noticeboard Theme</h3>
|
||||
@Html.DropDownList("Config_ReportPrefs_Builder_Theme", new SelectListItem[] { new SelectListItem() { Value = "", Text = "<Default>", Selected = true } }.Concat(Model.DefaultNoticeboardThemeOptions().Select(o => new SelectListItem() { Value = o.Key, Text = o.Value })))
|
||||
</div>
|
||||
<div class="filter">
|
||||
<h3>Filter</h3>
|
||||
<select id="Config_ReportPrefs_Builder_Filter">
|
||||
<option value=""><None></option>
|
||||
<option value="DeviceProfile">Device Profile</option>
|
||||
<option value="DeviceAddress">Device Profile Address</option>
|
||||
</select>
|
||||
<div class="options">
|
||||
<div class="method">
|
||||
<input type="radio" id="Config_ReportPrefs_Builder_I" name="FilterAction" value="Include" checked="checked" /><label for="Config_ReportPrefs_Builder_I">Include</label>
|
||||
<input type="radio" id="Config_ReportPrefs_Builder_E" name="FilterAction" value="Exclude" /><label for="Config_ReportPrefs_Builder_E">Exclude</label>
|
||||
</div>
|
||||
<div class="filter-option filter-DeviceProfile">
|
||||
<ul class="none">
|
||||
@foreach (var deviceProfile in Model.DeviceProfiles.Value)
|
||||
{
|
||||
<li>
|
||||
<input id="Config_ReportPrefs_Builder_DP_@(deviceProfile.Id)" type="checkbox" value="@deviceProfile.Id" /><label for="Config_ReportPrefs_Builder_DP_@(deviceProfile.Id)">@deviceProfile.Description</label></li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="filter-option filter-DeviceAddress">
|
||||
<ul class="none">
|
||||
@foreach (var address in Model.OrganisationAddresses.Value)
|
||||
{
|
||||
<li>
|
||||
<input id="Config_ReportPrefs_Builder_OA_@(address.Id)" type="checkbox" value="@address.ShortName" /><label for="Config_ReportPrefs_Builder_OA_@(address.Id)">@address.Name (@address.ShortName)</label></li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="output">
|
||||
<textarea readonly></textarea>
|
||||
<a href="#" target="_blank"><i class="fa fa-external-link" title="Open Link"></i></a>
|
||||
<i class="fa fa-clipboard" title="Copy Link to Clipboard"></i>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$(function () {
|
||||
var dialog, url;
|
||||
|
||||
function updateUrl() {
|
||||
var theme = null;
|
||||
var filter = null;
|
||||
var filterMethod = null;
|
||||
var filterValue = null;
|
||||
|
||||
var report = dialog.find('.report input:checked');
|
||||
if (report.length > 0) {
|
||||
url = report.attr('data-url');
|
||||
|
||||
if (report.hasClass('themeable')) {
|
||||
theme = dialog.find('.theme > select').val();
|
||||
}
|
||||
|
||||
filter = dialog.find('.filter > select').val();
|
||||
|
||||
if (!!filter) {
|
||||
filterMethod = dialog.find('.filter .method input:checked').val();
|
||||
|
||||
filterValue = dialog
|
||||
.find('.filter .filter-' + filter)
|
||||
.find('input:checked')
|
||||
.map(function (index, element) { return $(element).val(); })
|
||||
.toArray().join(',');
|
||||
}
|
||||
|
||||
if (!!theme || !!filter) {
|
||||
url += '?';
|
||||
|
||||
if (!!theme)
|
||||
url += 'theme=' + theme;
|
||||
|
||||
if (!!theme && !!filter)
|
||||
url += '&';
|
||||
|
||||
if (!!filter)
|
||||
url += filter + filterMethod + '=' + filterValue;
|
||||
}
|
||||
}
|
||||
|
||||
$('#Config_ReportPrefs_Builder_Buttonpane').find('textarea').val(url);
|
||||
$('#Config_ReportPrefs_Builder_Buttonpane').find('.fa-external-link').closest('a').attr('href', url);
|
||||
}
|
||||
|
||||
$('#Config_ReportPrefs_Builder_Button').click(function () {
|
||||
|
||||
if (!dialog) {
|
||||
dialog = $('#Config_ReportPrefs_Builder').dialog({
|
||||
resizable: false,
|
||||
modal: true,
|
||||
autoOpen: false,
|
||||
width: 550,
|
||||
maxHeight: 520,
|
||||
buttons: {
|
||||
Close: function () {
|
||||
dialog.dialog('close');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
dialog.find('.report').on('change', 'input', function () {
|
||||
var $this = $(this);
|
||||
var $theme = dialog.find('.theme');
|
||||
|
||||
if ($this.hasClass('themeable'))
|
||||
$theme.slideDown();
|
||||
else
|
||||
$theme.slideUp();
|
||||
|
||||
updateUrl();
|
||||
});
|
||||
|
||||
dialog.find('#Config_ReportPrefs_Builder_Theme').change(updateUrl);
|
||||
|
||||
dialog.find('#Config_ReportPrefs_Builder_Filter').change(function () {
|
||||
var $this = $(this);
|
||||
var $filter = dialog.find('.options');
|
||||
|
||||
if (!$this.val())
|
||||
$filter.slideUp();
|
||||
else {
|
||||
$filter.find('.filter-option').hide();
|
||||
$filter.show();
|
||||
$filter.find('.filter-' + $this.val()).slideDown();
|
||||
}
|
||||
|
||||
updateUrl();
|
||||
});
|
||||
|
||||
dialog.find('.filter .options').on('click', 'input', updateUrl);
|
||||
|
||||
var $buttonpane = dialog.closest('.ui-dialog').children('.ui-dialog-buttonpane');
|
||||
$buttonpane.attr('id', 'Config_ReportPrefs_Builder_Buttonpane').append(dialog.children('.output'));
|
||||
|
||||
$buttonpane.find('textarea').focus(function () {
|
||||
$(this).select();
|
||||
});
|
||||
|
||||
|
||||
var $clipboard = $buttonpane.find('.fa-clipboard');
|
||||
|
||||
if (!!window.clipboardData) {
|
||||
$clipboard.click(function () {
|
||||
window.clipboardData.setData('Text', url);
|
||||
alert('Link copied to Clipboard');
|
||||
return false;
|
||||
});
|
||||
} else {
|
||||
$clipboard.hide();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
dialog.dialog('open');
|
||||
|
||||
updateUrl();
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
@@ -0,0 +1,728 @@
|
||||
#pragma warning disable 1591
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.34014
|
||||
//
|
||||
// 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.JobPreferences.Parts
|
||||
{
|
||||
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.BI.Extensions;
|
||||
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/JobPreferences/Parts/Reports.cshtml")]
|
||||
public partial class Reports : Disco.Services.Web.WebViewPage<Disco.Web.Areas.Config.Models.JobPreferences.IndexModel>
|
||||
{
|
||||
public Reports()
|
||||
{
|
||||
}
|
||||
public override void Execute()
|
||||
{
|
||||
|
||||
#line 2 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
|
||||
Authorization.Require(Claims.Config.JobPreferences.Show);
|
||||
|
||||
var canConfig = Authorization.Has(Claims.Config.JobPreferences.Configure);
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("\r\n<div");
|
||||
|
||||
WriteLiteral(" id=\"Config_ReportPrefs\"");
|
||||
|
||||
WriteLiteral(" class=\"form\"");
|
||||
|
||||
WriteLiteral(" style=\"width: 530px;\"");
|
||||
|
||||
WriteLiteral(">\r\n <h2>Report Preferences</h2>\r\n <table>\r\n <tr>\r\n <th");
|
||||
|
||||
WriteLiteral(" style=\"width: 200px\"");
|
||||
|
||||
WriteLiteral(">Noticeboard Default Theme:\r\n </th>\r\n <td>");
|
||||
|
||||
|
||||
#line 13 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
if (canConfig)
|
||||
{
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 15 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
Write(Html.DropDownListFor(model => model.DefaultNoticeboardTheme, Model.DefaultNoticeboardThemeOptions().Select(o => new SelectListItem() { Value = o.Key, Text = o.Value })));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 15 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 16 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
Write(AjaxHelpers.AjaxSave());
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 16 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 17 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
Write(AjaxHelpers.AjaxLoader());
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 17 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" <script");
|
||||
|
||||
WriteLiteral(" type=\"text/javascript\"");
|
||||
|
||||
WriteLiteral(@">
|
||||
$(function () {
|
||||
$element = $('#DefaultNoticeboardTheme');
|
||||
|
||||
document.DiscoFunctions.PropertyChangeHelper(
|
||||
$element,
|
||||
null,
|
||||
'");
|
||||
|
||||
|
||||
#line 25 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
Write(Url.Action(MVC.API.JobPreferences.UpdateDefaultNoticeboardTheme()));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(@"',
|
||||
'DefaultNoticeboardTheme');
|
||||
|
||||
$element.change(function () {
|
||||
$('#Config_ReportPrefs_Preview').attr('class', 'theme-' + $(this).val());
|
||||
});
|
||||
});
|
||||
</script>
|
||||
");
|
||||
|
||||
|
||||
#line 33 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 36 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
Write(Model.DefaultNoticeboardThemeOptions().First(o => o.Key == Model.DefaultNoticeboardTheme).Value);
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 36 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
|
||||
}
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" <div");
|
||||
|
||||
WriteLiteral(" id=\"Config_ReportPrefs_Preview\"");
|
||||
|
||||
WriteAttribute("class", Tuple.Create(" class=\"", 1694), Tuple.Create("\"", 1740)
|
||||
, Tuple.Create(Tuple.Create("", 1702), Tuple.Create("theme-", 1702), true)
|
||||
|
||||
#line 38 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 1708), Tuple.Create<System.Object, System.Int32>(Model.DefaultNoticeboardTheme
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 1708), false)
|
||||
);
|
||||
|
||||
WriteLiteral(">\r\n <div");
|
||||
|
||||
WriteLiteral(" class=\"heading\"");
|
||||
|
||||
WriteLiteral(">Noticeboard Heading</div>\r\n <div");
|
||||
|
||||
WriteLiteral(" class=\"column-heading\"");
|
||||
|
||||
WriteLiteral(">Column One</div>\r\n <div");
|
||||
|
||||
WriteLiteral(" class=\"column-heading\"");
|
||||
|
||||
WriteLiteral(">Column Two</div>\r\n <div");
|
||||
|
||||
WriteLiteral(" class=\"column-heading\"");
|
||||
|
||||
WriteLiteral(">Column Three</div>\r\n <div");
|
||||
|
||||
WriteLiteral(" class=\"column\"");
|
||||
|
||||
WriteLiteral("><span></span><span></span><span></span><span></span><span></span><span></span><s" +
|
||||
"pan></span><span></span></div>\r\n <div");
|
||||
|
||||
WriteLiteral(" class=\"column\"");
|
||||
|
||||
WriteLiteral("><span></span><span");
|
||||
|
||||
WriteLiteral(" class=\"alert\"");
|
||||
|
||||
WriteLiteral("></span><span></span><span></span></div>\r\n <div");
|
||||
|
||||
WriteLiteral(" class=\"column\"");
|
||||
|
||||
WriteLiteral("><span></span><span></span><span");
|
||||
|
||||
WriteLiteral(" class=\"alert\"");
|
||||
|
||||
WriteLiteral("></span><span></span><span");
|
||||
|
||||
WriteLiteral(" class=\"alert\"");
|
||||
|
||||
WriteLiteral("></span><span></span><span></span><span></span><span></span><span></span></div>\r\n" +
|
||||
" </div>\r\n </td>\r\n </tr>\r\n <tr>\r\n " +
|
||||
" <th> </th>\r\n <td>\r\n <button");
|
||||
|
||||
WriteLiteral(" id=\"Config_ReportPrefs_Builder_Button\"");
|
||||
|
||||
WriteLiteral(" class=\"button small\"");
|
||||
|
||||
WriteLiteral(">Link Builder</button>\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>Report Links can be created which override the default theme and filter the " +
|
||||
"data shown.\r\n </p>\r\n </div>\r\n <" +
|
||||
"div");
|
||||
|
||||
WriteLiteral(" id=\"Config_ReportPrefs_Builder\"");
|
||||
|
||||
WriteLiteral(" title=\"Report Link Builder\"");
|
||||
|
||||
WriteLiteral(" class=\"dialog\"");
|
||||
|
||||
WriteLiteral(">\r\n <form>\r\n <div");
|
||||
|
||||
WriteLiteral(" class=\"report\"");
|
||||
|
||||
WriteLiteral(">\r\n <h3>Report</h3>\r\n <ul");
|
||||
|
||||
WriteLiteral(" class=\"none\"");
|
||||
|
||||
WriteLiteral(">\r\n <li>\r\n <inp" +
|
||||
"ut");
|
||||
|
||||
WriteLiteral(" type=\"radio\"");
|
||||
|
||||
WriteLiteral(" id=\"Config_ReportPrefs_Builder_NTHDU\"");
|
||||
|
||||
WriteLiteral(" name=\"Report\"");
|
||||
|
||||
WriteLiteral(" class=\"themeable\"");
|
||||
|
||||
WriteLiteral(" data-url=\"");
|
||||
|
||||
|
||||
#line 64 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
Write(Url.ActionAbsolute(MVC.Public.UserHeldDevices.Noticeboard()));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("\"");
|
||||
|
||||
WriteLiteral(" checked=\"checked\"");
|
||||
|
||||
WriteLiteral(" /><label");
|
||||
|
||||
WriteLiteral(" for=\"Config_ReportPrefs_Builder_NTHDU\"");
|
||||
|
||||
WriteLiteral(">Technician Held Devices for Users (Noticeboard)</label>\r\n " +
|
||||
" </li>\r\n <li>\r\n " +
|
||||
" <input");
|
||||
|
||||
WriteLiteral(" type=\"radio\"");
|
||||
|
||||
WriteLiteral(" id=\"Config_ReportPrefs_Builder_THDU\"");
|
||||
|
||||
WriteLiteral(" name=\"Report\"");
|
||||
|
||||
WriteLiteral(" data-url=\"");
|
||||
|
||||
|
||||
#line 67 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
Write(Url.ActionAbsolute(MVC.Public.UserHeldDevices.Index()));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("\"");
|
||||
|
||||
WriteLiteral(" /><label");
|
||||
|
||||
WriteLiteral(" for=\"Config_ReportPrefs_Builder_THDU\"");
|
||||
|
||||
WriteLiteral(">Technician Held Devices for Users (Report)</label>\r\n " +
|
||||
" </li>\r\n <li>\r\n " +
|
||||
" <input");
|
||||
|
||||
WriteLiteral(" type=\"radio\"");
|
||||
|
||||
WriteLiteral(" id=\"Config_ReportPrefs_Builder_NTHD\"");
|
||||
|
||||
WriteLiteral(" name=\"Report\"");
|
||||
|
||||
WriteLiteral(" class=\"themeable\"");
|
||||
|
||||
WriteLiteral(" data-url=\"");
|
||||
|
||||
|
||||
#line 70 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
Write(Url.ActionAbsolute(MVC.Public.HeldDevices.Noticeboard()));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("\"");
|
||||
|
||||
WriteLiteral(" /><label");
|
||||
|
||||
WriteLiteral(" for=\"Config_ReportPrefs_Builder_NTHD\"");
|
||||
|
||||
WriteLiteral(">Technician Held Devices (Noticeboard)</label>\r\n <" +
|
||||
"/li>\r\n <li>\r\n " +
|
||||
"<input");
|
||||
|
||||
WriteLiteral(" type=\"radio\"");
|
||||
|
||||
WriteLiteral(" id=\"Config_ReportPrefs_Builder_THD\"");
|
||||
|
||||
WriteLiteral(" name=\"Report\"");
|
||||
|
||||
WriteLiteral(" data-url=\"");
|
||||
|
||||
|
||||
#line 73 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
Write(Url.ActionAbsolute(MVC.Public.HeldDevices.Index()));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("\"");
|
||||
|
||||
WriteLiteral(" /><label");
|
||||
|
||||
WriteLiteral(" for=\"Config_ReportPrefs_Builder_THD\"");
|
||||
|
||||
WriteLiteral(">Technician Held Devices (Report)</label>\r\n </li>\r" +
|
||||
"\n </ul>\r\n </div>\r\n " +
|
||||
" <div");
|
||||
|
||||
WriteLiteral(" class=\"theme\"");
|
||||
|
||||
WriteLiteral(">\r\n <h3>Noticeboard Theme</h3>\r\n");
|
||||
|
||||
WriteLiteral(" ");
|
||||
|
||||
|
||||
#line 79 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
Write(Html.DropDownList("Config_ReportPrefs_Builder_Theme", new SelectListItem[] { new SelectListItem() { Value = "", Text = "<Default>", Selected = true } }.Concat(Model.DefaultNoticeboardThemeOptions().Select(o => new SelectListItem() { Value = o.Key, Text = o.Value }))));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("\r\n </div>\r\n <div");
|
||||
|
||||
WriteLiteral(" class=\"filter\"");
|
||||
|
||||
WriteLiteral(">\r\n <h3>Filter</h3>\r\n <sele" +
|
||||
"ct");
|
||||
|
||||
WriteLiteral(" id=\"Config_ReportPrefs_Builder_Filter\"");
|
||||
|
||||
WriteLiteral(">\r\n <option");
|
||||
|
||||
WriteLiteral(" value=\"\"");
|
||||
|
||||
WriteLiteral("><None></option>\r\n <option");
|
||||
|
||||
WriteLiteral(" value=\"DeviceProfile\"");
|
||||
|
||||
WriteLiteral(">Device Profile</option>\r\n <option");
|
||||
|
||||
WriteLiteral(" value=\"DeviceAddress\"");
|
||||
|
||||
WriteLiteral(">Device Profile Address</option>\r\n </select>\r\n " +
|
||||
" <div");
|
||||
|
||||
WriteLiteral(" class=\"options\"");
|
||||
|
||||
WriteLiteral(">\r\n <div");
|
||||
|
||||
WriteLiteral(" class=\"method\"");
|
||||
|
||||
WriteLiteral(">\r\n <input");
|
||||
|
||||
WriteLiteral(" type=\"radio\"");
|
||||
|
||||
WriteLiteral(" id=\"Config_ReportPrefs_Builder_I\"");
|
||||
|
||||
WriteLiteral(" name=\"FilterAction\"");
|
||||
|
||||
WriteLiteral(" value=\"Include\"");
|
||||
|
||||
WriteLiteral(" checked=\"checked\"");
|
||||
|
||||
WriteLiteral(" /><label");
|
||||
|
||||
WriteLiteral(" for=\"Config_ReportPrefs_Builder_I\"");
|
||||
|
||||
WriteLiteral(">Include</label>\r\n <input");
|
||||
|
||||
WriteLiteral(" type=\"radio\"");
|
||||
|
||||
WriteLiteral(" id=\"Config_ReportPrefs_Builder_E\"");
|
||||
|
||||
WriteLiteral(" name=\"FilterAction\"");
|
||||
|
||||
WriteLiteral(" value=\"Exclude\"");
|
||||
|
||||
WriteLiteral(" /><label");
|
||||
|
||||
WriteLiteral(" for=\"Config_ReportPrefs_Builder_E\"");
|
||||
|
||||
WriteLiteral(">Exclude</label>\r\n </div>\r\n " +
|
||||
" <div");
|
||||
|
||||
WriteLiteral(" class=\"filter-option filter-DeviceProfile\"");
|
||||
|
||||
WriteLiteral(">\r\n <ul");
|
||||
|
||||
WriteLiteral(" class=\"none\"");
|
||||
|
||||
WriteLiteral(">\r\n");
|
||||
|
||||
|
||||
#line 95 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 95 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
foreach (var deviceProfile in Model.DeviceProfiles.Value)
|
||||
{
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" <li>\r\n " +
|
||||
" <input");
|
||||
|
||||
WriteAttribute("id", Tuple.Create(" id=\"", 6584), Tuple.Create("\"", 6638)
|
||||
, Tuple.Create(Tuple.Create("", 6589), Tuple.Create("Config_ReportPrefs_Builder_DP_", 6589), true)
|
||||
|
||||
#line 98 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 6619), Tuple.Create<System.Object, System.Int32>(deviceProfile.Id
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 6619), false)
|
||||
);
|
||||
|
||||
WriteLiteral(" type=\"checkbox\"");
|
||||
|
||||
WriteAttribute("value", Tuple.Create(" value=\"", 6655), Tuple.Create("\"", 6680)
|
||||
|
||||
#line 98 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 6663), Tuple.Create<System.Object, System.Int32>(deviceProfile.Id
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 6663), false)
|
||||
);
|
||||
|
||||
WriteLiteral(" /><label");
|
||||
|
||||
WriteAttribute("for", Tuple.Create(" for=\"", 6690), Tuple.Create("\"", 6745)
|
||||
, Tuple.Create(Tuple.Create("", 6696), Tuple.Create("Config_ReportPrefs_Builder_DP_", 6696), true)
|
||||
|
||||
#line 98 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 6726), Tuple.Create<System.Object, System.Int32>(deviceProfile.Id
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 6726), false)
|
||||
);
|
||||
|
||||
WriteLiteral(">");
|
||||
|
||||
|
||||
#line 98 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
Write(deviceProfile.Description);
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("</label></li>\r\n");
|
||||
|
||||
|
||||
#line 99 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
}
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" </ul>\r\n </div>" +
|
||||
"\r\n <div");
|
||||
|
||||
WriteLiteral(" class=\"filter-option filter-DeviceAddress\"");
|
||||
|
||||
WriteLiteral(">\r\n <ul");
|
||||
|
||||
WriteLiteral(" class=\"none\"");
|
||||
|
||||
WriteLiteral(">\r\n");
|
||||
|
||||
|
||||
#line 104 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 104 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
foreach (var address in Model.OrganisationAddresses.Value)
|
||||
{
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" <li>\r\n " +
|
||||
" <input");
|
||||
|
||||
WriteAttribute("id", Tuple.Create(" id=\"", 7299), Tuple.Create("\"", 7347)
|
||||
, Tuple.Create(Tuple.Create("", 7304), Tuple.Create("Config_ReportPrefs_Builder_OA_", 7304), true)
|
||||
|
||||
#line 107 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 7334), Tuple.Create<System.Object, System.Int32>(address.Id
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 7334), false)
|
||||
);
|
||||
|
||||
WriteLiteral(" type=\"checkbox\"");
|
||||
|
||||
WriteAttribute("value", Tuple.Create(" value=\"", 7364), Tuple.Create("\"", 7390)
|
||||
|
||||
#line 107 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 7372), Tuple.Create<System.Object, System.Int32>(address.ShortName
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 7372), false)
|
||||
);
|
||||
|
||||
WriteLiteral(" /><label");
|
||||
|
||||
WriteAttribute("for", Tuple.Create(" for=\"", 7400), Tuple.Create("\"", 7449)
|
||||
, Tuple.Create(Tuple.Create("", 7406), Tuple.Create("Config_ReportPrefs_Builder_OA_", 7406), true)
|
||||
|
||||
#line 107 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 7436), Tuple.Create<System.Object, System.Int32>(address.Id
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 7436), false)
|
||||
);
|
||||
|
||||
WriteLiteral(">");
|
||||
|
||||
|
||||
#line 107 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
Write(address.Name);
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" (");
|
||||
|
||||
|
||||
#line 107 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
Write(address.ShortName);
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(")</label></li>\r\n");
|
||||
|
||||
|
||||
#line 108 "..\..\Areas\Config\Views\JobPreferences\Parts\Reports.cshtml"
|
||||
}
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" </ul>\r\n </div>" +
|
||||
"\r\n </div>\r\n </div>\r\n " +
|
||||
" </form>\r\n <div");
|
||||
|
||||
WriteLiteral(" class=\"output\"");
|
||||
|
||||
WriteLiteral(">\r\n <textarea readonly></textarea>\r\n " +
|
||||
" <a");
|
||||
|
||||
WriteLiteral(" href=\"#\"");
|
||||
|
||||
WriteLiteral(" target=\"_blank\"");
|
||||
|
||||
WriteLiteral("><i");
|
||||
|
||||
WriteLiteral(" class=\"fa fa-external-link\"");
|
||||
|
||||
WriteLiteral(" title=\"Open Link\"");
|
||||
|
||||
WriteLiteral("></i></a>\r\n <i");
|
||||
|
||||
WriteLiteral(" class=\"fa fa-clipboard\"");
|
||||
|
||||
WriteLiteral(" title=\"Copy Link to Clipboard\"");
|
||||
|
||||
WriteLiteral("></i>\r\n </div>\r\n </div>\r\n <scrip" +
|
||||
"t>\r\n $(function () {\r\n var dialog, url" +
|
||||
";\r\n\r\n function updateUrl() {\r\n " +
|
||||
" var theme = null;\r\n var filter = null;\r\n " +
|
||||
" var filterMethod = null;\r\n var filter" +
|
||||
"Value = null;\r\n\r\n var report = dialog.find(\'.report i" +
|
||||
"nput:checked\');\r\n if (report.length > 0) {\r\n " +
|
||||
" url = report.attr(\'data-url\');\r\n\r\n " +
|
||||
" if (report.hasClass(\'themeable\')) {\r\n " +
|
||||
" theme = dialog.find(\'.theme > select\').val();\r\n " +
|
||||
" }\r\n\r\n filter = dialog.find(\'.filter > select\').v" +
|
||||
"al();\r\n\r\n if (!!filter) {\r\n " +
|
||||
" filterMethod = dialog.find(\'.filter .method input:checked\').val();" +
|
||||
"\r\n\r\n filterValue = dialog\r\n " +
|
||||
" .find(\'.filter .filter-\' + filter)\r\n " +
|
||||
" .find(\'input:checked\')\r\n " +
|
||||
" .map(function (index, element) { return $(element).val(); })\r\n " +
|
||||
" .toArray().join(\',\');\r\n }" +
|
||||
"\r\n\r\n if (!!theme || !!filter) {\r\n " +
|
||||
" url += \'?\';\r\n\r\n if (!!the" +
|
||||
"me)\r\n url += \'theme=\' + theme;\r\n\r\n " +
|
||||
" if (!!theme && !!filter)\r\n " +
|
||||
" url += \'&\';\r\n\r\n if (!!filter)\r" +
|
||||
"\n url += filter + filterMethod + \'=\' + fi" +
|
||||
"lterValue;\r\n }\r\n }\r\n\r\n" +
|
||||
" $(\'#Config_ReportPrefs_Builder_Buttonpane\').find(\'te" +
|
||||
"xtarea\').val(url);\r\n $(\'#Config_ReportPrefs_Builder_B" +
|
||||
"uttonpane\').find(\'.fa-external-link\').closest(\'a\').attr(\'href\', url);\r\n " +
|
||||
" }\r\n\r\n $(\'#Config_ReportPrefs_Builder_Butto" +
|
||||
"n\').click(function () {\r\n\r\n if (!dialog) {\r\n " +
|
||||
" dialog = $(\'#Config_ReportPrefs_Builder\').dialog({\r\n " +
|
||||
" resizable: false,\r\n " +
|
||||
" modal: true,\r\n autoOpen: false,\r\n " +
|
||||
" width: 550,\r\n m" +
|
||||
"axHeight: 520,\r\n buttons: {\r\n " +
|
||||
" Close: function () {\r\n " +
|
||||
" dialog.dialog(\'close\');\r\n }\r\n " +
|
||||
" }\r\n });\r\n\r\n " +
|
||||
" dialog.find(\'.report\').on(\'change\', \'input\', functio" +
|
||||
"n () {\r\n var $this = $(this);\r\n " +
|
||||
" var $theme = dialog.find(\'.theme\');\r\n\r\n " +
|
||||
" if ($this.hasClass(\'themeable\'))\r\n " +
|
||||
" $theme.slideDown();\r\n else\r\n " +
|
||||
" $theme.slideUp();\r\n\r\n " +
|
||||
" updateUrl();\r\n });\r\n\r\n " +
|
||||
" dialog.find(\'#Config_ReportPrefs_Builder_Theme\').change(updateUr" +
|
||||
"l);\r\n\r\n dialog.find(\'#Config_ReportPrefs_Builder_" +
|
||||
"Filter\').change(function () {\r\n var $this = $" +
|
||||
"(this);\r\n var $filter = dialog.find(\'.options" +
|
||||
"\');\r\n\r\n if (!$this.val())\r\n " +
|
||||
" $filter.slideUp();\r\n el" +
|
||||
"se {\r\n $filter.find(\'.filter-option\').hid" +
|
||||
"e();\r\n $filter.show();\r\n " +
|
||||
" $filter.find(\'.filter-\' + $this.val()).slideDown();\r\n " +
|
||||
" }\r\n\r\n updateU" +
|
||||
"rl();\r\n });\r\n\r\n di" +
|
||||
"alog.find(\'.filter .options\').on(\'click\', \'input\', updateUrl);\r\n\r\n " +
|
||||
" var $buttonpane = dialog.closest(\'.ui-dialog\').children(\'.ui-d" +
|
||||
"ialog-buttonpane\');\r\n $buttonpane.attr(\'id\', \'Con" +
|
||||
"fig_ReportPrefs_Builder_Buttonpane\').append(dialog.children(\'.output\'));\r\n\r\n " +
|
||||
" $buttonpane.find(\'textarea\').focus(function () {\r\n " +
|
||||
" $(this).select();\r\n " +
|
||||
" });\r\n\r\n\r\n var $clipboard = $buttonpane.find(" +
|
||||
"\'.fa-clipboard\');\r\n \r\n " +
|
||||
" if (!!window.clipboardData) {\r\n $clipboa" +
|
||||
"rd.click(function () {\r\n window.clipboard" +
|
||||
"Data.setData(\'Text\', url);\r\n alert(\'Link " +
|
||||
"copied to Clipboard\');\r\n return false;\r\n " +
|
||||
" });\r\n } else {" +
|
||||
"\r\n $clipboard.hide();\r\n " +
|
||||
" }\r\n\r\n }\r\n\r\n dial" +
|
||||
"og.dialog(\'open\');\r\n\r\n updateUrl();\r\n\r\n " +
|
||||
" return false;\r\n });\r\n\r\n " +
|
||||
"});\r\n </script>\r\n </td>\r\n </tr>\r\n </table>\r\n" +
|
||||
"</div>\r\n");
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma warning restore 1591
|
||||
Reference in New Issue
Block a user