bug fix #171 device batch attachments not working
This commit is contained in:
1 parent
fd3eb80648
commit
bccbb20b84
11 files changed
+336
-135
No files matched your search
@@ -189,6 +189,10 @@
|
||||
<Compile Include="Migrations\202412180604170_DBv25.Designer.cs">
|
||||
<DependentUpon>202412180604170_DBv25.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Migrations\202503140520548_DBv26.cs" />
|
||||
<Compile Include="Migrations\202503140520548_DBv26.Designer.cs">
|
||||
<DependentUpon>202503140520548_DBv26.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Migrations\Configuration.cs" />
|
||||
<Compile Include="Migrations\DiscoDataMigrator.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
@@ -279,6 +283,9 @@
|
||||
<EmbeddedResource Include="Migrations\202412180604170_DBv25.resx">
|
||||
<DependentUpon>202412180604170_DBv25.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Migrations\202503140520548_DBv26.resx">
|
||||
<DependentUpon>202503140520548_DBv26.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
// <auto-generated />
|
||||
namespace Disco.Data.Migrations
|
||||
{
|
||||
using System.Data.Entity.Migrations;
|
||||
using System.Data.Entity.Migrations.Infrastructure;
|
||||
using System.Resources;
|
||||
|
||||
public sealed partial class DBv26 : IMigrationMetadata
|
||||
{
|
||||
private readonly ResourceManager Resources = new ResourceManager(typeof(DBv26));
|
||||
|
||||
string IMigrationMetadata.Id
|
||||
{
|
||||
get { return "202503140520548_DBv26"; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Source
|
||||
{
|
||||
get { return null; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Target
|
||||
{
|
||||
get { return Resources.GetString("Target"); }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
namespace Disco.Data.Migrations
|
||||
{
|
||||
using System;
|
||||
using System.Data.Entity.Migrations;
|
||||
|
||||
public partial class DBv26 : DbMigration
|
||||
{
|
||||
public override void Up()
|
||||
{
|
||||
AlterColumn("dbo.DeviceBatchAttachments", "Comments", c => c.String(maxLength: 500));
|
||||
}
|
||||
|
||||
public override void Down()
|
||||
{
|
||||
AlterColumn("dbo.DeviceBatchAttachments", "Comments", c => c.String(nullable: false, maxLength: 500));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,123 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Target" xml:space="preserve">
|
||||
<value>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 truncated
|
||||
</data>
|
||||
</root>
|
||||
@@ -16,7 +16,7 @@ namespace Disco.Models.Repository
|
||||
[Required, StringLength(500)]
|
||||
public string MimeType { get; set; }
|
||||
public DateTime Timestamp { get; set; }
|
||||
[Required, StringLength(500)]
|
||||
[StringLength(500)]
|
||||
public string Comments { get; set; }
|
||||
|
||||
[NotMapped]
|
||||
|
||||
@@ -652,7 +652,8 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
}
|
||||
|
||||
[DiscoAuthorize(Claims.Config.DeviceBatch.Configure)]
|
||||
public virtual ActionResult AttachmentUpload(int id, string Comments)
|
||||
[HttpPost, ValidateAntiForgeryToken]
|
||||
public virtual ActionResult AttachmentUpload(int id, string comments)
|
||||
{
|
||||
var batch = Database.DeviceBatches.Find(id);
|
||||
if (batch != null)
|
||||
@@ -666,14 +667,14 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
if (string.IsNullOrEmpty(contentType) || contentType.Equals("unknown/unknown", StringComparison.OrdinalIgnoreCase))
|
||||
contentType = MimeTypes.ResolveMimeType(file.FileName);
|
||||
|
||||
var attachment = new Disco.Models.Repository.DeviceBatchAttachment()
|
||||
var attachment = new DeviceBatchAttachment()
|
||||
{
|
||||
DeviceBatchId = batch.Id,
|
||||
TechUserId = CurrentUser.UserId,
|
||||
Filename = file.FileName,
|
||||
MimeType = contentType,
|
||||
Timestamp = DateTime.Now,
|
||||
Comments = Comments
|
||||
Comments = comments
|
||||
};
|
||||
Database.DeviceBatchAttachments.Add(attachment);
|
||||
Database.SaveChanges();
|
||||
|
||||
@@ -668,8 +668,8 @@
|
||||
<tr>
|
||||
<th>Attachments:</th>
|
||||
<td>
|
||||
|
||||
<div id="DeviceBatch_Attachments" class="@(canConfig ? "canAddAttachments" : "cannotAddAttachments")">
|
||||
<div id="DeviceBatch_Attachments" class="@(canConfig ? "canAddAttachments" : "cannotAddAttachments")" data-uploadurl="@(Url.Action(MVC.API.DeviceBatch.AttachmentUpload(Model.DeviceBatch.Id, null)))">
|
||||
@Html.AntiForgeryToken()
|
||||
<div class="Disco-AttachmentUpload-DropTarget">
|
||||
<h2>Drop Attachments Here</h2>
|
||||
</div>
|
||||
@@ -694,7 +694,7 @@
|
||||
{
|
||||
<div class="Disco-AttachmentUpload-Progress"></div>
|
||||
<div class="attachmentInput clearfix">
|
||||
<span class="action upload fa fa-upload disabled" title="Attach File"></span><span class="action photo fa fa-camera disabled" title="Capture Image"></span>
|
||||
<span class="action enabled upload fa fa-upload disabled" title="Attach File"></span><span class="action enabled photo fa fa-camera disabled" title="Capture Image"></span>
|
||||
</div>
|
||||
<div id="dialogRemoveAttachment" class="dialog" title="Remove this Attachment?">
|
||||
<p>
|
||||
@@ -726,20 +726,20 @@
|
||||
$.connection.hub.disconnected(onHubFailed);
|
||||
|
||||
$.connection.hub.reconnecting(function () {
|
||||
$Attachments.find('span.action').addClass('disabled');
|
||||
$Attachments.find('span.action.enabled').addClass('disabled');
|
||||
});
|
||||
$.connection.hub.reconnected(function () {
|
||||
$Attachments.find('span.action').removeClass('disabled');
|
||||
$Attachments.find('span.action.enabled').removeClass('disabled');
|
||||
});
|
||||
|
||||
// Start Connection
|
||||
$.connection.hub.start(function () {
|
||||
$Attachments.find('span.action').removeClass('disabled');
|
||||
$Attachments.find('span.action.enabled').removeClass('disabled');
|
||||
}).fail(onHubFailed);
|
||||
|
||||
function onHubFailed(error) {
|
||||
// Disable UI
|
||||
$Attachments.find('span.action').addClass('disabled');
|
||||
$Attachments.find('span.action.enabled').addClass('disabled');
|
||||
|
||||
// Show Dialog Message
|
||||
if ($('.disconnected-dialog').length == 0) {
|
||||
@@ -876,14 +876,19 @@
|
||||
@if (canConfig)
|
||||
{<text>
|
||||
//#region Add Attachments
|
||||
var attachmentUploader = new document.Disco.AttachmentUploader(
|
||||
'@(Url.Action(MVC.API.DeviceBatch.AttachmentUpload(Model.DeviceBatch.Id, null)))',
|
||||
$Attachments.find('.Disco-AttachmentUpload-DropTarget'),
|
||||
$Attachments.find('.Disco-AttachmentUpload-Progress'));
|
||||
var attachmentUploader = new document.Disco.AttachmentUploader($Attachments);
|
||||
|
||||
var $attachmentInput = $Attachments.find('.attachmentInput');
|
||||
if (window.location.protocol != 'https:') {
|
||||
$attachmentInput.find('.photo')
|
||||
.removeClass('enabled')
|
||||
.addClass('disabled')
|
||||
.attr('title', 'Capture Image: this functionality is only available over a HTTPS connection');
|
||||
}
|
||||
$attachmentInput.find('.photo').click(function () {
|
||||
if ($(this).hasClass('disabled'))
|
||||
if (!$(this).hasClass('enabled'))
|
||||
alert('This functionality is only available over a HTTPS connection');
|
||||
else if ($(this).hasClass('disabled'))
|
||||
alert('Disconnected from the Disco ICT Server, please refresh this page and try again');
|
||||
else
|
||||
attachmentUploader.uploadImage();
|
||||
|
||||
@@ -2001,21 +2001,43 @@ WriteLiteral("><None Specified></span>");
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" </td>\r\n </tr>\r\n <tr>\r\n <th>Attachments:</th>" +
|
||||
"\r\n <td>\r\n\r\n <div");
|
||||
"\r\n <td>\r\n <div");
|
||||
|
||||
WriteLiteral(" id=\"DeviceBatch_Attachments\"");
|
||||
|
||||
WriteAttribute("class", Tuple.Create(" class=\"", 34487), Tuple.Create("\"", 34554)
|
||||
WriteAttribute("class", Tuple.Create(" class=\"", 34485), Tuple.Create("\"", 34552)
|
||||
|
||||
#line 672 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 34495), Tuple.Create<System.Object, System.Int32>(canConfig ? "canAddAttachments" : "cannotAddAttachments"
|
||||
#line 671 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 34493), Tuple.Create<System.Object, System.Int32>(canConfig ? "canAddAttachments" : "cannotAddAttachments"
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 34495), false)
|
||||
, 34493), false)
|
||||
);
|
||||
|
||||
WriteLiteral(">\r\n <div");
|
||||
WriteLiteral(" data-uploadurl=\"");
|
||||
|
||||
|
||||
#line 671 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
Write(Url.Action(MVC.API.DeviceBatch.AttachmentUpload(Model.DeviceBatch.Id, null)));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("\"");
|
||||
|
||||
WriteLiteral(">\r\n");
|
||||
|
||||
WriteLiteral(" ");
|
||||
|
||||
|
||||
#line 672 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
Write(Html.AntiForgeryToken());
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("\r\n <div");
|
||||
|
||||
WriteLiteral(" class=\"Disco-AttachmentUpload-DropTarget\"");
|
||||
|
||||
@@ -2044,14 +2066,14 @@ WriteLiteral(">\r\n");
|
||||
#line hidden
|
||||
WriteLiteral(" <a");
|
||||
|
||||
WriteAttribute("href", Tuple.Create(" href=\"", 35033), Tuple.Create("\"", 35106)
|
||||
WriteAttribute("href", Tuple.Create(" href=\"", 35174), Tuple.Create("\"", 35247)
|
||||
|
||||
#line 681 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 35040), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.API.DeviceBatch.AttachmentDownload(attachment.Id))
|
||||
, Tuple.Create(Tuple.Create("", 35181), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.API.DeviceBatch.AttachmentDownload(attachment.Id))
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 35040), false)
|
||||
, 35181), false)
|
||||
);
|
||||
|
||||
WriteLiteral(" data-attachmentid=\"");
|
||||
@@ -2080,28 +2102,28 @@ WriteLiteral(">\r\n <span");
|
||||
|
||||
WriteLiteral(" class=\"icon\"");
|
||||
|
||||
WriteAttribute("title", Tuple.Create(" title=\"", 35236), Tuple.Create("\"", 35264)
|
||||
WriteAttribute("title", Tuple.Create(" title=\"", 35377), Tuple.Create("\"", 35405)
|
||||
|
||||
#line 682 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 35244), Tuple.Create<System.Object, System.Int32>(attachment.Filename
|
||||
, Tuple.Create(Tuple.Create("", 35385), Tuple.Create<System.Object, System.Int32>(attachment.Filename
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 35244), false)
|
||||
, 35385), false)
|
||||
);
|
||||
|
||||
WriteLiteral(">\r\n <img");
|
||||
|
||||
WriteLiteral(" alt=\"Attachment Thumbnail\"");
|
||||
|
||||
WriteAttribute("src", Tuple.Create(" src=\"", 35339), Tuple.Create("\"", 35414)
|
||||
WriteAttribute("src", Tuple.Create(" src=\"", 35480), Tuple.Create("\"", 35555)
|
||||
|
||||
#line 683 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 35345), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.API.DeviceBatch.AttachmentThumbnail(attachment.Id))
|
||||
, Tuple.Create(Tuple.Create("", 35486), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.API.DeviceBatch.AttachmentThumbnail(attachment.Id))
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 35345), false)
|
||||
, 35486), false)
|
||||
);
|
||||
|
||||
WriteLiteral(" />\r\n </span>\r\n " +
|
||||
@@ -2109,14 +2131,14 @@ WriteLiteral(" />\r\n </span>\r\n
|
||||
|
||||
WriteLiteral(" class=\"comments\"");
|
||||
|
||||
WriteAttribute("title", Tuple.Create(" title=\"", 35523), Tuple.Create("\"", 35551)
|
||||
WriteAttribute("title", Tuple.Create(" title=\"", 35664), Tuple.Create("\"", 35692)
|
||||
|
||||
#line 685 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 35531), Tuple.Create<System.Object, System.Int32>(attachment.Comments
|
||||
, Tuple.Create(Tuple.Create("", 35672), Tuple.Create<System.Object, System.Int32>(attachment.Comments
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 35531), false)
|
||||
, 35672), false)
|
||||
);
|
||||
|
||||
WriteLiteral(">\r\n");
|
||||
@@ -2168,14 +2190,14 @@ WriteLiteral("<span");
|
||||
|
||||
WriteLiteral(" class=\"timestamp\"");
|
||||
|
||||
WriteAttribute("title", Tuple.Create(" title=\"", 35857), Tuple.Create("\"", 35903)
|
||||
WriteAttribute("title", Tuple.Create(" title=\"", 35998), Tuple.Create("\"", 36044)
|
||||
|
||||
#line 688 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
, Tuple.Create(Tuple.Create("", 35865), Tuple.Create<System.Object, System.Int32>(attachment.Timestamp.ToFullDateTime()
|
||||
, Tuple.Create(Tuple.Create("", 36006), Tuple.Create<System.Object, System.Int32>(attachment.Timestamp.ToFullDateTime()
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
, 35865), false)
|
||||
, 36006), false)
|
||||
);
|
||||
|
||||
WriteLiteral(" data-livestamp=\"");
|
||||
@@ -2236,13 +2258,13 @@ WriteLiteral(" class=\"attachmentInput clearfix\"");
|
||||
|
||||
WriteLiteral(">\r\n <span");
|
||||
|
||||
WriteLiteral(" class=\"action upload fa fa-upload disabled\"");
|
||||
WriteLiteral(" class=\"action enabled upload fa fa-upload disabled\"");
|
||||
|
||||
WriteLiteral(" title=\"Attach File\"");
|
||||
|
||||
WriteLiteral("></span><span");
|
||||
|
||||
WriteLiteral(" class=\"action photo fa fa-camera disabled\"");
|
||||
WriteLiteral(" class=\"action enabled photo fa fa-camera disabled\"");
|
||||
|
||||
WriteLiteral(" title=\"Capture Image\"");
|
||||
|
||||
@@ -2305,39 +2327,39 @@ WriteLiteral(@">
|
||||
WriteLiteral("\' };\r\n $.connection.hub.error(onHubFailed);\r\n " +
|
||||
" $.connection.hub.disconnected(onHubFailed);\r\n\r\n " +
|
||||
" $.connection.hub.reconnecting(function () {\r\n " +
|
||||
" $Attachments.find(\'span.action\').addClass(\'disabled\');\r\n " +
|
||||
" });\r\n $.connection.hub.reconnected(fun" +
|
||||
"ction () {\r\n $Attachments.find(\'span.action\').rem" +
|
||||
"oveClass(\'disabled\');\r\n });\r\n\r\n " +
|
||||
" // Start Connection\r\n $.connection.hub.start(fu" +
|
||||
"nction () {\r\n $Attachments.find(\'span.action\').re" +
|
||||
"moveClass(\'disabled\');\r\n }).fail(onHubFailed);\r\n\r\n " +
|
||||
" function onHubFailed(error) {\r\n " +
|
||||
" // Disable UI\r\n $Attachments.find(\'span.a" +
|
||||
"ction\').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 fro" +
|
||||
"m the Disco ICT Server</h3><div>This page is not receiving live updates. Please " +
|
||||
"ensure you are connected to the server, then refresh this page to enable feature" +
|
||||
"s.</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 " +
|
||||
" $Attachments.find(\'span.action.enabled\').addClass(\'disabled\');\r\n " +
|
||||
" });\r\n $.connection.hub.reconne" +
|
||||
"cted(function () {\r\n $Attachments.find(\'span.acti" +
|
||||
"on.enabled\').removeClass(\'disabled\');\r\n });\r\n\r\n " +
|
||||
" // Start Connection\r\n $.connect" +
|
||||
"ion.hub.start(function () {\r\n $Attachments.find(\'" +
|
||||
"span.action.enabled\').removeClass(\'disabled\');\r\n }).f" +
|
||||
"ail(onHubFailed);\r\n\r\n function onHubFailed(error) {\r\n" +
|
||||
" // Disable UI\r\n $" +
|
||||
"Attachments.find(\'span.action.enabled\').addClass(\'disabled\');\r\n\r\n " +
|
||||
" // Show Dialog Message\r\n if ($(\'" +
|
||||
".disconnected-dialog\').length == 0) {\r\n $(\'<d" +
|
||||
"iv>\')\r\n .addClass(\'dialog disconnected-di" +
|
||||
"alog\')\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 er" +
|
||||
"ror\"></i></span>Disconnected from the Disco ICT Server</h3><div>This page is not" +
|
||||
" receiving live updates. Please ensure you are connected to the server, then ref" +
|
||||
"resh this page to enable features.</div>\')\r\n " +
|
||||
" .dialog({\r\n resizable: false,\r\n " +
|
||||
" title: \'Disconnected\',\r\n " +
|
||||
" width: 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 " +
|
||||
" function onAddAttachment(id, quick) {\r\n " +
|
||||
" var data = { id: id };\r\n $.ajax({" +
|
||||
"\r\n url: \'");
|
||||
" $(this).dialog(\'option\', \'buttons" +
|
||||
"\', null);\r\n window.location.r" +
|
||||
"eload(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 function onAddAttachmen" +
|
||||
"t(id, quick) {\r\n var data = { id: id };\r\n " +
|
||||
" $.ajax({\r\n url: \'");
|
||||
|
||||
|
||||
#line 770 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
@@ -2507,51 +2529,47 @@ WriteLiteral("/\' + a.Id + \'?v=\' + retryCount);\r\n
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("\r\n //#region Add Attachments\r\n " +
|
||||
" var attachmentUploader = new document.Disco.AttachmentUploader(\r\n " +
|
||||
" \'");
|
||||
" var attachmentUploader = new document.Disco.AttachmentUploader($Attachments)" +
|
||||
";\r\n\r\n var $attachmentInput = $Attachments.find(\'.atta" +
|
||||
"chmentInput\');\r\n if (window.location.protocol != \'htt" +
|
||||
"ps:\') {\r\n $attachmentInput.find(\'.photo\')\r\n " +
|
||||
" .removeClass(\'enabled\')\r\n " +
|
||||
" .addClass(\'disabled\')\r\n .attr(\'tit" +
|
||||
"le\', \'Capture Image: this functionality is only available over a HTTPS connectio" +
|
||||
"n\');\r\n }\r\n $attachmentInpu" +
|
||||
"t.find(\'.photo\').click(function () {\r\n if (!$(thi" +
|
||||
"s).hasClass(\'enabled\'))\r\n alert(\'This functio" +
|
||||
"nality is only available over a HTTPS connection\');\r\n " +
|
||||
" else if ($(this).hasClass(\'disabled\'))\r\n " +
|
||||
" alert(\'Disconnected from the Disco ICT 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 ICT Server, please refresh " +
|
||||
"this page and try again\');\r\n else\r\n " +
|
||||
" attachmentUploader.uploadFiles();\r\n " +
|
||||
" });\r\n //#endregion\r\n " +
|
||||
"//#region Remove Attachments\r\n $attachmentOutput.find" +
|
||||
"(\'span.remove\').click(removeAttachment);\r\n\r\n function" +
|
||||
" removeAttachment() {\r\n $this = $(this).closest(\'" +
|
||||
"a\');\r\n\r\n var data = { id: $this.attr(\'data-attach" +
|
||||
"mentid\') };\r\n\r\n if (!$dialogRemoveAttachment) {\r\n" +
|
||||
" $dialogRemoveAttachment = $(\'#dialogRemoveAt" +
|
||||
"tachment\').dialog({\r\n resizable: false,\r\n" +
|
||||
" height: 140,\r\n " +
|
||||
" modal: true,\r\n autoOpen: fa" +
|
||||
"lse\r\n });\r\n }\r" +
|
||||
"\n\r\n $dialogRemoveAttachment.dialog(\"enable\");\r\n " +
|
||||
" $dialogRemoveAttachment.dialog(\'option\', \'buttons\'" +
|
||||
", {\r\n \"Remove\": function () {\r\n " +
|
||||
" $dialogRemoveAttachment.dialog(\"disable\");\r\n " +
|
||||
" $dialogRemoveAttachment.dialog(\"option\", \"buttons\"" +
|
||||
", null);\r\n $.ajax({\r\n " +
|
||||
" url: \'");
|
||||
|
||||
|
||||
#line 880 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
Write(Url.Action(MVC.API.DeviceBatch.AttachmentUpload(Model.DeviceBatch.Id, null)));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("\',\r\n $Attachments.find(\'.Disco-AttachmentUpload-DropTa" +
|
||||
"rget\'),\r\n $Attachments.find(\'.Disco-AttachmentUpload-" +
|
||||
"Progress\'));\r\n\r\n var $attachmentInput = $Attachments." +
|
||||
"find(\'.attachmentInput\');\r\n $attachmentInput.find(\'.p" +
|
||||
"hoto\').click(function () {\r\n if ($(this).hasClass" +
|
||||
"(\'disabled\'))\r\n alert(\'Disconnected from the " +
|
||||
"Disco ICT Server, please refresh this page and try again\');\r\n " +
|
||||
" else\r\n attachmentUploader.upload" +
|
||||
"Image();\r\n });\r\n $attachme" +
|
||||
"ntInput.find(\'.upload\').click(function () {\r\n if " +
|
||||
"($(this).hasClass(\'disabled\'))\r\n alert(\'Disco" +
|
||||
"nnected from the Disco ICT Server, please refresh this page and try again\');\r\n " +
|
||||
" else\r\n attachme" +
|
||||
"ntUploader.uploadFiles();\r\n });\r\n " +
|
||||
" //#endregion\r\n //#region Remove Attachments\r\n" +
|
||||
" $attachmentOutput.find(\'span.remove\').click(removeAt" +
|
||||
"tachment);\r\n\r\n function removeAttachment() {\r\n " +
|
||||
" $this = $(this).closest(\'a\');\r\n\r\n " +
|
||||
" var data = { id: $this.attr(\'data-attachmentid\') };\r\n\r\n " +
|
||||
" if (!$dialogRemoveAttachment) {\r\n " +
|
||||
" $dialogRemoveAttachment = $(\'#dialogRemoveAttachment\').dialog({\r\n " +
|
||||
" resizable: false,\r\n " +
|
||||
" height: 140,\r\n modal: true,\r\n " +
|
||||
" autoOpen: false\r\n " +
|
||||
" });\r\n }\r\n\r\n " +
|
||||
" $dialogRemoveAttachment.dialog(\"enable\");\r\n " +
|
||||
"$dialogRemoveAttachment.dialog(\'option\', \'buttons\', {\r\n " +
|
||||
" \"Remove\": function () {\r\n $dia" +
|
||||
"logRemoveAttachment.dialog(\"disable\");\r\n " +
|
||||
"$dialogRemoveAttachment.dialog(\"option\", \"buttons\", null);\r\n " +
|
||||
" $.ajax({\r\n url: \'" +
|
||||
"");
|
||||
|
||||
|
||||
#line 921 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
#line 926 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
Write(Url.Action(MVC.API.DeviceBatch.AttachmentRemove()));
|
||||
|
||||
|
||||
@@ -2579,7 +2597,7 @@ WriteLiteral("\',\r\n dataType: \'jso
|
||||
"endregion\r\n ");
|
||||
|
||||
|
||||
#line 948 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
#line 953 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
}
|
||||
|
||||
|
||||
@@ -2602,13 +2620,13 @@ WriteLiteral(@"
|
||||
");
|
||||
|
||||
|
||||
#line 963 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
#line 968 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 963 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
#line 968 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
if (hideAdvanced)
|
||||
{
|
||||
|
||||
@@ -2642,7 +2660,7 @@ WriteLiteral(@">Show Advanced Options</button>
|
||||
");
|
||||
|
||||
|
||||
#line 979 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
#line 984 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
}
|
||||
|
||||
|
||||
@@ -2658,7 +2676,7 @@ WriteLiteral(">\r\n <th>Linked Groups:\r\n </th>\r\n
|
||||
WriteLiteral(" ");
|
||||
|
||||
|
||||
#line 985 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
#line 990 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
Write(Html.Partial(MVC.Config.Shared.Views.LinkedGroupInstance, new LinkedGroupModel()
|
||||
{
|
||||
CanConfigure = canConfig,
|
||||
@@ -2676,7 +2694,7 @@ WriteLiteral("\r\n");
|
||||
WriteLiteral(" ");
|
||||
|
||||
|
||||
#line 993 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
#line 998 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
Write(Html.Partial(MVC.Config.Shared.Views.LinkedGroupInstance, new LinkedGroupModel()
|
||||
{
|
||||
CanConfigure = canConfig,
|
||||
@@ -2692,13 +2710,13 @@ WriteLiteral(" ");
|
||||
WriteLiteral("\r\n");
|
||||
|
||||
|
||||
#line 1001 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
#line 1006 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 1001 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
#line 1006 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
if (canConfig)
|
||||
{
|
||||
|
||||
@@ -2706,14 +2724,14 @@ WriteLiteral("\r\n");
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 1003 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
#line 1008 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
Write(Html.Partial(MVC.Config.Shared.Views.LinkedGroupShared));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 1003 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
#line 1008 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
|
||||
}
|
||||
|
||||
@@ -2723,7 +2741,7 @@ WriteLiteral("\r\n");
|
||||
WriteLiteral(" </div>\r\n </td>\r\n </tr>\r\n </table>\r\n</div>\r\n");
|
||||
|
||||
|
||||
#line 1010 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
#line 1015 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
Write(Html.Partial(MVC.Config.Shared.Views._DeviceGroupDocumentBulkGenerate, Model));
|
||||
|
||||
|
||||
@@ -2736,13 +2754,13 @@ WriteLiteral(" class=\"actionBar\"");
|
||||
WriteLiteral(">\r\n");
|
||||
|
||||
|
||||
#line 1012 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
#line 1017 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 1012 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
#line 1017 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
if (Model.CanDelete)
|
||||
{
|
||||
|
||||
@@ -2750,14 +2768,14 @@ WriteLiteral(">\r\n");
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 1014 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
#line 1019 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
Write(Html.ActionLinkButton("Delete", MVC.API.DeviceBatch.Delete(Model.DeviceBatch.Id, true), "buttonDelete"));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 1014 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
#line 1019 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
|
||||
}
|
||||
|
||||
@@ -2767,7 +2785,7 @@ WriteLiteral(">\r\n");
|
||||
WriteLiteral(" ");
|
||||
|
||||
|
||||
#line 1016 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
#line 1021 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
if (Model.DeviceCount > 0)
|
||||
{
|
||||
if (Authorization.Has(Claims.Device.Actions.Export))
|
||||
@@ -2777,14 +2795,14 @@ WriteLiteral(" ");
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 1020 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
#line 1025 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
Write(Html.ActionLinkButton("Export Devices", MVC.Device.Export(null, Disco.Models.Services.Devices.DeviceExportTypes.Batch, Model.DeviceBatch.Id)));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 1020 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
#line 1025 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
|
||||
}
|
||||
if (Authorization.Has(Claims.Device.Search) && Model.DeviceCount > 0)
|
||||
@@ -2794,14 +2812,14 @@ WriteLiteral(" ");
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 1024 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
#line 1029 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
Write(Html.ActionLinkButton(string.Format("View {0} Device{1}", Model.DeviceCount, (Model.DeviceCount != 1 ? "s" : null)), MVC.Search.Query(Model.DeviceBatch.Id.ToString(), "DeviceBatch")));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 1024 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
#line 1029 "..\..\Areas\Config\Views\DeviceBatch\Show.cshtml"
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1018,6 +1018,7 @@ h1.Config_DocumentTemplates {
|
||||
.deviceBatches #DeviceBatch_Attachments {
|
||||
border: 1px solid #ccc;
|
||||
background-color: #fff;
|
||||
position: relative;
|
||||
}
|
||||
.deviceBatches #DeviceBatch_Attachments div.attachmentOutput {
|
||||
position: relative;
|
||||
|
||||
@@ -1197,6 +1197,7 @@ h1.Config_DocumentTemplates {
|
||||
#DeviceBatch_Attachments {
|
||||
border: 1px solid @SubtleBorderColour;
|
||||
background-color: @white;
|
||||
position: relative;
|
||||
|
||||
div.attachmentOutput {
|
||||
position: relative;
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
.tableData{border:solid 1px #f4f4f4;border-collapse:collapse;}.tableData>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff;}.tableData>tbody>tr:nth-child(odd)>td{background-color:hsl(0,0%,98.5%);}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4;}.tableData>tbody>tr:hover>td{background-color:hsl(0,0%,97.5%);}.tableData>tfoot>tr>th,.tableData>tfoot>tr>td{background-color:#f4f4f4;}.tableDataDark{border:solid 1px #d8d8d8;border-collapse:collapse;}.tableDataDark td{border:solid 1px #d8d8d8;background-color:#fff;}.tableDataDark th{background-color:#eee;border:solid 1px #d8d8d8;}.tableDataContainer{background-color:#fff;}.tableDataVertical{border:solid 1px #f4f4f4;border-collapse:collapse;}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#f4f4f4;margin:0;padding:0;}.tableDataVertical>tbody>tr>th.name{width:170px;text-align:right;}.tableDataVertical table.sub>tbody>tr:not(:first-child)>th,.tableDataVertical table.sub>tbody>tr:not(:first-child)>td{border-top:1px dashed #aaa;}.tableDataVertical table.sub>tbody>tr>th{font-weight:normal;text-align:right;}.tableDataVertical table.sub>tbody>tr>th.name{text-align:right;}.icon16{display:inline-block;height:16px;width:16px;margin-left:2px;cursor:pointer;}.subtleUntilHover{-moz-opacity:.3;opacity:.3;}.subtleUntilHover:hover{-moz-opacity:1;opacity:1;}#updateAvailableContainer{float:right;border:1px dashed #ddd;background-color:#fff;font-size:.6em;line-height:1em;padding:10px 10px 4px 70px;text-align:right;height:50px;}#updateAvailableContainer i{position:absolute;display:block;height:64px;width:64px;vertical-align:middle;margin-left:-70px;font-size:50px;color:#e51400;}#updateAvailableContainer button{font-size:12px;margin-top:8px;}.Config_HideAdvanced .Config_HideAdvanced_Item{display:none;}.Config_LinkedGroup_Instance{margin:4px 0 8px 4px;padding:4px 0 4px 6px;border-left:4px solid #ccc;background-color:#fff;}.Config_LinkedGroup_Instance div.code{margin-left:2px;}#Config_LinkedGroup_Dialog h3{margin-bottom:6px;}#Config_LinkedGroup_Dialog table.input{margin-top:12px;}#Config_LinkedGroup_Dialog table.input th{text-align:right;}#expressionEditor #expressionEditorExceptionContainer{display:none;border:1px dashed #ff9696;background-color:#ffd8d8;margin:10px 0;padding:10px;}#expressionEditor #expressionEditorContainer{border:1px solid #1e6dab;background-color:#f4f4f4;height:100px;}.expressionTree span.dynatree-node span.dynatree-icon{background-image:url(data:image/png;base64,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);background-position-y:0;}.expressionTree span.dynatree-node.object span.dynatree-icon{background-position-x:0;}.expressionTree span.dynatree-node.parameter span.dynatree-icon{background-position-x:-16px;}.expressionTree span.dynatree-node.function span.dynatree-icon{background-position-x:-32px;}.expressionTree span.dynatreeLine truncated
|
||||
.tableData{border:solid 1px #f4f4f4;border-collapse:collapse;}.tableData>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff;}.tableData>tbody>tr:nth-child(odd)>td{background-color:hsl(0,0%,98.5%);}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4;}.tableData>tbody>tr:hover>td{background-color:hsl(0,0%,97.5%);}.tableData>tfoot>tr>th,.tableData>tfoot>tr>td{background-color:#f4f4f4;}.tableDataDark{border:solid 1px #d8d8d8;border-collapse:collapse;}.tableDataDark td{border:solid 1px #d8d8d8;background-color:#fff;}.tableDataDark th{background-color:#eee;border:solid 1px #d8d8d8;}.tableDataContainer{background-color:#fff;}.tableDataVertical{border:solid 1px #f4f4f4;border-collapse:collapse;}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#f4f4f4;margin:0;padding:0;}.tableDataVertical>tbody>tr>th.name{width:170px;text-align:right;}.tableDataVertical table.sub>tbody>tr:not(:first-child)>th,.tableDataVertical table.sub>tbody>tr:not(:first-child)>td{border-top:1px dashed #aaa;}.tableDataVertical table.sub>tbody>tr>th{font-weight:normal;text-align:right;}.tableDataVertical table.sub>tbody>tr>th.name{text-align:right;}.icon16{display:inline-block;height:16px;width:16px;margin-left:2px;cursor:pointer;}.subtleUntilHover{-moz-opacity:.3;opacity:.3;}.subtleUntilHover:hover{-moz-opacity:1;opacity:1;}#updateAvailableContainer{float:right;border:1px dashed #ddd;background-color:#fff;font-size:.6em;line-height:1em;padding:10px 10px 4px 70px;text-align:right;height:50px;}#updateAvailableContainer i{position:absolute;display:block;height:64px;width:64px;vertical-align:middle;margin-left:-70px;font-size:50px;color:#e51400;}#updateAvailableContainer button{font-size:12px;margin-top:8px;}.Config_HideAdvanced .Config_HideAdvanced_Item{display:none;}.Config_LinkedGroup_Instance{margin:4px 0 8px 4px;padding:4px 0 4px 6px;border-left:4px solid #ccc;background-color:#fff;}.Config_LinkedGroup_Instance div.code{margin-left:2px;}#Config_LinkedGroup_Dialog h3{margin-bottom:6px;}#Config_LinkedGroup_Dialog table.input{margin-top:12px;}#Config_LinkedGroup_Dialog table.input th{text-align:right;}#expressionEditor #expressionEditorExceptionContainer{display:none;border:1px dashed #ff9696;background-color:#ffd8d8;margin:10px 0;padding:10px;}#expressionEditor #expressionEditorContainer{border:1px solid #1e6dab;background-color:#f4f4f4;height:100px;}.expressionTree span.dynatree-node span.dynatree-icon{background-image:url(data:image/png;base64,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);background-position-y:0;}.expressionTree span.dynatree-node.object span.dynatree-icon{background-position-x:0;}.expressionTree span.dynatree-node.parameter span.dynatree-icon{background-position-x:-16px;}.expressionTree span.dynatree-node.function span.dynatree-icon{background-position-x:-32px;}.expressionTree span.dynatreeLine truncated
|
||||
Reference in new issue
Block a user