initial source commit

This commit is contained in:
Gary Sharp
2013-02-01 12:35:28 +11:00
parent 543a005d31
commit 0a93429800
1103 changed files with 285609 additions and 0 deletions
@@ -0,0 +1,339 @@
@{
ViewBag.Title = "Credits";
Html.BundleDeferred("~/Style/Credits");
}
<h2>
Organisations</h2>
<div id="organisationCredits">
<span class="message">The development team would like to thank the following organisations
for their generous contributions:</span>
<ul>
<li><a href="http://www.geelonghigh.vic.edu.au/" target="_blank">Geelong High School</a></li>
<li><a href="http://www.bellarinesc.vic.edu.au/" target="_blank">Bellarine Secondary
College</a></li>
</ul>
</div>
<hr />
<table id="pageMenu">
<tr>
<td>
<h2>
Platform</h2>
<div class="pageMenuArea MicrosoftNET">
<a href="http://www.microsoft.com/net/" target="_blank">Microsoft .NET Framework</a>
<div class="pageMenuBlurb">
The Microsoft .NET Framework is the hosting virtual machine most of Disco runs on.
Most of Disco's components are written in <a href="http://msdn.microsoft.com/en-us/vstudio/hh388566.aspx"
target="_blank">C#</a>.
</div>
</div>
<div class="pageMenuArea MicrosoftASPNET">
<a href="http://www.asp.net/" target="_blank">Microsoft ASP.NET Framework</a>
<div class="pageMenuBlurb">
The Microsoft ASP.NET Framework powers all Web features of this web application.
<a href="http://www.nuget.org/packages/Microsoft.Web.Optimization" target="_blank">Microsoft
Web Optimization - Bundling</a> is used to provide JavaScript, CSS and LESS
minification and bundling.
</div>
<a href="http://www.asp.net/" target="_blank">Microsoft ASP.NET MVC Framework</a>
<div class="pageMenuBlurb">
The Microsoft ASP.NET MVC Framework providers the Model-View-Controller pattern
for ASP.NET which is implemented by this web application. Most of this web application's
views are written in <a href="http://www.asp.net/web-pages/tutorials/basics/2-introduction-to-asp-net-web-programming-using-the-razor-syntax"
target="_blank">C# Razor Syntax</a>. Web application start-up time is increase
by pre-compiling all Razor views with <a href="http://razorgenerator.codeplex.com/"
target="_blank">Razor Generator</a>.
</div>
<a href="http://www.asp.net/entity-framework" target="_blank">Microsoft .NET Entity
Framework</a>
<div class="pageMenuBlurb">
The Microsoft .NET Entity Framework is the Object-Relational Mapping (ORM) toolset
used by this web application.
</div>
</div>
<div class="pageMenuArea MicrosoftSQLServer">
<a href="http://www.microsoft.com/sqlserver/" target="_blank">Microsoft SQL Server</a>
<div class="pageMenuBlurb">
Microsoft SQL Server is used for storage and querying of relational data.
</div>
<a href="http://msdn.microsoft.com/en-us/data/ff687142" target="_blank">Microsoft SQL
Server Compact</a>
<div class="pageMenuBlurb">
Microsoft SQL Server Compact provides file-based relational data storage. It is
used by this web application to store all logs and is available for plug-ins to
use for additional storage.
</div>
</div>
<div class="pageMenuArea MicrosoftSilverlight">
<a href="http://www.silverlight.net/" target="_blank">Microsoft Silverlight</a>
<div class="pageMenuBlurb">
Microsoft Silverlight is an application framework for writing and running rich Internet
applications. The run-time environment for Silverlight is available as a plug-in
for web browsers running under Microsoft Windows and Mac OS X. Silverlight supports
multimedia, graphics and animation, and give developers support for CLI languages
and development tools.
</div>
</div>
<div class="pageMenuArea SignalR">
<a href="http://signalr.net/" target="_blank">SignalR</a><span class="licence"><a
href="http://www.opensource.org/licenses/mit-license.php" target="_blank">MIT</a></span>
<div class="pageMenuBlurb">
SignalR is used extensively by this web application to provide real-time feedback
to the client browser. This includes real-time log viewing, enrolment status, document
import status and noticeboards.
</div>
</div>
<div class="pageMenuArea nuget">
<a href="http://nuget.org/" target="_blank">nuget</a><span class="licence"><a href="http://www.apache.org/licenses/LICENSE-2.0.html"
target="_blank">Apache License, Version 2.0</a></span>
<div class="pageMenuBlurb">
NuGet is a Visual Studio extension that makes it easy to install and update third-party
libraries and tools in Visual Studio.
</div>
</div>
<div class="pageMenuArea T4MVC">
<a href="http://t4mvc.codeplex.com/" target="_blank">T4MVC</a><span class="licence"><a
href="http://www.apache.org/licenses/LICENSE-2.0.html" target="_blank">Apache License,
Version 2.0</a></span>
<div class="pageMenuBlurb">
T4MVC is a T4 template for ASP.NET MVC apps that creates strongly typed helpers
that eliminate the use of literal strings when referring the controllers, actions
and views.
</div>
</div>
</td>
<td>
<h2>
SDK/Helpers</h2>
<div class="pageMenuArea dotless">
<a href="http://www.dotlesscss.org/" target="_blank">.less</a><span class="licence"><a
href="http://www.apache.org/licenses/LICENSE-2.0.html" target="_blank">Apache License,
Version 2.0</a></span>
<div class="pageMenuBlurb">
.less is a Microsoft .NET Framework port of the popular <a href="http://lesscss.org/"
target="_blank">LESS JavaScript library</a>. LESS syntax adds features to the
Cascading StyleSheet specification for developers to take advantage of. It is compiled
to CSS for the client browser to consume.
</div>
</div>
<div class="pageMenuArea SpringNET">
<a href="http://www.springframework.net/" target="_blank">Spring.net</a><span class="licence"><a
href="http://www.apache.org/licenses/LICENSE-2.0.html" target="_blank">Apache License,
Version 2.0</a></span>
<div class="pageMenuBlurb">
Spring.NET is an open source application framework that makes building enterprise
.NET applications easier. In particular, this application makes use of <a href="http://www.springframework.net/doc-latest/reference/html/expressions.html"
target="_blank">Spring Expression Evaluation</a>.
</div>
</div>
<div class="pageMenuArea Quartz">
<a href="http://quartznet.sourceforge.net/" target="_blank">Quartz.NET</a><span
class="licence"><a href="http://www.apache.org/licenses/LICENSE-2.0.html" target="_blank">Apache
License, Version 2.0</a></span>
<div class="pageMenuBlurb">
Quartz.NET is a full-featured, open source job scheduling system that can be used
from smallest apps to large scale enterprise systems. Quartz.NET is a pure .NET
library written in C# and is a port of very popular open source Java job scheduling
framework, <a href="http://www.quartz-scheduler.org/" target="_blank">Quartz</a>.
</div>
</div>
<div class="pageMenuArea iTextSharp">
<a href="http://sourceforge.net/projects/itextsharp/" target="_blank">iTextSharp</a><span
class="licence"><a href="http://opensource.org/licenses/AGPL-3.0" target="_blank">AGPL</a></span>
<div class="pageMenuBlurb">
iText# (iTextSharp) is a port of the iText open source java library for PDF generation
written entirely in C# for the .NET platform.
</div>
</div>
<div class="pageMenuArea CrystalIcons">
<a href="http://everaldo.com/crystal/" target="_blank">Crystal Project Icons</a><span
class="licence"><a href="http://opensource.org/licenses/LGPL-2.1" target="_blank">LGPLv2.1</a></span>
<div class="pageMenuBlurb">
The Crystal Project produces a set of icons targeted towards Linux based operating
system distributions.
</div>
</div>
<div class="pageMenuArea JsonNET">
<a href="http://json.codeplex.com/" target="_blank">Json.NET</a><span class="licence"><a
href="http://www.opensource.org/licenses/mit-license.php" target="_blank">MIT</a></span>
<div class="pageMenuBlurb">
While in most places the (Microsoft .NET Framework) built-in JSON Serializer is
used, however on occasion (and where other frameworks require) Json.NET is used.
</div>
</div>
<div class="pageMenuArea LibTiff">
<a href="http://bitmiracle.com/libtiff/" target="_blank">LibTiff.Net</a><span class="licence"><a
href="http://bitmiracle.com/libtiff/help/license-and-copyright.aspx" target="_blank">Copyright</a>
| <a href="http://opensource.org/licenses/BSD-3-Clause" target="_blank">New BSD</a></span>
<div class="pageMenuBlurb">
LibTiff.Net provides support for the Tag Image File Format (TIFF), a widely used
format for storing image data.
</div>
</div>
<div class="pageMenuArea DotNetZip">
<a href="http://dotnetzip.codeplex.com/" target="_blank">DotNetZip</a><span class="licence"><a
href="http://opensource.org/licenses/MS-PL" target="_blank">Ms-PL</a></span>
<div class="pageMenuBlurb">
DotNetZip is an easy-to-use, FAST, FREE class library and toolset for manipulating
zip files or folders.
</div>
</div>
<div class="pageMenuArea SharpSSH">
<a href="http://www.tamirgal.com/blog/page/SharpSSH.aspx" target="_blank">SharpSSH</a><span
class="licence"><a href="http://www.jcraft.com/jsch/LICENSE.txt" target="_blank">BSD-Style</a></span>
<div class="pageMenuBlurb">
SharpSSH is a pure .NET implementation of the SSH2 client protocol suite. It provides
an API for communication with SSH servers and can be integrated into any .NET application.
The library is a C# port of the <a href="http://www.jcraft.com/jsch/" target="_blank">
JSch</a> project from JCraft Inc.
</div>
</div>
<div class="pageMenuArea ZXing">
<a href="http://code.google.com/p/zxing/" target="_blank">ZXing</a><span class="licence"><a
href="http://www.apache.org/licenses/LICENSE-2.0.html" target="_blank">Apache License,
Version 2.0</a></span>
<div class="pageMenuBlurb">
ZXing (pronounced "zebra crossing") is an open-source, multi-format 1D/2D barcode
image processing library implemented in Java, with ports to other languages.
</div>
</div>
<div class="pageMenuArea HtmlAgilityPack">
<a href="http://htmlagilitypack.codeplex.com/" target="_blank">Html Agility Pack</a><span
class="licence"><a href="http://opensource.org/licenses/MS-PL" target="_blank">Ms-PL</a></span>
<div class="pageMenuBlurb">
This is an agile HTML parser that builds a read/write DOM and supports plain XPATH
or XSLT. It is a .NET code library that allows you to parse "out of the web" HTML
files. The parser is very tolerant with "real world" malformed HTML.
</div>
</div>
</td>
<td>
<h2>
Web Client</h2>
<div class="pageMenuArea jQuery">
<a href="http://jquery.com/" target="_blank">jQuery</a><span class="licence"><a href="http://www.opensource.org/licenses/mit-license.php"
target="_blank">MIT</a>/<a href="http://www.opensource.org/licenses/GPL-2.0" target="_blank">GPLv2</a></span>
<div class="pageMenuBlurb">
jQuery is used extensively by this web application to improve browser compatibility
and speed up development by providing query mechanisms for the browsers document
object model (DOM).
</div>
<div class="pageMenuAreaSub">
<h3>
Plugins:</h3>
<div>
<a href="http://github.com/jquery/jquery-color#readme" target="_blank">Color</a>
- The main purpose of this plugin to animate color properties on elements using
jQuery's .animate() <span class="licence"><a href="http://www.opensource.org/licenses/mit-license.php"
target="_blank">MIT</a>/<a href="http://www.opensource.org/licenses/GPL-3.0" target="_blank">GPL</a></span>
</div>
@* <div>
<a href="http://plugins.jquery.com/project/equal-height" target="_blank">Equal Height</a>
- This plug-in makes HTML-elements equal height by adjusting their min-height CSS
properties. <span class="licence"><a href="http://creativecommons.org/licenses/by/3.0/"
target="_blank">Creative Commons 3.0 Attribution</a></span>
</div>*@
<div>
<a href="http://www.timdown.co.uk/jshashtable/" target="_blank">jshashtable</a>
- jshashtable is a JavaScript implementation of a hash table. It associates objects
("keys") with other objects ("values"). <span class="licence"><a href="http://www.apache.org/licenses/LICENSE-2.0.html"
target="_blank">Apache License, Version 2.0</a></span>
</div>
<div>
<a href="http://code.google.com/p/jquery-numberformatter/" target="_blank">Number Formatter</a>
- This plugin is a number formatting and parsing plugin for jQuery. <span class="licence">
<a href="http://www.opensource.org/licenses/mit-license.php" target="_blank">MIT</a></span>
</div>
<div>
<a href="http://code.google.com/p/jquery-watermark/" target="_blank">Watermark</a>
- This simple-to-use jQuery plugin adds watermark capability to HTML input and textarea
elements. <span class="licence"><a href="http://www.opensource.org/licenses/mit-license.php"
target="_blank">MIT</a>/<a href="http://www.opensource.org/licenses/GPL-2.0" target="_blank">GPL2</a></span>
</div>
<div>
<a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/" target="_blank">
Validation</a> - This jQuery plugin makes simple client-side form validation
trivial, while offering lots of option for customization. <span class="licence"><a
href="http://www.opensource.org/licenses/mit-license.php" target="_blank">MIT</a>/<a
href="http://www.opensource.org/licenses/GPL-3.0" target="_blank">GPL</a></span>
</div>
</div>
</div>
<div class="pageMenuArea jQueryUI">
<a href="http://jqueryui.com/" target="_blank">jQuery UI</a><span class="licence"><a
href="http://www.opensource.org/licenses/mit-license.php" target="_blank">MIT</a>/<a
href="http://www.opensource.org/licenses/GPL-2.0" target="_blank">GPL2</a></span>
<div class="pageMenuBlurb">
jQuery UI is used extensively by this web application to provide in-browser user
interface widgets such as dialogs, date pickers and auto-complete drop-down menus.
</div>
<div class="pageMenuAreaSub">
<h3>
Plugins:</h3>
<div>
<a href="http://code.google.com/p/dynatree/" target="_blank">Dynatree</a> - Dynatree
is a jQuery plugin that allows the creation of dynamic html tree view controls using
JavaScript. <span class="licence"><a href="http://www.opensource.org/licenses/mit-license.php"
target="_blank">MIT</a></span>
</div>
<div>
<a href="http://isotope.metafizzy.co/" target="_blank">Isotope</a> - Isotope is
a jQuery plugin which provides dynamic layout and transition functionality. <span
class="licence"><a href="http://isotope.metafizzy.co/docs/license.html" target="_blank">
non-commercial</a></span>
</div>
<div>
<a href="http://code.google.com/p/jquery-timepicker/" target="_blank">TimePicker</a>
- jQuery plugin that replaces a single text input with a set of pulldown menus to
select hour, minute, and am/pm. <span class="licence"><a href="http://www.opensource.org/licenses/mit-license.php"
target="_blank">MIT</a></span>
</div>
</div>
</div>
<div class="pageMenuArea Modernizr">
<a href="http://modernizr.com/" target="_blank">Modernizr</a><span class="licence"><a
href="http://www.opensource.org/licenses/mit-license.php" target="_blank">MIT</a>/<a
href="http://modernizr.com/license/" target="_blank">BSD-Style</a></span>
<div class="pageMenuBlurb">
Modernizr is an open-source JavaScript library that helps you build the next generation
of HTML5 and CSS3-powered websites.
</div>
</div>
<div class="pageMenuArea knockoutjs">
<a href="http://knockoutjs.com/" target="_blank">Knockout.js</a><span class="licence"><a
href="http://www.opensource.org/licenses/mit-license.php" target="_blank">MIT</a></span>
<div class="pageMenuBlurb">
Knockout.js is used by this web application to provider Model-View-Controller (MVC)
patterns to the client browser. It enables advanced dynamic layouts such as the
real-time enrolment or document import status.
</div>
</div>
<div class="pageMenuArea HighchartsJS">
<a href="http://www.highcharts.com/" target="_blank">Highcharts JS</a><span class="licence"><a
href="http://creativecommons.org/licenses/by-nc/3.0/" target="_blank">CC 3.0 Attrib-NonCommercial</a></span>
<div class="pageMenuBlurb">
Highcharts JS is used by this web application to display in-browser dynamic charts.
</div>
</div>
<div class="pageMenuArea TinyMCE">
<a href="http://www.tinymce.com/" target="_blank">TinyMCE</a><span class="licence"><a
href="http://opensource.org/licenses/LGPL-2.1" target="_blank">LGPLv2.1</a></span>
<div class="pageMenuBlurb">
TinyMCE is a platform independent web based JavaScript HTML WYSIWYG editor control.
TinyMCE has the ability to convert HTML TEXTAREA fields or other HTML elements to
editor instances.
</div>
</div>
<div class="pageMenuArea Shadowboxjs">
<a href="http://www.shadowbox-js.com/" target="_blank">Shadowbox.js</a><span class="licence"><a
href="http://www.shadowbox-js.com/LICENSE" target="_blank">Non-Commercial License
v1.0</a></span>
<div class="pageMenuBlurb">
Shadowbox is a web-based media viewer application that supports all of the web's
most popular media publishing formats. Shadowbox can showcase a wide assortment
of media in all major browsers without navigating users away from the linking page.
</div>
</div>
</td>
</tr>
</table>
@@ -0,0 +1,945 @@
#pragma warning disable 1591
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.17929
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Disco.Web.Areas.Public.Views.Public
{
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.BI.Extensions;
using Disco.Models.Repository;
using Disco.Web;
using Disco.Web.Extensions;
[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")]
[System.Web.WebPages.PageVirtualPathAttribute("~/Areas/Public/Views/Public/Credits.cshtml")]
public class Credits : System.Web.Mvc.WebViewPage<dynamic>
{
public Credits()
{
}
public override void Execute()
{
#line 1 "..\..\Areas\Public\Views\Public\Credits.cshtml"
ViewBag.Title = "Credits";
Html.BundleDeferred("~/Style/Credits");
#line default
#line hidden
WriteLiteral("\r\n<h2>\r\n Organisations</h2>\r\n<div");
WriteLiteral(" id=\"organisationCredits\"");
WriteLiteral(">\r\n <span");
WriteLiteral(" class=\"message\"");
WriteLiteral(">The development team would like to thank the following organisations\r\n fo" +
"r their generous contributions:</span>\r\n <ul>\r\n <li><a");
WriteLiteral(" href=\"http://www.geelonghigh.vic.edu.au/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">Geelong High School</a></li>\r\n <li><a");
WriteLiteral(" href=\"http://www.bellarinesc.vic.edu.au/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">Bellarine Secondary\r\n College</a></li>\r\n </ul>\r\n</div>\r\n<hr />\r\n<t" +
"able");
WriteLiteral(" id=\"pageMenu\"");
WriteLiteral(">\r\n <tr>\r\n <td>\r\n <h2>\r\n Platform</h2>\r\n " +
" <div");
WriteLiteral(" class=\"pageMenuArea MicrosoftNET\"");
WriteLiteral(">\r\n <a");
WriteLiteral(" href=\"http://www.microsoft.com/net/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">Microsoft .NET Framework</a>\r\n <div");
WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(">\r\n The Microsoft .NET Framework is the hosting virtual machin" +
"e most of Disco runs on.\r\n Most of Disco\'s components are wri" +
"tten in <a");
WriteLiteral(" href=\"http://msdn.microsoft.com/en-us/vstudio/hh388566.aspx\"");
WriteLiteral("\r\n target=\"_blank\"");
WriteLiteral(">C#</a>.\r\n </div>\r\n </div>\r\n <div");
WriteLiteral(" class=\"pageMenuArea MicrosoftASPNET\"");
WriteLiteral(">\r\n <a");
WriteLiteral(" href=\"http://www.asp.net/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">Microsoft ASP.NET Framework</a>\r\n <div");
WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(">\r\n The Microsoft ASP.NET Framework powers all Web features of" +
" this web application.\r\n <a");
WriteLiteral(" href=\"http://www.nuget.org/packages/Microsoft.Web.Optimization\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">Microsoft\r\n Web Optimization - Bundling</a> is used to pr" +
"ovide JavaScript, CSS and LESS\r\n minification and bundling.\r\n" +
" </div>\r\n <a");
WriteLiteral(" href=\"http://www.asp.net/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">Microsoft ASP.NET MVC Framework</a>\r\n <div");
WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(@">
The Microsoft ASP.NET MVC Framework providers the Model-View-Controller pattern
for ASP.NET which is implemented by this web application. Most of this web application's
views are written in <a");
WriteLiteral(" href=\"http://www.asp.net/web-pages/tutorials/basics/2-introduction-to-asp-net-we" +
"b-programming-using-the-razor-syntax\"");
WriteLiteral("\r\n target=\"_blank\"");
WriteLiteral(">C# Razor Syntax</a>. Web application start-up time is increase\r\n " +
" by pre-compiling all Razor views with <a");
WriteLiteral(" href=\"http://razorgenerator.codeplex.com/\"");
WriteLiteral("\r\n target=\"_blank\"");
WriteLiteral(">Razor Generator</a>.\r\n </div>\r\n <a");
WriteLiteral(" href=\"http://www.asp.net/entity-framework\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">Microsoft .NET Entity\r\n Framework</a>\r\n <div");
WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(">\r\n The Microsoft .NET Entity Framework is the Object-Relation" +
"al Mapping (ORM) toolset\r\n used by this web application.\r\n " +
" </div>\r\n </div>\r\n <div");
WriteLiteral(" class=\"pageMenuArea MicrosoftSQLServer\"");
WriteLiteral(">\r\n <a");
WriteLiteral(" href=\"http://www.microsoft.com/sqlserver/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">Microsoft SQL Server</a>\r\n <div");
WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(">\r\n Microsoft SQL Server is used for storage and querying of r" +
"elational data.\r\n </div>\r\n <a");
WriteLiteral(" href=\"http://msdn.microsoft.com/en-us/data/ff687142\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">Microsoft SQL\r\n Server Compact</a>\r\n <div");
WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(@">
Microsoft SQL Server Compact provides file-based relational data storage. It is
used by this web application to store all logs and is available for plug-ins to
use for additional storage.
</div>
</div>
<div");
WriteLiteral(" class=\"pageMenuArea MicrosoftSilverlight\"");
WriteLiteral(">\r\n <a");
WriteLiteral(" href=\"http://www.silverlight.net/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">Microsoft Silverlight</a>\r\n <div");
WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(@">
Microsoft Silverlight is an application framework for writing and running rich Internet
applications. The run-time environment for Silverlight is available as a plug-in
for web browsers running under Microsoft Windows and Mac OS X. Silverlight supports
multimedia, graphics and animation, and give developers support for CLI languages
and development tools.
</div>
</div>
<div");
WriteLiteral(" class=\"pageMenuArea SignalR\"");
WriteLiteral(">\r\n <a");
WriteLiteral(" href=\"http://signalr.net/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">SignalR</a><span");
WriteLiteral(" class=\"licence\"");
WriteLiteral("><a\r\n href=\"http://www.opensource.org/licenses/mit-license.php" +
"\" target=\"_blank\">MIT</a></span>\r\n <div");
WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(@">
SignalR is used extensively by this web application to provide real-time feedback
to the client browser. This includes real-time log viewing, enrolment status, document
import status and noticeboards.
</div>
</div>
<div");
WriteLiteral(" class=\"pageMenuArea nuget\"");
WriteLiteral(">\r\n <a");
WriteLiteral(" href=\"http://nuget.org/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">nuget</a><span");
WriteLiteral(" class=\"licence\"");
WriteLiteral("><a");
WriteLiteral(" href=\"http://www.apache.org/licenses/LICENSE-2.0.html\"");
WriteLiteral("\r\n target=\"_blank\"");
WriteLiteral(">Apache License, Version 2.0</a></span>\r\n <div");
WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(">\r\n NuGet is a Visual Studio extension that makes it easy to i" +
"nstall and update third-party\r\n libraries and tools in Visual" +
" Studio.\r\n </div>\r\n </div>\r\n <div");
WriteLiteral(" class=\"pageMenuArea T4MVC\"");
WriteLiteral(">\r\n <a");
WriteLiteral(" href=\"http://t4mvc.codeplex.com/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">T4MVC</a><span");
WriteLiteral(" class=\"licence\"");
WriteLiteral("><a\r\n href=\"http://www.apache.org/licenses/LICENSE-2.0.html\" t" +
"arget=\"_blank\">Apache License,\r\n Version 2.0</a></span>\r\n " +
" <div");
WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(@">
T4MVC is a T4 template for ASP.NET MVC apps that creates strongly typed helpers
that eliminate the use of literal strings when referring the controllers, actions
and views.
</div>
</div>
</td>
<td>
<h2>
SDK/Helpers</h2>
<div");
WriteLiteral(" class=\"pageMenuArea dotless\"");
WriteLiteral(">\r\n <a");
WriteLiteral(" href=\"http://www.dotlesscss.org/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">.less</a><span");
WriteLiteral(" class=\"licence\"");
WriteLiteral("><a\r\n href=\"http://www.apache.org/licenses/LICENSE-2.0.html\" t" +
"arget=\"_blank\">Apache License,\r\n Version 2.0</a></span>\r\n " +
" <div");
WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(">\r\n .less is a Microsoft .NET Framework port of the popular <a" +
"");
WriteLiteral(" href=\"http://lesscss.org/\"");
WriteLiteral("\r\n target=\"_blank\"");
WriteLiteral(@">LESS JavaScript library</a>. LESS syntax adds features to the
Cascading StyleSheet specification for developers to take advantage of. It is compiled
to CSS for the client browser to consume.
</div>
</div>
<div");
WriteLiteral(" class=\"pageMenuArea SpringNET\"");
WriteLiteral(">\r\n <a");
WriteLiteral(" href=\"http://www.springframework.net/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">Spring.net</a><span");
WriteLiteral(" class=\"licence\"");
WriteLiteral("><a\r\n href=\"http://www.apache.org/licenses/LICENSE-2.0.html\" t" +
"arget=\"_blank\">Apache License,\r\n Version 2.0</a></span>\r\n " +
" <div");
WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(">\r\n Spring.NET is an open source application framework that ma" +
"kes building enterprise\r\n .NET applications easier. In partic" +
"ular, this application makes use of <a");
WriteLiteral(" href=\"http://www.springframework.net/doc-latest/reference/html/expressions.html\"" +
"");
WriteLiteral("\r\n target=\"_blank\"");
WriteLiteral(">Spring Expression Evaluation</a>.\r\n </div>\r\n </div>\r\n " +
" <div");
WriteLiteral(" class=\"pageMenuArea Quartz\"");
WriteLiteral(">\r\n <a");
WriteLiteral(" href=\"http://quartznet.sourceforge.net/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">Quartz.NET</a><span\r\n class=\"licence\"><a");
WriteLiteral(" href=\"http://www.apache.org/licenses/LICENSE-2.0.html\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">Apache\r\n License, Version 2.0</a></span>\r\n " +
" <div");
WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(@">
Quartz.NET is a full-featured, open source job scheduling system that can be used
from smallest apps to large scale enterprise systems. Quartz.NET is a pure .NET
library written in C# and is a port of very popular open source Java job scheduling
framework, <a");
WriteLiteral(" href=\"http://www.quartz-scheduler.org/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">Quartz</a>.\r\n </div>\r\n </div>\r\n <div");
WriteLiteral(" class=\"pageMenuArea iTextSharp\"");
WriteLiteral(">\r\n <a");
WriteLiteral(" href=\"http://sourceforge.net/projects/itextsharp/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">iTextSharp</a><span\r\n class=\"licence\"><a");
WriteLiteral(" href=\"http://opensource.org/licenses/AGPL-3.0\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">AGPL</a></span>\r\n <div");
WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(">\r\n iText# (iTextSharp) is a port of the iText open source jav" +
"a library for PDF generation\r\n written entirely in C# for the" +
" .NET platform.\r\n </div>\r\n </div>\r\n <div");
WriteLiteral(" class=\"pageMenuArea CrystalIcons\"");
WriteLiteral(">\r\n <a");
WriteLiteral(" href=\"http://everaldo.com/crystal/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">Crystal Project Icons</a><span\r\n class=\"licence\"><a");
WriteLiteral(" href=\"http://opensource.org/licenses/LGPL-2.1\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">LGPLv2.1</a></span>\r\n <div");
WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(">\r\n The Crystal Project produces a set of icons targeted towar" +
"ds Linux based operating\r\n system distributions.\r\n " +
" </div>\r\n </div>\r\n <div");
WriteLiteral(" class=\"pageMenuArea JsonNET\"");
WriteLiteral(">\r\n <a");
WriteLiteral(" href=\"http://json.codeplex.com/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">Json.NET</a><span");
WriteLiteral(" class=\"licence\"");
WriteLiteral("><a\r\n href=\"http://www.opensource.org/licenses/mit-license.php" +
"\" target=\"_blank\">MIT</a></span>\r\n <div");
WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(@">
While in most places the (Microsoft .NET Framework) built-in JSON Serializer is
used, however on occasion (and where other frameworks require) Json.NET is used.
</div>
</div>
<div");
WriteLiteral(" class=\"pageMenuArea LibTiff\"");
WriteLiteral(">\r\n <a");
WriteLiteral(" href=\"http://bitmiracle.com/libtiff/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">LibTiff.Net</a><span");
WriteLiteral(" class=\"licence\"");
WriteLiteral("><a\r\n href=\"http://bitmiracle.com/libtiff/help/license-and-cop" +
"yright.aspx\" target=\"_blank\">Copyright</a>\r\n | <a");
WriteLiteral(" href=\"http://opensource.org/licenses/BSD-3-Clause\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">New BSD</a></span>\r\n <div");
WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(">\r\n LibTiff.Net provides support for the Tag Image File Format" +
" (TIFF), a widely used\r\n format for storing image data.\r\n " +
" </div>\r\n </div>\r\n <div");
WriteLiteral(" class=\"pageMenuArea DotNetZip\"");
WriteLiteral(">\r\n <a");
WriteLiteral(" href=\"http://dotnetzip.codeplex.com/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">DotNetZip</a><span");
WriteLiteral(" class=\"licence\"");
WriteLiteral("><a\r\n href=\"http://opensource.org/licenses/MS-PL\" target=\"_bla" +
"nk\">Ms-PL</a></span>\r\n <div");
WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(">\r\n DotNetZip is an easy-to-use, FAST, FREE class library and " +
"toolset for manipulating\r\n zip files or folders.\r\n " +
" </div>\r\n </div>\r\n <div");
WriteLiteral(" class=\"pageMenuArea SharpSSH\"");
WriteLiteral(">\r\n <a");
WriteLiteral(" href=\"http://www.tamirgal.com/blog/page/SharpSSH.aspx\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">SharpSSH</a><span\r\n class=\"licence\"><a");
WriteLiteral(" href=\"http://www.jcraft.com/jsch/LICENSE.txt\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">BSD-Style</a></span>\r\n <div");
WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(@">
SharpSSH is a pure .NET implementation of the SSH2 client protocol suite. It provides
an API for communication with SSH servers and can be integrated into any .NET application.
The library is a C# port of the <a");
WriteLiteral(" href=\"http://www.jcraft.com/jsch/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">\r\n JSch</a> project from JCraft Inc.\r\n </d" +
"iv>\r\n </div>\r\n <div");
WriteLiteral(" class=\"pageMenuArea ZXing\"");
WriteLiteral(">\r\n <a");
WriteLiteral(" href=\"http://code.google.com/p/zxing/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">ZXing</a><span");
WriteLiteral(" class=\"licence\"");
WriteLiteral("><a\r\n href=\"http://www.apache.org/licenses/LICENSE-2.0.html\" t" +
"arget=\"_blank\">Apache License,\r\n Version 2.0</a></span>\r\n " +
" <div");
WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(@">
ZXing (pronounced ""zebra crossing"") is an open-source, multi-format 1D/2D barcode
image processing library implemented in Java, with ports to other languages.
</div>
</div>
<div");
WriteLiteral(" class=\"pageMenuArea HtmlAgilityPack\"");
WriteLiteral(">\r\n <a");
WriteLiteral(" href=\"http://htmlagilitypack.codeplex.com/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">Html Agility Pack</a><span\r\n class=\"licence\"><a");
WriteLiteral(" href=\"http://opensource.org/licenses/MS-PL\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">Ms-PL</a></span>\r\n <div");
WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(@">
This is an agile HTML parser that builds a read/write DOM and supports plain XPATH
or XSLT. It is a .NET code library that allows you to parse ""out of the web"" HTML
files. The parser is very tolerant with ""real world"" malformed HTML.
</div>
</div>
</td>
<td>
<h2>
Web Client</h2>
<div");
WriteLiteral(" class=\"pageMenuArea jQuery\"");
WriteLiteral(">\r\n <a");
WriteLiteral(" href=\"http://jquery.com/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">jQuery</a><span");
WriteLiteral(" class=\"licence\"");
WriteLiteral("><a");
WriteLiteral(" href=\"http://www.opensource.org/licenses/mit-license.php\"");
WriteLiteral("\r\n target=\"_blank\"");
WriteLiteral(">MIT</a>/<a");
WriteLiteral(" href=\"http://www.opensource.org/licenses/GPL-2.0\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">GPLv2</a></span>\r\n <div");
WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(@">
jQuery is used extensively by this web application to improve browser compatibility
and speed up development by providing query mechanisms for the browsers document
object model (DOM).
</div>
<div");
WriteLiteral(" class=\"pageMenuAreaSub\"");
WriteLiteral(">\r\n <h3>\r\n Plugins:</h3>\r\n " +
" <div>\r\n <a");
WriteLiteral(" href=\"http://github.com/jquery/jquery-color#readme\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">Color</a>\r\n - The main purpose of this plugin to animate " +
"color properties on elements using\r\n jQuery\'s .animate() " +
"<span");
WriteLiteral(" class=\"licence\"");
WriteLiteral("><a");
WriteLiteral(" href=\"http://www.opensource.org/licenses/mit-license.php\"");
WriteLiteral("\r\n target=\"_blank\"");
WriteLiteral(">MIT</a>/<a");
WriteLiteral(" href=\"http://www.opensource.org/licenses/GPL-3.0\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">GPL</a></span>\r\n </div>\r\n");
WriteLiteral("\r\n <div>\r\n <a");
WriteLiteral(" href=\"http://www.timdown.co.uk/jshashtable/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">jshashtable</a>\r\n - jshashtable is a JavaScript implement" +
"ation of a hash table. It associates objects\r\n (\"keys\") w" +
"ith other objects (\"values\"). <span");
WriteLiteral(" class=\"licence\"");
WriteLiteral("><a");
WriteLiteral(" href=\"http://www.apache.org/licenses/LICENSE-2.0.html\"");
WriteLiteral("\r\n target=\"_blank\"");
WriteLiteral(">Apache License, Version 2.0</a></span>\r\n </div>\r\n " +
" <div>\r\n <a");
WriteLiteral(" href=\"http://code.google.com/p/jquery-numberformatter/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">Number Formatter</a>\r\n - This plugin is a number formatti" +
"ng and parsing plugin for jQuery. <span");
WriteLiteral(" class=\"licence\"");
WriteLiteral(">\r\n <a");
WriteLiteral(" href=\"http://www.opensource.org/licenses/mit-license.php\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">MIT</a></span>\r\n </div>\r\n <div>\r\n " +
" <a");
WriteLiteral(" href=\"http://code.google.com/p/jquery-watermark/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">Watermark</a>\r\n - This simple-to-use jQuery plugin adds w" +
"atermark capability to HTML input and textarea\r\n elements" +
". <span");
WriteLiteral(" class=\"licence\"");
WriteLiteral("><a");
WriteLiteral(" href=\"http://www.opensource.org/licenses/mit-license.php\"");
WriteLiteral("\r\n target=\"_blank\"");
WriteLiteral(">MIT</a>/<a");
WriteLiteral(" href=\"http://www.opensource.org/licenses/GPL-2.0\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">GPL2</a></span>\r\n </div>\r\n <div>\r\n " +
" <a");
WriteLiteral(" href=\"http://bassistance.de/jquery-plugins/jquery-plugin-validation/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">\r\n Validation</a> - This jQuery plugin makes simple c" +
"lient-side form validation\r\n trivial, while offering lots" +
" of option for customization. <span");
WriteLiteral(" class=\"licence\"");
WriteLiteral(@"><a
href=""http://www.opensource.org/licenses/mit-license.php"" target=""_blank"">MIT</a>/<a
href=""http://www.opensource.org/licenses/GPL-3.0"" target=""_blank"">GPL</a></span>
</div>
</div>
</div>
<div");
WriteLiteral(" class=\"pageMenuArea jQueryUI\"");
WriteLiteral(">\r\n <a");
WriteLiteral(" href=\"http://jqueryui.com/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">jQuery UI</a><span");
WriteLiteral(" class=\"licence\"");
WriteLiteral("><a\r\n href=\"http://www.opensource.org/licenses/mit-license.php" +
"\" target=\"_blank\">MIT</a>/<a\r\n href=\"http://www.opensourc" +
"e.org/licenses/GPL-2.0\" target=\"_blank\">GPL2</a></span>\r\n <div");
WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(">\r\n jQuery UI is used extensively by this web application to p" +
"rovide in-browser user\r\n interface widgets such as dialogs, d" +
"ate pickers and auto-complete drop-down menus.\r\n </div>\r\n " +
" <div");
WriteLiteral(" class=\"pageMenuAreaSub\"");
WriteLiteral(">\r\n <h3>\r\n Plugins:</h3>\r\n " +
" <div>\r\n <a");
WriteLiteral(" href=\"http://code.google.com/p/dynatree/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">Dynatree</a> - Dynatree\r\n is a jQuery plugin that allows " +
"the creation of dynamic html tree view controls using\r\n J" +
"avaScript. <span");
WriteLiteral(" class=\"licence\"");
WriteLiteral("><a");
WriteLiteral(" href=\"http://www.opensource.org/licenses/mit-license.php\"");
WriteLiteral("\r\n target=\"_blank\"");
WriteLiteral(">MIT</a></span>\r\n </div>\r\n <div>\r\n " +
" <a");
WriteLiteral(" href=\"http://isotope.metafizzy.co/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">Isotope</a> - Isotope is\r\n a jQuery plugin which provides" +
" dynamic layout and transition functionality. <span\r\n " +
" class=\"licence\"><a");
WriteLiteral(" href=\"http://isotope.metafizzy.co/docs/license.html\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">\r\n non-commercial</a></span>\r\n " +
" </div>\r\n <div>\r\n <a");
WriteLiteral(" href=\"http://code.google.com/p/jquery-timepicker/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">TimePicker</a>\r\n - jQuery plugin that replaces a single t" +
"ext input with a set of pulldown menus to\r\n select hour, " +
"minute, and am/pm. <span");
WriteLiteral(" class=\"licence\"");
WriteLiteral("><a");
WriteLiteral(" href=\"http://www.opensource.org/licenses/mit-license.php\"");
WriteLiteral("\r\n target=\"_blank\"");
WriteLiteral(">MIT</a></span>\r\n </div>\r\n </div>\r\n " +
"</div>\r\n <div");
WriteLiteral(" class=\"pageMenuArea Modernizr\"");
WriteLiteral(">\r\n <a");
WriteLiteral(" href=\"http://modernizr.com/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">Modernizr</a><span");
WriteLiteral(" class=\"licence\"");
WriteLiteral("><a\r\n href=\"http://www.opensource.org/licenses/mit-license.php" +
"\" target=\"_blank\">MIT</a>/<a\r\n href=\"http://modernizr.com" +
"/license/\" target=\"_blank\">BSD-Style</a></span>\r\n <div");
WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(">\r\n Modernizr is an open-source JavaScript library that helps " +
"you build the next generation\r\n of HTML5 and CSS3-powered web" +
"sites.\r\n </div>\r\n </div>\r\n <div");
WriteLiteral(" class=\"pageMenuArea knockoutjs\"");
WriteLiteral(">\r\n <a");
WriteLiteral(" href=\"http://knockoutjs.com/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">Knockout.js</a><span");
WriteLiteral(" class=\"licence\"");
WriteLiteral("><a\r\n href=\"http://www.opensource.org/licenses/mit-license.php" +
"\" target=\"_blank\">MIT</a></span>\r\n <div");
WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(@">
Knockout.js is used by this web application to provider Model-View-Controller (MVC)
patterns to the client browser. It enables advanced dynamic layouts such as the
real-time enrolment or document import status.
</div>
</div>
<div");
WriteLiteral(" class=\"pageMenuArea HighchartsJS\"");
WriteLiteral(">\r\n <a");
WriteLiteral(" href=\"http://www.highcharts.com/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">Highcharts JS</a><span");
WriteLiteral(" class=\"licence\"");
WriteLiteral("><a\r\n href=\"http://creativecommons.org/licenses/by-nc/3.0/\" ta" +
"rget=\"_blank\">CC 3.0 Attrib-NonCommercial</a></span>\r\n <div");
WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(">\r\n Highcharts JS is used by this web application to display i" +
"n-browser dynamic charts.\r\n </div>\r\n </div>\r\n " +
" <div");
WriteLiteral(" class=\"pageMenuArea TinyMCE\"");
WriteLiteral(">\r\n <a");
WriteLiteral(" href=\"http://www.tinymce.com/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">TinyMCE</a><span");
WriteLiteral(" class=\"licence\"");
WriteLiteral("><a\r\n href=\"http://opensource.org/licenses/LGPL-2.1\" target=\"_" +
"blank\">LGPLv2.1</a></span>\r\n <div");
WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(@">
TinyMCE is a platform independent web based JavaScript HTML WYSIWYG editor control.
TinyMCE has the ability to convert HTML TEXTAREA fields or other HTML elements to
editor instances.
</div>
</div>
<div");
WriteLiteral(" class=\"pageMenuArea Shadowboxjs\"");
WriteLiteral(">\r\n <a");
WriteLiteral(" href=\"http://www.shadowbox-js.com/\"");
WriteLiteral(" target=\"_blank\"");
WriteLiteral(">Shadowbox.js</a><span");
WriteLiteral(" class=\"licence\"");
WriteLiteral("><a\r\n href=\"http://www.shadowbox-js.com/LICENSE\" target=\"_blan" +
"k\">Non-Commercial License\r\n v1.0</a></span>\r\n " +
"<div");
WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(@">
Shadowbox is a web-based media viewer application that supports all of the web's
most popular media publishing formats. Shadowbox can showcase a wide assortment
of media in all major browsers without navigating users away from the linking page.
</div>
</div>
</td>
</tr>
</table>
");
}
}
}
#pragma warning restore 1591
@@ -0,0 +1,29 @@
@{
ViewBag.Title = Html.ToBreadcrumb("Public Reports", null);
}
<table id="pageMenu">
<tr>
<td style="width: 50%">
<div class="pageMenuArea">
<h2>
Technician Held Devices</h2>
@Html.ActionLinkClass("Report", MVC.Public.UserHeldDevices.Index(), "report")
<div class="pageMenuBlurb">
Display users involved in current jobs where the user's device is held by the technicians.
Also displays users which should report to the technicians to collect their device
which is ready to be returned to them.
</div>
@Html.ActionLinkClass("Noticeboard", MVC.Public.UserHeldDevices.Noticeboard(), "noticeboard")
<div class="pageMenuBlurb">
Display a full-screen active noticeboard screen which lists users involved in current
jobs where the user's device is held by the technicians. Also displays users which
should report to the technicians to collect their device which is ready to be returned
to them.
</div>
</div>
</td>
<td style="width: 50%">
&nbsp;
</td>
</tr>
</table>
@@ -0,0 +1,115 @@
#pragma warning disable 1591
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.17929
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Disco.Web.Areas.Public.Views.Public
{
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.BI.Extensions;
using Disco.Models.Repository;
using Disco.Web;
using Disco.Web.Extensions;
[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")]
[System.Web.WebPages.PageVirtualPathAttribute("~/Areas/Public/Views/Public/Index.cshtml")]
public class Index : System.Web.Mvc.WebViewPage<dynamic>
{
public Index()
{
}
public override void Execute()
{
#line 1 "..\..\Areas\Public\Views\Public\Index.cshtml"
ViewBag.Title = Html.ToBreadcrumb("Public Reports", null);
#line default
#line hidden
WriteLiteral("\r\n<table");
WriteLiteral(" id=\"pageMenu\"");
WriteLiteral(">\r\n <tr>\r\n <td");
WriteLiteral(" style=\"width: 50%\"");
WriteLiteral(">\r\n <div");
WriteLiteral(" class=\"pageMenuArea\"");
WriteLiteral(">\r\n <h2>\r\n Technician Held Devices</h2>\r\n");
WriteLiteral(" ");
#line 10 "..\..\Areas\Public\Views\Public\Index.cshtml"
Write(Html.ActionLinkClass("Report", MVC.Public.UserHeldDevices.Index(), "report"));
#line default
#line hidden
WriteLiteral("\r\n <div");
WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(@">
Display users involved in current jobs where the user's device is held by the technicians.
Also displays users which should report to the technicians to collect their device
which is ready to be returned to them.
</div>
");
WriteLiteral(" ");
#line 16 "..\..\Areas\Public\Views\Public\Index.cshtml"
Write(Html.ActionLinkClass("Noticeboard", MVC.Public.UserHeldDevices.Noticeboard(), "noticeboard"));
#line default
#line hidden
WriteLiteral("\r\n <div");
WriteLiteral(" class=\"pageMenuBlurb\"");
WriteLiteral(@">
Display a full-screen active noticeboard screen which lists users involved in current
jobs where the user's device is held by the technicians. Also displays users which
should report to the technicians to collect their device which is ready to be returned
to them.
</div>
</div>
</td>
<td");
WriteLiteral(" style=\"width: 50%\"");
WriteLiteral(">\r\n &nbsp;\r\n </td>\r\n </tr>\r\n</table>\r\n");
}
}
}
#pragma warning restore 1591
@@ -0,0 +1,542 @@
@{
ViewBag.Title = "Licence";
}
<div id="licence">
<h3 style="text-align: center;">
GNU AFFERO GENERAL PUBLIC LICENSE</h3>
<p style="text-align: center;">
Version 3, 19 November 2007</p>
<p>
Copyright &copy; 2007 Free Software Foundation, Inc. &lt;<a href="http://fsf.org/">http://fsf.org/</a>&gt;
<br />
Everyone is permitted to copy and distribute verbatim copies of this license document,
but changing it is not allowed.</p>
<h3>
<a name="preamble"></a>Preamble</h3>
<p>
The GNU Affero General Public License is a free, copyleft license for software and
other kinds of works, specifically designed to ensure cooperation with the community
in the case of network server software.</p>
<p>
The licenses for most software and other practical works are designed to take away
your freedom to share and change the works. By contrast, our General Public Licenses
are intended to guarantee your freedom to share and change all versions of a program--to
make sure it remains free software for all its users.</p>
<p>
When we speak of free software, we are referring to freedom, not price. Our General
Public Licenses are designed to make sure that you have the freedom to distribute
copies of free software (and charge for them if you wish), that you receive source
code or can get it if you want it, that you can change the software or use pieces
of it in new free programs, and that you know you can do these things.</p>
<p>
Developers that use our General Public Licenses protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License which gives
you legal permission to copy, distribute and/or modify the software.</p>
<p>
A secondary benefit of defending all users' freedom is that improvements made in
alternate versions of the program, if they receive widespread use, become available
for other developers to incorporate. Many developers of free software are heartened
and encouraged by the resulting cooperation. However, in the case of software used
on network servers, this result may fail to come about. The GNU General Public License
permits making a modified version and letting the public access it on a server without
ever releasing its source code to the public.</p>
<p>
The GNU Affero General Public License is designed specifically to ensure that, in
such cases, the modified source code becomes available to the community. It requires
the operator of a network server to provide the source code of the modified version
running there to the users of that server. Therefore, public use of a modified version,
on a publicly accessible server, gives the public access to the source code of the
modified version.</p>
<p>
An older license, called the Affero General Public License and published by Affero,
was designed to accomplish similar goals. This is a different license, not a version
of the Affero GPL, but Affero has released a new version of the Affero GPL which
permits relicensing under this license.</p>
<p>
The precise terms and conditions for copying, distribution and modification follow.</p>
<h3>
<a name="terms"></a>TERMS AND CONDITIONS</h3>
<h4>
<a name="section0"></a>0. Definitions.</h4>
<p>
&quot;This License&quot; refers to version 3 of the GNU Affero General Public License.</p>
<p>
&quot;Copyright&quot; also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.</p>
<p>
&quot;The Program&quot; refers to any copyrightable work licensed under this License.
Each licensee is addressed as &quot;you&quot;. &quot;Licensees&quot; and &quot;recipients&quot;
may be individuals or organizations.</p>
<p>
To &quot;modify&quot; a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an exact copy.
The resulting work is called a &quot;modified version&quot; of the earlier work
or a work &quot;based on&quot; the earlier work.</p>
<p>
A &quot;covered work&quot; means either the unmodified Program or a work based on
the Program.</p>
<p>
To &quot;propagate&quot; a work means to do anything with it that, without permission,
would make you directly or secondarily liable for infringement under applicable
copyright law, except executing it on a computer or modifying a private copy. Propagation
includes copying, distribution (with or without modification), making available
to the public, and in some countries other activities as well.</p>
<p>
To &quot;convey&quot; a work means any kind of propagation that enables other parties
to make or receive copies. Mere interaction with a user through a computer network,
with no transfer of a copy, is not conveying.</p>
<p>
An interactive user interface displays &quot;Appropriate Legal Notices&quot; to
the extent that it includes a convenient and prominently visible feature that (1)
displays an appropriate copyright notice, and (2) tells the user that there is no
warranty for the work (except to the extent that warranties are provided), that
licensees may convey the work under this License, and how to view a copy of this
License. If the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.</p>
<h4>
<a name="section1"></a>1. Source Code.</h4>
<p>
The &quot;source code&quot; for a work means the preferred form of the work for
making modifications to it. &quot;Object code&quot; means any non-source form of
a work.</p>
<p>
A &quot;Standard Interface&quot; means an interface that either is an official standard
defined by a recognized standards body, or, in the case of interfaces specified
for a particular programming language, one that is widely used among developers
working in that language.</p>
<p>
The &quot;System Libraries&quot; of an executable work include anything, other than
the work as a whole, that (a) is included in the normal form of packaging a Major
Component, but which is not part of that Major Component, and (b) serves only to
enable use of the work with that Major Component, or to implement a Standard Interface
for which an implementation is available to the public in source code form. A &quot;Major
Component&quot;, in this context, means a major essential component (kernel, window
system, and so on) of the specific operating system (if any) on which the executable
work runs, or a compiler used to produce the work, or an object code interpreter
used to run it.</p>
<p>
The &quot;Corresponding Source&quot; for a work in object code form means all the
source code needed to generate, install, and (for an executable work) run the object
code and to modify the work, including scripts to control those activities. However,
it does not include the work's System Libraries, or general-purpose tools or generally
available free programs which are used unmodified in performing those activities
but which are not part of the work. For example, Corresponding Source includes interface
definition files associated with source files for the work, and the source code
for shared libraries and dynamically linked subprograms that the work is specifically
designed to require, such as by intimate data communication or control flow between
those subprograms and other parts of the work.</p>
<p>
The Corresponding Source need not include anything that users can regenerate automatically
from other parts of the Corresponding Source.</p>
<p>
The Corresponding Source for a work in source code form is that same work.</p>
<h4>
<a name="section2"></a>2. Basic Permissions.</h4>
<p>
All rights granted under this License are granted for the term of copyright on the
Program, and are irrevocable provided the stated conditions are met. This License
explicitly affirms your unlimited permission to run the unmodified Program. The
output from running a covered work is covered by this License only if the output,
given its content, constitutes a covered work. This License acknowledges your rights
of fair use or other equivalent, as provided by copyright law.</p>
<p>
You may make, run and propagate covered works that you do not convey, without conditions
so long as your license otherwise remains in force. You may convey covered works
to others for the sole purpose of having them make modifications exclusively for
you, or provide you with facilities for running those works, provided that you comply
with the terms of this License in conveying all material for which you do not control
copyright. Those thus making or running the covered works for you must do so exclusively
on your behalf, under your direction and control, on terms that prohibit them from
making any copies of your copyrighted material outside their relationship with you.</p>
<p>
Conveying under any other circumstances is permitted solely under the conditions
stated below. Sublicensing is not allowed; section 10 makes it unnecessary.</p>
<h4>
<a name="section3"></a>3. Protecting Users' Legal Rights From Anti-Circumvention
Law.</h4>
<p>
No covered work shall be deemed part of an effective technological measure under
any applicable law fulfilling obligations under article 11 of the WIPO copyright
treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention
of such measures.</p>
<p>
When you convey a covered work, you waive any legal power to forbid circumvention
of technological measures to the extent such circumvention is effected by exercising
rights under this License with respect to the covered work, and you disclaim any
intention to limit operation or modification of the work as a means of enforcing,
against the work's users, your or third parties' legal rights to forbid circumvention
of technological measures.</p>
<h4>
<a name="section4"></a>4. Conveying Verbatim Copies.</h4>
<p>
You may convey verbatim copies of the Program's source code as you receive it, in
any medium, provided that you conspicuously and appropriately publish on each copy
an appropriate copyright notice; keep intact all notices stating that this License
and any non-permissive terms added in accord with section 7 apply to the code; keep
intact all notices of the absence of any warranty; and give all recipients a copy
of this License along with the Program.</p>
<p>
You may charge any price or no price for each copy that you convey, and you may
offer support or warranty protection for a fee.</p>
<h4>
<a name="section5"></a>5. Conveying Modified Source Versions.</h4>
<p>
You may convey a work based on the Program, or the modifications to produce it from
the Program, in the form of source code under the terms of section 4, provided that
you also meet all of these conditions:</p>
<ul>
<li>a) The work must carry prominent notices stating that you modified it, and giving
a relevant date.</li>
<li>b) The work must carry prominent notices stating that it is released under this
License and any conditions added under section 7. This requirement modifies the
requirement in section 4 to &quot;keep intact all notices&quot;.</li>
<li>c) You must license the entire work, as a whole, under this License to anyone who
comes into possession of a copy. This License will therefore apply, along with any
applicable section 7 additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no permission to license
the work in any other way, but it does not invalidate such permission if you have
separately received it.</li>
<li>d) If the work has interactive user interfaces, each must display Appropriate Legal
Notices; however, if the Program has interactive interfaces that do not display
Appropriate Legal Notices, your work need not make them do so.</li>
</ul>
<p>
A compilation of a covered work with other separate and independent works, which
are not by their nature extensions of the covered work, and which are not combined
with it such as to form a larger program, in or on a volume of a storage or distribution
medium, is called an &quot;aggregate&quot; if the compilation and its resulting
copyright are not used to limit the access or legal rights of the compilation's
users beyond what the individual works permit. Inclusion of a covered work in an
aggregate does not cause this License to apply to the other parts of the aggregate.</p>
<h4>
<a name="section6"></a>6. Conveying Non-Source Forms.</h4>
<p>
You may convey a covered work in object code form under the terms of sections 4
and 5, provided that you also convey the machine-readable Corresponding Source under
the terms of this License, in one of these ways:</p>
<ul>
<li>a) Convey the object code in, or embodied in, a physical product (including a physical
distribution medium), accompanied by the Corresponding Source fixed on a durable
physical medium customarily used for software interchange.</li>
<li>b) Convey the object code in, or embodied in, a physical product (including a physical
distribution medium), accompanied by a written offer, valid for at least three years
and valid for as long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a copy of the Corresponding
Source for all the software in the product that is covered by this License, on a
durable physical medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this conveying of source,
or (2) access to copy the Corresponding Source from a network server at no charge.</li>
<li>c) Convey individual copies of the object code with a copy of the written offer
to provide the Corresponding Source. This alternative is allowed only occasionally
and noncommercially, and only if you received the object code with such an offer,
in accord with subsection 6b.</li>
<li>d) Convey the object code by offering access from a designated place (gratis or
for a charge), and offer equivalent access to the Corresponding Source in the same
way through the same place at no further charge. You need not require recipients
to copy the Corresponding Source along with the object code. If the place to copy
the object code is a network server, the Corresponding Source may be on a different
server (operated by you or a third party) that supports equivalent copying facilities,
provided you maintain clear directions next to the object code saying where to find
the Corresponding Source. Regardless of what server hosts the Corresponding Source,
you remain obligated to ensure that it is available for as long as needed to satisfy
these requirements.</li>
<li>e) Convey the object code using peer-to-peer transmission, provided you inform other
peers where the object code and Corresponding Source of the work are being offered
to the general public at no charge under subsection 6d.</li>
</ul>
<p>
A separable portion of the object code, whose source code is excluded from the Corresponding
Source as a System Library, need not be included in conveying the object code work.</p>
<p>
A &quot;User Product&quot; is either (1) a &quot;consumer product&quot;, which means
any tangible personal property which is normally used for personal, family, or household
purposes, or (2) anything designed or sold for incorporation into a dwelling. In
determining whether a product is a consumer product, doubtful cases shall be resolved
in favor of coverage. For a particular product received by a particular user, &quot;normally
used&quot; refers to a typical or common use of that class of product, regardless
of the status of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product is a consumer
product regardless of whether the product has substantial commercial, industrial
or non-consumer uses, unless such uses represent the only significant mode of use
of the product.</p>
<p>
&quot;Installation Information&quot; for a User Product means any methods, procedures,
authorization keys, or other information required to install and execute modified
versions of a covered work in that User Product from a modified version of its Corresponding
Source. The information must suffice to ensure that the continued functioning of
the modified object code is in no case prevented or interfered with solely because
modification has been made.</p>
<p>
If you convey an object code work under this section in, or with, or specifically
for use in, a User Product, and the conveying occurs as part of a transaction in
which the right of possession and use of the User Product is transferred to the
recipient in perpetuity or for a fixed term (regardless of how the transaction is
characterized), the Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply if neither
you nor any third party retains the ability to install modified object code on the
User Product (for example, the work has been installed in ROM).</p>
<p>
The requirement to provide Installation Information does not include a requirement
to continue to provide support service, warranty, or updates for a work that has
been modified or installed by the recipient, or for the User Product in which it
has been modified or installed. Access to a network may be denied when the modification
itself materially and adversely affects the operation of the network or violates
the rules and protocols for communication across the network.</p>
<p>
Corresponding Source conveyed, and Installation Information provided, in accord
with this section must be in a format that is publicly documented (and with an implementation
available to the public in source code form), and must require no special password
or key for unpacking, reading or copying.</p>
<h4>
<a name="section7"></a>7. Additional Terms.</h4>
<p>
&quot;Additional permissions&quot; are terms that supplement the terms of this License
by making exceptions from one or more of its conditions. Additional permissions
that are applicable to the entire Program shall be treated as though they were included
in this License, to the extent that they are valid under applicable law. If additional
permissions apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by this License
without regard to the additional permissions.</p>
<p>
When you convey a copy of a covered work, you may at your option remove any additional
permissions from that copy, or from any part of it. (Additional permissions may
be written to require their own removal in certain cases when you modify the work.)
You may place additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.</p>
<p>
Notwithstanding any other provision of this License, for material you add to a covered
work, you may (if authorized by the copyright holders of that material) supplement
the terms of this License with terms:</p>
<ul>
<li>a) Disclaiming warranty or limiting liability differently from the terms of sections
15 and 16 of this License; or</li>
<li>b) Requiring preservation of specified reasonable legal notices or author attributions
in that material or in the Appropriate Legal Notices displayed by works containing
it; or</li>
<li>c) Prohibiting misrepresentation of the origin of that material, or requiring that
modified versions of such material be marked in reasonable ways as different from
the original version; or</li>
<li>d) Limiting the use for publicity purposes of names of licensors or authors of the
material; or</li>
<li>e) Declining to grant rights under trademark law for use of some trade names, trademarks,
or service marks; or</li>
<li>f) Requiring indemnification of licensors and authors of that material by anyone
who conveys the material (or modified versions of it) with contractual assumptions
of liability to the recipient, for any liability that these contractual assumptions
directly impose on those licensors and authors.</li>
</ul>
<p>
All other non-permissive additional terms are considered &quot;further restrictions&quot;
within the meaning of section 10. If the Program as you received it, or any part
of it, contains a notice stating that it is governed by this License along with
a term that is a further restriction, you may remove that term. If a license document
contains a further restriction but permits relicensing or conveying under this License,
you may add to a covered work material governed by the terms of that license document,
provided that the further restriction does not survive such relicensing or conveying.</p>
<p>
If you add terms to a covered work in accord with this section, you must place,
in the relevant source files, a statement of the additional terms that apply to
those files, or a notice indicating where to find the applicable terms.</p>
<p>
Additional terms, permissive or non-permissive, may be stated in the form of a separately
written license, or stated as exceptions; the above requirements apply either way.</p>
<h4>
<a name="section8"></a>8. Termination.</h4>
<p>
You may not propagate or modify a covered work except as expressly provided under
this License. Any attempt otherwise to propagate or modify it is void, and will
automatically terminate your rights under this License (including any patent licenses
granted under the third paragraph of section 11).</p>
<p>
However, if you cease all violation of this License, then your license from a particular
copyright holder is reinstated (a) provisionally, unless and until the copyright
holder explicitly and finally terminates your license, and (b) permanently, if the
copyright holder fails to notify you of the violation by some reasonable means prior
to 60 days after the cessation.</p>
<p>
Moreover, your license from a particular copyright holder is reinstated permanently
if the copyright holder notifies you of the violation by some reasonable means,
this is the first time you have received notice of violation of this License (for
any work) from that copyright holder, and you cure the violation prior to 30 days
after your receipt of the notice.</p>
<p>
Termination of your rights under this section does not terminate the licenses of
parties who have received copies or rights from you under this License. If your
rights have been terminated and not permanently reinstated, you do not qualify to
receive new licenses for the same material under section 10.</p>
<h4>
<a name="section9"></a>9. Acceptance Not Required for Having Copies.</h4>
<p>
You are not required to accept this License in order to receive or run a copy of
the Program. Ancillary propagation of a covered work occurring solely as a consequence
of using peer-to-peer transmission to receive a copy likewise does not require acceptance.
However, nothing other than this License grants you permission to propagate or modify
any covered work. These actions infringe copyright if you do not accept this License.
Therefore, by modifying or propagating a covered work, you indicate your acceptance
of this License to do so.</p>
<h4>
<a name="section10"></a>10. Automatic Licensing of Downstream Recipients.</h4>
<p>
Each time you convey a covered work, the recipient automatically receives a license
from the original licensors, to run, modify and propagate that work, subject to
this License. You are not responsible for enforcing compliance by third parties
with this License.</p>
<p>
An &quot;entity transaction&quot; is a transaction transferring control of an organization,
or substantially all assets of one, or subdividing an organization, or merging organizations.
If propagation of a covered work results from an entity transaction, each party
to that transaction who receives a copy of the work also receives whatever licenses
to the work the party's predecessor in interest had or could give under the previous
paragraph, plus a right to possession of the Corresponding Source of the work from
the predecessor in interest, if the predecessor has it or can get it with reasonable
efforts.</p>
<p>
You may not impose any further restrictions on the exercise of the rights granted
or affirmed under this License. For example, you may not impose a license fee, royalty,
or other charge for exercise of rights granted under this License, and you may not
initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging
that any patent claim is infringed by making, using, selling, offering for sale,
or importing the Program or any portion of it.</p>
<h4>
<a name="section11"></a>11. Patents.</h4>
<p>
A &quot;contributor&quot; is a copyright holder who authorizes use under this License
of the Program or a work on which the Program is based. The work thus licensed is
called the contributor's &quot;contributor version&quot;.</p>
<p>
A contributor's &quot;essential patent claims&quot; are all patent claims owned
or controlled by the contributor, whether already acquired or hereafter acquired,
that would be infringed by some manner, permitted by this License, of making, using,
or selling its contributor version, but do not include claims that would be infringed
only as a consequence of further modification of the contributor version. For purposes
of this definition, &quot;control&quot; includes the right to grant patent sublicenses
in a manner consistent with the requirements of this License.</p>
<p>
Each contributor grants you a non-exclusive, worldwide, royalty-free patent license
under the contributor's essential patent claims, to make, use, sell, offer for sale,
import and otherwise run, modify and propagate the contents of its contributor version.</p>
<p>
In the following three paragraphs, a &quot;patent license&quot; is any express agreement
or commitment, however denominated, not to enforce a patent (such as an express
permission to practice a patent or covenant not to sue for patent infringement).
To &quot;grant&quot; such a patent license to a party means to make such an agreement
or commitment not to enforce a patent against the party.</p>
<p>
If you convey a covered work, knowingly relying on a patent license, and the Corresponding
Source of the work is not available for anyone to copy, free of charge and under
the terms of this License, through a publicly available network server or other
readily accessible means, then you must either (1) cause the Corresponding Source
to be so available, or (2) arrange to deprive yourself of the benefit of the patent
license for this particular work, or (3) arrange, in a manner consistent with the
requirements of this License, to extend the patent license to downstream recipients.
&quot;Knowingly relying&quot; means you have actual knowledge that, but for the
patent license, your conveying the covered work in a country, or your recipient's
use of the covered work in a country, would infringe one or more identifiable patents
in that country that you have reason to believe are valid.</p>
<p>
If, pursuant to or in connection with a single transaction or arrangement, you convey,
or propagate by procuring conveyance of, a covered work, and grant a patent license
to some of the parties receiving the covered work authorizing them to use, propagate,
modify or convey a specific copy of the covered work, then the patent license you
grant is automatically extended to all recipients of the covered work and works
based on it.</p>
<p>
A patent license is &quot;discriminatory&quot; if it does not include within the
scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise
of one or more of the rights that are specifically granted under this License. You
may not convey a covered work if you are a party to an arrangement with a third
party that is in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying the work, and
under which the third party grants, to any of the parties who would receive the
covered work from you, a discriminatory patent license (a) in connection with copies
of the covered work conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that contain the covered
work, unless you entered into that arrangement, or that patent license was granted,
prior to 28 March 2007.</p>
<p>
Nothing in this License shall be construed as excluding or limiting any implied
license or other defenses to infringement that may otherwise be available to you
under applicable patent law.</p>
<h4>
<a name="section12"></a>12. No Surrender of Others' Freedom.</h4>
<p>
If conditions are imposed on you (whether by court order, agreement or otherwise)
that contradict the conditions of this License, they do not excuse you from the
conditions of this License. If you cannot convey a covered work so as to satisfy
simultaneously your obligations under this License and any other pertinent obligations,
then as a consequence you may not convey it at all. For example, if you agree to
terms that obligate you to collect a royalty for further conveying from those to
whom you convey the Program, the only way you could satisfy both those terms and
this License would be to refrain entirely from conveying the Program.</p>
<h4>
<a name="section13"></a>13. Remote Network Interaction; Use with the GNU General
Public License.</h4>
<p>
Notwithstanding any other provision of this License, if you modify the Program,
your modified version must prominently offer all users interacting with it remotely
through a computer network (if your version supports such interaction) an opportunity
to receive the Corresponding Source of your version by providing access to the Corresponding
Source from a network server at no charge, through some standard or customary means
of facilitating copying of software. This Corresponding Source shall include the
Corresponding Source for any work covered by version 3 of the GNU General Public
License that is incorporated pursuant to the following paragraph.</p>
<p>
Notwithstanding any other provision of this License, you have permission to link
or combine any covered work with a work licensed under version 3 of the GNU General
Public License into a single combined work, and to convey the resulting work. The
terms of this License will continue to apply to the part which is the covered work,
but the work with which it is combined will remain governed by version 3 of the
GNU General Public License.</p>
<h4>
<a name="section14"></a>14. Revised Versions of this License.</h4>
<p>
The Free Software Foundation may publish revised and/or new versions of the GNU
Affero General Public License from time to time. Such new versions will be similar
in spirit to the present version, but may differ in detail to address new problems
or concerns.</p>
<p>
Each version is given a distinguishing version number. If the Program specifies
that a certain numbered version of the GNU Affero General Public License &quot;or
any later version&quot; applies to it, you have the option of following the terms
and conditions either of that numbered version or of any later version published
by the Free Software Foundation. If the Program does not specify a version number
of the GNU Affero General Public License, you may choose any version ever published
by the Free Software Foundation.</p>
<p>
If the Program specifies that a proxy can decide which future versions of the GNU
Affero General Public License can be used, that proxy's public statement of acceptance
of a version permanently authorizes you to choose that version for the Program.</p>
<p>
Later license versions may give you additional or different permissions. However,
no additional obligations are imposed on any author or copyright holder as a result
of your choosing to follow a later version.</p>
<h4>
<a name="section15"></a>15. Disclaimer of Warranty.</h4>
<p>
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM &quot;AS IS&quot; WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE
OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST
OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.</p>
<h4>
<a name="section16"></a>16. Limitation of Liability.</h4>
<p>
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT
HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED
ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL
OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM
(INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR
LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE
WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF
THE POSSIBILITY OF SUCH DAMAGES.</p>
<h4>
<a name="section17"></a>17. Interpretation of Sections 15 and 16.</h4>
<p>
If the disclaimer of warranty and limitation of liability provided above cannot
be given local legal effect according to their terms, reviewing courts shall apply
local law that most closely approximates an absolute waiver of all civil liability
in connection with the Program, unless a warranty or assumption of liability accompanies
a copy of the Program in return for a fee.</p>
</div>
@@ -0,0 +1,622 @@
#pragma warning disable 1591
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.17929
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Disco.Web.Areas.Public.Views.Public
{
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.BI.Extensions;
using Disco.Models.Repository;
using Disco.Web;
using Disco.Web.Extensions;
[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")]
[System.Web.WebPages.PageVirtualPathAttribute("~/Areas/Public/Views/Public/Licence.cshtml")]
public class Licence : System.Web.Mvc.WebViewPage<dynamic>
{
public Licence()
{
}
public override void Execute()
{
#line 1 "..\..\Areas\Public\Views\Public\Licence.cshtml"
ViewBag.Title = "Licence";
#line default
#line hidden
WriteLiteral("\r\n<div");
WriteLiteral(" id=\"licence\"");
WriteLiteral(">\r\n<h3");
WriteLiteral(" style=\"text-align: center;\"");
WriteLiteral(">\r\n GNU AFFERO GENERAL PUBLIC LICENSE</h3>\r\n<p");
WriteLiteral(" style=\"text-align: center;\"");
WriteLiteral(">\r\n Version 3, 19 November 2007</p>\r\n<p>\r\n Copyright &copy; 2007 Free Softw" +
"are Foundation, Inc. &lt;<a");
WriteLiteral(" href=\"http://fsf.org/\"");
WriteLiteral(">http://fsf.org/</a>&gt;\r\n <br />\r\n Everyone is permitted to copy and distr" +
"ibute verbatim copies of this license document,\r\n but changing it is not allo" +
"wed.</p>\r\n<h3>\r\n <a");
WriteLiteral(" name=\"preamble\"");
WriteLiteral("></a>Preamble</h3>\r\n<p>\r\n The GNU Affero General Public License is a free, cop" +
"yleft license for software and\r\n other kinds of works, specifically designed " +
"to ensure cooperation with the community\r\n in the case of network server soft" +
"ware.</p>\r\n<p>\r\n The licenses for most software and other practical works are" +
" designed to take away\r\n your freedom to share and change the works. By contr" +
"ast, our General Public Licenses\r\n are intended to guarantee your freedom to " +
"share and change all versions of a program--to\r\n make sure it remains free so" +
"ftware for all its users.</p>\r\n<p>\r\n When we speak of free software, we are r" +
"eferring to freedom, not price. Our General\r\n Public Licenses are designed to" +
" make sure that you have the freedom to distribute\r\n copies of free software " +
"(and charge for them if you wish), that you receive source\r\n code or can get " +
"it if you want it, that you can change the software or use pieces\r\n of it in " +
"new free programs, and that you know you can do these things.</p>\r\n<p>\r\n Deve" +
"lopers that use our General Public Licenses protect your rights with two steps:\r" +
"\n (1) assert copyright on the software, and (2) offer you this License which " +
"gives\r\n you legal permission to copy, distribute and/or modify the software.<" +
"/p>\r\n<p>\r\n A secondary benefit of defending all users\' freedom is that improv" +
"ements made in\r\n alternate versions of the program, if they receive widesprea" +
"d use, become available\r\n for other developers to incorporate. Many developer" +
"s of free software are heartened\r\n and encouraged by the resulting cooperatio" +
"n. However, in the case of software used\r\n on network servers, this result ma" +
"y fail to come about. The GNU General Public License\r\n permits making a modif" +
"ied version and letting the public access it on a server without\r\n ever relea" +
"sing its source code to the public.</p>\r\n<p>\r\n The GNU Affero General Public " +
"License is designed specifically to ensure that, in\r\n such cases, the modifie" +
"d source code becomes available to the community. It requires\r\n the operator " +
"of a network server to provide the source code of the modified version\r\n runn" +
"ing there to the users of that server. Therefore, public use of a modified versi" +
"on,\r\n on a publicly accessible server, gives the public access to the source " +
"code of the\r\n modified version.</p>\r\n<p>\r\n An older license, called the Af" +
"fero General Public License and published by Affero,\r\n was designed to accomp" +
"lish similar goals. This is a different license, not a version\r\n of the Affer" +
"o GPL, but Affero has released a new version of the Affero GPL which\r\n permit" +
"s relicensing under this license.</p>\r\n<p>\r\n The precise terms and conditions" +
" for copying, distribution and modification follow.</p>\r\n<h3>\r\n <a");
WriteLiteral(" name=\"terms\"");
WriteLiteral("></a>TERMS AND CONDITIONS</h3>\r\n<h4>\r\n <a");
WriteLiteral(" name=\"section0\"");
WriteLiteral("></a>0. Definitions.</h4>\r\n<p>\r\n &quot;This License&quot; refers to version 3 " +
"of the GNU Affero General Public License.</p>\r\n<p>\r\n &quot;Copyright&quot; al" +
"so means copyright-like laws that apply to other kinds of\r\n works, such as se" +
"miconductor masks.</p>\r\n<p>\r\n &quot;The Program&quot; refers to any copyright" +
"able work licensed under this License.\r\n Each licensee is addressed as &quot;" +
"you&quot;. &quot;Licensees&quot; and &quot;recipients&quot;\r\n may be individu" +
"als or organizations.</p>\r\n<p>\r\n To &quot;modify&quot; a work means to copy f" +
"rom or adapt all or part of the work\r\n in a fashion requiring copyright permi" +
"ssion, other than the making of an exact copy.\r\n The resulting work is called" +
" a &quot;modified version&quot; of the earlier work\r\n or a work &quot;based o" +
"n&quot; the earlier work.</p>\r\n<p>\r\n A &quot;covered work&quot; means either " +
"the unmodified Program or a work based on\r\n the Program.</p>\r\n<p>\r\n To &qu" +
"ot;propagate&quot; a work means to do anything with it that, without permission," +
"\r\n would make you directly or secondarily liable for infringement under appli" +
"cable\r\n copyright law, except executing it on a computer or modifying a priva" +
"te copy. Propagation\r\n includes copying, distribution (with or without modifi" +
"cation), making available\r\n to the public, and in some countries other activi" +
"ties as well.</p>\r\n<p>\r\n To &quot;convey&quot; a work means any kind of propa" +
"gation that enables other parties\r\n to make or receive copies. Mere interacti" +
"on with a user through a computer network,\r\n with no transfer of a copy, is n" +
"ot conveying.</p>\r\n<p>\r\n An interactive user interface displays &quot;Appropr" +
"iate Legal Notices&quot; to\r\n the extent that it includes a convenient and pr" +
"ominently visible feature that (1)\r\n displays an appropriate copyright notice" +
", and (2) tells the user that there is no\r\n warranty for the work (except to " +
"the extent that warranties are provided), that\r\n licensees may convey the wor" +
"k under this License, and how to view a copy of this\r\n License. If the interf" +
"ace presents a list of user commands or options, such as a\r\n menu, a prominen" +
"t item in the list meets this criterion.</p>\r\n<h4>\r\n <a");
WriteLiteral(" name=\"section1\"");
WriteLiteral("></a>1. Source Code.</h4>\r\n<p>\r\n The &quot;source code&quot; for a work means " +
"the preferred form of the work for\r\n making modifications to it. &quot;Object" +
" code&quot; means any non-source form of\r\n a work.</p>\r\n<p>\r\n A &quot;Stan" +
"dard Interface&quot; means an interface that either is an official standard\r\n " +
" defined by a recognized standards body, or, in the case of interfaces specified" +
"\r\n for a particular programming language, one that is widely used among devel" +
"opers\r\n working in that language.</p>\r\n<p>\r\n The &quot;System Libraries&qu" +
"ot; of an executable work include anything, other than\r\n the work as a whole," +
" that (a) is included in the normal form of packaging a Major\r\n Component, bu" +
"t which is not part of that Major Component, and (b) serves only to\r\n enable " +
"use of the work with that Major Component, or to implement a Standard Interface\r" +
"\n for which an implementation is available to the public in source code form." +
" A &quot;Major\r\n Component&quot;, in this context, means a major essential co" +
"mponent (kernel, window\r\n system, and so on) of the specific operating system" +
" (if any) on which the executable\r\n work runs, or a compiler used to produce " +
"the work, or an object code interpreter\r\n used to run it.</p>\r\n<p>\r\n The &" +
"quot;Corresponding Source&quot; for a work in object code form means all the\r\n " +
" source code needed to generate, install, and (for an executable work) run the " +
"object\r\n code and to modify the work, including scripts to control those acti" +
"vities. However,\r\n it does not include the work\'s System Libraries, or genera" +
"l-purpose tools or generally\r\n available free programs which are used unmodif" +
"ied in performing those activities\r\n but which are not part of the work. For " +
"example, Corresponding Source includes interface\r\n definition files associate" +
"d with source files for the work, and the source code\r\n for shared libraries " +
"and dynamically linked subprograms that the work is specifically\r\n designed t" +
"o require, such as by intimate data communication or control flow between\r\n t" +
"hose subprograms and other parts of the work.</p>\r\n<p>\r\n The Corresponding So" +
"urce need not include anything that users can regenerate automatically\r\n from" +
" other parts of the Corresponding Source.</p>\r\n<p>\r\n The Corresponding Source" +
" for a work in source code form is that same work.</p>\r\n<h4>\r\n <a");
WriteLiteral(" name=\"section2\"");
WriteLiteral(@"></a>2. Basic Permissions.</h4>
<p>
All rights granted under this License are granted for the term of copyright on the
Program, and are irrevocable provided the stated conditions are met. This License
explicitly affirms your unlimited permission to run the unmodified Program. The
output from running a covered work is covered by this License only if the output,
given its content, constitutes a covered work. This License acknowledges your rights
of fair use or other equivalent, as provided by copyright law.</p>
<p>
You may make, run and propagate covered works that you do not convey, without conditions
so long as your license otherwise remains in force. You may convey covered works
to others for the sole purpose of having them make modifications exclusively for
you, or provide you with facilities for running those works, provided that you comply
with the terms of this License in conveying all material for which you do not control
copyright. Those thus making or running the covered works for you must do so exclusively
on your behalf, under your direction and control, on terms that prohibit them from
making any copies of your copyrighted material outside their relationship with you.</p>
<p>
Conveying under any other circumstances is permitted solely under the conditions
stated below. Sublicensing is not allowed; section 10 makes it unnecessary.</p>
<h4>
<a");
WriteLiteral(" name=\"section3\"");
WriteLiteral(@"></a>3. Protecting Users' Legal Rights From Anti-Circumvention
Law.</h4>
<p>
No covered work shall be deemed part of an effective technological measure under
any applicable law fulfilling obligations under article 11 of the WIPO copyright
treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention
of such measures.</p>
<p>
When you convey a covered work, you waive any legal power to forbid circumvention
of technological measures to the extent such circumvention is effected by exercising
rights under this License with respect to the covered work, and you disclaim any
intention to limit operation or modification of the work as a means of enforcing,
against the work's users, your or third parties' legal rights to forbid circumvention
of technological measures.</p>
<h4>
<a");
WriteLiteral(" name=\"section4\"");
WriteLiteral(@"></a>4. Conveying Verbatim Copies.</h4>
<p>
You may convey verbatim copies of the Program's source code as you receive it, in
any medium, provided that you conspicuously and appropriately publish on each copy
an appropriate copyright notice; keep intact all notices stating that this License
and any non-permissive terms added in accord with section 7 apply to the code; keep
intact all notices of the absence of any warranty; and give all recipients a copy
of this License along with the Program.</p>
<p>
You may charge any price or no price for each copy that you convey, and you may
offer support or warranty protection for a fee.</p>
<h4>
<a");
WriteLiteral(" name=\"section5\"");
WriteLiteral("></a>5. Conveying Modified Source Versions.</h4>\r\n<p>\r\n You may convey a work " +
"based on the Program, or the modifications to produce it from\r\n the Program, " +
"in the form of source code under the terms of section 4, provided that\r\n you " +
"also meet all of these conditions:</p>\r\n<ul>\r\n <li>a) The work must carry pro" +
"minent notices stating that you modified it, and giving\r\n a relevant date" +
".</li>\r\n <li>b) The work must carry prominent notices stating that it is rele" +
"ased under this\r\n License and any conditions added under section 7. This " +
"requirement modifies the\r\n requirement in section 4 to &quot;keep intact " +
"all notices&quot;.</li>\r\n <li>c) You must license the entire work, as a whole" +
", under this License to anyone who\r\n comes into possession of a copy. Thi" +
"s License will therefore apply, along with any\r\n applicable section 7 add" +
"itional terms, to the whole of the work, and all its parts,\r\n regardless " +
"of how they are packaged. This License gives no permission to license\r\n t" +
"he work in any other way, but it does not invalidate such permission if you have" +
"\r\n separately received it.</li>\r\n <li>d) If the work has interactive u" +
"ser interfaces, each must display Appropriate Legal\r\n Notices; however, i" +
"f the Program has interactive interfaces that do not display\r\n Appropriat" +
"e Legal Notices, your work need not make them do so.</li>\r\n</ul>\r\n<p>\r\n A com" +
"pilation of a covered work with other separate and independent works, which\r\n " +
" are not by their nature extensions of the covered work, and which are not combi" +
"ned\r\n with it such as to form a larger program, in or on a volume of a storag" +
"e or distribution\r\n medium, is called an &quot;aggregate&quot; if the compila" +
"tion and its resulting\r\n copyright are not used to limit the access or legal " +
"rights of the compilation\'s\r\n users beyond what the individual works permit. " +
"Inclusion of a covered work in an\r\n aggregate does not cause this License to " +
"apply to the other parts of the aggregate.</p>\r\n<h4>\r\n <a");
WriteLiteral(" name=\"section6\"");
WriteLiteral("></a>6. Conveying Non-Source Forms.</h4>\r\n<p>\r\n You may convey a covered work " +
"in object code form under the terms of sections 4\r\n and 5, provided that you " +
"also convey the machine-readable Corresponding Source under\r\n the terms of th" +
"is License, in one of these ways:</p>\r\n<ul>\r\n <li>a) Convey the object code i" +
"n, or embodied in, a physical product (including a physical\r\n distributio" +
"n medium), accompanied by the Corresponding Source fixed on a durable\r\n p" +
"hysical medium customarily used for software interchange.</li>\r\n <li>b) Conve" +
"y the object code in, or embodied in, a physical product (including a physical\r\n" +
" distribution medium), accompanied by a written offer, valid for at least" +
" three years\r\n and valid for as long as you offer spare parts or customer" +
" support for that product\r\n model, to give anyone who possesses the objec" +
"t code either (1) a copy of the Corresponding\r\n Source for all the softwa" +
"re in the product that is covered by this License, on a\r\n durable physica" +
"l medium customarily used for software interchange, for a price no\r\n more" +
" than your reasonable cost of physically performing this conveying of source,\r\n " +
" or (2) access to copy the Corresponding Source from a network server at n" +
"o charge.</li>\r\n <li>c) Convey individual copies of the object code with a co" +
"py of the written offer\r\n to provide the Corresponding Source. This alter" +
"native is allowed only occasionally\r\n and noncommercially, and only if yo" +
"u received the object code with such an offer,\r\n in accord with subsectio" +
"n 6b.</li>\r\n <li>d) Convey the object code by offering access from a designat" +
"ed place (gratis or\r\n for a charge), and offer equivalent access to the C" +
"orresponding Source in the same\r\n way through the same place at no furthe" +
"r charge. You need not require recipients\r\n to copy the Corresponding Sou" +
"rce along with the object code. If the place to copy\r\n the object code is" +
" a network server, the Corresponding Source may be on a different\r\n serve" +
"r (operated by you or a third party) that supports equivalent copying facilities" +
",\r\n provided you maintain clear directions next to the object code saying" +
" where to find\r\n the Corresponding Source. Regardless of what server host" +
"s the Corresponding Source,\r\n you remain obligated to ensure that it is a" +
"vailable for as long as needed to satisfy\r\n these requirements.</li>\r\n " +
" <li>e) Convey the object code using peer-to-peer transmission, provided you inf" +
"orm other\r\n peers where the object code and Corresponding Source of the w" +
"ork are being offered\r\n to the general public at no charge under subsecti" +
"on 6d.</li>\r\n</ul>\r\n<p>\r\n A separable portion of the object code, whose sourc" +
"e code is excluded from the Corresponding\r\n Source as a System Library, need " +
"not be included in conveying the object code work.</p>\r\n<p>\r\n A &quot;User Pr" +
"oduct&quot; is either (1) a &quot;consumer product&quot;, which means\r\n any t" +
"angible personal property which is normally used for personal, family, or househ" +
"old\r\n purposes, or (2) anything designed or sold for incorporation into a dwe" +
"lling. In\r\n determining whether a product is a consumer product, doubtful cas" +
"es shall be resolved\r\n in favor of coverage. For a particular product receive" +
"d by a particular user, &quot;normally\r\n used&quot; refers to a typical or co" +
"mmon use of that class of product, regardless\r\n of the status of the particul" +
"ar user or of the way in which the particular user\r\n actually uses, or expect" +
"s or is expected to use, the product. A product is a consumer\r\n product regar" +
"dless of whether the product has substantial commercial, industrial\r\n or non-" +
"consumer uses, unless such uses represent the only significant mode of use\r\n " +
"of the product.</p>\r\n<p>\r\n &quot;Installation Information&quot; for a User Pr" +
"oduct means any methods, procedures,\r\n authorization keys, or other informati" +
"on required to install and execute modified\r\n versions of a covered work in t" +
"hat User Product from a modified version of its Corresponding\r\n Source. The i" +
"nformation must suffice to ensure that the continued functioning of\r\n the mod" +
"ified object code is in no case prevented or interfered with solely because\r\n " +
" modification has been made.</p>\r\n<p>\r\n If you convey an object code work und" +
"er this section in, or with, or specifically\r\n for use in, a User Product, an" +
"d the conveying occurs as part of a transaction in\r\n which the right of posse" +
"ssion and use of the User Product is transferred to the\r\n recipient in perpet" +
"uity or for a fixed term (regardless of how the transaction is\r\n characterize" +
"d), the Corresponding Source conveyed under this section must be accompanied\r\n " +
" by the Installation Information. But this requirement does not apply if neithe" +
"r\r\n you nor any third party retains the ability to install modified object co" +
"de on the\r\n User Product (for example, the work has been installed in ROM).</" +
"p>\r\n<p>\r\n The requirement to provide Installation Information does not includ" +
"e a requirement\r\n to continue to provide support service, warranty, or update" +
"s for a work that has\r\n been modified or installed by the recipient, or for t" +
"he User Product in which it\r\n has been modified or installed. Access to a net" +
"work may be denied when the modification\r\n itself materially and adversely af" +
"fects the operation of the network or violates\r\n the rules and protocols for " +
"communication across the network.</p>\r\n<p>\r\n Corresponding Source conveyed, a" +
"nd Installation Information provided, in accord\r\n with this section must be i" +
"n a format that is publicly documented (and with an implementation\r\n availabl" +
"e to the public in source code form), and must require no special password\r\n " +
"or key for unpacking, reading or copying.</p>\r\n<h4>\r\n <a");
WriteLiteral(" name=\"section7\"");
WriteLiteral("></a>7. Additional Terms.</h4>\r\n<p>\r\n &quot;Additional permissions&quot; are t" +
"erms that supplement the terms of this License\r\n by making exceptions from on" +
"e or more of its conditions. Additional permissions\r\n that are applicable to " +
"the entire Program shall be treated as though they were included\r\n in this Li" +
"cense, to the extent that they are valid under applicable law. If additional\r\n " +
" permissions apply only to part of the Program, that part may be used separatel" +
"y\r\n under those permissions, but the entire Program remains governed by this " +
"License\r\n without regard to the additional permissions.</p>\r\n<p>\r\n When yo" +
"u convey a copy of a covered work, you may at your option remove any additional\r" +
"\n permissions from that copy, or from any part of it. (Additional permissions" +
" may\r\n be written to require their own removal in certain cases when you modi" +
"fy the work.)\r\n You may place additional permissions on material, added by yo" +
"u to a covered work,\r\n for which you have or can give appropriate copyright p" +
"ermission.</p>\r\n<p>\r\n Notwithstanding any other provision of this License, fo" +
"r material you add to a covered\r\n work, you may (if authorized by the copyrig" +
"ht holders of that material) supplement\r\n the terms of this License with term" +
"s:</p>\r\n<ul>\r\n <li>a) Disclaiming warranty or limiting liability differently " +
"from the terms of sections\r\n 15 and 16 of this License; or</li>\r\n <li>" +
"b) Requiring preservation of specified reasonable legal notices or author attrib" +
"utions\r\n in that material or in the Appropriate Legal Notices displayed b" +
"y works containing\r\n it; or</li>\r\n <li>c) Prohibiting misrepresentatio" +
"n of the origin of that material, or requiring that\r\n modified versions o" +
"f such material be marked in reasonable ways as different from\r\n the orig" +
"inal version; or</li>\r\n <li>d) Limiting the use for publicity purposes of nam" +
"es of licensors or authors of the\r\n material; or</li>\r\n <li>e) Declini" +
"ng to grant rights under trademark law for use of some trade names, trademarks,\r" +
"\n or service marks; or</li>\r\n <li>f) Requiring indemnification of lice" +
"nsors and authors of that material by anyone\r\n who conveys the material (" +
"or modified versions of it) with contractual assumptions\r\n of liability t" +
"o the recipient, for any liability that these contractual assumptions\r\n d" +
"irectly impose on those licensors and authors.</li>\r\n</ul>\r\n<p>\r\n All other n" +
"on-permissive additional terms are considered &quot;further restrictions&quot;\r\n" +
" within the meaning of section 10. If the Program as you received it, or any " +
"part\r\n of it, contains a notice stating that it is governed by this License a" +
"long with\r\n a term that is a further restriction, you may remove that term. I" +
"f a license document\r\n contains a further restriction but permits relicensing" +
" or conveying under this License,\r\n you may add to a covered work material go" +
"verned by the terms of that license document,\r\n provided that the further res" +
"triction does not survive such relicensing or conveying.</p>\r\n<p>\r\n If you ad" +
"d terms to a covered work in accord with this section, you must place,\r\n in t" +
"he relevant source files, a statement of the additional terms that apply to\r\n " +
" those files, or a notice indicating where to find the applicable terms.</p>\r\n<p" +
">\r\n Additional terms, permissive or non-permissive, may be stated in the form" +
" of a separately\r\n written license, or stated as exceptions; the above requir" +
"ements apply either way.</p>\r\n<h4>\r\n <a");
WriteLiteral(" name=\"section8\"");
WriteLiteral(@"></a>8. Termination.</h4>
<p>
You may not propagate or modify a covered work except as expressly provided under
this License. Any attempt otherwise to propagate or modify it is void, and will
automatically terminate your rights under this License (including any patent licenses
granted under the third paragraph of section 11).</p>
<p>
However, if you cease all violation of this License, then your license from a particular
copyright holder is reinstated (a) provisionally, unless and until the copyright
holder explicitly and finally terminates your license, and (b) permanently, if the
copyright holder fails to notify you of the violation by some reasonable means prior
to 60 days after the cessation.</p>
<p>
Moreover, your license from a particular copyright holder is reinstated permanently
if the copyright holder notifies you of the violation by some reasonable means,
this is the first time you have received notice of violation of this License (for
any work) from that copyright holder, and you cure the violation prior to 30 days
after your receipt of the notice.</p>
<p>
Termination of your rights under this section does not terminate the licenses of
parties who have received copies or rights from you under this License. If your
rights have been terminated and not permanently reinstated, you do not qualify to
receive new licenses for the same material under section 10.</p>
<h4>
<a");
WriteLiteral(" name=\"section9\"");
WriteLiteral(@"></a>9. Acceptance Not Required for Having Copies.</h4>
<p>
You are not required to accept this License in order to receive or run a copy of
the Program. Ancillary propagation of a covered work occurring solely as a consequence
of using peer-to-peer transmission to receive a copy likewise does not require acceptance.
However, nothing other than this License grants you permission to propagate or modify
any covered work. These actions infringe copyright if you do not accept this License.
Therefore, by modifying or propagating a covered work, you indicate your acceptance
of this License to do so.</p>
<h4>
<a");
WriteLiteral(" name=\"section10\"");
WriteLiteral("></a>10. Automatic Licensing of Downstream Recipients.</h4>\r\n<p>\r\n Each time y" +
"ou convey a covered work, the recipient automatically receives a license\r\n fr" +
"om the original licensors, to run, modify and propagate that work, subject to\r\n " +
" this License. You are not responsible for enforcing compliance by third parti" +
"es\r\n with this License.</p>\r\n<p>\r\n An &quot;entity transaction&quot; is a " +
"transaction transferring control of an organization,\r\n or substantially all a" +
"ssets of one, or subdividing an organization, or merging organizations.\r\n If " +
"propagation of a covered work results from an entity transaction, each party\r\n " +
" to that transaction who receives a copy of the work also receives whatever lic" +
"enses\r\n to the work the party\'s predecessor in interest had or could give und" +
"er the previous\r\n paragraph, plus a right to possession of the Corresponding " +
"Source of the work from\r\n the predecessor in interest, if the predecessor has" +
" it or can get it with reasonable\r\n efforts.</p>\r\n<p>\r\n You may not impose" +
" any further restrictions on the exercise of the rights granted\r\n or affirmed" +
" under this License. For example, you may not impose a license fee, royalty,\r\n " +
" or other charge for exercise of rights granted under this License, and you may" +
" not\r\n initiate litigation (including a cross-claim or counterclaim in a laws" +
"uit) alleging\r\n that any patent claim is infringed by making, using, selling," +
" offering for sale,\r\n or importing the Program or any portion of it.</p>\r\n<h4" +
">\r\n <a");
WriteLiteral(" name=\"section11\"");
WriteLiteral("></a>11. Patents.</h4>\r\n<p>\r\n A &quot;contributor&quot; is a copyright holder " +
"who authorizes use under this License\r\n of the Program or a work on which the" +
" Program is based. The work thus licensed is\r\n called the contributor\'s &quot" +
";contributor version&quot;.</p>\r\n<p>\r\n A contributor\'s &quot;essential patent" +
" claims&quot; are all patent claims owned\r\n or controlled by the contributor," +
" whether already acquired or hereafter acquired,\r\n that would be infringed by" +
" some manner, permitted by this License, of making, using,\r\n or selling its c" +
"ontributor version, but do not include claims that would be infringed\r\n only " +
"as a consequence of further modification of the contributor version. For purpose" +
"s\r\n of this definition, &quot;control&quot; includes the right to grant paten" +
"t sublicenses\r\n in a manner consistent with the requirements of this License." +
"</p>\r\n<p>\r\n Each contributor grants you a non-exclusive, worldwide, royalty-f" +
"ree patent license\r\n under the contributor\'s essential patent claims, to make" +
", use, sell, offer for sale,\r\n import and otherwise run, modify and propagate" +
" the contents of its contributor version.</p>\r\n<p>\r\n In the following three p" +
"aragraphs, a &quot;patent license&quot; is any express agreement\r\n or commitm" +
"ent, however denominated, not to enforce a patent (such as an express\r\n permi" +
"ssion to practice a patent or covenant not to sue for patent infringement).\r\n " +
" To &quot;grant&quot; such a patent license to a party means to make such an agr" +
"eement\r\n or commitment not to enforce a patent against the party.</p>\r\n<p>\r\n " +
" If you convey a covered work, knowingly relying on a patent license, and the " +
"Corresponding\r\n Source of the work is not available for anyone to copy, free " +
"of charge and under\r\n the terms of this License, through a publicly available" +
" network server or other\r\n readily accessible means, then you must either (1)" +
" cause the Corresponding Source\r\n to be so available, or (2) arrange to depri" +
"ve yourself of the benefit of the patent\r\n license for this particular work, " +
"or (3) arrange, in a manner consistent with the\r\n requirements of this Licens" +
"e, to extend the patent license to downstream recipients.\r\n &quot;Knowingly r" +
"elying&quot; means you have actual knowledge that, but for the\r\n patent licen" +
"se, your conveying the covered work in a country, or your recipient\'s\r\n use o" +
"f the covered work in a country, would infringe one or more identifiable patents" +
"\r\n in that country that you have reason to believe are valid.</p>\r\n<p>\r\n I" +
"f, pursuant to or in connection with a single transaction or arrangement, you co" +
"nvey,\r\n or propagate by procuring conveyance of, a covered work, and grant a " +
"patent license\r\n to some of the parties receiving the covered work authorizin" +
"g them to use, propagate,\r\n modify or convey a specific copy of the covered w" +
"ork, then the patent license you\r\n grant is automatically extended to all rec" +
"ipients of the covered work and works\r\n based on it.</p>\r\n<p>\r\n A patent l" +
"icense is &quot;discriminatory&quot; if it does not include within the\r\n scop" +
"e of its coverage, prohibits the exercise of, or is conditioned on the non-exerc" +
"ise\r\n of one or more of the rights that are specifically granted under this L" +
"icense. You\r\n may not convey a covered work if you are a party to an arrangem" +
"ent with a third\r\n party that is in the business of distributing software, un" +
"der which you make payment\r\n to the third party based on the extent of your a" +
"ctivity of conveying the work, and\r\n under which the third party grants, to a" +
"ny of the parties who would receive the\r\n covered work from you, a discrimina" +
"tory patent license (a) in connection with copies\r\n of the covered work conve" +
"yed by you (or copies made from those copies), or (b) primarily\r\n for and in " +
"connection with specific products or compilations that contain the covered\r\n " +
"work, unless you entered into that arrangement, or that patent license was grant" +
"ed,\r\n prior to 28 March 2007.</p>\r\n<p>\r\n Nothing in this License shall be " +
"construed as excluding or limiting any implied\r\n license or other defenses to" +
" infringement that may otherwise be available to you\r\n under applicable paten" +
"t law.</p>\r\n<h4>\r\n <a");
WriteLiteral(" name=\"section12\"");
WriteLiteral(@"></a>12. No Surrender of Others' Freedom.</h4>
<p>
If conditions are imposed on you (whether by court order, agreement or otherwise)
that contradict the conditions of this License, they do not excuse you from the
conditions of this License. If you cannot convey a covered work so as to satisfy
simultaneously your obligations under this License and any other pertinent obligations,
then as a consequence you may not convey it at all. For example, if you agree to
terms that obligate you to collect a royalty for further conveying from those to
whom you convey the Program, the only way you could satisfy both those terms and
this License would be to refrain entirely from conveying the Program.</p>
<h4>
<a");
WriteLiteral(" name=\"section13\"");
WriteLiteral(@"></a>13. Remote Network Interaction; Use with the GNU General
Public License.</h4>
<p>
Notwithstanding any other provision of this License, if you modify the Program,
your modified version must prominently offer all users interacting with it remotely
through a computer network (if your version supports such interaction) an opportunity
to receive the Corresponding Source of your version by providing access to the Corresponding
Source from a network server at no charge, through some standard or customary means
of facilitating copying of software. This Corresponding Source shall include the
Corresponding Source for any work covered by version 3 of the GNU General Public
License that is incorporated pursuant to the following paragraph.</p>
<p>
Notwithstanding any other provision of this License, you have permission to link
or combine any covered work with a work licensed under version 3 of the GNU General
Public License into a single combined work, and to convey the resulting work. The
terms of this License will continue to apply to the part which is the covered work,
but the work with which it is combined will remain governed by version 3 of the
GNU General Public License.</p>
<h4>
<a");
WriteLiteral(" name=\"section14\"");
WriteLiteral(@"></a>14. Revised Versions of this License.</h4>
<p>
The Free Software Foundation may publish revised and/or new versions of the GNU
Affero General Public License from time to time. Such new versions will be similar
in spirit to the present version, but may differ in detail to address new problems
or concerns.</p>
<p>
Each version is given a distinguishing version number. If the Program specifies
that a certain numbered version of the GNU Affero General Public License &quot;or
any later version&quot; applies to it, you have the option of following the terms
and conditions either of that numbered version or of any later version published
by the Free Software Foundation. If the Program does not specify a version number
of the GNU Affero General Public License, you may choose any version ever published
by the Free Software Foundation.</p>
<p>
If the Program specifies that a proxy can decide which future versions of the GNU
Affero General Public License can be used, that proxy's public statement of acceptance
of a version permanently authorizes you to choose that version for the Program.</p>
<p>
Later license versions may give you additional or different permissions. However,
no additional obligations are imposed on any author or copyright holder as a result
of your choosing to follow a later version.</p>
<h4>
<a");
WriteLiteral(" name=\"section15\"");
WriteLiteral(@"></a>15. Disclaimer of Warranty.</h4>
<p>
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM &quot;AS IS&quot; WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE
OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST
OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.</p>
<h4>
<a");
WriteLiteral(" name=\"section16\"");
WriteLiteral(@"></a>16. Limitation of Liability.</h4>
<p>
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT
HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED
ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL
OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM
(INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR
LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE
WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF
THE POSSIBILITY OF SUCH DAMAGES.</p>
<h4>
<a");
WriteLiteral(" name=\"section17\"");
WriteLiteral(@"></a>17. Interpretation of Sections 15 and 16.</h4>
<p>
If the disclaimer of warranty and limitation of liability provided above cannot
be given local legal effect according to their terms, reviewing courts shall apply
local law that most closely approximates an absolute waiver of all civil liability
in connection with the Program, unless a warranty or assumption of liability accompanies
a copy of the Program in return for a fee.</p>
</div>");
}
}
}
#pragma warning restore 1591
@@ -0,0 +1,42 @@
@{
Html.BundleDeferred("~/Style/Site");
Html.BundleDeferred("~/ClientScripts/Core");
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Disco - @CommonHelpers.BreadcrumbsTitle(ViewBag.Title)</title>
@Html.BundleRenderDeferred()
@RenderSection("head", false)
</head>
<body class="layout">
<div class="page">
<header>
<div class="clearfix">
<div id="heading">
<a href="@Url.Action(MVC.Public.Public.Index())">
<img src="@Links.ClientSource.Style.Images.Heading_png" alt="DISCO - ICT Asset Management" /></a>
</div>
<div id="headerMenu">
</div>
</div>
<nav>
<ul id="menu">
<li>@Html.ActionLink("Public Reports", MVC.Public.Public.Index())</li>
<li class="sep"></li>
<li style="margin-left: 10px;">@Html.ActionLink("Disco Administration", MVC.Job.Index(), accesskey: "1")</li>
</ul>
</nav>
</header>
<div id="layout_PageHeading">@CommonHelpers.Breadcrumbs(ViewBag.Title)</div>
<section id="layout_Page">
@RenderBody()
</section>
<footer>
Disco v@(Disco.Web.DiscoApplication.Version) @@ @(Disco.Web.DiscoApplication.OrganisationName) | @Html.ActionLink("Credits", MVC.Public.Public.Credits()) | @Html.ActionLink("Licence", MVC.Public.Public.Licence())
</footer>
</div>
</body>
</html>
@@ -0,0 +1,242 @@
#pragma warning disable 1591
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.17929
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Disco.Web.Areas.Public.Views.Shared
{
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.BI.Extensions;
using Disco.Models.Repository;
using Disco.Web;
using Disco.Web.Extensions;
[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")]
[System.Web.WebPages.PageVirtualPathAttribute("~/Areas/Public/Views/Shared/_Layout.cshtml")]
public class Layout : System.Web.Mvc.WebViewPage<dynamic>
{
public Layout()
{
}
public override void Execute()
{
#line 1 "..\..\Areas\Public\Views\Shared\_Layout.cshtml"
Html.BundleDeferred("~/Style/Site");
Html.BundleDeferred("~/ClientScripts/Core");
#line default
#line hidden
WriteLiteral("\r\n<!DOCTYPE html>\r\n<html>\r\n<head>\r\n <meta");
WriteLiteral(" charset=\"utf-8\"");
WriteLiteral(" />\r\n <meta");
WriteLiteral(" http-equiv=\"X-UA-Compatible\"");
WriteLiteral(" content=\"IE=edge\"");
WriteLiteral(" />\r\n <title>Disco - ");
#line 10 "..\..\Areas\Public\Views\Shared\_Layout.cshtml"
Write(CommonHelpers.BreadcrumbsTitle(ViewBag.Title));
#line default
#line hidden
WriteLiteral("</title>\r\n");
WriteLiteral(" ");
#line 11 "..\..\Areas\Public\Views\Shared\_Layout.cshtml"
Write(Html.BundleRenderDeferred());
#line default
#line hidden
WriteLiteral("\r\n");
WriteLiteral(" ");
#line 12 "..\..\Areas\Public\Views\Shared\_Layout.cshtml"
Write(RenderSection("head", false));
#line default
#line hidden
WriteLiteral("\r\n</head>\r\n<body");
WriteLiteral(" class=\"layout\"");
WriteLiteral(">\r\n <div");
WriteLiteral(" class=\"page\"");
WriteLiteral(">\r\n <header>\r\n <div");
WriteLiteral(" class=\"clearfix\"");
WriteLiteral(">\r\n <div");
WriteLiteral(" id=\"heading\"");
WriteLiteral(">\r\n <a");
WriteAttribute("href", Tuple.Create(" href=\"", 535), Tuple.Create("\"", 580)
#line 19 "..\..\Areas\Public\Views\Shared\_Layout.cshtml"
, Tuple.Create(Tuple.Create("", 542), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.Public.Public.Index())
#line default
#line hidden
, 542), false)
);
WriteLiteral(">\r\n <img");
WriteAttribute("src", Tuple.Create(" src=\"", 612), Tuple.Create("\"", 662)
#line 20 "..\..\Areas\Public\Views\Shared\_Layout.cshtml"
, Tuple.Create(Tuple.Create("", 618), Tuple.Create<System.Object, System.Int32>(Links.ClientSource.Style.Images.Heading_png
#line default
#line hidden
, 618), false)
);
WriteLiteral(" alt=\"DISCO - ICT Asset Management\"");
WriteLiteral(" /></a>\r\n </div>\r\n <div");
WriteLiteral(" id=\"headerMenu\"");
WriteLiteral(">\r\n </div>\r\n </div>\r\n <nav>\r\n " +
" <ul");
WriteLiteral(" id=\"menu\"");
WriteLiteral(">\r\n <li>");
#line 27 "..\..\Areas\Public\Views\Shared\_Layout.cshtml"
Write(Html.ActionLink("Public Reports", MVC.Public.Public.Index()));
#line default
#line hidden
WriteLiteral("</li>\r\n <li");
WriteLiteral(" class=\"sep\"");
WriteLiteral("></li>\r\n <li");
WriteLiteral(" style=\"margin-left: 10px;\"");
WriteLiteral(">");
#line 29 "..\..\Areas\Public\Views\Shared\_Layout.cshtml"
Write(Html.ActionLink("Disco Administration", MVC.Job.Index(), accesskey: "1"));
#line default
#line hidden
WriteLiteral("</li>\r\n </ul>\r\n </nav>\r\n </header>\r\n <div" +
"");
WriteLiteral(" id=\"layout_PageHeading\"");
WriteLiteral(">");
#line 33 "..\..\Areas\Public\Views\Shared\_Layout.cshtml"
Write(CommonHelpers.Breadcrumbs(ViewBag.Title));
#line default
#line hidden
WriteLiteral("</div>\r\n <section");
WriteLiteral(" id=\"layout_Page\"");
WriteLiteral(">\r\n");
WriteLiteral(" ");
#line 35 "..\..\Areas\Public\Views\Shared\_Layout.cshtml"
Write(RenderBody());
#line default
#line hidden
WriteLiteral("\r\n </section>\r\n <footer>\r\n Disco v");
#line 38 "..\..\Areas\Public\Views\Shared\_Layout.cshtml"
Write(Disco.Web.DiscoApplication.Version);
#line default
#line hidden
WriteLiteral(" ");
WriteLiteral("@ ");
#line 38 "..\..\Areas\Public\Views\Shared\_Layout.cshtml"
Write(Disco.Web.DiscoApplication.OrganisationName);
#line default
#line hidden
WriteLiteral(" | ");
#line 38 "..\..\Areas\Public\Views\Shared\_Layout.cshtml"
Write(Html.ActionLink("Credits", MVC.Public.Public.Credits()));
#line default
#line hidden
WriteLiteral(" | ");
#line 38 "..\..\Areas\Public\Views\Shared\_Layout.cshtml"
Write(Html.ActionLink("Licence", MVC.Public.Public.Licence()));
#line default
#line hidden
WriteLiteral("\r\n </footer>\r\n </div>\r\n</body>\r\n</html>\r\n");
}
}
}
#pragma warning restore 1591
@@ -0,0 +1,77 @@
@model IEnumerable<Disco.Web.Areas.Public.Models.UserHeldDevices.UserHeldDeviceModel>
@{
ViewBag.Title = Html.ToBreadcrumb("Public Reports", MVC.Public.Public.Index(), "Technician Held Devices", null);
Html.BundleDeferred("~/Style/Public/UserHeldDevices");
}
<div class="clearfix page">
<div class="column1">
@{
var DevicesInProcess = Model.Where(i => !i.ReadyForReturn && !i.WaitingForUserAction).ToArray();
}
<h2>
In Process (@DevicesInProcess.Length)</h2>
<table class="dataTable">
@foreach (var item in DevicesInProcess)
{
<tr>
<td class="userId">
@item.UserId
</td>
<td class="userDisplayName">
@item.UserDisplayName@{
if (!string.IsNullOrEmpty(item.EstimatedReturnTime))
{
<span class="smallMessage">(Expected: @item.EstimatedReturnTime)</span>
}
}
</td>
</tr>
}
</table>
</div>
<div class="column2">
@{
var WaitingForUserActionJobs = Model.Where(i => i.WaitingForUserAction).ToArray();
}
<h2>
Waiting for User Action (@WaitingForUserActionJobs.Length)</h2>
<table class="dataTable">
@foreach (var item in WaitingForUserActionJobs)
{
<tr>
<td class="userId">
@item.UserId
</td>
<td class="userDisplayName">
@item.UserDisplayName
</td>
<td class="timestamp@(item.IsAlert ? " Alert" : string.Empty)">
Since @item.WaitingForUserActionSince
</td>
</tr>
}
</table>
<hr />
@{
var DevicesReadyForReturn = Model.Where(i => i.ReadyForReturn && !i.WaitingForUserAction).ToArray();
}
<h2>
Ready for Return (@DevicesReadyForReturn.Length)</h2>
<table class="dataTable">
@foreach (var item in DevicesReadyForReturn)
{
<tr>
<td class="userId">
@item.UserId
</td>
<td class="userDisplayName">
@item.UserDisplayName
</td>
<td class="timestamp@(item.IsAlert ? " Alert" : string.Empty)">
Ready @item.ReadyForReturnSince
</td>
</tr>
}
</table>
</div>
</div>
@@ -0,0 +1,396 @@
#pragma warning disable 1591
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.17929
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Disco.Web.Areas.Public.Views.UserHeldDevices
{
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.BI.Extensions;
using Disco.Models.Repository;
using Disco.Web;
using Disco.Web.Extensions;
[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")]
[System.Web.WebPages.PageVirtualPathAttribute("~/Areas/Public/Views/UserHeldDevices/Index.cshtml")]
public class Index : System.Web.Mvc.WebViewPage<IEnumerable<Disco.Web.Areas.Public.Models.UserHeldDevices.UserHeldDeviceModel>>
{
public Index()
{
}
public override void Execute()
{
#line 2 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
ViewBag.Title = Html.ToBreadcrumb("Public Reports", MVC.Public.Public.Index(), "Technician Held Devices", null);
Html.BundleDeferred("~/Style/Public/UserHeldDevices");
#line default
#line hidden
WriteLiteral("\r\n<div");
WriteLiteral(" class=\"clearfix page\"");
WriteLiteral(">\r\n <div");
WriteLiteral(" class=\"column1\"");
WriteLiteral(">\r\n");
#line 8 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
#line default
#line hidden
#line 8 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
var DevicesInProcess = Model.Where(i => !i.ReadyForReturn && !i.WaitingForUserAction).ToArray();
#line default
#line hidden
WriteLiteral("\r\n <h2>\r\n In Process (");
#line 12 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
Write(DevicesInProcess.Length);
#line default
#line hidden
WriteLiteral(")</h2>\r\n <table");
WriteLiteral(" class=\"dataTable\"");
WriteLiteral(">\r\n");
#line 14 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
#line default
#line hidden
#line 14 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
foreach (var item in DevicesInProcess)
{
#line default
#line hidden
WriteLiteral(" <tr>\r\n <td");
WriteLiteral(" class=\"userId\"");
WriteLiteral(">\r\n");
WriteLiteral(" ");
#line 18 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
Write(item.UserId);
#line default
#line hidden
WriteLiteral("\r\n </td>\r\n <td");
WriteLiteral(" class=\"userDisplayName\"");
WriteLiteral(">\r\n");
WriteLiteral(" ");
#line 21 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
Write(item.UserDisplayName);
#line default
#line hidden
#line 21 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
if (!string.IsNullOrEmpty(item.EstimatedReturnTime))
{
#line default
#line hidden
WriteLiteral(" <span");
WriteLiteral(" class=\"smallMessage\"");
WriteLiteral(">(Expected: ");
#line 24 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
Write(item.EstimatedReturnTime);
#line default
#line hidden
WriteLiteral(")</span>\r\n");
#line 25 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
}
#line default
#line hidden
WriteLiteral("\r\n </td>\r\n </tr>\r\n");
#line 29 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
}
#line default
#line hidden
WriteLiteral(" </table>\r\n </div>\r\n <div");
WriteLiteral(" class=\"column2\"");
WriteLiteral(">\r\n");
#line 33 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
#line default
#line hidden
#line 33 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
var WaitingForUserActionJobs = Model.Where(i => i.WaitingForUserAction).ToArray();
#line default
#line hidden
WriteLiteral("\r\n <h2>\r\n Waiting for User Action (");
#line 37 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
Write(WaitingForUserActionJobs.Length);
#line default
#line hidden
WriteLiteral(")</h2>\r\n <table");
WriteLiteral(" class=\"dataTable\"");
WriteLiteral(">\r\n");
#line 39 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
#line default
#line hidden
#line 39 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
foreach (var item in WaitingForUserActionJobs)
{
#line default
#line hidden
WriteLiteral(" <tr>\r\n <td");
WriteLiteral(" class=\"userId\"");
WriteLiteral(">\r\n");
WriteLiteral(" ");
#line 43 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
Write(item.UserId);
#line default
#line hidden
WriteLiteral("\r\n </td>\r\n <td");
WriteLiteral(" class=\"userDisplayName\"");
WriteLiteral(">\r\n");
WriteLiteral(" ");
#line 46 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
Write(item.UserDisplayName);
#line default
#line hidden
WriteLiteral("\r\n </td>\r\n <td");
WriteAttribute("class", Tuple.Create(" class=\"", 1816), Tuple.Create("\"", 1874)
, Tuple.Create(Tuple.Create("", 1824), Tuple.Create("timestamp", 1824), true)
#line 48 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
, Tuple.Create(Tuple.Create("", 1833), Tuple.Create<System.Object, System.Int32>(item.IsAlert ? " Alert" : string.Empty
#line default
#line hidden
, 1833), false)
);
WriteLiteral(">\r\n Since ");
#line 49 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
Write(item.WaitingForUserActionSince);
#line default
#line hidden
WriteLiteral("\r\n </td>\r\n </tr>\r\n");
#line 52 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
}
#line default
#line hidden
WriteLiteral(" </table>\r\n <hr />\r\n");
#line 55 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
#line default
#line hidden
#line 55 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
var DevicesReadyForReturn = Model.Where(i => i.ReadyForReturn && !i.WaitingForUserAction).ToArray();
#line default
#line hidden
WriteLiteral("\r\n <h2>\r\n Ready for Return (");
#line 59 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
Write(DevicesReadyForReturn.Length);
#line default
#line hidden
WriteLiteral(")</h2>\r\n <table");
WriteLiteral(" class=\"dataTable\"");
WriteLiteral(">\r\n");
#line 61 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
#line default
#line hidden
#line 61 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
foreach (var item in DevicesReadyForReturn)
{
#line default
#line hidden
WriteLiteral(" <tr>\r\n <td");
WriteLiteral(" class=\"userId\"");
WriteLiteral(">\r\n");
WriteLiteral(" ");
#line 65 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
Write(item.UserId);
#line default
#line hidden
WriteLiteral("\r\n </td>\r\n <td");
WriteLiteral(" class=\"userDisplayName\"");
WriteLiteral(">\r\n");
WriteLiteral(" ");
#line 68 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
Write(item.UserDisplayName);
#line default
#line hidden
WriteLiteral("\r\n </td>\r\n <td");
WriteAttribute("class", Tuple.Create(" class=\"", 2641), Tuple.Create("\"", 2699)
, Tuple.Create(Tuple.Create("", 2649), Tuple.Create("timestamp", 2649), true)
#line 70 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
, Tuple.Create(Tuple.Create("", 2658), Tuple.Create<System.Object, System.Int32>(item.IsAlert ? " Alert" : string.Empty
#line default
#line hidden
, 2658), false)
);
WriteLiteral(">\r\n Ready ");
#line 71 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
Write(item.ReadyForReturnSince);
#line default
#line hidden
WriteLiteral("\r\n </td>\r\n </tr>\r\n");
#line 74 "..\..\Areas\Public\Views\UserHeldDevices\Index.cshtml"
}
#line default
#line hidden
WriteLiteral(" </table>\r\n </div>\r\n</div>\r\n");
}
}
}
#pragma warning restore 1591
@@ -0,0 +1,494 @@
@{
Layout = null;
Html.BundleDeferred("~/ClientScripts/Modules/jQuery-SignalR");
Html.BundleDeferred("~/ClientScripts/Core");
Html.BundleDeferred("~/Style/Public/UserHeldDevicesNoticeboard");
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Disco - Technician Held Devices</title>
@Html.BundleRenderDeferred()
</head>
<body>
<div id="page">
<header id="mainHeader">
Technician Held Devices
</header>
<section id="mainSection">
<div id="inProcess" class="list">
<h3>
In Process <span id="inProcessCount"></span>
</h3>
<div class="content">
<ul>
</ul>
</div>
</div>
<div id="readyForReturn" class="list">
<h3>
Ready for Return <span id="readyForReturnCount"></span>
</h3>
<div class="content">
<ul>
</ul>
</div>
</div>
<div id="waitingForUserAction" class="list">
<h3>
Waiting for User Action <span id="waitingForUserActionCount"></span>
</h3>
<div class="content">
<ul>
</ul>
</div>
</div>
</section>
<footer>
</footer>
</div>
<script type="text/javascript">
// Resizing
$(function () {
var $inProcess = $('#inProcess');
var $inProcessContent = $inProcess.find('.content');
var $inProcessHeader = $inProcess.find('.h3');
var $readyForReturn = $('#readyForReturn');
var $readyForReturnContent = $readyForReturn.find('.content');
var $readyForReturnHeader = $readyForReturn.find('.h3');
var $waitingForUserAction = $('#waitingForUserAction');
var $waitingForUserActionContent = $waitingForUserAction.find('.content');
var $waitingForUserActionHeader = $waitingForUserAction.find('.h3');
var $mainSection = $('#mainSection');
var $mainHeader = $('#mainHeader');
var $mainFooter = $('#mainFooter');
var onResize = function () {
var width = $mainSection.width();
var height = $(window).height() - $mainHeader.outerHeight() - $mainFooter.outerHeight() - 25;
$inProcess.height(height);
$inProcess.width((width * .28) - 11);
$inProcessContent.height(height - $inProcessHeader.outerHeight() - 56);
$readyForReturn.height(height);
$readyForReturn.width((width * .36) - 11);
$readyForReturnContent.height(height - $readyForReturnHeader.outerHeight() - 56);
$waitingForUserAction.height(height);
$waitingForUserAction.width((width * .36) - 11);
$waitingForUserActionContent.height(height - $waitingForUserActionHeader.outerHeight() - 56);
};
$(window).resize(onResize);
onResize();
});
</script>
<script type="text/javascript">
// Hide Mouse Mouse
$(function () {
var mouseVisible = true;
var mouseHideToken;
var documentBody = $('body');
var hideMouse = function () {
if (mouseVisible) {
documentBody.css('cursor', 'none');
mouseVisible = false;
}
};
var showMouse = function () {
if (!mouseVisible) {
documentBody.css('cursor', 'auto');
mouseVisible = true;
}
};
$(document).mousemove(function () {
showMouse();
if (mouseHideToken)
window.clearTimeout(mouseHideToken);
mouseHideToken = window.setTimeout(hideMouse, 2000);
});
});
</script>
<script type="text/javascript">
$(function () {
var models = {};
var modelsInProcessSorted = [];
var modelsInProcessCount = 0;
var modelsReadyForReturnSorted = [];
var modelsReadyForReturnCount = 0;
var modelsWaitingForUserActionSorted = [];
var modelsWaitingForUserActionCount = 0;
var $inProcess = $('#inProcess');
var $inProcessContent = $inProcess.find('.content ul');
var $readyForReturn = $('#readyForReturn');
var $readyForReturnContent = $readyForReturn.find('.content ul');
var $waitingForUserAction = $('#waitingForUserAction');
var $waitingForUserActionContent = $waitingForUserAction.find('.content ul');
var modelsInProcessIndexOffset = 0;
var scrollInProcessToken = null;
var modelsReadyForReturnIndexOffset = 0;
var scrollReadyForReturnToken = null;
var modelsWaitingForUserActionIndexOffset = 0;
var scrollWaitingForUserActionToken = null;
var scrollSpeed = 3000;
var persistantConnection = null;
var filterDeviceAddressInclude;
var filterDeviceAddressExclude;
var filterDeviceProfileInclude;
var filterDeviceProfileExclude;
var getParameterByName = function (name) {
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var regexS = "[\\?&]" + name + "=([^&#]*)";
var regex = new RegExp(regexS);
var results = regex.exec(window.location.search);
if (results == null)
return "";
else
return decodeURIComponent(results[1].replace(/\+/g, " "));
}
var buildFilters = function () {
var deviceAddressInclude = getParameterByName('deviceAddressInclude');
if (deviceAddressInclude) {
filterDeviceAddressInclude = {};
var split = deviceAddressInclude.split(",");
for (var i = 0; i < split.length; i++) {
filterDeviceAddressInclude[split[i].toLowerCase()] = true;
}
} else {
var deviceAddressExclude = getParameterByName('deviceAddressExclude');
if (deviceAddressExclude) {
filterDeviceAddressExclude = {};
var split = deviceAddressExclude.split(",");
for (var i = 0; i < split.length; i++) {
filterDeviceAddressExclude[split[i].toLowerCase()] = true;
}
} else {
var deviceProfileInclude = getParameterByName('deviceProfileInclude');
if (deviceProfileInclude) {
filterDeviceProfileInclude = {};
var deviceProfileIncludeSplit = deviceProfileInclude.split(",");
for (var i = 0; i < deviceProfileIncludeSplit.length; i++) {
filterDeviceProfileInclude[parseInt(deviceProfileIncludeSplit[i])] = true;
}
} else {
var deviceProfileExclude = getParameterByName('deviceProfileExclude');
if (deviceProfileExclude) {
filterDeviceProfileExclude = {};
var deviceProfileExcludeSplit = deviceProfileExclude.split(",");
for (var i = 0; i < deviceProfileExcludeSplit.length; i++) {
filterDeviceProfileExclude[parseInt(deviceProfileExcludeSplit[i])] = true;
}
}
}
}
}
}
var calculateFilter = function (model) {
if (model) {
if (filterDeviceAddressInclude) {
return (filterDeviceAddressInclude[model.DeviceAddress.toLowerCase()] == true)
}
if (filterDeviceAddressExclude) {
return (!filterDeviceAddressExclude[model.DeviceAddress.toLowerCase()])
}
if (filterDeviceProfileInclude) {
return (filterDeviceProfileInclude[model.DeviceProfileId] == true)
}
if (filterDeviceProfileExclude) {
return (!filterDeviceProfileExclude[model.DeviceProfileId])
}
return true;
}
return false;
}
var sortModels = function () {
modelsInProcessSorted = [];
modelsReadyForReturnSorted = [];
modelsWaitingForUserActionSorted = [];
var modelSortFunc = function (a, b) {
if (a.UserId.toUpperCase() == b.UserId.toUpperCase()) {
return 0;
} else {
if (a.UserId.toUpperCase() < b.UserId.toUpperCase()) {
return -1
} else {
return 1
}
}
};
for (var key in models) {
var model = models[key];
if (model) {
if (model.WaitingForUserAction) {
modelsWaitingForUserActionSorted.push(model);
} else {
if (model.ReadyForReturn) {
modelsReadyForReturnSorted.push(model);
} else {
modelsInProcessSorted.push(model);
}
}
}
}
modelsReadyForReturnSorted = modelsReadyForReturnSorted.sort(modelSortFunc);
modelsInProcessSorted = modelsInProcessSorted.sort(modelSortFunc);
modelsWaitingForUserActionSorted = modelsWaitingForUserActionSorted.sort(modelSortFunc);
if (modelsInProcessSorted.length != modelsInProcessCount) {
modelsInProcessCount = modelsInProcessSorted.length;
$('#inProcessCount').text('(' + modelsInProcessCount + ')');
}
if (modelsReadyForReturnSorted.length != modelsReadyForReturnCount) {
modelsReadyForReturnCount = modelsReadyForReturnSorted.length;
$('#readyForReturnCount').text('(' + modelsReadyForReturnCount + ')');
}
if (modelsWaitingForUserActionSorted.length != modelsWaitingForUserActionCount) {
modelsWaitingForUserActionCount = modelsWaitingForUserActionSorted.length;
$('#waitingForUserActionCount').text('(' + modelsWaitingForUserActionCount + ')');
}
};
var scrollReadyForReturn = function () {
$readyForReturnContent.find('li').last().detach().prependTo($readyForReturnContent).hide().slideDown('slow');
modelsReadyForReturnIndexOffset++;
if (modelsReadyForReturnIndexOffset >= modelsReadyForReturnSorted.length) {
modelsReadyForReturnIndexOffset = 0;
}
scrollReadyForReturnToken = window.setTimeout(scrollReadyForReturn, scrollSpeed);
};
var updateScrollReadyForReturn = function () {
var containerHeight = $readyForReturn.find('.content').height();
var contentHeight = $readyForReturnContent.height();
if (containerHeight >= contentHeight && scrollReadyForReturnToken) {
window.clearTimeout(scrollReadyForReturnToken);
return;
}
if (containerHeight < contentHeight && scrollReadyForReturnToken == null) {
scrollReadyForReturnToken = window.setTimeout(scrollReadyForReturn, scrollSpeed);
}
};
var scrollInProcess = function () {
$inProcessContent.find('li').last().detach().prependTo($inProcessContent).hide().slideDown('slow');
modelsInProcessIndexOffset++;
if (modelsInProcessIndexOffset >= modelsInProcessSorted.length) {
modelsInProcessIndexOffset = 0;
}
scrollInProcessToken = window.setTimeout(scrollInProcess, scrollSpeed);
};
var updateScrollInProcess = function () {
var containerHeight = $inProcess.find('.content').height();
var contentHeight = $inProcessContent.height();
if (containerHeight >= contentHeight && scrollInProcessToken) {
window.clearTimeout(scrollInProcessToken);
return;
}
if (containerHeight < contentHeight && scrollInProcessToken == null) {
scrollInProcessToken = window.setTimeout(scrollInProcess, scrollSpeed);
}
};
var scrollWaitingForUserAction = function () {
$waitingForUserActionContent.find('li').last().detach().prependTo($waitingForUserActionContent).hide().slideDown('slow');
modelsInProcessIndexOffset++;
if (modelsWaitingForUserActionIndexOffset >= modelsWaitingForUserActionSorted.length) {
modelsWaitingForUserActionIndexOffset = 0;
}
scrollWaitingForUserActionToken = window.setTimeout(scrollWaitingForUserAction, scrollSpeed);
};
var updateScrollWaitingForUserAction = function () {
var containerHeight = $waitingForUserAction.find('.content').height();
var contentHeight = $waitingForUserActionContent.height();
if (containerHeight >= contentHeight && scrollWaitingForUserActionToken) {
window.clearTimeout(scrollWaitingForUserActionToken);
return;
}
if (containerHeight < contentHeight && scrollWaitingForUserActionToken == null) {
scrollWaitingForUserActionToken = window.setTimeout(scrollWaitingForUserAction, scrollSpeed);
}
};
var modelInsertIndex = function (model) {
sortModels();
var findIndex = function (model, array, offset) {
for (var i = 0; i < array.length; i++) {
if (model.UserId == array[i].UserId) {
var index = i + offset;
if (index > (array.length - 1)) {
index = index - (array.length - 1);
}
return index;
}
};
};
if (model.WaitingForUserAction) {
return findIndex(model, modelsWaitingForUserActionSorted, modelsWaitingForUserActionIndexOffset);
} else {
if (model.ReadyForReturn) {
return findIndex(model, modelsReadyForReturnSorted, modelsReadyForReturnIndexOffset);
} else {
return findIndex(model, modelsInProcessSorted, modelsInProcessIndexOffset);
}
}
}
var modelInsert = function (model) {
var index = modelInsertIndex(model);
var insertTo = function (model, host) {
var hostLi = host.children('li');
if (hostLi.length == 0 || hostLi.length < index) {
host.append(model.htmlLi);
} else {
if (index == 0) {
host.prepend(model.htmlLi);
} else {
$(hostLi.get(index - 1)).after(model.htmlLi);
}
}
}
if (model.WaitingForUserAction) {
insertTo(model, $waitingForUserActionContent);
window.setTimeout(updateScrollWaitingForUserAction, 100);
} else {
if (model.ReadyForReturn) {
insertTo(model, $readyForReturnContent);
window.setTimeout(updateScrollReadyForReturn, 100);
} else {
insertTo(model, $inProcessContent);
window.setTimeout(updateScrollInProcess, 100);
}
}
}
var removeModel = function (model) {
if (model) {
if (model.updateAtToken) {
window.clearTimeout(model.updateAtToken);
};
model.htmlLi.slideUp('fast', function () {
model.htmlLi.remove();
});
}
};
var scheduleModelUpdate = function (model) {
if (model.updateAtToken) {
window.clearTimeout(model.updateAtToken);
};
if (model.UpdateAt) {
if (typeof model.UpdateAt == 'string' && model.UpdateAt.indexOf('\/Date(') == 0) {
model.UpdateAt = new Date(parseInt(model.UpdateAt.substr(6)));
}
var nowMilliseconds = new Date().getTime();
var updateAtMilliseconds = (model.UpdateAt - nowMilliseconds);
if (updateAtMilliseconds > 0) {
model.updateAtToken = window.setTimeout(function () { updatedModel(model.UserId); }, updateAtMilliseconds);
} else {
model.UpdateAt = null;
}
}
};
var processModel = function (id, model, init) {
if (!calculateFilter(model)) {
removeModel(models[id]);
delete models[id];
sortModels();
} else {
var existing = models[id];
models[id] = model;
// Add
model.htmlContent = $('<div>').text(model.UserId + ' - ' + model.UserDisplayName);
if (!model.ReadyForReturn && model.EstimatedReturnTime) {
model.htmlContent.append($('<span class="small">').text(' (Expected: ' + model.EstimatedReturnTime + ')'));
}
if (model.WaitingForUserAction) {
model.htmlContent.append($('<span class="small">').text(' (Since ' + model.WaitingForUserActionSince + ')'));
} else {
if (model.ReadyForReturn && model.ReadyForReturnSince) {
model.htmlContent.append($('<span class="small">').text(' (Ready ' + model.ReadyForReturnSince + ')'));
}
}
if (existing) {
if (existing.ReadyForReturn != model.ReadyForReturn || existing.WaitingForUserAction != model.WaitingForUserAction) {
removeModel(existing);
model.htmlLi = $('<li>').html(model.htmlContent).data('ModelId', id).hide();
modelInsert(model);
if (init) {
model.htmlLi.fadeIn();
} else {
model.htmlLi.slideDown();
}
} else {
if (existing.updateAtToken) {
window.clearTimeout(existing.updateAtToken);
};
model.htmlLi = existing.htmlLi;
model.htmlLi.slideUp('fast', function () {
model.htmlLi.html(model.htmlContent).slideDown();
});
}
} else {
model.htmlLi = $('<li>').html(model.htmlContent).data('ModelId', id).hide();
modelInsert(model);
if (init) {
model.htmlLi.fadeIn();
} else {
model.htmlLi.slideDown('slow');
}
}
if (model.htmlLi && model.IsAlert) {
model.htmlLi.addClass('alert');
}
scheduleModelUpdate(model);
}
};
var updatedModel = function (id) {
var UserId = id.toString();
$.getJSON('@(Url.Action(MVC.Public.UserHeldDevices.UserHeldDevice()))', { id: UserId }, function (data) {
processModel(UserId, data, false);
});
};
var connectionError = function () {
if (persistantConnection) {
persistantConnection.stop();
persistantConnection = null;
window.setTimeout(function () {
window.location.href = '@(Url.Action(MVC.Public.UserHeldDevices.Noticeboard()))';
}, 10000);
}
}
var init = function () {
buildFilters();
persistantConnection = $.connection('@(Url.Content("~/Public/UserHeldDevices/Notifications"))');
persistantConnection.received(updatedModel);
persistantConnection.error(connectionError);
persistantConnection.start(function () {
$.getJSON('@(Url.Action(MVC.Public.UserHeldDevices.UserHeldDevices()))', null, function (data) {
for (var i = 0; i < data.length; i++) {
processModel(data[i].UserId, data[i], true);
}
});
});
};
init();
});
</script>
<div id="mainFooter">
<img style="width: 32px; height: 32px; margin-top: -5px; margin-bottom: -15px;" src="@Links.ClientSource.Style.Images.Icon32_png" alt="Disco Logo" />
powered by Disco
</div>
</body>
</html>
@@ -0,0 +1,502 @@
#pragma warning disable 1591
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.17929
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Disco.Web.Areas.Public.Views.UserHeldDevices
{
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.BI.Extensions;
using Disco.Models.Repository;
using Disco.Web;
using Disco.Web.Extensions;
[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")]
[System.Web.WebPages.PageVirtualPathAttribute("~/Areas/Public/Views/UserHeldDevices/Noticeboard.cshtml")]
public class Noticeboard : System.Web.Mvc.WebViewPage<dynamic>
{
public Noticeboard()
{
}
public override void Execute()
{
#line 1 "..\..\Areas\Public\Views\UserHeldDevices\Noticeboard.cshtml"
Layout = null;
Html.BundleDeferred("~/ClientScripts/Modules/jQuery-SignalR");
Html.BundleDeferred("~/ClientScripts/Core");
Html.BundleDeferred("~/Style/Public/UserHeldDevicesNoticeboard");
#line default
#line hidden
WriteLiteral("\r\n<!DOCTYPE html>\r\n<html>\r\n<head>\r\n <meta");
WriteLiteral(" charset=\"utf-8\"");
WriteLiteral(" />\r\n <meta");
WriteLiteral(" http-equiv=\"X-UA-Compatible\"");
WriteLiteral(" content=\"IE=edge\"");
WriteLiteral(" />\r\n <title>Disco - Technician Held Devices</title>\r\n");
WriteLiteral(" ");
#line 13 "..\..\Areas\Public\Views\UserHeldDevices\Noticeboard.cshtml"
Write(Html.BundleRenderDeferred());
#line default
#line hidden
WriteLiteral("\r\n</head>\r\n<body>\r\n <div");
WriteLiteral(" id=\"page\"");
WriteLiteral(">\r\n <header");
WriteLiteral(" id=\"mainHeader\"");
WriteLiteral(">\r\n Technician Held Devices\r\n </header>\r\n <section");
WriteLiteral(" id=\"mainSection\"");
WriteLiteral(">\r\n <div");
WriteLiteral(" id=\"inProcess\"");
WriteLiteral(" class=\"list\"");
WriteLiteral(">\r\n <h3>\r\n In Process <span");
WriteLiteral(" id=\"inProcessCount\"");
WriteLiteral("></span>\r\n </h3>\r\n <div");
WriteLiteral(" class=\"content\"");
WriteLiteral(">\r\n <ul>\r\n </ul>\r\n </div>\r\n " +
" </div>\r\n <div");
WriteLiteral(" id=\"readyForReturn\"");
WriteLiteral(" class=\"list\"");
WriteLiteral(">\r\n <h3>\r\n Ready for Return <span");
WriteLiteral(" id=\"readyForReturnCount\"");
WriteLiteral("></span>\r\n </h3>\r\n <div");
WriteLiteral(" class=\"content\"");
WriteLiteral(">\r\n <ul>\r\n </ul>\r\n </div>\r\n " +
" </div>\r\n <div");
WriteLiteral(" id=\"waitingForUserAction\"");
WriteLiteral(" class=\"list\"");
WriteLiteral(">\r\n <h3>\r\n Waiting for User Action <span");
WriteLiteral(" id=\"waitingForUserActionCount\"");
WriteLiteral("></span>\r\n </h3>\r\n <div");
WriteLiteral(" class=\"content\"");
WriteLiteral(">\r\n <ul>\r\n </ul>\r\n </div>\r\n " +
" </div>\r\n </section>\r\n <footer>\r\n </footer>\r\n " +
"</div>\r\n <script");
WriteLiteral(" type=\"text/javascript\"");
WriteLiteral(">\r\n // Resizing\r\n $(function () {\r\n var $inProcess = $(\'" +
"#inProcess\');\r\n var $inProcessContent = $inProcess.find(\'.content\');\r" +
"\n var $inProcessHeader = $inProcess.find(\'.h3\');\r\n var $re" +
"adyForReturn = $(\'#readyForReturn\');\r\n var $readyForReturnContent = $" +
"readyForReturn.find(\'.content\');\r\n var $readyForReturnHeader = $ready" +
"ForReturn.find(\'.h3\');\r\n var $waitingForUserAction = $(\'#waitingForUs" +
"erAction\');\r\n var $waitingForUserActionContent = $waitingForUserActio" +
"n.find(\'.content\');\r\n var $waitingForUserActionHeader = $waitingForUs" +
"erAction.find(\'.h3\');\r\n var $mainSection = $(\'#mainSection\');\r\n " +
" var $mainHeader = $(\'#mainHeader\');\r\n var $mainFooter = $(\'#mai" +
"nFooter\');\r\n\r\n var onResize = function () {\r\n var widt" +
"h = $mainSection.width();\r\n var height = $(window).height() - $ma" +
"inHeader.outerHeight() - $mainFooter.outerHeight() - 25;\r\n\r\n $inP" +
"rocess.height(height);\r\n $inProcess.width((width * .28) - 11);\r\n " +
" $inProcessContent.height(height - $inProcessHeader.outerHeight() " +
"- 56);\r\n\r\n $readyForReturn.height(height);\r\n $read" +
"yForReturn.width((width * .36) - 11);\r\n $readyForReturnContent.he" +
"ight(height - $readyForReturnHeader.outerHeight() - 56);\r\n\r\n $wai" +
"tingForUserAction.height(height);\r\n $waitingForUserAction.width((" +
"width * .36) - 11);\r\n $waitingForUserActionContent.height(height " +
"- $waitingForUserActionHeader.outerHeight() - 56);\r\n };\r\n\r\n " +
" $(window).resize(onResize);\r\n onResize();\r\n });\r\n </scrip" +
"t>\r\n <script");
WriteLiteral(" type=\"text/javascript\"");
WriteLiteral(@">
// Hide Mouse Mouse
$(function () {
var mouseVisible = true;
var mouseHideToken;
var documentBody = $('body');
var hideMouse = function () {
if (mouseVisible) {
documentBody.css('cursor', 'none');
mouseVisible = false;
}
};
var showMouse = function () {
if (!mouseVisible) {
documentBody.css('cursor', 'auto');
mouseVisible = true;
}
};
$(document).mousemove(function () {
showMouse();
if (mouseHideToken)
window.clearTimeout(mouseHideToken);
mouseHideToken = window.setTimeout(hideMouse, 2000);
});
});
</script>
<script");
WriteLiteral(" type=\"text/javascript\"");
WriteLiteral(">\r\n $(function () {\r\n var models = {};\r\n var modelsI" +
"nProcessSorted = [];\r\n var modelsInProcessCount = 0;\r\n var" +
" modelsReadyForReturnSorted = [];\r\n var modelsReadyForReturnCount = 0" +
";\r\n var modelsWaitingForUserActionSorted = [];\r\n var model" +
"sWaitingForUserActionCount = 0;\r\n var $inProcess = $(\'#inProcess\');\r\n" +
" var $inProcessContent = $inProcess.find(\'.content ul\');\r\n " +
" var $readyForReturn = $(\'#readyForReturn\');\r\n var $readyForReturnCon" +
"tent = $readyForReturn.find(\'.content ul\');\r\n var $waitingForUserActi" +
"on = $(\'#waitingForUserAction\');\r\n var $waitingForUserActionContent =" +
" $waitingForUserAction.find(\'.content ul\');\r\n var modelsInProcessInde" +
"xOffset = 0;\r\n var scrollInProcessToken = null;\r\n var mode" +
"lsReadyForReturnIndexOffset = 0;\r\n var scrollReadyForReturnToken = nu" +
"ll;\r\n var modelsWaitingForUserActionIndexOffset = 0;\r\n var" +
" scrollWaitingForUserActionToken = null;\r\n var scrollSpeed = 3000;\r\n " +
" var persistantConnection = null;\r\n var filterDeviceAddress" +
"Include;\r\n var filterDeviceAddressExclude;\r\n var filterDev" +
"iceProfileInclude;\r\n var filterDeviceProfileExclude;\r\n \r\n " +
" var getParameterByName = function (name) {\r\n name = na" +
"me.replace(/[\\[]/, \"\\\\\\[\").replace(/[\\]]/, \"\\\\\\]\");\r\n var regexS " +
"= \"[\\\\?&]\" + name + \"=([^&#]*)\";\r\n var regex = new RegExp(regexS)" +
";\r\n var results = regex.exec(window.location.search);\r\n " +
" if (results == null)\r\n return \"\";\r\n else" +
"\r\n return decodeURIComponent(results[1].replace(/\\+/g, \" \"));" +
"\r\n }\r\n\r\n var buildFilters = function () {\r\n " +
" var deviceAddressInclude = getParameterByName(\'deviceAddressInclude\');\r\n " +
" if (deviceAddressInclude) {\r\n filterDeviceAddressInc" +
"lude = {};\r\n var split = deviceAddressInclude.split(\",\");\r\n " +
" for (var i = 0; i < split.length; i++) {\r\n " +
" filterDeviceAddressInclude[split[i].toLowerCase()] = true;\r\n " +
" }\r\n } else {\r\n var deviceAddressExclude = " +
"getParameterByName(\'deviceAddressExclude\');\r\n if (deviceAddre" +
"ssExclude) {\r\n filterDeviceAddressExclude = {};\r\n " +
" var split = deviceAddressExclude.split(\",\");\r\n " +
" for (var i = 0; i < split.length; i++) {\r\n filt" +
"erDeviceAddressExclude[split[i].toLowerCase()] = true;\r\n " +
"}\r\n } else {\r\n var deviceProfileInclud" +
"e = getParameterByName(\'deviceProfileInclude\');\r\n if (dev" +
"iceProfileInclude) {\r\n filterDeviceProfileInclude = {" +
"};\r\n var deviceProfileIncludeSplit = deviceProfileInc" +
"lude.split(\",\");\r\n for (var i = 0; i < deviceProfileI" +
"ncludeSplit.length; i++) {\r\n filterDeviceProfileI" +
"nclude[parseInt(deviceProfileIncludeSplit[i])] = true;\r\n " +
" }\r\n } else {\r\n var deviceP" +
"rofileExclude = getParameterByName(\'deviceProfileExclude\');\r\n " +
" if (deviceProfileExclude) {\r\n filterDevi" +
"ceProfileExclude = {};\r\n var deviceProfileExclude" +
"Split = deviceProfileExclude.split(\",\");\r\n for (v" +
"ar i = 0; i < deviceProfileExcludeSplit.length; i++) {\r\n " +
" filterDeviceProfileExclude[parseInt(deviceProfileExcludeSplit[i])] =" +
" true;\r\n }\r\n }\r\n " +
" }\r\n }\r\n }\r\n }\r\n " +
" var calculateFilter = function (model) {\r\n if (model) {" +
"\r\n if (filterDeviceAddressInclude) {\r\n " +
" return (filterDeviceAddressInclude[model.DeviceAddress.toLowerCase()] == true)\r" +
"\n }\r\n if (filterDeviceAddressExclude) {\r\n " +
" return (!filterDeviceAddressExclude[model.DeviceAddress.t" +
"oLowerCase()])\r\n }\r\n if (filterDeviceProfi" +
"leInclude) {\r\n return (filterDeviceProfileInclude[model.D" +
"eviceProfileId] == true)\r\n }\r\n if (filterD" +
"eviceProfileExclude) {\r\n return (!filterDeviceProfileExcl" +
"ude[model.DeviceProfileId])\r\n }\r\n return t" +
"rue;\r\n }\r\n return false;\r\n }\r\n\r\n " +
" var sortModels = function () {\r\n modelsInProcessSorted = [];" +
"\r\n modelsReadyForReturnSorted = [];\r\n modelsWaitin" +
"gForUserActionSorted = [];\r\n var modelSortFunc = function (a, b) " +
"{\r\n if (a.UserId.toUpperCase() == b.UserId.toUpperCase()) {\r\n" +
" return 0;\r\n } else {\r\n " +
" if (a.UserId.toUpperCase() < b.UserId.toUpperCase()) {\r\n " +
" return -1\r\n } else {\r\n " +
" return 1\r\n }\r\n }\r\n " +
" };\r\n for (var key in models) {\r\n var model =" +
" models[key];\r\n if (model) {\r\n if (mod" +
"el.WaitingForUserAction) {\r\n modelsWaitingForUserActi" +
"onSorted.push(model);\r\n } else {\r\n " +
" if (model.ReadyForReturn) {\r\n modelsReadyFor" +
"ReturnSorted.push(model);\r\n } else {\r\n " +
" modelsInProcessSorted.push(model);\r\n " +
" }\r\n }\r\n }\r\n }\r\n " +
" modelsReadyForReturnSorted = modelsReadyForReturnSorted.sort(modelSortF" +
"unc);\r\n modelsInProcessSorted = modelsInProcessSorted.sort(modelS" +
"ortFunc);\r\n modelsWaitingForUserActionSorted = modelsWaitingForUs" +
"erActionSorted.sort(modelSortFunc);\r\n\r\n if (modelsInProcessSorted" +
".length != modelsInProcessCount) {\r\n modelsInProcessCount = m" +
"odelsInProcessSorted.length;\r\n $(\'#inProcessCount\').text(\'(\' " +
"+ modelsInProcessCount + \')\');\r\n }\r\n if (modelsRea" +
"dyForReturnSorted.length != modelsReadyForReturnCount) {\r\n mo" +
"delsReadyForReturnCount = modelsReadyForReturnSorted.length;\r\n " +
" $(\'#readyForReturnCount\').text(\'(\' + modelsReadyForReturnCount + \')\');\r\n " +
" }\r\n if (modelsWaitingForUserActionSorted.length != mode" +
"lsWaitingForUserActionCount) {\r\n modelsWaitingForUserActionCo" +
"unt = modelsWaitingForUserActionSorted.length;\r\n $(\'#waitingF" +
"orUserActionCount\').text(\'(\' + modelsWaitingForUserActionCount + \')\');\r\n " +
" }\r\n\r\n };\r\n\r\n var scrollReadyForReturn = function (" +
") {\r\n $readyForReturnContent.find(\'li\').last().detach().prependTo" +
"($readyForReturnContent).hide().slideDown(\'slow\');\r\n modelsReadyF" +
"orReturnIndexOffset++;\r\n if (modelsReadyForReturnIndexOffset >= m" +
"odelsReadyForReturnSorted.length) {\r\n modelsReadyForReturnInd" +
"exOffset = 0;\r\n }\r\n scrollReadyForReturnToken = wi" +
"ndow.setTimeout(scrollReadyForReturn, scrollSpeed);\r\n };\r\n " +
" var updateScrollReadyForReturn = function () {\r\n var containerHe" +
"ight = $readyForReturn.find(\'.content\').height();\r\n var contentHe" +
"ight = $readyForReturnContent.height();\r\n if (containerHeight >= " +
"contentHeight && scrollReadyForReturnToken) {\r\n window.clearT" +
"imeout(scrollReadyForReturnToken);\r\n return;\r\n " +
" }\r\n if (containerHeight < contentHeight && scrollReadyForReturnT" +
"oken == null) {\r\n scrollReadyForReturnToken = window.setTimeo" +
"ut(scrollReadyForReturn, scrollSpeed);\r\n }\r\n };\r\n " +
" var scrollInProcess = function () {\r\n $inProcessContent.fi" +
"nd(\'li\').last().detach().prependTo($inProcessContent).hide().slideDown(\'slow\');\r" +
"\n modelsInProcessIndexOffset++;\r\n if (modelsInProc" +
"essIndexOffset >= modelsInProcessSorted.length) {\r\n modelsInP" +
"rocessIndexOffset = 0;\r\n }\r\n scrollInProcessToken " +
"= window.setTimeout(scrollInProcess, scrollSpeed);\r\n };\r\n " +
"var updateScrollInProcess = function () {\r\n var containerHeight =" +
" $inProcess.find(\'.content\').height();\r\n var contentHeight = $inP" +
"rocessContent.height();\r\n if (containerHeight >= contentHeight &&" +
" scrollInProcessToken) {\r\n window.clearTimeout(scrollInProces" +
"sToken);\r\n return;\r\n }\r\n if (co" +
"ntainerHeight < contentHeight && scrollInProcessToken == null) {\r\n " +
" scrollInProcessToken = window.setTimeout(scrollInProcess, scrollSpeed);\r\n " +
" }\r\n };\r\n var scrollWaitingForUserAction = f" +
"unction () {\r\n $waitingForUserActionContent.find(\'li\').last().det" +
"ach().prependTo($waitingForUserActionContent).hide().slideDown(\'slow\');\r\n " +
" modelsInProcessIndexOffset++;\r\n if (modelsWaitingForUser" +
"ActionIndexOffset >= modelsWaitingForUserActionSorted.length) {\r\n " +
" modelsWaitingForUserActionIndexOffset = 0;\r\n }\r\n " +
" scrollWaitingForUserActionToken = window.setTimeout(scrollWaitingForUserActi" +
"on, scrollSpeed);\r\n };\r\n var updateScrollWaitingForUserAct" +
"ion = function () {\r\n var containerHeight = $waitingForUserAction" +
".find(\'.content\').height();\r\n var contentHeight = $waitingForUser" +
"ActionContent.height();\r\n if (containerHeight >= contentHeight &&" +
" scrollWaitingForUserActionToken) {\r\n window.clearTimeout(scr" +
"ollWaitingForUserActionToken);\r\n return;\r\n }\r\n" +
" if (containerHeight < contentHeight && scrollWaitingForUserActio" +
"nToken == null) {\r\n scrollWaitingForUserActionToken = window." +
"setTimeout(scrollWaitingForUserAction, scrollSpeed);\r\n }\r\n " +
" };\r\n\r\n var modelInsertIndex = function (model) {\r\n " +
" sortModels();\r\n var findIndex = function (model, array, offset)" +
" {\r\n for (var i = 0; i < array.length; i++) {\r\n " +
" if (model.UserId == array[i].UserId) {\r\n va" +
"r index = i + offset;\r\n if (index > (array.length - 1" +
")) {\r\n index = index - (array.length - 1);\r\n " +
" }\r\n return index;\r\n " +
" }\r\n };\r\n };\r\n if (" +
"model.WaitingForUserAction) {\r\n return findIndex(model, model" +
"sWaitingForUserActionSorted, modelsWaitingForUserActionIndexOffset);\r\n " +
" } else {\r\n if (model.ReadyForReturn) {\r\n " +
" return findIndex(model, modelsReadyForReturnSorted, modelsReadyForRetur" +
"nIndexOffset);\r\n } else {\r\n return fin" +
"dIndex(model, modelsInProcessSorted, modelsInProcessIndexOffset);\r\n " +
" }\r\n }\r\n }\r\n var modelInsert = functi" +
"on (model) {\r\n var index = modelInsertIndex(model);\r\n " +
" var insertTo = function (model, host) {\r\n var hostLi = ho" +
"st.children(\'li\');\r\n if (hostLi.length == 0 || hostLi.length " +
"< index) {\r\n host.append(model.htmlLi);\r\n " +
" } else {\r\n if (index == 0) {\r\n " +
" host.prepend(model.htmlLi);\r\n } else {\r\n " +
" $(hostLi.get(index - 1)).after(model.htmlLi);\r\n " +
" }\r\n }\r\n }\r\n if (model.Wa" +
"itingForUserAction) {\r\n insertTo(model, $waitingForUserAction" +
"Content);\r\n window.setTimeout(updateScrollWaitingForUserActio" +
"n, 100);\r\n } else {\r\n if (model.ReadyForReturn" +
") {\r\n insertTo(model, $readyForReturnContent);\r\n " +
" window.setTimeout(updateScrollReadyForReturn, 100);\r\n " +
" } else {\r\n insertTo(model, $inProcessContent);\r\n " +
" window.setTimeout(updateScrollInProcess, 100);\r\n " +
" }\r\n }\r\n }\r\n\r\n var removeModel = " +
"function (model) {\r\n if (model) {\r\n if (model." +
"updateAtToken) {\r\n window.clearTimeout(model.updateAtToke" +
"n);\r\n };\r\n model.htmlLi.slideUp(\'fast\', fu" +
"nction () {\r\n model.htmlLi.remove();\r\n " +
" });\r\n }\r\n };\r\n\r\n var scheduleModelUpdate =" +
" function (model) {\r\n if (model.updateAtToken) {\r\n " +
" window.clearTimeout(model.updateAtToken);\r\n };\r\n " +
" if (model.UpdateAt) {\r\n if (typeof model.UpdateAt == \'str" +
"ing\' && model.UpdateAt.indexOf(\'\\/Date(\') == 0) {\r\n model" +
".UpdateAt = new Date(parseInt(model.UpdateAt.substr(6)));\r\n }" +
"\r\n var nowMilliseconds = new Date().getTime();\r\n " +
" var updateAtMilliseconds = (model.UpdateAt - nowMilliseconds);\r\n " +
" if (updateAtMilliseconds > 0) {\r\n model.update" +
"AtToken = window.setTimeout(function () { updatedModel(model.UserId); }, updateA" +
"tMilliseconds);\r\n } else {\r\n model.Upd" +
"ateAt = null;\r\n }\r\n }\r\n };\r\n\r\n " +
" var processModel = function (id, model, init) {\r\n if (!cal" +
"culateFilter(model)) {\r\n removeModel(models[id]);\r\n " +
" delete models[id];\r\n sortModels();\r\n " +
" } else {\r\n var existing = models[id];\r\n m" +
"odels[id] = model;\r\n\r\n // Add\r\n model.html" +
"Content = $(\'<div>\').text(model.UserId + \' - \' + model.UserDisplayName);\r\n " +
" if (!model.ReadyForReturn && model.EstimatedReturnTime) {\r\n " +
" model.htmlContent.append($(\'<span class=\"small\">\').text(\' (Expe" +
"cted: \' + model.EstimatedReturnTime + \')\'));\r\n }\r\n " +
" if (model.WaitingForUserAction) {\r\n model.htmlCo" +
"ntent.append($(\'<span class=\"small\">\').text(\' (Since \' + model.WaitingForUserAct" +
"ionSince + \')\'));\r\n } else {\r\n if (mod" +
"el.ReadyForReturn && model.ReadyForReturnSince) {\r\n m" +
"odel.htmlContent.append($(\'<span class=\"small\">\').text(\' (Ready \' + model.ReadyF" +
"orReturnSince + \')\'));\r\n }\r\n }\r\n\r\n " +
" if (existing) {\r\n if (existing.ReadyForRe" +
"turn != model.ReadyForReturn || existing.WaitingForUserAction != model.WaitingFo" +
"rUserAction) {\r\n removeModel(existing);\r\n " +
" model.htmlLi = $(\'<li>\').html(model.htmlContent).data(\'ModelId\'," +
" id).hide();\r\n modelInsert(model);\r\n " +
" if (init) {\r\n model.htmlLi.fadeIn();\r\n" +
" } else {\r\n model.html" +
"Li.slideDown();\r\n }\r\n } else {" +
"\r\n if (existing.updateAtToken) {\r\n " +
" window.clearTimeout(existing.updateAtToken);\r\n " +
" };\r\n model.htmlLi = existing.htmlLi;\r\n " +
" model.htmlLi.slideUp(\'fast\', function () {\r\n " +
" model.htmlLi.html(model.htmlContent).slideDown();\r\n " +
" });\r\n }\r\n } else {\r\n " +
" model.htmlLi = $(\'<li>\').html(model.htmlContent).data(\'Mode" +
"lId\', id).hide();\r\n modelInsert(model);\r\n " +
" if (init) {\r\n model.htmlLi.fadeIn();\r\n " +
" } else {\r\n model.htmlLi.slideDown(\'s" +
"low\');\r\n }\r\n }\r\n if" +
" (model.htmlLi && model.IsAlert) {\r\n model.htmlLi.addClas" +
"s(\'alert\');\r\n }\r\n scheduleModelUpdate(mode" +
"l);\r\n }\r\n };\r\n\r\n var updatedModel = functio" +
"n (id) {\r\n var UserId = id.toString();\r\n $.getJSON" +
"(\'");
#line 457 "..\..\Areas\Public\Views\UserHeldDevices\Noticeboard.cshtml"
Write(Url.Action(MVC.Public.UserHeldDevices.UserHeldDevice()));
#line default
#line hidden
WriteLiteral(@"', { id: UserId }, function (data) {
processModel(UserId, data, false);
});
};
var connectionError = function () {
if (persistantConnection) {
persistantConnection.stop();
persistantConnection = null;
window.setTimeout(function () {
window.location.href = '");
#line 467 "..\..\Areas\Public\Views\UserHeldDevices\Noticeboard.cshtml"
Write(Url.Action(MVC.Public.UserHeldDevices.Noticeboard()));
#line default
#line hidden
WriteLiteral("\';\r\n }, 10000);\r\n }\r\n }\r\n\r\n " +
" var init = function () {\r\n buildFilters();\r\n pe" +
"rsistantConnection = $.connection(\'");
#line 474 "..\..\Areas\Public\Views\UserHeldDevices\Noticeboard.cshtml"
Write(Url.Content("~/Public/UserHeldDevices/Notifications"));
#line default
#line hidden
WriteLiteral("\');\r\n persistantConnection.received(updatedModel);\r\n " +
" persistantConnection.error(connectionError);\r\n persistantConnec" +
"tion.start(function () {\r\n $.getJSON(\'");
#line 478 "..\..\Areas\Public\Views\UserHeldDevices\Noticeboard.cshtml"
Write(Url.Action(MVC.Public.UserHeldDevices.UserHeldDevices()));
#line default
#line hidden
WriteLiteral(@"', null, function (data) {
for (var i = 0; i < data.length; i++) {
processModel(data[i].UserId, data[i], true);
}
});
});
};
init();
});
</script>
<div");
WriteLiteral(" id=\"mainFooter\"");
WriteLiteral(">\r\n <img");
WriteLiteral(" style=\"width: 32px; height: 32px; margin-top: -5px; margin-bottom: -15px;\"");
WriteAttribute("src", Tuple.Create(" src=\"", 23515), Tuple.Create("\"", 23564)
#line 490 "..\..\Areas\Public\Views\UserHeldDevices\Noticeboard.cshtml"
, Tuple.Create(Tuple.Create("", 23521), Tuple.Create<System.Object, System.Int32>(Links.ClientSource.Style.Images.Icon32_png
#line default
#line hidden
, 23521), false)
);
WriteLiteral(" alt=\"Disco Logo\"");
WriteLiteral(" />\r\n powered by Disco\r\n </div>\r\n</body>\r\n</html>\r\n");
}
}
}
#pragma warning restore 1591
+62
View File
@@ -0,0 +1,62 @@
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="Disco.Models.Repository" />
<add namespace="Disco.BI.Extensions" />
<add namespace="Disco.Web" />
<add namespace="Disco.Web.Extensions" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
</system.web.webPages.razor>
<appSettings>
<add key="webpages:Enabled" value="false" />
</appSettings>
<system.web>
<httpHandlers>
<add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
</httpHandlers>
<!--
Enabling request validation in view pages would cause validation to occur
after the input has already been processed by the controller. By default
MVC performs request validation before a controller processes the input.
To change this behavior apply the ValidateInputAttribute to a
controller or action.
-->
<pages
validateRequest="false"
pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<controls>
<add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
</controls>
</pages>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
</system.webServer>
</configuration>
@@ -0,0 +1,3 @@
@{
Layout = "~/Areas/Public/Views/Shared/_Layout.cshtml";
}
@@ -0,0 +1,54 @@
#pragma warning disable 1591
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.17929
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Disco.Web.Areas.Public.Views
{
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.BI.Extensions;
using Disco.Models.Repository;
using Disco.Web;
using Disco.Web.Extensions;
[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")]
[System.Web.WebPages.PageVirtualPathAttribute("~/Areas/Public/Views/_ViewStart.cshtml")]
public class ViewStart : System.Web.Mvc.ViewStartPage
{
public ViewStart()
{
}
public override void Execute()
{
#line 1 "..\..\Areas\Public\Views\_ViewStart.cshtml"
Layout = "~/Areas/Public/Views/Shared/_Layout.cshtml";
#line default
#line hidden
}
}
}
#pragma warning restore 1591