b1575fa321
Dialogs (with a refresh option) appear whenever the SignalR client disconnects or encounters an error. Nonsensical error messages replaced. Page refresh technique changed to allow for urls containing fragment hashes.
1439 lines
52 KiB
C#
1439 lines
52 KiB
C#
#pragma warning disable 1591
|
|
//------------------------------------------------------------------------------
|
|
// <auto-generated>
|
|
// This code was generated by a tool.
|
|
// Runtime Version:4.0.30319.34014
|
|
//
|
|
// Changes to this file may cause incorrect behavior and will be lost if
|
|
// the code is regenerated.
|
|
// </auto-generated>
|
|
//------------------------------------------------------------------------------
|
|
|
|
namespace Disco.Web.Views.Job.JobParts
|
|
{
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Net;
|
|
using System.Text;
|
|
using System.Web;
|
|
using System.Web.Helpers;
|
|
using System.Web.Mvc;
|
|
using System.Web.Mvc.Ajax;
|
|
using System.Web.Mvc.Html;
|
|
using System.Web.Routing;
|
|
using System.Web.Security;
|
|
using System.Web.UI;
|
|
using System.Web.WebPages;
|
|
using Disco;
|
|
using Disco.BI.Extensions;
|
|
using Disco.Models.Repository;
|
|
using Disco.Services;
|
|
using Disco.Services.Authorization;
|
|
using Disco.Services.Web;
|
|
using Disco.Web;
|
|
using Disco.Web.Extensions;
|
|
|
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "2.0.0.0")]
|
|
[System.Web.WebPages.PageVirtualPathAttribute("~/Views/Job/JobParts/Resources.cshtml")]
|
|
public partial class Resources : Disco.Services.Web.WebViewPage<Disco.Web.Models.Job.ShowModel>
|
|
{
|
|
public Resources()
|
|
{
|
|
}
|
|
public override void Execute()
|
|
{
|
|
|
|
#line 2 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
|
|
Authorization.RequireAny(Claims.Job.ShowLogs, Claims.Job.ShowAttachments);
|
|
|
|
var canShowLogs = Authorization.Has(Claims.Job.ShowLogs);
|
|
var canShowAttachments = Authorization.Has(Claims.Job.ShowAttachments);
|
|
|
|
var canAddLogs = Authorization.Has(Claims.Job.Actions.AddLogs);
|
|
var canRemoveAnyLogs = Authorization.Has(Claims.Job.Actions.RemoveAnyLogs);
|
|
var canRemoveOwnLogs = Authorization.Has(Claims.Job.Actions.RemoveOwnLogs);
|
|
|
|
var canAddAttachments = Authorization.Has(Claims.Job.Actions.AddAttachments);
|
|
var canRemoveAnyAttachments = Authorization.Has(Claims.Job.Actions.RemoveAnyAttachments);
|
|
var canRemoveOwnAttachments = Authorization.Has(Claims.Job.Actions.RemoveOwnAttachments);
|
|
|
|
if (canShowAttachments)
|
|
{
|
|
Html.BundleDeferred("~/Style/Shadowbox");
|
|
Html.BundleDeferred("~/ClientScripts/Modules/Shadowbox");
|
|
}
|
|
if (canAddAttachments)
|
|
{
|
|
Html.BundleDeferred("~/ClientScripts/Modules/Disco-AttachmentUploader");
|
|
}
|
|
Html.BundleDeferred("~/ClientScripts/Modules/jQuery-SignalR");
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\r\n<table");
|
|
|
|
WriteLiteral(" id=\"jobShowResources\"");
|
|
|
|
WriteLiteral(">\r\n <tr");
|
|
|
|
WriteAttribute("class", Tuple.Create(" class=\"", 1169), Tuple.Create("\"", 1297)
|
|
|
|
#line 28 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
, Tuple.Create(Tuple.Create("", 1177), Tuple.Create<System.Object, System.Int32>(canShowLogs ? "canShowLogs" : "cannotShowLogs"
|
|
|
|
#line default
|
|
#line hidden
|
|
, 1177), false)
|
|
|
|
#line 28 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
, Tuple.Create(Tuple.Create(" ", 1226), Tuple.Create<System.Object, System.Int32>(canShowAttachments ? "canShowAttachments" : "cannotShowAttachments"
|
|
|
|
#line default
|
|
#line hidden
|
|
, 1227), false)
|
|
);
|
|
|
|
WriteLiteral(">\r\n");
|
|
|
|
|
|
#line 29 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 29 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
if (canShowLogs)
|
|
{
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" <td");
|
|
|
|
WriteLiteral(" id=\"CommentsContainer\"");
|
|
|
|
WriteLiteral(">\r\n <div");
|
|
|
|
WriteLiteral(" id=\"Comments\"");
|
|
|
|
WriteAttribute("class", Tuple.Create(" class=\"", 1414), Tuple.Create("\"", 1468)
|
|
|
|
#line 32 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
, Tuple.Create(Tuple.Create("", 1422), Tuple.Create<System.Object, System.Int32>(canAddLogs ? "canAddLogs" : "cannotAddLogs"
|
|
|
|
#line default
|
|
#line hidden
|
|
, 1422), false)
|
|
);
|
|
|
|
WriteLiteral(">\r\n <div");
|
|
|
|
WriteLiteral(" class=\"commentOutput\"");
|
|
|
|
WriteLiteral(">\r\n");
|
|
|
|
|
|
#line 34 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 34 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
foreach (var jl in Model.Job.JobLogs.OrderBy(m => m.Timestamp))
|
|
{
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" <div");
|
|
|
|
WriteLiteral(" data-logid=\"");
|
|
|
|
|
|
#line 36 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
Write(jl.Id);
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\"");
|
|
|
|
WriteLiteral(">\r\n <span");
|
|
|
|
WriteLiteral(" class=\"author\"");
|
|
|
|
WriteLiteral(">");
|
|
|
|
|
|
#line 37 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
Write(jl.TechUser.ToStringFriendly());
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("</span>");
|
|
|
|
|
|
#line 37 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
if (canRemoveAnyLogs || (canRemoveOwnLogs && jl.TechUserId == CurrentUser.UserId))
|
|
{
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("<span");
|
|
|
|
WriteLiteral(" class=\"remove fa fa-times-circle\"");
|
|
|
|
WriteLiteral("></span>");
|
|
|
|
|
|
#line 38 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
}
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("<span");
|
|
|
|
WriteLiteral(" class=\"timestamp\"");
|
|
|
|
WriteLiteral(" data-livestamp=\"");
|
|
|
|
|
|
#line 38 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
Write(jl.Timestamp.ToUnixEpoc());
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\"");
|
|
|
|
WriteAttribute("title", Tuple.Create(" title=\"", 2091), Tuple.Create("\"", 2129)
|
|
|
|
#line 38 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
, Tuple.Create(Tuple.Create("", 2099), Tuple.Create<System.Object, System.Int32>(jl.Timestamp.ToFullDateTime()
|
|
|
|
#line default
|
|
#line hidden
|
|
, 2099), false)
|
|
);
|
|
|
|
WriteLiteral(">");
|
|
|
|
|
|
#line 38 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
Write(jl.Timestamp.ToFullDateTime());
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("</span>\r\n <div");
|
|
|
|
WriteLiteral(" class=\"comment\"");
|
|
|
|
WriteLiteral(">");
|
|
|
|
|
|
#line 39 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
Write(jl.Comments.ToHtmlComment());
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("</div>\r\n </div>\r\n");
|
|
|
|
|
|
#line 41 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
}
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" </div>\r\n");
|
|
|
|
|
|
#line 43 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 43 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
if (canAddLogs)
|
|
{
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" <div");
|
|
|
|
WriteLiteral(" class=\"commentInput clearfix\"");
|
|
|
|
WriteLiteral(">\r\n <textarea");
|
|
|
|
WriteLiteral(" class=\"commentInput\"");
|
|
|
|
WriteLiteral(" placeholder=\"write comment...\"");
|
|
|
|
WriteLiteral(" accesskey=\"l\"");
|
|
|
|
WriteLiteral("></textarea>\r\n <span");
|
|
|
|
WriteLiteral(" class=\"action post commentInputPost fa fa-comment disabled\"");
|
|
|
|
WriteLiteral(" title=\"Post Comment\"");
|
|
|
|
WriteLiteral("></span>\r\n </div>\r\n");
|
|
|
|
|
|
#line 49 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
}
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" </div>\r\n </td>\r\n");
|
|
|
|
|
|
#line 52 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
}
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" ");
|
|
|
|
|
|
#line 53 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
if (canShowAttachments)
|
|
{
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" <td");
|
|
|
|
WriteLiteral(" id=\"AttachmentsContainer\"");
|
|
|
|
WriteLiteral(">\r\n <div");
|
|
|
|
WriteLiteral(" id=\"Attachments\"");
|
|
|
|
WriteAttribute("class", Tuple.Create(" class=\"", 2948), Tuple.Create("\"", 3023)
|
|
|
|
#line 56 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
, Tuple.Create(Tuple.Create("", 2956), Tuple.Create<System.Object, System.Int32>(canAddAttachments ? "canAddAttachments" : "cannotAddAttachments"
|
|
|
|
#line default
|
|
#line hidden
|
|
, 2956), false)
|
|
);
|
|
|
|
WriteLiteral(">\r\n <div");
|
|
|
|
WriteLiteral(" class=\"Disco-AttachmentUpload-DropTarget\"");
|
|
|
|
WriteLiteral(">\r\n <h2>Drop Attachments Here</h2>\r\n </" +
|
|
"div>\r\n <div");
|
|
|
|
WriteLiteral(" class=\"attachmentOutput\"");
|
|
|
|
WriteLiteral(">\r\n");
|
|
|
|
|
|
#line 61 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 61 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
foreach (var ja in Model.Job.JobAttachments)
|
|
{
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" <a");
|
|
|
|
WriteAttribute("href", Tuple.Create(" href=\"", 3360), Tuple.Create("\"", 3417)
|
|
|
|
#line 63 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
, Tuple.Create(Tuple.Create("", 3367), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.API.Job.AttachmentDownload(ja.Id))
|
|
|
|
#line default
|
|
#line hidden
|
|
, 3367), false)
|
|
);
|
|
|
|
WriteLiteral(" data-attachmentid=\"");
|
|
|
|
|
|
#line 63 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
Write(ja.Id);
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\"");
|
|
|
|
WriteLiteral(" data-mimetype=\"");
|
|
|
|
|
|
#line 63 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
Write(ja.MimeType);
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\"");
|
|
|
|
WriteLiteral(">\r\n <span");
|
|
|
|
WriteLiteral(" class=\"icon\"");
|
|
|
|
WriteAttribute("title", Tuple.Create(" title=\"", 3527), Tuple.Create("\"", 3547)
|
|
|
|
#line 64 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
, Tuple.Create(Tuple.Create("", 3535), Tuple.Create<System.Object, System.Int32>(ja.Filename
|
|
|
|
#line default
|
|
#line hidden
|
|
, 3535), false)
|
|
);
|
|
|
|
WriteLiteral(">\r\n <img");
|
|
|
|
WriteLiteral(" alt=\"Attachment Thumbnail\"");
|
|
|
|
WriteAttribute("src", Tuple.Create(" src=\"", 3618), Tuple.Create("\"", 3677)
|
|
|
|
#line 65 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
, Tuple.Create(Tuple.Create("", 3624), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.API.Job.AttachmentThumbnail(ja.Id))
|
|
|
|
#line default
|
|
#line hidden
|
|
, 3624), false)
|
|
);
|
|
|
|
WriteLiteral(" /></span>\r\n <span");
|
|
|
|
WriteLiteral(" class=\"comments\"");
|
|
|
|
WriteAttribute("title", Tuple.Create(" title=\"", 3744), Tuple.Create("\"", 3764)
|
|
|
|
#line 66 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
, Tuple.Create(Tuple.Create("", 3752), Tuple.Create<System.Object, System.Int32>(ja.Comments
|
|
|
|
#line default
|
|
#line hidden
|
|
, 3752), false)
|
|
);
|
|
|
|
WriteLiteral(">\r\n");
|
|
|
|
|
|
#line 67 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 67 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
if (!string.IsNullOrEmpty(ja.DocumentTemplateId))
|
|
{
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 68 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
Write(ja.DocumentTemplate.Description);
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 68 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
}
|
|
else
|
|
{
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 70 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
Write(ja.Comments);
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 70 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
}
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\r\n </span><span");
|
|
|
|
WriteLiteral(" class=\"author\"");
|
|
|
|
WriteLiteral(">");
|
|
|
|
|
|
#line 71 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
Write(ja.TechUser.ToStringFriendly());
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("</span>");
|
|
|
|
|
|
#line 71 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
if (canRemoveAnyAttachments || (canRemoveOwnAttachments && ja.TechUserId == CurrentUser.UserId))
|
|
{
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("<span");
|
|
|
|
WriteLiteral(" class=\"remove fa fa-times-circle\"");
|
|
|
|
WriteLiteral("></span>");
|
|
|
|
|
|
#line 72 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
}
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("<span");
|
|
|
|
WriteLiteral(" class=\"timestamp\"");
|
|
|
|
WriteLiteral(" data-livestamp=\"");
|
|
|
|
|
|
#line 72 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
Write(ja.Timestamp.ToUnixEpoc());
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\"");
|
|
|
|
WriteAttribute("title", Tuple.Create(" title=\"", 4459), Tuple.Create("\"", 4497)
|
|
|
|
#line 72 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
, Tuple.Create(Tuple.Create("", 4467), Tuple.Create<System.Object, System.Int32>(ja.Timestamp.ToFullDateTime()
|
|
|
|
#line default
|
|
#line hidden
|
|
, 4467), false)
|
|
);
|
|
|
|
WriteLiteral(">");
|
|
|
|
|
|
#line 72 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
Write(ja.Timestamp.ToFullDateTime());
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("</span>\r\n </a> \r\n");
|
|
|
|
|
|
#line 74 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
}
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" </div>\r\n");
|
|
|
|
|
|
#line 76 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 76 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
if (canAddAttachments)
|
|
{
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" <div");
|
|
|
|
WriteLiteral(" class=\"Disco-AttachmentUpload-Progress\"");
|
|
|
|
WriteLiteral("></div>\r\n");
|
|
|
|
WriteLiteral(" <div");
|
|
|
|
WriteLiteral(" class=\"attachmentInput clearfix\"");
|
|
|
|
WriteLiteral(">\r\n <span");
|
|
|
|
WriteLiteral(" class=\"action upload fa fa-upload disabled\"");
|
|
|
|
WriteLiteral(" title=\"Attach File\"");
|
|
|
|
WriteLiteral("></span><span");
|
|
|
|
WriteLiteral(" class=\"action photo fa fa-camera disabled\"");
|
|
|
|
WriteLiteral(" title=\"Capture Image\"");
|
|
|
|
WriteLiteral("></span>\r\n </div>\r\n");
|
|
|
|
|
|
#line 82 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
}
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" </div>\r\n </td>\r\n");
|
|
|
|
|
|
#line 85 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
}
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" </tr>\r\n</table>\r\n");
|
|
|
|
|
|
#line 88 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
if (canShowLogs && (canRemoveAnyLogs || canRemoveOwnLogs))
|
|
{
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" <div");
|
|
|
|
WriteLiteral(" id=\"dialogRemoveLog\"");
|
|
|
|
WriteLiteral(" class=\"dialog\"");
|
|
|
|
WriteLiteral(" title=\"Remove this Comment?\"");
|
|
|
|
WriteLiteral(">\r\n <p>\r\n <i");
|
|
|
|
WriteLiteral(" class=\"fa fa-exclamation-triangle fa-lg\"");
|
|
|
|
WriteLiteral("></i> Are you sure?\r\n </p>\r\n </div>\r\n");
|
|
|
|
|
|
#line 95 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
}
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 96 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
if (canShowAttachments && (canRemoveAnyAttachments || canRemoveOwnAttachments))
|
|
{
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" <div");
|
|
|
|
WriteLiteral(" id=\"dialogRemoveAttachment\"");
|
|
|
|
WriteLiteral(" class=\"dialog\"");
|
|
|
|
WriteLiteral(" title=\"Remove this Attachment?\"");
|
|
|
|
WriteLiteral(">\r\n <p>\r\n <i");
|
|
|
|
WriteLiteral(" class=\"fa fa-exclamation-triangle fa-lg\"");
|
|
|
|
WriteLiteral("></i> Are you sure?\r\n </p>\r\n </div>\r\n");
|
|
|
|
|
|
#line 103 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
}
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 104 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
if (canShowLogs)
|
|
{
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" <script>\r\n if (!document.DiscoFunctions) {\r\n document.Disco" +
|
|
"Functions = {};\r\n }\r\n\r\n $(function () {\r\n var jobId = p" +
|
|
"arseInt(\'");
|
|
|
|
|
|
#line 112 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
Write(Model.Job.Id);
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(@"');
|
|
|
|
//#region Comments
|
|
var $Comments = $('#Comments');
|
|
var $CommentOutput = $Comments.find('.commentOutput');
|
|
var $CommentOutputContainer = $Comments.find('.commentOutputContainer');
|
|
|
|
window.setTimeout(function () {
|
|
$CommentOutput[0].scrollTop = $CommentOutput[0].scrollHeight; // Scroll to Bottom
|
|
}, 0);
|
|
$('#jobDetailTabs').on('tabsactivate', function (event, ui) {
|
|
if (ui.newPanel && ui.newPanel.is('#jobDetailTab-Resources')) {
|
|
$CommentOutput[0].scrollTop = $CommentOutput[0].scrollHeight; // Scroll to Bottom
|
|
}
|
|
});
|
|
|
|
");
|
|
|
|
|
|
#line 128 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 128 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
if (canAddLogs)
|
|
{
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(@"
|
|
//#region Add Logs
|
|
|
|
var $CommentInput = $Comments.find('textarea.commentInput');
|
|
|
|
$Comments.find('.commentInputPost').click(postComment);
|
|
$CommentInput.keypress(function (e) {
|
|
if (e.which == 13 && !e.shiftKey) {
|
|
postComment();
|
|
return false;
|
|
}
|
|
});
|
|
|
|
function postComment() {
|
|
if ($Comments.find('.commentInputPost').hasClass('disabled')) {
|
|
alert('Disconnected from the Disco ICT Server, please refresh this page and try again');
|
|
return;
|
|
}
|
|
|
|
var comment = $CommentInput.val();
|
|
|
|
if (comment == '') {
|
|
alert('Enter a comment to post');
|
|
$CommentInput.focus();
|
|
return;
|
|
}
|
|
|
|
var data = { comment: comment }
|
|
$.ajax({
|
|
url: '");
|
|
|
|
|
|
#line 158 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
Write(Url.Action(MVC.API.Job.CommentPost(Model.Job.Id, null)));
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(@"',
|
|
dataType: 'json',
|
|
data: data,
|
|
success: function (d) {
|
|
if (d.Result == 'OK') {
|
|
// Should be added via Repository Notifications
|
|
// addComment(d.Comment, false);
|
|
$CommentInput.val('').attr('disabled', false).focus();
|
|
} else {
|
|
alert('Unable to post comment: ' + d.Result);
|
|
$CommentInput.attr('disabled', false);
|
|
}
|
|
},
|
|
error: function (jqXHR, textStatus, errorThrown) {
|
|
alert('Unable to post comment: ' + textStatus);
|
|
$CommentInput.attr('disabled', false);
|
|
}
|
|
});
|
|
}
|
|
|
|
//#endregion
|
|
");
|
|
|
|
|
|
#line 179 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
}
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" ");
|
|
|
|
|
|
#line 180 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
if (canRemoveAnyLogs || canRemoveOwnLogs)
|
|
{
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(@"
|
|
//#region Remove Logs
|
|
|
|
var $dialogRemoveLog;
|
|
|
|
$CommentOutput.find('span.remove').click(removePost);
|
|
|
|
function removePost() {
|
|
$this = $(this);
|
|
var data = { id: $this.closest('div').attr('data-logid') };
|
|
|
|
if (!$dialogRemoveLog) {
|
|
$dialogRemoveLog = $('#dialogRemoveLog').dialog({
|
|
resizable: false,
|
|
height: 140,
|
|
modal: true,
|
|
autoOpen: false
|
|
});
|
|
}
|
|
|
|
$dialogRemoveLog.dialog(""enable"").dialog('option', 'buttons', {
|
|
""Remove"": function () {
|
|
$dialogRemoveLog.dialog(""disable"");
|
|
$dialogRemoveLog.dialog(""option"", ""buttons"", null);
|
|
$.ajax({
|
|
url: '");
|
|
|
|
|
|
#line 206 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
Write(Url.Action(MVC.API.Job.CommentRemove()));
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(@"',
|
|
dataType: 'json',
|
|
data: data,
|
|
success: function (d) {
|
|
if (d == 'OK') {
|
|
// Should be removed via Repository Notifications
|
|
//$this.closest('div').slideUp(300).delay(300).queue(function () {
|
|
// $(this).remove();
|
|
//});
|
|
} else {
|
|
alert('Unable to remove comment: ' + d);
|
|
}
|
|
$dialogRemoveLog.dialog(""close"");
|
|
},
|
|
error: function (jqXHR, textStatus, errorThrown) {
|
|
alert('Unable to remove comment: ' + textStatus);
|
|
$dialogRemoveLog.dialog(""close"");
|
|
}
|
|
});
|
|
},
|
|
""Cancel"": function () {
|
|
$dialogRemoveLog.dialog(""close"");
|
|
}
|
|
}).dialog('open');
|
|
|
|
return false;
|
|
}
|
|
|
|
//#endregion
|
|
");
|
|
|
|
|
|
#line 235 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
}
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\r\n function loadLiveComment(key) {\r\n $.ajax({\r\n " +
|
|
" url: \'");
|
|
|
|
|
|
#line 239 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
Write(Url.Action(MVC.API.Job.Comment()));
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\',\r\n dataType: \'json\',\r\n data: { id: key }," +
|
|
"\r\n success: function (d) {\r\n if (d && " +
|
|
"d.JobId == jobId) {\r\n");
|
|
|
|
|
|
#line 244 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 244 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
if (canRemoveAnyLogs)
|
|
{
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("addComment(d, false, true);");
|
|
|
|
|
|
#line 245 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
}
|
|
else if (canRemoveOwnLogs)
|
|
{
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("addComment(d, false, (d.AuthorId === \'");
|
|
|
|
|
|
#line 247 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
Write(CurrentUser.UserId);
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\'));");
|
|
|
|
|
|
#line 247 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
}
|
|
else
|
|
{
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("addComment(d, false, false);");
|
|
|
|
|
|
#line 249 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
}
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\r\n }\r\n },\r\n error: f" +
|
|
"unction (jqXHR, textStatus, errorThrown) {\r\n alert(\'Unabl" +
|
|
"e to load live comment \' + id + \': \' + textStatus);\r\n }\r\n " +
|
|
" });\r\n }\r\n function liveRemoveComment(key) {\r\n " +
|
|
" $CommentOutput.children(\'div[data-logid=\"\' + key + \'\"]\').slideUp(" +
|
|
"300).delay(300).queue(function () {\r\n var $this = $(this);\r\n " +
|
|
" $this.find(\'.timestamp\').livestamp(\'destroy\');\r\n " +
|
|
" $this.remove();\r\n });\r\n }\r\n function" +
|
|
" addComment(c, quick, canRemove) {\r\n var t = \'<div><span class=\"a" +
|
|
"uthor\" />\';\r\n if (canRemove)\r\n t += \'<span cla" +
|
|
"ss=\"remove fa fa-times-circle\" />\';\r\n t += \'<span class=\"timestam" +
|
|
"p\" /><div class=\"comment\" /></div>\';\r\n\r\n var e = $(t);\r\n " +
|
|
" e.attr(\'data-logid\', c.Id);\r\n e.find(\'.author\').text(c.Aut" +
|
|
"hor);\r\n e.find(\'.timestamp\').text(c.TimestampFull).attr(\'title\', " +
|
|
"c.TimestampFull).livestamp(c.TimestampUnixEpoc);\r\n if (canRemove)" +
|
|
"\r\n e.find(\'.remove\').click(removePost);\r\n var " +
|
|
"eComment = e.find(\'.comment\').html(c.HtmlComments);\r\n\r\n $CommentO" +
|
|
"utput.append(e);\r\n\r\n if (!quick) {\r\n e.animate" +
|
|
"({ backgroundColor: \'#ffff99\' }, 500, function () {\r\n e.a" +
|
|
"nimate({ backgroundColor: \'#fafafa\' }, 500, function () {\r\n " +
|
|
" e.css(\'background-color\', \'\');\r\n });\r\n " +
|
|
" });\r\n $CommentOutput.animate({ scrollTop: $CommentOut" +
|
|
"put[0].scrollHeight }, 250)\r\n }\r\n }\r\n\r\n // " +
|
|
"Add Globally Available Functions\r\n document.DiscoFunctions.liveLoadCo" +
|
|
"mment = loadLiveComment;\r\n document.DiscoFunctions.liveRemoveComment " +
|
|
"= liveRemoveComment;\r\n //#endregion\r\n });\r\n </script>\r\n");
|
|
|
|
|
|
#line 297 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
}
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 298 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
if (canShowAttachments)
|
|
{
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(@" <script>
|
|
Shadowbox.init({
|
|
skipSetup: true,
|
|
modal: true
|
|
});
|
|
|
|
if (!document.DiscoFunctions) {
|
|
document.DiscoFunctions = {};
|
|
}
|
|
|
|
$(function () {
|
|
var jobId = parseInt('");
|
|
|
|
|
|
#line 311 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
Write(Model.Job.Id);
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\');\r\n\r\n //#region Attachments\r\n var $Attachments = $(\'#Atta" +
|
|
"chments\');\r\n var $attachmentOutput = $Attachments.find(\'.attachmentOu" +
|
|
"tput\');\r\n\r\n");
|
|
|
|
|
|
#line 317 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 317 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
if (canAddAttachments)
|
|
{
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\r\n //#region Add Attachments\r\n var attachmentUploader = new" +
|
|
" document.Disco.AttachmentUploader(\r\n \'");
|
|
|
|
|
|
#line 321 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
Write(Url.Action(MVC.API.Job.AttachmentUpload(Model.Job.Id, null)));
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\',\r\n $Attachments.find(\'.Disco-AttachmentUpload-DropTarget\'),\r\n " +
|
|
" $Attachments.find(\'.Disco-AttachmentUpload-Progress\'));\r\n\r\n " +
|
|
" var $attachmentInput = $Attachments.find(\'.attachmentInput\');\r\n $" +
|
|
"attachmentInput.find(\'.photo\').click(function () {\r\n if ($(this)." +
|
|
"hasClass(\'disabled\'))\r\n alert(\'Disconnected from the Disco IC" +
|
|
"T Server, please refresh this page and try again\');\r\n else\r\n " +
|
|
" attachmentUploader.uploadImage();\r\n });\r\n $" +
|
|
"attachmentInput.find(\'.upload\').click(function () {\r\n if ($(this)" +
|
|
".hasClass(\'disabled\'))\r\n alert(\'Disconnected from the Disco I" +
|
|
"CT Server, please refresh this page and try again\');\r\n else\r\n " +
|
|
" attachmentUploader.uploadFiles();\r\n });\r\n\r\n " +
|
|
" var resourcesTab;\r\n $(document).on(\'dragover\', function () {\r\n " +
|
|
" if (!resourcesTab) {\r\n var tabs = $Attachments.clo" +
|
|
"sest(\'.ui-tabs\');\r\n resourcesTab = {\r\n " +
|
|
" tabs: tabs,\r\n resourcesIndex: tabs.children(\'ul.ui-tabs-" +
|
|
"nav\').find(\'a[href=\"#jobDetailTab-Resources\"]\').closest(\'li\').index()\r\n " +
|
|
" };\r\n }\r\n var selectedIndex = resourcesT" +
|
|
"ab.tabs.tabs(\'option\', \'active\');\r\n if (resourcesTab.resourcesInd" +
|
|
"ex !== selectedIndex)\r\n resourcesTab.tabs.tabs(\'option\', \'act" +
|
|
"ive\', resourcesTab.resourcesIndex);\r\n });\r\n //#endregion\r\n" +
|
|
" ");
|
|
|
|
|
|
#line 353 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
}
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\r\n");
|
|
|
|
|
|
#line 355 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 355 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
if (canRemoveAnyAttachments || canRemoveOwnAttachments)
|
|
{
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(@"
|
|
//#region Remove Attachments
|
|
|
|
var $dialogRemoveAttachment;
|
|
|
|
$attachmentOutput.find('span.remove').click(removeLocalAttachment);
|
|
|
|
function removeLocalAttachment() {
|
|
$this = $(this).closest('a');
|
|
|
|
var data = { id: $this.attr('data-attachmentid') };
|
|
|
|
if (!$dialogRemoveAttachment) {
|
|
$dialogRemoveAttachment = $('#dialogRemoveAttachment').dialog({
|
|
resizable: false,
|
|
height: 140,
|
|
modal: true,
|
|
autoOpen: false
|
|
});
|
|
}
|
|
|
|
$dialogRemoveAttachment.dialog(""enable"").dialog('option', 'buttons', {
|
|
""Remove"": function () {
|
|
$dialogRemoveAttachment.dialog(""disable"");
|
|
$dialogRemoveAttachment.dialog(""option"", ""buttons"", null);
|
|
$.ajax({
|
|
url: '");
|
|
|
|
|
|
#line 382 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
Write(Url.Action(MVC.API.Job.AttachmentRemove()));
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(@"',
|
|
dataType: 'json',
|
|
data: data,
|
|
success: function (d) {
|
|
if (d == 'OK') {
|
|
// Should be removed via Repository Notifications
|
|
} else {
|
|
alert('Unable to remove attachment: ' + d);
|
|
}
|
|
$dialogRemoveAttachment.dialog(""close"");
|
|
},
|
|
error: function (jqXHR, textStatus, errorThrown) {
|
|
alert('Unable to remove attachment: ' + textStatus);
|
|
$dialogRemoveAttachment.dialog(""close"");
|
|
}
|
|
});
|
|
},
|
|
""Cancel"": function () {
|
|
$dialogRemoveAttachment.dialog(""close"");
|
|
}
|
|
}).dialog('open');
|
|
|
|
return false;
|
|
}
|
|
|
|
//#endregion
|
|
|
|
");
|
|
|
|
|
|
#line 409 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
}
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\r\n function addAttachment(key, quick) {\r\n var data = { " +
|
|
"id: key };\r\n $.ajax({\r\n url: \'");
|
|
|
|
|
|
#line 414 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
Write(Url.Action(MVC.API.Job.Attachment()));
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\',\r\n dataType: \'json\',\r\n data: data,\r\n " +
|
|
" success: function (d) {\r\n if (d.Result == " +
|
|
"\'OK\') {\r\n var a = d.Attachment;\r\n");
|
|
|
|
|
|
#line 420 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 420 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
if (canRemoveAnyAttachments)
|
|
{
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" ");
|
|
|
|
WriteLiteral("buildAttachment(a, true, quick);");
|
|
|
|
WriteLiteral("\r\n");
|
|
|
|
|
|
#line 423 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
}
|
|
else if (canRemoveOwnAttachments)
|
|
{
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" ");
|
|
|
|
WriteLiteral("buildAttachment(a, (a.AuthorId === \'");
|
|
|
|
|
|
#line 426 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
Write(CurrentUser.UserId);
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\'), quick);");
|
|
|
|
WriteLiteral("\r\n");
|
|
|
|
|
|
#line 427 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
}
|
|
else
|
|
{
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" ");
|
|
|
|
WriteLiteral("buildAttachment(a, false, quick);");
|
|
|
|
WriteLiteral("\r\n");
|
|
|
|
|
|
#line 431 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
}
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(@" } else {
|
|
alert('Unable to add attachment: ' + d.Result);
|
|
}
|
|
},
|
|
error: function (jqXHR, textStatus, errorThrown) {
|
|
alert('Unable to add attachment: ' + textStatus);
|
|
}
|
|
});
|
|
}
|
|
function buildAttachment(a, canRemove, quick) {
|
|
if (parseInt(a.ParentId) == jobId) {
|
|
var t = '<a><span class=""icon""><img alt=""Attachment Thumbnail"" /></span><span class=""comments""></span><span class=""author""></span>';
|
|
if (canRemove)
|
|
t += '<span class=""remove fa fa-times-circle""></span>';
|
|
t += '<span class=""timestamp""></span></a>';
|
|
|
|
var e = $(t);
|
|
|
|
e.attr('data-attachmentid', a.Id).attr('data-mimetype', a.MimeType).attr('href', '");
|
|
|
|
|
|
#line 450 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
Write(Url.Action(MVC.API.Job.AttachmentDownload()));
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(@"/' + a.Id);
|
|
e.find('.comments').text(a.Description);
|
|
e.find('.author').text(a.Author);
|
|
e.find('.timestamp').text(a.TimestampFull).attr('title', a.TimestampFull).livestamp(a.TimestampUnixEpoc);
|
|
if (canRemove)
|
|
e.find('.remove').click(removeLocalAttachment);
|
|
if (!quick)
|
|
e.hide();
|
|
$attachmentOutput.append(e);
|
|
document.DiscoFunctions.liveAfterUpdate();
|
|
if (!quick)
|
|
e.show('slow');
|
|
if (a.MimeType.toLowerCase().indexOf('image/') == 0)
|
|
e.shadowbox({ gallery: 'attachments', player: 'img', title: a.Description });
|
|
else
|
|
e.click(onDownload);
|
|
|
|
// Add Thumbnail
|
|
var buildThumbnail = function () {
|
|
var retryCount = 0;
|
|
var img = e.find('.icon img');
|
|
|
|
var setThumbnailUrl = function () {
|
|
img.attr('src', '");
|
|
|
|
|
|
#line 473 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
Write(Url.Action(MVC.API.Job.AttachmentThumbnail()));
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("/\' + a.Id + \'?v=\' + retryCount);\r\n };\r\n " +
|
|
" img.on(\'error\', function () {\r\n img.addClass(\'lo" +
|
|
"ading\');\r\n retryCount++;\r\n " +
|
|
" if (retryCount < 6)\r\n window.setTimeout(setThumb" +
|
|
"nailUrl, retryCount * 250);\r\n });\r\n " +
|
|
" img.on(\'load\', function () {\r\n img.removeClass(\'loa" +
|
|
"ding\');\r\n });\r\n window.setTimeout(" +
|
|
"setThumbnailUrl, 100);\r\n };\r\n buildThumbna" +
|
|
"il();\r\n }\r\n }\r\n\r\n function onDownload() {\r\n" +
|
|
" var $this = $(this);\r\n var url = $this.attr(\'href" +
|
|
"\');\r\n\r\n if ($.connection && $.connection.hub && $.connection.hub." +
|
|
"transport &&\r\n $.connection.hub.transport.nam" +
|
|
"e == \'foreverFrame\') {\r\n // SignalR active with foreverFrame " +
|
|
"transport - use popup window\r\n window.open(url, \'_blank\', \'he" +
|
|
"ight=150,width=250,location=no,menubar=no,resizable=no,scrollbars=no,status=no,t" +
|
|
"oolbar=no\');\r\n } else {\r\n // use iFrame\r\n " +
|
|
" if (!$attachmentDownloadHost) {\r\n $attachm" +
|
|
"entDownloadHost = $(\'<iframe>\')\r\n .attr({ \'src\': url," +
|
|
" \'title\': \'Attachment Download Host\' })\r\n .addClass(\'" +
|
|
"hidden\')\r\n .appendTo(\'body\')\r\n " +
|
|
" .contents();\r\n } else {\r\n $attach" +
|
|
"mentDownloadHost[0].location.href = url;\r\n }\r\n " +
|
|
" }\r\n\r\n return false;\r\n }\r\n\r\n function remov" +
|
|
"eAttachment(key) {\r\n var $element = $attachmentOutput.find(\'a[dat" +
|
|
"a-attachmentid=\"\' + key + \'\"]\');\r\n if ($element.length > 0) {\r\n " +
|
|
" $element.hide(300).delay(300).queue(function () {\r\n " +
|
|
" if ($element.attr(\'data-mimetype\').toLowerCase().indexOf(\'image/\') " +
|
|
"== 0)\r\n Shadowbox.removeCache(this);\r\n " +
|
|
" $element.remove();\r\n document.DiscoFunctions.liv" +
|
|
"eAfterUpdate();\r\n });\r\n }\r\n }\r\n\r\n " +
|
|
" $attachmentOutput.children(\'a\').each(function () {\r\n $t" +
|
|
"his = $(this);\r\n if ($this.attr(\'data-mimetype\').toLowerCase().in" +
|
|
"dexOf(\'image/\') == 0)\r\n $this.shadowbox({ gallery: \'attachmen" +
|
|
"ts\', player: \'img\', title: $this.find(\'.comments\').text() });\r\n e" +
|
|
"lse\r\n $this.click(onDownload);\r\n });\r\n\r\n " +
|
|
" // Add Globally Available Functions\r\n document.DiscoFunctions.liveA" +
|
|
"ddAttachment = addAttachment;\r\n document.DiscoFunctions.liveRemoveAtt" +
|
|
"achment = removeAttachment;\r\n\r\n //#endregion\r\n });\r\n\r\n\r\n </" +
|
|
"script>\r\n");
|
|
|
|
|
|
#line 543 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
}
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 544 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
if (canShowLogs || canShowAttachments)
|
|
{
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(" <script>\r\n $(function () {\r\n var jobId = parseInt(\'");
|
|
|
|
|
|
#line 548 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
Write(Model.Job.Id);
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\');\r\n\r\n //#region LiveEvents\r\n var hub = $.connection.jobUp" +
|
|
"dates;\r\n\r\n // Map Functions\r\n");
|
|
|
|
|
|
#line 554 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
if (canShowLogs)
|
|
{
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\r\n hub.client.addLog = document.DiscoFunctions.liveLoadComment;\r\n " +
|
|
" hub.client.removeLog = document.DiscoFunctions.liveRemoveComment;\r\n " +
|
|
" ");
|
|
|
|
|
|
#line 558 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
}
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
|
|
#line 559 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
if (canShowAttachments)
|
|
{
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral(@"
|
|
hub.client.addAttachment = document.DiscoFunctions.liveAddAttachment;
|
|
hub.client.removeAttachment = document.DiscoFunctions.liveRemoveAttachment;
|
|
|
|
document.DiscoFunctions.liveAfterUpdate = function () {
|
|
var tabLink = $('#jobDetailTab-ResourcesLink');
|
|
var attachmentCount = $('#Attachments').find('.attachmentOutput').children('a').length;
|
|
|
|
var tabHeading = tabLink.text();
|
|
tabHeading = tabHeading.substr(0, tabHeading.indexOf('[') + 1) + attachmentCount + ']';
|
|
tabLink.text(tabHeading);
|
|
}
|
|
");
|
|
|
|
|
|
#line 572 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
}
|
|
|
|
|
|
#line default
|
|
#line hidden
|
|
WriteLiteral("\r\n $.connection.hub.qs = { JobId: jobId };\r\n $.connection.h" +
|
|
"ub.error(onHubFailed);\r\n $.connection.hub.disconnected(onHubFailed);\r" +
|
|
"\n\r\n $.connection.hub.reconnecting(function () {\r\n $(\'#" +
|
|
"CommentsContainer\').find(\'span.action\').addClass(\'disabled\');\r\n $" +
|
|
"(\'#AttachmentsContainer\').find(\'span.action\').addClass(\'disabled\');\r\n " +
|
|
" });\r\n $.connection.hub.reconnected(function () {\r\n $(" +
|
|
"\'#CommentsContainer\').find(\'span.action\').removeClass(\'disabled\');\r\n " +
|
|
" $(\'#AttachmentsContainer\').find(\'span.action\').removeClass(\'disabled\');\r\n " +
|
|
" });\r\n\r\n // Start Connection\r\n $.connection.hub.st" +
|
|
"art(function () {\r\n $(\'#CommentsContainer\').find(\'span.action\').r" +
|
|
"emoveClass(\'disabled\');\r\n $(\'#AttachmentsContainer\').find(\'span.a" +
|
|
"ction\').removeClass(\'disabled\');\r\n }).fail(onHubFailed);\r\n\r\n " +
|
|
" function onHubFailed(error) {\r\n // Disable UI\r\n " +
|
|
" $(\'#CommentsContainer\').find(\'textarea.commentInput\').attr(\'readonly\', \'readonl" +
|
|
"y\');\r\n $(\'#CommentsContainer\').find(\'span.action\').addClass(\'disa" +
|
|
"bled\');\r\n $(\'#AttachmentsContainer\').find(\'span.action\').addClass" +
|
|
"(\'disabled\');\r\n\r\n // Show Dialog Message\r\n if ($(\'" +
|
|
".disconnected-dialog\').length == 0) {\r\n $(\'<div>\')\r\n " +
|
|
" .addClass(\'dialog disconnected-dialog\')\r\n " +
|
|
".html(\'<h3><span class=\"fa-stack fa-lg\"><i class=\"fa fa-wifi fa-stack-1x\"></i><i" +
|
|
" class=\"fa fa-ban fa-stack-2x error\"></i></span>Disconnected from the Disco ICT " +
|
|
"Server</h3><div>This page is not receiving live updates. Please ensure you are c" +
|
|
"onnected to the server, then refresh this page to enable features.</div>\')\r\n " +
|
|
" .dialog({\r\n resizable: false,\r\n " +
|
|
" title: \'Disconnected\',\r\n wi" +
|
|
"dth: 400,\r\n modal: true,\r\n " +
|
|
" buttons: {\r\n \'Refresh Now\': function () {\r\n " +
|
|
" $(this).dialog(\'option\', \'buttons\', null);\r\n " +
|
|
" window.location.reload(true);\r\n " +
|
|
" },\r\n \'Close\': function () {\r\n " +
|
|
" $(this).dialog(\'destroy\');\r\n " +
|
|
" }\r\n }\r\n });\r\n " +
|
|
" }\r\n }\r\n\r\n //#endregion\r\n });\r\n </script" +
|
|
">\r\n");
|
|
|
|
|
|
#line 625 "..\..\Views\Job\JobParts\Resources.cshtml"
|
|
}
|
|
|
|
#line default
|
|
#line hidden
|
|
}
|
|
}
|
|
}
|
|
#pragma warning restore 1591
|