#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\"");

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=\"", 2939), Tuple.Create("\"", 3014)
            
            #line 56 "..\..\Views\Job\JobParts\Resources.cshtml"
, Tuple.Create(Tuple.Create("", 2947), Tuple.Create<System.Object, System.Int32>(canAddAttachments ? "canAddAttachments" : "cannotAddAttachments"
            
            #line default
            #line hidden
, 2947), 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=\"", 3351), Tuple.Create("\"", 3408)
            
            #line 63 "..\..\Views\Job\JobParts\Resources.cshtml"
, Tuple.Create(Tuple.Create("", 3358), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.API.Job.AttachmentDownload(ja.Id))
            
            #line default
            #line hidden
, 3358), 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=\"", 3518), Tuple.Create("\"", 3538)
            
            #line 64 "..\..\Views\Job\JobParts\Resources.cshtml"
, Tuple.Create(Tuple.Create("", 3526), Tuple.Create<System.Object, System.Int32>(ja.Filename
            
            #line default
            #line hidden
, 3526), false)
);

WriteLiteral(">\r\n                                    <img");

WriteLiteral(" alt=\"Attachment Thumbnail\"");

WriteAttribute("src", Tuple.Create(" src=\"", 3609), Tuple.Create("\"", 3668)
            
            #line 65 "..\..\Views\Job\JobParts\Resources.cshtml"
, Tuple.Create(Tuple.Create("", 3615), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.API.Job.AttachmentThumbnail(ja.Id))
            
            #line default
            #line hidden
, 3615), false)
);

WriteLiteral(" /></span>\r\n                                <span");

WriteLiteral(" class=\"comments\"");

WriteAttribute("title", Tuple.Create(" title=\"", 3735), Tuple.Create("\"", 3755)
            
            #line 66 "..\..\Views\Job\JobParts\Resources.cshtml"
, Tuple.Create(Tuple.Create("", 3743), Tuple.Create<System.Object, System.Int32>(ja.Comments
            
            #line default
            #line hidden
, 3743), 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=\"", 4450), Tuple.Create("\"", 4488)
            
            #line 72 "..\..\Views\Job\JobParts\Resources.cshtml"
                                                                                                                                                             , Tuple.Create(Tuple.Create("", 4458), Tuple.Create<System.Object, System.Int32>(ja.Timestamp.ToFullDateTime()
            
            #line default
            #line hidden
, 4458), 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\"");

WriteLiteral(" title=\"Attach File\"");

WriteLiteral("></span><span");

WriteLiteral(" class=\"action photo fa fa-camera\"");

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>&nbsp;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>&nbsp;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() {
                var comment = $CommentInput.val();
                if (comment != '') {
                    var data = { comment: comment }
                    $.ajax({
                        url: '");

            
            #line 147 "..\..\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 169 "..\..\Views\Job\JobParts\Resources.cshtml"
                   }

            
            #line default
            #line hidden
WriteLiteral("            ");

            
            #line 170 "..\..\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 196 "..\..\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 225 "..\..\Views\Job\JobParts\Resources.cshtml"
                   }

            
            #line default
            #line hidden
WriteLiteral("\r\n            function loadLiveComment(key) {\r\n                $.ajax({\r\n        " +
"            url: \'");

            
            #line 229 "..\..\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 234 "..\..\Views\Job\JobParts\Resources.cshtml"
                                
            
            #line default
            #line hidden
            
            #line 234 "..\..\Views\Job\JobParts\Resources.cshtml"
                                 if (canRemoveAnyLogs)
                                {
            
            #line default
            #line hidden
WriteLiteral("addComment(d, false, true);");

            
            #line 235 "..\..\Views\Job\JobParts\Resources.cshtml"
                                                                         }
                                else if (canRemoveOwnLogs)
                                {
            
            #line default
            #line hidden
WriteLiteral("addComment(d, false, (d.AuthorId === \'");

            
            #line 237 "..\..\Views\Job\JobParts\Resources.cshtml"
                                                                         Write(CurrentUser.UserId);

            
            #line default
            #line hidden
WriteLiteral("\'));");

            
            #line 237 "..\..\Views\Job\JobParts\Resources.cshtml"
                                                                                                             }
                                else
                                {
            
            #line default
            #line hidden
WriteLiteral("addComment(d, false, false);");

            
            #line 239 "..\..\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 287 "..\..\Views\Job\JobParts\Resources.cshtml"
}

            
            #line default
            #line hidden
            
            #line 288 "..\..\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 301 "..\..\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 307 "..\..\Views\Job\JobParts\Resources.cshtml"
            
            
            #line default
            #line hidden
            
            #line 307 "..\..\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 311 "..\..\Views\Job\JobParts\Resources.cshtml"
             Write(Url.Action(MVC.API.Job.AttachmentUpload(Model.Job.Id, null)));

            
            #line default
            #line hidden
WriteLiteral(@"',
                $Attachments.find('.Disco-AttachmentUpload-DropTarget'),
                $Attachments.find('.Disco-AttachmentUpload-Progress'));

            var $attachmentInput = $Attachments.find('.attachmentInput');
            $attachmentInput.find('.photo').click(function () {
                attachmentUploader.uploadImage();
            });
            $attachmentInput.find('.upload').click(function () {
                attachmentUploader.uploadFiles();
            });

            var resourcesTab;
            $(document).on('dragover', function () {
                if (!resourcesTab) {
                    var tabs = $Attachments.closest('.ui-tabs');
                    resourcesTab = {
                        tabs: tabs,
                        resourcesIndex: tabs.children('ul.ui-tabs-nav').find('a[href=""#jobDetailTab-Resources""]').closest('li').index()
                    };
                }
                var selectedIndex = resourcesTab.tabs.tabs('option', 'active');
                if (resourcesTab.resourcesIndex !== selectedIndex)
                    resourcesTab.tabs.tabs('option', 'active', resourcesTab.resourcesIndex);
            });
            //#endregion
            ");

            
            #line 337 "..\..\Views\Job\JobParts\Resources.cshtml"
                   }

            
            #line default
            #line hidden
WriteLiteral("\r\n");

            
            #line 339 "..\..\Views\Job\JobParts\Resources.cshtml"
            
            
            #line default
            #line hidden
            
            #line 339 "..\..\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 366 "..\..\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 393 "..\..\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 398 "..\..\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 404 "..\..\Views\Job\JobParts\Resources.cshtml"
                                
            
            #line default
            #line hidden
            
            #line 404 "..\..\Views\Job\JobParts\Resources.cshtml"
                                 if (canRemoveAnyAttachments)
                                {

            
            #line default
            #line hidden
WriteLiteral("                                ");

WriteLiteral("buildAttachment(a, true, quick);");

WriteLiteral("\r\n");

            
            #line 407 "..\..\Views\Job\JobParts\Resources.cshtml"
                                }
                                else if (canRemoveOwnAttachments)
                                {

            
            #line default
            #line hidden
WriteLiteral("                                ");

WriteLiteral("buildAttachment(a, (a.AuthorId === \'");

            
            #line 410 "..\..\Views\Job\JobParts\Resources.cshtml"
                                                                      Write(CurrentUser.UserId);

            
            #line default
            #line hidden
WriteLiteral("\'), quick);");

WriteLiteral("\r\n");

            
            #line 411 "..\..\Views\Job\JobParts\Resources.cshtml"
                                }
                                else
                                {

            
            #line default
            #line hidden
WriteLiteral("                                ");

WriteLiteral("buildAttachment(a, false, quick);");

WriteLiteral("\r\n");

            
            #line 415 "..\..\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 434 "..\..\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 457 "..\..\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 527 "..\..\Views\Job\JobParts\Resources.cshtml"
}

            
            #line default
            #line hidden
            
            #line 528 "..\..\Views\Job\JobParts\Resources.cshtml"
 if (canShowLogs || canShowAttachments)
{

            
            #line default
            #line hidden
WriteLiteral("    <script>\r\n        $(function () {\r\n            var jobId = parseInt(\'");

            
            #line 532 "..\..\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 538 "..\..\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 542 "..\..\Views\Job\JobParts\Resources.cshtml"
                   }

            
            #line default
            #line hidden
            
            #line 543 "..\..\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 556 "..\..\Views\Job\JobParts\Resources.cshtml"
       }

            
            #line default
            #line hidden
WriteLiteral(@"
            $.connection.hub.qs = { JobId: jobId };
            $.connection.hub.error(onHubError);

            // Start Connection
            $.connection.hub.start().fail(onHubError);

            function onHubError(error) {
                alert('Live-update Error: ' + error);
            }

            //#endregion
        });
    </script>
");

            
            #line 571 "..\..\Views\Job\JobParts\Resources.cshtml"
}
            
            #line default
            #line hidden
        }
    }
}
#pragma warning restore 1591
