document template on import user flag rules
This commit is contained in:
1 parent
1e24844e88
commit
d75663a219
25 files changed
+2568
-660
No files matched your search
@@ -171,6 +171,10 @@
|
|||||||
<Compile Include="Migrations\202102110443550_DBv21.Designer.cs">
|
<Compile Include="Migrations\202102110443550_DBv21.Designer.cs">
|
||||||
<DependentUpon>202102110443550_DBv21.cs</DependentUpon>
|
<DependentUpon>202102110443550_DBv21.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Migrations\202304150715559_DBv22.cs" />
|
||||||
|
<Compile Include="Migrations\202304150715559_DBv22.Designer.cs">
|
||||||
|
<DependentUpon>202304150715559_DBv22.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Migrations\Configuration.cs" />
|
<Compile Include="Migrations\Configuration.cs" />
|
||||||
<Compile Include="Migrations\DiscoDataMigrator.cs" />
|
<Compile Include="Migrations\DiscoDataMigrator.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
@@ -249,6 +253,9 @@
|
|||||||
<EmbeddedResource Include="Migrations\202102110443550_DBv21.resx">
|
<EmbeddedResource Include="Migrations\202102110443550_DBv21.resx">
|
||||||
<DependentUpon>202102110443550_DBv21.cs</DependentUpon>
|
<DependentUpon>202102110443550_DBv21.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Migrations\202304150715559_DBv22.resx">
|
||||||
|
<DependentUpon>202304150715559_DBv22.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Properties\Resources.resx">
|
<EmbeddedResource Include="Properties\Resources.resx">
|
||||||
<Generator>ResXFileCodeGenerator</Generator>
|
<Generator>ResXFileCodeGenerator</Generator>
|
||||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
<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 DBv22 : IMigrationMetadata
|
||||||
|
{
|
||||||
|
private readonly ResourceManager Resources = new ResourceManager(typeof(DBv22));
|
||||||
|
|
||||||
|
string IMigrationMetadata.Id
|
||||||
|
{
|
||||||
|
get { return "202304150715559_DBv22"; }
|
||||||
|
}
|
||||||
|
|
||||||
|
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 DBv22 : DbMigration
|
||||||
|
{
|
||||||
|
public override void Up()
|
||||||
|
{
|
||||||
|
AddColumn("dbo.DocumentTemplates", "OnImportUserFlagRules", c => c.String());
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Down()
|
||||||
|
{
|
||||||
|
DropColumn("dbo.DocumentTemplates", "OnImportUserFlagRules");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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>
|
||||||
@@ -69,6 +69,7 @@
|
|||||||
<Compile Include="Services\Devices\Importing\IDeviceImportColumn.cs" />
|
<Compile Include="Services\Devices\Importing\IDeviceImportColumn.cs" />
|
||||||
<Compile Include="Services\Devices\Importing\IDeviceImportDataReader.cs" />
|
<Compile Include="Services\Devices\Importing\IDeviceImportDataReader.cs" />
|
||||||
<Compile Include="Services\Documents\DocumentTemplatePackage.cs" />
|
<Compile Include="Services\Documents\DocumentTemplatePackage.cs" />
|
||||||
|
<Compile Include="Services\Documents\OnImportUserFlagRule.cs" />
|
||||||
<Compile Include="Services\Jobs\LocationModes.cs" />
|
<Compile Include="Services\Jobs\LocationModes.cs" />
|
||||||
<Compile Include="ClientServices\EnrolmentInformation\Certificate.cs" />
|
<Compile Include="ClientServices\EnrolmentInformation\Certificate.cs" />
|
||||||
<Compile Include="ClientServices\Register.cs" />
|
<Compile Include="ClientServices\Register.cs" />
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ namespace Disco.Models.Repository
|
|||||||
public string OnGenerateExpression { get; set; }
|
public string OnGenerateExpression { get; set; }
|
||||||
[DataType(DataType.MultilineText)]
|
[DataType(DataType.MultilineText)]
|
||||||
public string OnImportAttachmentExpression { get; set; }
|
public string OnImportAttachmentExpression { get; set; }
|
||||||
|
public string OnImportUserFlagRules { get; set; }
|
||||||
|
|
||||||
// Feature Request 2012-05-10 by G#: https://disco.uservoice.com/forums/159707-feedback/suggestions/2811092-document-template-option-flatten-form-on-generate
|
// Feature Request 2012-05-10 by G#: https://disco.uservoice.com/forums/159707-feedback/suggestions/2811092-document-template-option-flatten-form-on-generate
|
||||||
public bool FlattenForm { get; set; }
|
public bool FlattenForm { get; set; }
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
using Disco.Models.Repository;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using System;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace Disco.Models.Services.Documents
|
||||||
|
{
|
||||||
|
public class OnImportUserFlagRule
|
||||||
|
{
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
public int FlagId { get; set; }
|
||||||
|
[StringLength(50)]
|
||||||
|
public string UserId { get; set; }
|
||||||
|
public bool AddFlag { get; set; }
|
||||||
|
public string Comments { get; set; }
|
||||||
|
|
||||||
|
[JsonIgnore]
|
||||||
|
public User User { get; set; }
|
||||||
|
[JsonIgnore]
|
||||||
|
public UserFlag UserFlag { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
using System.Collections.Generic;
|
using Disco.Models.Services.Documents;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace Disco.Models.UI.Config.DocumentTemplate
|
namespace Disco.Models.UI.Config.DocumentTemplate
|
||||||
{
|
{
|
||||||
@@ -11,6 +12,9 @@ namespace Disco.Models.UI.Config.DocumentTemplate
|
|||||||
string BulkGenerateDownloadId { get; }
|
string BulkGenerateDownloadId { get; }
|
||||||
string BulkGenerateDownloadFilename { get; }
|
string BulkGenerateDownloadFilename { get; }
|
||||||
|
|
||||||
|
List<Repository.UserFlag> UserFlags { get; set; }
|
||||||
|
List<OnImportUserFlagRule> OnImportUserFlagRules { get; }
|
||||||
|
|
||||||
List<Repository.JobType> JobTypes { get; set; }
|
List<Repository.JobType> JobTypes { get; set; }
|
||||||
|
|
||||||
List<string> Scopes { get; }
|
List<string> Scopes { get; }
|
||||||
|
|||||||
@@ -251,19 +251,33 @@ namespace Disco.Services.Documents.AttachmentImport
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Identifier.DocumentTemplate != null && !string.IsNullOrWhiteSpace(Identifier.DocumentTemplate.OnImportAttachmentExpression))
|
if (Identifier.DocumentTemplate != null)
|
||||||
{
|
{
|
||||||
try
|
if (!string.IsNullOrWhiteSpace(Identifier.DocumentTemplate.OnImportAttachmentExpression))
|
||||||
{
|
{
|
||||||
var expressionResult = Identifier.DocumentTemplate.EvaluateOnAttachmentImportExpression(attachment, Identifier.Target, Database, creatorUser, Identifier.TimeStamp, PageIdentifiers);
|
try
|
||||||
DocumentsLog.LogImportAttachmentExpressionEvaluated(Identifier.DocumentTemplate, Identifier.Target, attachment, expressionResult);
|
{
|
||||||
|
var expressionResult = Identifier.DocumentTemplate.EvaluateOnAttachmentImportExpression(attachment, Identifier.Target, Database, creatorUser, Identifier.TimeStamp, PageIdentifiers);
|
||||||
|
DocumentsLog.LogImportAttachmentExpressionEvaluated(Identifier.DocumentTemplate, Identifier.Target, attachment, expressionResult);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
SystemLog.LogException("Document Importer - OnImportAttachmentExpression", ex);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
|
||||||
|
if (Identifier.DocumentTemplate.OnImportUserFlagRules != null)
|
||||||
{
|
{
|
||||||
SystemLog.LogException("Document Importer - OnImportAttachmentExpression", ex);
|
var rules = Identifier.DocumentTemplate.GetOnImportUserFlagRules();
|
||||||
|
|
||||||
|
foreach ( var rule in rules)
|
||||||
|
{
|
||||||
|
rule.Apply(Database, Identifier.Target);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return attachment;
|
return attachment;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
using Disco.Data.Repository;
|
using Disco.Data.Repository;
|
||||||
using Disco.Models.Repository;
|
using Disco.Models.Repository;
|
||||||
|
using Disco.Models.Services.Documents;
|
||||||
using Disco.Services.Authorization;
|
using Disco.Services.Authorization;
|
||||||
using Disco.Services.Interop.ActiveDirectory;
|
using Disco.Services.Interop.ActiveDirectory;
|
||||||
using Disco.Services.Users;
|
using Disco.Services.Users;
|
||||||
|
using Newtonsoft.Json;
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Data.Entity;
|
using System.Data.Entity;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
@@ -168,5 +171,148 @@ namespace Disco.Services
|
|||||||
if (target == null)
|
if (target == null)
|
||||||
throw new ArgumentException("Target not found", nameof(targetId));
|
throw new ArgumentException("Target not found", nameof(targetId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static IEnumerable<OnImportUserFlagRule> GetOnImportUserFlagRuleDetails(this DocumentTemplate template, DiscoDataContext database)
|
||||||
|
{
|
||||||
|
foreach (var rule in GetOnImportUserFlagRules(template))
|
||||||
|
{
|
||||||
|
var detail = rule.AddDetails(database);
|
||||||
|
|
||||||
|
if (detail == null)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
yield return detail;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IEnumerable<OnImportUserFlagRule> GetOnImportUserFlagRules(this DocumentTemplate template)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrWhiteSpace(template.OnImportUserFlagRules))
|
||||||
|
return Enumerable.Empty<OnImportUserFlagRule>();
|
||||||
|
else
|
||||||
|
return JsonConvert.DeserializeObject<List<OnImportUserFlagRule>>(template.OnImportUserFlagRules);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static OnImportUserFlagRule AddDetails(this OnImportUserFlagRule rule, DiscoDataContext database)
|
||||||
|
{
|
||||||
|
rule.User = database.Users.FirstOrDefault(u => u.UserId == rule.UserId);
|
||||||
|
rule.UserFlag = database.UserFlags.FirstOrDefault(f => f.Id == rule.FlagId);
|
||||||
|
|
||||||
|
if (rule.User == null || rule.UserFlag == null)
|
||||||
|
return null;
|
||||||
|
else
|
||||||
|
return rule;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static OnImportUserFlagRule AddOnImportUserFlagRule(this DocumentTemplate template, DiscoDataContext database, OnImportUserFlagRule rule)
|
||||||
|
{
|
||||||
|
List<OnImportUserFlagRule> rules;
|
||||||
|
|
||||||
|
if (string.IsNullOrWhiteSpace(template.OnImportUserFlagRules))
|
||||||
|
rules = new List<OnImportUserFlagRule>();
|
||||||
|
else
|
||||||
|
rules = JsonConvert.DeserializeObject<List<OnImportUserFlagRule>>(template.OnImportUserFlagRules);
|
||||||
|
|
||||||
|
// validate user id
|
||||||
|
rule.User = database.Users.FirstOrDefault(u => u.UserId == rule.UserId);
|
||||||
|
if (rule.User == null)
|
||||||
|
throw new ArgumentException("Unknown rule user id", nameof(rule));
|
||||||
|
|
||||||
|
// validate user flag
|
||||||
|
rule.UserFlag = database.UserFlags.FirstOrDefault(f => f.Id == rule.FlagId);
|
||||||
|
if (rule.UserFlag == null)
|
||||||
|
throw new ArgumentException("Unknown rule user flag", nameof(rule));
|
||||||
|
|
||||||
|
// validate no existing matching rule
|
||||||
|
if (rules.Any(r => r.FlagId == rule.FlagId))
|
||||||
|
throw new ArgumentException("This document template already has a rule for this user flag", nameof(rule));
|
||||||
|
|
||||||
|
rule.Id = Guid.NewGuid();
|
||||||
|
|
||||||
|
if (string.IsNullOrWhiteSpace(rule.Comments))
|
||||||
|
rule.Comments = null;
|
||||||
|
|
||||||
|
rules.Add(rule);
|
||||||
|
template.OnImportUserFlagRules = JsonConvert.SerializeObject(rules);
|
||||||
|
|
||||||
|
database.SaveChanges();
|
||||||
|
|
||||||
|
return rule;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool RemoveOnImportUserFlagRule(this DocumentTemplate template, DiscoDataContext database, Guid id)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrWhiteSpace(template.OnImportUserFlagRules))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
var rules = JsonConvert.DeserializeObject<List<OnImportUserFlagRule>>(template.OnImportUserFlagRules);
|
||||||
|
|
||||||
|
if (rules.RemoveAll(r => r.Id == id) == 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
template.OnImportUserFlagRules = JsonConvert.SerializeObject(rules);
|
||||||
|
database.SaveChanges();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Apply(this OnImportUserFlagRule rule, DiscoDataContext database, IAttachmentTarget target)
|
||||||
|
{
|
||||||
|
string userId;
|
||||||
|
if (target is User targetUser)
|
||||||
|
userId = targetUser.UserId;
|
||||||
|
else if (target is Device targetDevice && targetDevice.AssignedUserId != null)
|
||||||
|
userId = targetDevice.AssignedUserId;
|
||||||
|
else if (target is Job targetJob && targetJob.UserId != null)
|
||||||
|
userId = targetJob.UserId;
|
||||||
|
else
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (userId == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var user = database.Users.Include(u => u.UserFlagAssignments).FirstOrDefault(u => u.UserId == userId);
|
||||||
|
|
||||||
|
if (user == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var techUser = database.Users.FirstOrDefault(u => u.UserId == rule.UserId);
|
||||||
|
if (techUser == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// remove flag
|
||||||
|
if (!rule.AddFlag)
|
||||||
|
{
|
||||||
|
var flagAssignment = user.UserFlagAssignments.FirstOrDefault(a => a.RemovedDate == null && a.UserFlagId == rule.FlagId);
|
||||||
|
if (flagAssignment != null)
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrWhiteSpace(rule.Comments))
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrWhiteSpace(flagAssignment.Comments))
|
||||||
|
flagAssignment.Comments = string.Concat(flagAssignment.Comments, Environment.NewLine, rule.Comments);
|
||||||
|
else
|
||||||
|
flagAssignment.Comments = rule.Comments;
|
||||||
|
}
|
||||||
|
flagAssignment.OnRemoveUnsafe(database, techUser);
|
||||||
|
}
|
||||||
|
database.SaveChanges();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// already has flag?
|
||||||
|
if (rule.AddFlag && user.UserFlagAssignments.Any(a => a.RemovedDate == null && a.UserFlagId == rule.FlagId))
|
||||||
|
return;
|
||||||
|
|
||||||
|
// add flag
|
||||||
|
var userFlag = database.UserFlags.FirstOrDefault(f => f.Id == rule.FlagId);
|
||||||
|
if (userFlag == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
user.OnAddUserFlagUnsafe(database, userFlag, techUser, rule.Comments);
|
||||||
|
|
||||||
|
database.SaveChanges();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -14,10 +14,11 @@ using Disco.Services.Web;
|
|||||||
using Disco.Web.Areas.API.Models.DocumentTemplate;
|
using Disco.Web.Areas.API.Models.DocumentTemplate;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Data.Entity;
|
using System.Data.Entity;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text.RegularExpressions;
|
using System.Net;
|
||||||
using System.Web;
|
using System.Web;
|
||||||
using System.Web.Mvc;
|
using System.Web.Mvc;
|
||||||
using System.Web.UI.WebControls;
|
using System.Web.UI.WebControls;
|
||||||
@@ -1209,6 +1210,68 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HttpPost, ValidateAntiForgeryToken]
|
||||||
|
[DiscoAuthorizeAll(Claims.Config.DocumentTemplate.Configure, Claims.Config.UserFlag.Configure)]
|
||||||
|
public virtual ActionResult RemoveOnImportUserFlagRule([Required] string id, Guid? ruleId = null)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var template = Database.DocumentTemplates.FirstOrDefault(t => t.Id == id);
|
||||||
|
|
||||||
|
if (template == null)
|
||||||
|
throw new ArgumentException("Unknown document template", nameof(id));
|
||||||
|
|
||||||
|
template.RemoveOnImportUserFlagRule(Database, ruleId.Value);
|
||||||
|
|
||||||
|
return new HttpStatusCodeResult(HttpStatusCode.OK);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return new HttpStatusCodeResult(HttpStatusCode.BadRequest, ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual ActionResult AddOnImportUserFlagRule([Required] string id, bool? addFlag = null, int? userFlagId = null, string comments = null)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var template = Database.DocumentTemplates.FirstOrDefault(t => t.Id == id);
|
||||||
|
|
||||||
|
if (template == null)
|
||||||
|
throw new ArgumentException("Unknown document template", nameof(id));
|
||||||
|
|
||||||
|
var rule = new OnImportUserFlagRule()
|
||||||
|
{
|
||||||
|
AddFlag = addFlag.Value,
|
||||||
|
FlagId = userFlagId.Value,
|
||||||
|
UserId = Authorization.User.UserId,
|
||||||
|
Comments = comments,
|
||||||
|
};
|
||||||
|
|
||||||
|
rule = template.AddOnImportUserFlagRule(Database, rule);
|
||||||
|
|
||||||
|
var model = new AddOnImportUserFlagRuleModel()
|
||||||
|
{
|
||||||
|
Id = rule.Id,
|
||||||
|
FlagId = rule.FlagId,
|
||||||
|
UserId = rule.UserId,
|
||||||
|
AddFlag = rule.AddFlag,
|
||||||
|
Comments = rule.Comments,
|
||||||
|
UserDisplayName = rule.User.DisplayName,
|
||||||
|
UserIdFriendly = rule.User.FriendlyId(),
|
||||||
|
UserFlagName = rule.UserFlag.Name,
|
||||||
|
UserFlagIcon = rule.UserFlag.Icon,
|
||||||
|
UserFlagColour = rule.UserFlag.IconColour,
|
||||||
|
};
|
||||||
|
|
||||||
|
return Json(model);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return new HttpStatusCodeResult(HttpStatusCode.BadRequest, ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Handlers
|
#region Handlers
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
using System;
|
||||||
|
|
||||||
|
namespace Disco.Web.Areas.API.Models.DocumentTemplate
|
||||||
|
{
|
||||||
|
public class AddOnImportUserFlagRuleModel
|
||||||
|
{
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
public int FlagId { get; set; }
|
||||||
|
public string UserId { get; set; }
|
||||||
|
public bool AddFlag { get; set; }
|
||||||
|
public string Comments { get; set; }
|
||||||
|
|
||||||
|
public string UserDisplayName { get; set; }
|
||||||
|
public string UserIdFriendly { get; set; }
|
||||||
|
|
||||||
|
public string UserFlagIcon { get; set; }
|
||||||
|
public string UserFlagColour { get; set; }
|
||||||
|
public string UserFlagName { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
using Disco.Data.Repository;
|
using Disco.Data.Repository;
|
||||||
using Disco.Models.Repository;
|
using Disco.Models.Repository;
|
||||||
|
using Disco.Models.Services.Documents;
|
||||||
using Disco.Models.UI.Config.DocumentTemplate;
|
using Disco.Models.UI.Config.DocumentTemplate;
|
||||||
|
using Disco.Services;
|
||||||
using Disco.Services.Documents.ManagedGroups;
|
using Disco.Services.Documents.ManagedGroups;
|
||||||
using Disco.Services.Expressions;
|
using Disco.Services.Expressions;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@@ -18,6 +20,9 @@ namespace Disco.Web.Areas.Config.Models.DocumentTemplate
|
|||||||
public List<Expression> TemplateExpressions { get; set; }
|
public List<Expression> TemplateExpressions { get; set; }
|
||||||
public int TemplatePageCount { get { return TemplatePagesHaveAttachmentId?.Count() ?? 0; } }
|
public int TemplatePageCount { get { return TemplatePagesHaveAttachmentId?.Count() ?? 0; } }
|
||||||
|
|
||||||
|
public List<Disco.Models.Repository.UserFlag> UserFlags { get; set; }
|
||||||
|
public List<OnImportUserFlagRule> OnImportUserFlagRules { get; set; }
|
||||||
|
|
||||||
public List<JobType> JobTypes { get; set; }
|
public List<JobType> JobTypes { get; set; }
|
||||||
|
|
||||||
public List<string> Scopes
|
public List<string> Scopes
|
||||||
@@ -53,6 +58,9 @@ namespace Disco.Web.Areas.Config.Models.DocumentTemplate
|
|||||||
|
|
||||||
if (this.JobTypes == null)
|
if (this.JobTypes == null)
|
||||||
JobTypes = Database.JobTypes.Include("JobSubTypes").ToList();
|
JobTypes = Database.JobTypes.Include("JobSubTypes").ToList();
|
||||||
|
|
||||||
|
UserFlags = Database.UserFlags.ToList();
|
||||||
|
OnImportUserFlagRules = DocumentTemplate.GetOnImportUserFlagRuleDetails(Database).ToList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -13,7 +13,8 @@
|
|||||||
Model.DocumentTemplate.FilterExpression == null &&
|
Model.DocumentTemplate.FilterExpression == null &&
|
||||||
Model.DocumentTemplate.OnGenerateExpression == null &&
|
Model.DocumentTemplate.OnGenerateExpression == null &&
|
||||||
Model.DocumentTemplate.OnImportAttachmentExpression == null &&
|
Model.DocumentTemplate.OnImportAttachmentExpression == null &&
|
||||||
Model.TemplateExpressions.All(e => e.All(p => !p.ParseError));
|
Model.TemplateExpressions.All(e => e.All(p => !p.ParseError) &&
|
||||||
|
!Model.OnImportUserFlagRules.Any());
|
||||||
|
|
||||||
#region Can Bulk Generate
|
#region Can Bulk Generate
|
||||||
var canBulkGenerate = Authorization.Has(Claims.Config.DocumentTemplate.BulkGenerate);
|
var canBulkGenerate = Authorization.Has(Claims.Config.DocumentTemplate.BulkGenerate);
|
||||||
@@ -679,209 +680,514 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>
|
<th>
|
||||||
Linked Groups:
|
On Import <br /> User Flag Rules:
|
||||||
</th>
|
</th>
|
||||||
<td>
|
<td>
|
||||||
<div>
|
@if (canConfig && Authorization.Has(Claims.Config.UserFlag.Configure))
|
||||||
@Html.Partial(MVC.Config.Shared.Views.LinkedGroupInstance, new LinkedGroupModel()
|
{
|
||||||
{
|
<table id="DocumentTemplate_OnImportUserFlagRules" class="tableData">
|
||||||
CanConfigure = canConfig,
|
<thead>
|
||||||
CategoryDescription = DocumentTemplateUsersManagedGroup.GetCategoryDescription(Model.DocumentTemplate),
|
<tr>
|
||||||
Description = DocumentTemplateUsersManagedGroup.GetDescription(Model.DocumentTemplate),
|
<td>Action</td>
|
||||||
ManagedGroup = Model.UsersLinkedGroup,
|
<td>User Flag</td>
|
||||||
IncludeFilterBeginDate = true,
|
<td>Created By</td>
|
||||||
UpdateUrl = Url.Action(MVC.API.DocumentTemplate.UpdateUsersLinkedGroup(Model.DocumentTemplate.Id, redirect: true))
|
<td>Comments</td>
|
||||||
})
|
<td> </td>
|
||||||
@Html.Partial(MVC.Config.Shared.Views.LinkedGroupInstance, new LinkedGroupModel()
|
</tr>
|
||||||
{
|
</thead>
|
||||||
CanConfigure = canConfig,
|
<tbody>
|
||||||
CategoryDescription = DocumentTemplateDevicesManagedGroup.GetCategoryDescription(Model.DocumentTemplate),
|
<tr class="@(Model.OnImportUserFlagRules.Any() ? "hidden" : null)">
|
||||||
Description = DocumentTemplateDevicesManagedGroup.GetDescription(Model.DocumentTemplate),
|
<td colspan="5"><span class="smallMessage"><None Specified></span></td>
|
||||||
ManagedGroup = Model.DevicesLinkedGroup,
|
</tr>
|
||||||
IncludeFilterBeginDate = true,
|
@foreach (var rule in Model.OnImportUserFlagRules)
|
||||||
UpdateUrl = Url.Action(MVC.API.DocumentTemplate.UpdateDevicesLinkedGroup(Model.DocumentTemplate.Id, redirect: true))
|
{
|
||||||
})
|
<tr data-id="@rule.Id">
|
||||||
@if (canConfig)
|
<td>@(rule.AddFlag ? "Assign" : "Remove")</td>
|
||||||
{
|
<td>
|
||||||
@Html.Partial(MVC.Config.Shared.Views.LinkedGroupShared)
|
<i class="fa fa-@(rule.UserFlag.Icon) fa-lg d-@(rule.UserFlag.IconColour)"></i>
|
||||||
}
|
@if (Authorization.Has(Claims.Config.UserFlag.Configure))
|
||||||
</div>
|
{
|
||||||
</td>
|
<span>@Html.ActionLink(rule.UserFlag.Name, MVC.Config.UserFlag.Index(rule.UserFlag.Id))</span>
|
||||||
</tr>
|
}
|
||||||
</tbody>
|
else
|
||||||
</table>
|
{
|
||||||
</div>
|
<span>@rule.UserFlag.Name</span>
|
||||||
<div class="Config_HideAdvanced_Item">
|
}
|
||||||
<h2>Template Expressions</h2>
|
</td>
|
||||||
@Html.Partial(MVC.Config.DocumentTemplate.Views._ExpressionsTable, Model.TemplateExpressions)
|
<td>
|
||||||
</div>
|
@if (Authorization.Has(Claims.User.Show))
|
||||||
</div>
|
{
|
||||||
<div id="dialogConfirmDelete" title="Delete this Document Template?">
|
<span>@Html.ActionLink(string.Format("{0} ({1})", rule.User.DisplayName, rule.User.FriendlyId()), MVC.User.Show(rule.User.UserId))</span>
|
||||||
<p>
|
}
|
||||||
<i class="fa fa-exclamation-triangle fa-lg warning"></i>This item will be permanently deleted and cannot be recovered.<br />
|
else
|
||||||
<em>
|
{
|
||||||
This <strong>will not delete attachments</strong> which have already been imported,
|
<span>@string.Format("{0} ({1})", rule.User.DisplayName, rule.User.FriendlyId())</span>
|
||||||
but any generated documents will no longer be automatically imported.
|
}
|
||||||
</em><br />
|
</td>
|
||||||
Are you sure?
|
<td>
|
||||||
</p>
|
@if (string.IsNullOrWhiteSpace(rule.Comments))
|
||||||
</div>
|
{
|
||||||
<script type="text/javascript">
|
<span> </span>
|
||||||
$(function () {
|
}
|
||||||
var button = $('#buttonDelete');
|
else
|
||||||
var buttonDialog = $("#dialogConfirmDelete");
|
{
|
||||||
var buttonLink = button.attr('href');
|
<span class="whitespace-pre-wrap">@rule.Comments</span>
|
||||||
button.attr('href', '#');
|
}
|
||||||
button.click(function () {
|
</td>
|
||||||
buttonDialog.dialog('open');
|
<td>
|
||||||
return false;
|
<i class="fa fa-times-circle fa-lg ajaxRemove" title="Remove"></i>
|
||||||
});
|
<i class="ajaxLoading" title="Loading..."></i>
|
||||||
buttonDialog.dialog({
|
</td>
|
||||||
resizable: false,
|
</tr>
|
||||||
modal: true,
|
|
||||||
autoOpen: false,
|
|
||||||
buttons: {
|
|
||||||
"Delete": function () {
|
|
||||||
$this = $(this);
|
|
||||||
$this.dialog('disable');
|
|
||||||
$this.dialog("option", "buttons", null);
|
|
||||||
window.location.href = buttonLink;
|
|
||||||
},
|
|
||||||
Cancel: function () {
|
|
||||||
$(this).dialog("close");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
<div class="actionBar">
|
|
||||||
@if (hideAdvanced)
|
|
||||||
{
|
|
||||||
<button id="Config_HideAdvanced_Show" class="button">Show Advanced Options</button>
|
|
||||||
<script>
|
|
||||||
$(function () {
|
|
||||||
$('#Config_HideAdvanced_Show').click(function () {
|
|
||||||
$('#Config_DocumentTemplates_Show').removeClass('Config_HideAdvanced');
|
|
||||||
$(this).remove();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
}
|
|
||||||
@if (Authorization.Has(Claims.Config.Show))
|
|
||||||
{
|
|
||||||
@Html.ActionLinkButton("Expression Browser", MVC.Config.DocumentTemplate.ExpressionBrowser())
|
|
||||||
}
|
|
||||||
@if (canBulkGenerate)
|
|
||||||
{
|
|
||||||
if (Model.DocumentTemplate.Scope == DocumentTemplate.DocumentTemplateScopes.User)
|
|
||||||
{
|
|
||||||
@Html.ActionLinkButton("Bulk Generate", MVC.Config.DocumentTemplate.BulkGenerate(Model.DocumentTemplate.Id))
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<a id="buttonBulkGenerate" href="#" class="button">Bulk Generate</a>
|
|
||||||
<div id="dialogBulkGenerate" class="hiddenDialog dialog-bulk-generate" title="Bulk Generate: @(Model.DocumentTemplate.Id)">
|
|
||||||
<div class="brief">
|
|
||||||
@switch (Model.DocumentTemplate.Scope)
|
|
||||||
{
|
|
||||||
case "Device":
|
|
||||||
<div>
|
|
||||||
Enter multiple <span class="scopeDescBulkGenerate">Device Serial Numbers</span> separated by <code><new line></code>, commas (<code>,</code>) or semicolons (<code>;</code>).
|
|
||||||
</div>
|
|
||||||
<div class="examples clearfix">
|
|
||||||
<h4>Examples:</h4>
|
|
||||||
<div class="example1 code">
|
|
||||||
01234567<br />
|
|
||||||
ABCD9876<br />
|
|
||||||
8VQ6G2R
|
|
||||||
</div>
|
|
||||||
<div class="example2 code">01234567,ABCD9876,8VQ6G2R</div>
|
|
||||||
<div class="example3 code">01234567;ABCD9876;8VQ6G2R</div>
|
|
||||||
</div>
|
|
||||||
break;
|
|
||||||
case "Job":
|
|
||||||
<div>
|
|
||||||
Enter multiple <span class="scopeDescBulkGenerate">Job Ids</span> separated by <code><new line></code>, commas (<code>,</code>) or semicolons (<code>;</code>).
|
|
||||||
</div>
|
|
||||||
<div class="examples clearfix">
|
|
||||||
<h4>Examples:</h4>
|
|
||||||
<div class="example1 code">
|
|
||||||
86<br />
|
|
||||||
99<br />
|
|
||||||
44
|
|
||||||
</div>
|
|
||||||
<div class="example2 code">86,99,44</div>
|
|
||||||
<div class="example3 code">86;99;44</div>
|
|
||||||
</div>
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
</div>
|
|
||||||
@using (Html.BeginForm(MVC.API.DocumentTemplate.BulkGenerate(Model.DocumentTemplate.Id), FormMethod.Post))
|
|
||||||
{
|
|
||||||
<div class="field-validation-valid" data-valmsg-replace="true" data-valmsg-for="DataIds"></div>
|
|
||||||
<textarea id="inputBulkGenerateDataIds" name="DataIds" data-val="true" data-val-required="Identifiers are required"></textarea>
|
|
||||||
if (Model.TemplatePageCount > 1 && Model.TemplatePageCount % 2 != 0)
|
|
||||||
{
|
|
||||||
<div style="margin-top: 6px;">
|
|
||||||
<input id="inputBulkGenerateInsertBlankPage" type="checkbox" name="InsertBlankPage" value="True" /><label for="inputBulkGenerateInsertBlankPage">Insert Blank Pages for Double-Sided Printing</label>
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
$(function () {
|
|
||||||
var dialog;
|
|
||||||
|
|
||||||
$('#buttonBulkGenerate').click(function () {
|
|
||||||
if (!dialog) {
|
|
||||||
dialog = $('#dialogBulkGenerate').dialog({
|
|
||||||
resizable: false,
|
|
||||||
modal: true,
|
|
||||||
autoOpen: false,
|
|
||||||
width: 460,
|
|
||||||
buttons: {
|
|
||||||
"Bulk Generate": function () {
|
|
||||||
dialog.find('form').submit();
|
|
||||||
dialog.dialog("disable");
|
|
||||||
},
|
|
||||||
Close: function () {
|
|
||||||
$(this).dialog("close");
|
|
||||||
}
|
}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
using (Html.BeginForm(MVC.API.DocumentTemplate.RemoveOnImportUserFlagRule(Model.DocumentTemplate.Id), FormMethod.Post, new { id = "DocumentTemplate_OnImportUserFlagRules_Remove" }))
|
||||||
|
{
|
||||||
|
@Html.AntiForgeryToken()
|
||||||
|
@Html.Hidden("ruleId", "")
|
||||||
|
}
|
||||||
|
<a id="DocumentTemplate_OnImportUserFlagRules_AddButton" href="#" class="button small">Add User Flag Rule</a>
|
||||||
|
<div id="DocumentTemplate_OnImportUserFlagRules_AddDialog" class="hiddenDialog" title="On Import User Flag Rule: @(Model.DocumentTemplate.Id)">
|
||||||
|
<div class="brief">
|
||||||
|
@switch (Model.DocumentTemplate.Scope)
|
||||||
|
{
|
||||||
|
case "Device":
|
||||||
|
<div>
|
||||||
|
The user flag will be created/removed against the devices assigned user.
|
||||||
|
</div>
|
||||||
|
break;
|
||||||
|
case "Job":
|
||||||
|
<div>
|
||||||
|
The user flag will be created/removed against the jobs associated user.
|
||||||
|
</div>
|
||||||
|
break;
|
||||||
|
case "User":
|
||||||
|
<div>
|
||||||
|
The user flag will be created/removed against the user.
|
||||||
|
</div>
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
@using (Html.BeginForm(MVC.API.DocumentTemplate.AddOnImportUserFlagRule(Model.DocumentTemplate.Id), FormMethod.Post))
|
||||||
|
{
|
||||||
|
@Html.AntiForgeryToken()
|
||||||
|
<div class="distribute-evenly">
|
||||||
|
<span>
|
||||||
|
<input id="DocumentTemplate_OnImportUserFlagRules_Add_Create" type="radio" name="addFlag" value="true" checked /><label for="DocumentTemplate_OnImportUserFlagRules_Add_Create">Assign User Flag</label>
|
||||||
|
</span>
|
||||||
|
<span>
|
||||||
|
<input id="DocumentTemplate_OnImportUserFlagRules_Add_Remove" type="radio" name="addFlag" value="false" /><label for="DocumentTemplate_OnImportUserFlagRules_Add_Remove">Remove User Flag</label>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div class="dialog-item-picker">
|
||||||
|
@foreach (var flag in Model.UserFlags)
|
||||||
|
{
|
||||||
|
<div class="item">
|
||||||
|
<input id="DocumentTemplate_OnImportUserFlagRules_Add_Flag_@flag.Id" type="radio" name="userFlagId" value="@flag.Id" required />
|
||||||
|
<label for="DocumentTemplate_OnImportUserFlagRules_Add_Flag_@flag.Id"><i class="fa fa-@(flag.Icon) fa-fw fa-lg d-@(flag.IconColour)"></i>@flag.Name</label>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="mt-1">
|
||||||
|
<label for="DocumentTemplate_OnImportUserFlagRules_Add_Comments">Comments</label> <small>(added to the assignment; optional)</small>
|
||||||
|
</div>
|
||||||
|
<textarea id="DocumentTemplate_OnImportUserFlagRules_Add_Comments" name="comments"></textarea>
|
||||||
|
</div>
|
||||||
}
|
}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script id="DocumentTemplate_OnImportUserFlagRules_AddTemplate" type="text/template">
|
||||||
|
<tr>
|
||||||
|
<td class="rule-action"></td>
|
||||||
|
<td>
|
||||||
|
<i class="rule-flag fa fa-lg"></i>
|
||||||
|
<span class="rule-flag"></span>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<span class="rule-user"></span>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<span class="rule-comments whitespace-pre-wrap"></span>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<i class="fa fa-times-circle fa-lg ajaxRemove" title="Remove"></i>
|
||||||
|
<i class="ajaxLoading" title="Loading..." style="display: none;"></i>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function () {
|
||||||
|
const rulesTable = $('#DocumentTemplate_OnImportUserFlagRules');
|
||||||
|
|
||||||
|
rulesTable.on('click', '.ajaxRemove', e => {
|
||||||
|
const $remove = $(e.currentTarget);
|
||||||
|
const $target = $remove.closest('tr');
|
||||||
|
const id = $target.attr('data-id');
|
||||||
|
|
||||||
|
const $loader = $remove.next('.ajaxLoading');
|
||||||
|
$loader.show();
|
||||||
|
$remove.hide();
|
||||||
|
|
||||||
|
const $form = $('#DocumentTemplate_OnImportUserFlagRules_Remove');
|
||||||
|
$form.find('[name="ruleId"]').val(id);
|
||||||
|
const body = new FormData($form[0]);
|
||||||
|
fetch($form[0].action, {
|
||||||
|
body: body,
|
||||||
|
method: 'POST'
|
||||||
|
}).then(r => {
|
||||||
|
if (r.status === 200) {
|
||||||
|
$target.remove();
|
||||||
|
|
||||||
|
const rows = rulesTable.find('tbody').find('tr');
|
||||||
|
if (rows.length === 1) {
|
||||||
|
rows.first().removeClass('hidden');
|
||||||
|
} else {
|
||||||
|
rows.first().addClass('hidden');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
alert(r.statusText);
|
||||||
|
$loader.hide();
|
||||||
|
$remove.show();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(e => {
|
||||||
|
alert(e);
|
||||||
|
$loader.hide();
|
||||||
|
$remove.show();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
$.validator.unobtrusive.reparse('#inputBulkGenerateDataIds');
|
let dialog = null;
|
||||||
}
|
$('#DocumentTemplate_OnImportUserFlagRules_AddButton').click(e => {
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
dialog.dialog('open');
|
if (!dialog) {
|
||||||
return false;
|
dialog = $('#DocumentTemplate_OnImportUserFlagRules_AddDialog').dialog({
|
||||||
});
|
resizable: false,
|
||||||
|
modal: true,
|
||||||
|
autoOpen: false,
|
||||||
|
width: 460,
|
||||||
|
buttons: {
|
||||||
|
"Add Rule": function () {
|
||||||
|
dialog.dialog("disable");
|
||||||
|
|
||||||
|
const form = dialog.find('form')[0];
|
||||||
|
if (form.reportValidity()) {
|
||||||
|
const body = new FormData(form);
|
||||||
|
|
||||||
|
fetch(form.action, {
|
||||||
|
method: 'POST',
|
||||||
|
body: body
|
||||||
|
})
|
||||||
|
.then(r => r.json())
|
||||||
|
.then(r => {
|
||||||
|
const row = $($('#DocumentTemplate_OnImportUserFlagRules_AddTemplate').html());
|
||||||
|
row.attr('data-id', r.Id);
|
||||||
|
row.find('.rule-action').text(r.AddFlag ? 'Assign' : 'Remove');
|
||||||
|
row.find('i.rule-flag').addClass('fa-' + r.UserFlagIcon + ' d-' + r.UserFlagColour);
|
||||||
|
row.find('span.rule-flag').text(r.UserFlagName);
|
||||||
|
row.find('.rule-user').text(r.UserDisplayName + ' (' + r.UserIdFriendly + ')');
|
||||||
|
row.find('.rule-comments').text(r.Comments);
|
||||||
|
rulesTable.find('tbody').append(row);
|
||||||
|
|
||||||
|
rulesTable.find('tbody').find('tr').first().addClass('hidden');
|
||||||
|
|
||||||
|
dialog.dialog("close");
|
||||||
|
})
|
||||||
|
.catch(e => {
|
||||||
|
alert(e);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
Close: function () {
|
||||||
|
$(this).dialog("close");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
dialog.dialog('open');
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!Model.OnImportUserFlagRules.Any())
|
||||||
|
{
|
||||||
|
<span class="smallMessage"><None Specified></span>
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
<table class="tableData">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<td>Action</td>
|
||||||
|
<td>User Flag</td>
|
||||||
|
<td>Created By</td>
|
||||||
|
<td>Comments</td>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach (var rule in Model.OnImportUserFlagRules)
|
||||||
|
{
|
||||||
|
<tr>
|
||||||
|
<td>@(rule.AddFlag ? "Assign" : "Remove")</td>
|
||||||
|
<td>
|
||||||
|
<i class="fa fa-@(rule.UserFlag.Icon) fa-lg d-@(rule.UserFlag.IconColour)"></i>
|
||||||
|
@if (Authorization.Has(Claims.Config.UserFlag.Configure))
|
||||||
|
{
|
||||||
|
<span>@Html.ActionLink(rule.UserFlag.Name, MVC.Config.UserFlag.Index(rule.UserFlag.Id))</span>
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
<span>@rule.UserFlag.Name</span>
|
||||||
|
}
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
@if (Authorization.Has(Claims.User.Show))
|
||||||
|
{
|
||||||
|
<span>@Html.ActionLink(string.Format("{0} ({1})", rule.User.DisplayName, rule.User.FriendlyId()), MVC.User.Show(rule.User.UserId))</span>
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
<span>@string.Format("{0} ({1})", rule.User.DisplayName, rule.User.FriendlyId())</span>
|
||||||
|
}
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
@if (string.IsNullOrWhiteSpace(rule.Comments))
|
||||||
|
{
|
||||||
|
<span> </span>
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
<span class="whitespace-pre-wrap">@rule.Comments</span>
|
||||||
|
}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
<div class="info-box">
|
||||||
|
<p class="fa-p">
|
||||||
|
<i class="fa fa-fw fa-info-circle"></i>
|
||||||
|
These rules will be applied each time a document is imported (as an attachment) where it is determined the document was based on this template.
|
||||||
|
When creating a user flag assignment, if an assignment already exists the rule will be skipped.
|
||||||
|
When removing user flag assignments, if no assignment is present the rule will be skipped.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
Linked Groups:
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<div>
|
||||||
|
@Html.Partial(MVC.Config.Shared.Views.LinkedGroupInstance, new LinkedGroupModel()
|
||||||
|
{
|
||||||
|
CanConfigure = canConfig,
|
||||||
|
CategoryDescription = DocumentTemplateUsersManagedGroup.GetCategoryDescription(Model.DocumentTemplate),
|
||||||
|
Description = DocumentTemplateUsersManagedGroup.GetDescription(Model.DocumentTemplate),
|
||||||
|
ManagedGroup = Model.UsersLinkedGroup,
|
||||||
|
IncludeFilterBeginDate = true,
|
||||||
|
UpdateUrl = Url.Action(MVC.API.DocumentTemplate.UpdateUsersLinkedGroup(Model.DocumentTemplate.Id, redirect: true))
|
||||||
|
})
|
||||||
|
@Html.Partial(MVC.Config.Shared.Views.LinkedGroupInstance, new LinkedGroupModel()
|
||||||
|
{
|
||||||
|
CanConfigure = canConfig,
|
||||||
|
CategoryDescription = DocumentTemplateDevicesManagedGroup.GetCategoryDescription(Model.DocumentTemplate),
|
||||||
|
Description = DocumentTemplateDevicesManagedGroup.GetDescription(Model.DocumentTemplate),
|
||||||
|
ManagedGroup = Model.DevicesLinkedGroup,
|
||||||
|
IncludeFilterBeginDate = true,
|
||||||
|
UpdateUrl = Url.Action(MVC.API.DocumentTemplate.UpdateDevicesLinkedGroup(Model.DocumentTemplate.Id, redirect: true))
|
||||||
|
})
|
||||||
|
@if (canConfig)
|
||||||
|
{
|
||||||
|
@Html.Partial(MVC.Config.Shared.Views.LinkedGroupShared)
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="Config_HideAdvanced_Item">
|
||||||
|
<h2>Template Expressions</h2>
|
||||||
|
@Html.Partial(MVC.Config.DocumentTemplate.Views._ExpressionsTable, Model.TemplateExpressions)
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="dialogConfirmDelete" title="Delete this Document Template?">
|
||||||
|
<p>
|
||||||
|
<i class="fa fa-exclamation-triangle fa-lg warning"></i>This item will be permanently deleted and cannot be recovered.<br />
|
||||||
|
<em>
|
||||||
|
This <strong>will not delete attachments</strong> which have already been imported,
|
||||||
|
but any generated documents will no longer be automatically imported.
|
||||||
|
</em><br />
|
||||||
|
Are you sure?
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function () {
|
||||||
|
var button = $('#buttonDelete');
|
||||||
|
var buttonDialog = $("#dialogConfirmDelete");
|
||||||
|
var buttonLink = button.attr('href');
|
||||||
|
button.attr('href', '#');
|
||||||
|
button.click(function () {
|
||||||
|
buttonDialog.dialog('open');
|
||||||
|
return false;
|
||||||
});
|
});
|
||||||
</script>
|
buttonDialog.dialog({
|
||||||
}
|
|
||||||
}
|
|
||||||
@if (Authorization.Has(Claims.Config.DocumentTemplate.Delete))
|
|
||||||
{
|
|
||||||
@Html.ActionLinkButton("Delete", MVC.API.DocumentTemplate.Delete(Model.DocumentTemplate.Id, true), "buttonDelete")
|
|
||||||
}
|
|
||||||
</div>
|
|
||||||
@if (!string.IsNullOrWhiteSpace(Model.BulkGenerateDownloadId))
|
|
||||||
{
|
|
||||||
<div id="Config_DocumentTemplates_Show_DownloadBulk_Dialog" class="dialog" title="Download Bulk Documents">
|
|
||||||
<a href="@Url.Action(MVC.API.DocumentTemplate.BulkGenerateDownload(Model.BulkGenerateDownloadId, Model.BulkGenerateDownloadFilename))" class="button"><i class="fa fa-download fa-lg"></i>Download Bulk Documents</a>
|
|
||||||
</div>
|
|
||||||
<script>
|
|
||||||
$(function () {
|
|
||||||
$('#Config_DocumentTemplates_Show_DownloadBulk_Dialog')
|
|
||||||
.dialog({
|
|
||||||
width: 400,
|
|
||||||
height: 100,
|
|
||||||
resizable: false,
|
resizable: false,
|
||||||
modal: true,
|
modal: true,
|
||||||
autoOpen: true
|
autoOpen: false,
|
||||||
|
buttons: {
|
||||||
|
"Delete": function () {
|
||||||
|
$this = $(this);
|
||||||
|
$this.dialog('disable');
|
||||||
|
$this.dialog("option", "buttons", null);
|
||||||
|
window.location.href = buttonLink;
|
||||||
|
},
|
||||||
|
Cancel: function () {
|
||||||
|
$(this).dialog("close");
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
});
|
|
||||||
</script>
|
});
|
||||||
}
|
</script>
|
||||||
|
<div class="actionBar">
|
||||||
|
@if (hideAdvanced)
|
||||||
|
{
|
||||||
|
<button id="Config_HideAdvanced_Show" class="button">Show Advanced Options</button>
|
||||||
|
<script>
|
||||||
|
$(function () {
|
||||||
|
$('#Config_HideAdvanced_Show').click(function () {
|
||||||
|
$('#Config_DocumentTemplates_Show').removeClass('Config_HideAdvanced');
|
||||||
|
$(this).remove();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
}
|
||||||
|
@if (Authorization.Has(Claims.Config.Show))
|
||||||
|
{
|
||||||
|
@Html.ActionLinkButton("Expression Browser", MVC.Config.DocumentTemplate.ExpressionBrowser())
|
||||||
|
}
|
||||||
|
@if (canBulkGenerate)
|
||||||
|
{
|
||||||
|
if (Model.DocumentTemplate.Scope == DocumentTemplate.DocumentTemplateScopes.User)
|
||||||
|
{
|
||||||
|
@Html.ActionLinkButton("Bulk Generate", MVC.Config.DocumentTemplate.BulkGenerate(Model.DocumentTemplate.Id))
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
<a id="buttonBulkGenerate" href="#" class="button">Bulk Generate</a>
|
||||||
|
<div id="dialogBulkGenerate" class="hiddenDialog dialog-bulk-generate" title="Bulk Generate: @(Model.DocumentTemplate.Id)">
|
||||||
|
<div class="brief">
|
||||||
|
@switch (Model.DocumentTemplate.Scope)
|
||||||
|
{
|
||||||
|
case "Device":
|
||||||
|
<div>
|
||||||
|
Enter multiple <span class="scopeDescBulkGenerate">Device Serial Numbers</span> separated by <code><new line></code>, commas (<code>,</code>) or semicolons (<code>;</code>).
|
||||||
|
</div>
|
||||||
|
<div class="examples clearfix">
|
||||||
|
<h4>Examples:</h4>
|
||||||
|
<div class="example1 code">
|
||||||
|
01234567<br />
|
||||||
|
ABCD9876<br />
|
||||||
|
8VQ6G2R
|
||||||
|
</div>
|
||||||
|
<div class="example2 code">01234567,ABCD9876,8VQ6G2R</div>
|
||||||
|
<div class="example3 code">01234567;ABCD9876;8VQ6G2R</div>
|
||||||
|
</div>
|
||||||
|
break;
|
||||||
|
case "Job":
|
||||||
|
<div>
|
||||||
|
Enter multiple <span class="scopeDescBulkGenerate">Job Ids</span> separated by <code><new line></code>, commas (<code>,</code>) or semicolons (<code>;</code>).
|
||||||
|
</div>
|
||||||
|
<div class="examples clearfix">
|
||||||
|
<h4>Examples:</h4>
|
||||||
|
<div class="example1 code">
|
||||||
|
86<br />
|
||||||
|
99<br />
|
||||||
|
44
|
||||||
|
</div>
|
||||||
|
<div class="example2 code">86,99,44</div>
|
||||||
|
<div class="example3 code">86;99;44</div>
|
||||||
|
</div>
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
@using (Html.BeginForm(MVC.API.DocumentTemplate.BulkGenerate(Model.DocumentTemplate.Id), FormMethod.Post))
|
||||||
|
{
|
||||||
|
<div class="field-validation-valid" data-valmsg-replace="true" data-valmsg-for="DataIds"></div>
|
||||||
|
<textarea id="inputBulkGenerateDataIds" name="DataIds" data-val="true" data-val-required="Identifiers are required"></textarea>
|
||||||
|
if (Model.TemplatePageCount > 1 && Model.TemplatePageCount % 2 != 0)
|
||||||
|
{
|
||||||
|
<div style="margin-top: 6px;">
|
||||||
|
<input id="inputBulkGenerateInsertBlankPage" type="checkbox" name="InsertBlankPage" value="True" /><label for="inputBulkGenerateInsertBlankPage">Insert Blank Pages for Double-Sided Printing</label>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$(function () {
|
||||||
|
var dialog;
|
||||||
|
|
||||||
|
$('#buttonBulkGenerate').click(function () {
|
||||||
|
if (!dialog) {
|
||||||
|
dialog = $('#dialogBulkGenerate').dialog({
|
||||||
|
resizable: false,
|
||||||
|
modal: true,
|
||||||
|
autoOpen: false,
|
||||||
|
width: 460,
|
||||||
|
buttons: {
|
||||||
|
"Bulk Generate": function () {
|
||||||
|
dialog.find('form').submit();
|
||||||
|
dialog.dialog("disable");
|
||||||
|
},
|
||||||
|
Close: function () {
|
||||||
|
$(this).dialog("close");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$.validator.unobtrusive.reparse('#inputBulkGenerateDataIds');
|
||||||
|
}
|
||||||
|
|
||||||
|
dialog.dialog('open');
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@if (Authorization.Has(Claims.Config.DocumentTemplate.Delete))
|
||||||
|
{
|
||||||
|
@Html.ActionLinkButton("Delete", MVC.API.DocumentTemplate.Delete(Model.DocumentTemplate.Id, true), "buttonDelete")
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
@if (!string.IsNullOrWhiteSpace(Model.BulkGenerateDownloadId))
|
||||||
|
{
|
||||||
|
<div id="Config_DocumentTemplates_Show_DownloadBulk_Dialog" class="dialog" title="Download Bulk Documents">
|
||||||
|
<a href="@Url.Action(MVC.API.DocumentTemplate.BulkGenerateDownload(Model.BulkGenerateDownloadId, Model.BulkGenerateDownloadFilename))" class="button"><i class="fa fa-download fa-lg"></i>Download Bulk Documents</a>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
$(function () {
|
||||||
|
$('#Config_DocumentTemplates_Show_DownloadBulk_Dialog')
|
||||||
|
.dialog({
|
||||||
|
width: 400,
|
||||||
|
height: 100,
|
||||||
|
resizable: false,
|
||||||
|
modal: true,
|
||||||
|
autoOpen: true
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
}
|
||||||
File diff suppressed because it is too large.
Load diff
@@ -5342,4 +5342,7 @@ ul.list-group li.selected:hover {
|
|||||||
}
|
}
|
||||||
ul.list-group li:not(:first-child) {
|
ul.list-group li:not(:first-child) {
|
||||||
border-top: 1px solid #ddd;
|
border-top: 1px solid #ddd;
|
||||||
|
}
|
||||||
|
.whitespace-pre-wrap {
|
||||||
|
white-space: pre-wrap;
|
||||||
}
|
}
|
||||||
+1
-1
@@ -9,4 +9,4 @@ html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:1
|
|||||||
* Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
|
* Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
|
||||||
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
|
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
|
||||||
*/
|
*/
|
||||||
@font-face{font-family:'FontAwesome';src:url('/ClientSource/Style/FontAwesome/fontawesome-webfont.eot?v=4.2.0');src:url('/ClientSource/Style/FontAwesome/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'),url('/ClientSource/Style/FontAwesome/fontawesome-webfont.woff?v=4.2.0') format('woff'),url('/ClientSource/Style/FontAwesome/fontawesome-webfont.ttf?v=4.2.0') format('truetype'),url('/ClientSource/Style/FontAwesome/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal;}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%;}.fa-2x{font-size:2em;}.fa-3x{font-size:3em;}.fa-4x{font-size:4em;}.fa-5x{font-size:5em;}.fa-fw{width:1.28571429em;text-align:center;}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none;}.fa-ul>li{position:relative;}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center;}.fa-li.fa-lg{left:-1.85714286em;}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em;}.pull-right{float:right;}.pull-left{float:left;}.fa.pull-left{margin-right:.3em;}.fa.pull-right{margin-left:.3em;}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear;}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg);}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg);}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg);}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg);}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg);}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg);}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0,mirror=1);-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1);}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2,mirror=1);-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1);}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none;}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle;}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center;}.fa-stack-1x{line-height:inherit;}.fa-stack-2x{font-size:2em;}.fa-inverse{color:#fff;}.fa-glass:before{content:"";}.fa-music:before{content:"";}.fa-search:before{content:"";}.fa-envelope-o:before{content:"";}.fa-heart:before{content:"";}.fa-star:before{content:"";}.fa-star-o:before{content:"";}.fa-user:before{content:"";}.fa-film:before{content:"";}.fa-th-large:before{content:"";}.fa-th:before{content:"";}.fa-th-list:before{content:"";}.fa-check:before{content:"";}.fa-remove:before,.fa-close:before,.fa-times:before{content:"";}.fa-search-plus:before{content:"";}.fa-search-minus:before{content:"";}.fa-power-off:before{content:"";}.fa-signal:before{content:"";}.fa-gear:before,.fa-cog:before{content:"";}.fa-trash-o:before{content:"";}.fa-home:before{content:"";}.fa-file-o:before{content:"";}.fa-clock-o:before{content:"";}.fa-road:before{content:"";}.fa-download:before{content:"";}.fa-arrow-circle-o-down:before{content:"";}.fa-arrow-circle-o-up:before{content:"";}.fa-inbox:before{content:"";}.fa-play-circle-o:before{content:"";}.fa-rotate-right:before,.fa-repeat:before{content:"";}.fa-refresh:before{content:"";}.fa-list-alt:before{content:"";}.fa-lock:before{content:"";}.fa-flag:before{content:"";}.fa-headphones:before{content:"";}.fa-volume-off:before{content:"";}.fa-volume-down:before{content:"";}.fa-volume-up:before{content:"";}.fa-qrcode:before{content:"";}.fa-barcode:before{content:"";}.fa-tag:before{content:"";}.fa-tags:before{content:"";}.fa-book:before{content:"";}.fa-bookmark:before{content:"";}.fa-print:before{content:"";}.fa-camera:before{content:"";}.fa-font:before{content:"";}.fa-bold:before{content:"";}.fa-italic:before{content:"";}.fa-text-height:before{content:"";}.fa-text-width:before{content:"";}.fa-align-left:before{content:"";}.fa-align-center:before{content:"";}.fa-align-right:before{content:"";}.fa-align-justify:before{content:"";}.fa-list:before{content:"";}.fa-dedent:before,.fa-outdent:before{conLine truncated
|
@font-face{font-family:'FontAwesome';src:url('/ClientSource/Style/FontAwesome/fontawesome-webfont.eot?v=4.2.0');src:url('/ClientSource/Style/FontAwesome/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'),url('/ClientSource/Style/FontAwesome/fontawesome-webfont.woff?v=4.2.0') format('woff'),url('/ClientSource/Style/FontAwesome/fontawesome-webfont.ttf?v=4.2.0') format('truetype'),url('/ClientSource/Style/FontAwesome/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal;}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%;}.fa-2x{font-size:2em;}.fa-3x{font-size:3em;}.fa-4x{font-size:4em;}.fa-5x{font-size:5em;}.fa-fw{width:1.28571429em;text-align:center;}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none;}.fa-ul>li{position:relative;}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center;}.fa-li.fa-lg{left:-1.85714286em;}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em;}.pull-right{float:right;}.pull-left{float:left;}.fa.pull-left{margin-right:.3em;}.fa.pull-right{margin-left:.3em;}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear;}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg);}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg);}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg);}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg);}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg);}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg);}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0,mirror=1);-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1);}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2,mirror=1);-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1);}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none;}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle;}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center;}.fa-stack-1x{line-height:inherit;}.fa-stack-2x{font-size:2em;}.fa-inverse{color:#fff;}.fa-glass:before{content:"";}.fa-music:before{content:"";}.fa-search:before{content:"";}.fa-envelope-o:before{content:"";}.fa-heart:before{content:"";}.fa-star:before{content:"";}.fa-star-o:before{content:"";}.fa-user:before{content:"";}.fa-film:before{content:"";}.fa-th-large:before{content:"";}.fa-th:before{content:"";}.fa-th-list:before{content:"";}.fa-check:before{content:"";}.fa-remove:before,.fa-close:before,.fa-times:before{content:"";}.fa-search-plus:before{content:"";}.fa-search-minus:before{content:"";}.fa-power-off:before{content:"";}.fa-signal:before{content:"";}.fa-gear:before,.fa-cog:before{content:"";}.fa-trash-o:before{content:"";}.fa-home:before{content:"";}.fa-file-o:before{content:"";}.fa-clock-o:before{content:"";}.fa-road:before{content:"";}.fa-download:before{content:"";}.fa-arrow-circle-o-down:before{content:"";}.fa-arrow-circle-o-up:before{content:"";}.fa-inbox:before{content:"";}.fa-play-circle-o:before{content:"";}.fa-rotate-right:before,.fa-repeat:before{content:"";}.fa-refresh:before{content:"";}.fa-list-alt:before{content:"";}.fa-lock:before{content:"";}.fa-flag:before{content:"";}.fa-headphones:before{content:"";}.fa-volume-off:before{content:"";}.fa-volume-down:before{content:"";}.fa-volume-up:before{content:"";}.fa-qrcode:before{content:"";}.fa-barcode:before{content:"";}.fa-tag:before{content:"";}.fa-tags:before{content:"";}.fa-book:before{content:"";}.fa-bookmark:before{content:"";}.fa-print:before{content:"";}.fa-camera:before{content:"";}.fa-font:before{content:"";}.fa-bold:before{content:"";}.fa-italic:before{content:"";}.fa-text-height:before{content:"";}.fa-text-width:before{content:"";}.fa-align-left:before{content:"";}.fa-align-center:before{content:"";}.fa-align-right:before{content:"";}.fa-align-justify:before{content:"";}.fa-list:before{content:"";}.fa-dedent:before,.fa-outdent:before{conLine truncated
|
||||||
@@ -670,6 +670,17 @@ div.logEventsViewport table.logEventsViewport > tbody > tr > td.message {
|
|||||||
#Config_DocumentTemplates_JobSubTypes_Update_Dialog .checkboxBulkSelectContainer {
|
#Config_DocumentTemplates_JobSubTypes_Update_Dialog .checkboxBulkSelectContainer {
|
||||||
font-size: 0.8em;
|
font-size: 0.8em;
|
||||||
}
|
}
|
||||||
|
#DocumentTemplate_OnImportUserFlagRules_AddDialog .distribute-evenly {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-around;
|
||||||
|
margin: 1em 0;
|
||||||
|
}
|
||||||
|
#DocumentTemplate_OnImportUserFlagRules_AddDialog textarea {
|
||||||
|
width: 99%;
|
||||||
|
}
|
||||||
|
#DocumentTemplate_OnImportUserFlagRules_AddDialog .mt-1 {
|
||||||
|
margin-top: 1em;
|
||||||
|
}
|
||||||
.dialog-bulk-generate .brief {
|
.dialog-bulk-generate .brief {
|
||||||
margin: 0 0 8px 0;
|
margin: 0 0 8px 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -733,6 +733,22 @@ div.logEventsViewport {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#DocumentTemplate_OnImportUserFlagRules_AddDialog {
|
||||||
|
.distribute-evenly {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-around;
|
||||||
|
margin: 1em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
textarea {
|
||||||
|
width: 99%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mt-1 {
|
||||||
|
margin-top: 1em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.dialog-bulk-generate {
|
.dialog-bulk-generate {
|
||||||
.brief {
|
.brief {
|
||||||
margin: 0 0 8px 0;
|
margin: 0 0 8px 0;
|
||||||
|
|||||||
+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 a.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.dynatrLine 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 a.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.dynatrLine truncated
|
||||||
@@ -1575,4 +1575,7 @@ ul.list-group li.selected:hover {
|
|||||||
}
|
}
|
||||||
ul.list-group li:not(:first-child) {
|
ul.list-group li:not(:first-child) {
|
||||||
border-top: 1px solid #ddd;
|
border-top: 1px solid #ddd;
|
||||||
|
}
|
||||||
|
.whitespace-pre-wrap {
|
||||||
|
white-space: pre-wrap;
|
||||||
}
|
}
|
||||||
@@ -1676,3 +1676,7 @@ ul.list-group {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.whitespace-pre-wrap {
|
||||||
|
white-space: pre-wrap;
|
||||||
|
}
|
||||||
+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;}body{font-size:12px;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;margin:0;padding:0;color:#333;}body.layout{background:url(data:image/png;base64,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) left top repeat-x #d1d1d1;background:linear-gradient(to bottom,#f2f2f2 0,#d1d1d1 370px) left top repeat-x #d1d1d1;min-height:370px;}.page{max-width:1232px;min-width:768px;margin-left:auto;margin-right:auto;}header,#header{position:relative;background-color:#333;margin:0;padding:0;height:34px;}header #heading,#header #heading{float:left;height:34px;}header #heading i,#header #heading i{display:block;height:Line 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;}body{font-size:12px;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;margin:0;padding:0;color:#333;}body.layout{background:url(data:image/png;base64,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) left top repeat-x #d1d1d1;background:linear-gradient(to bottom,#f2f2f2 0,#d1d1d1 370px) left top repeat-x #d1d1d1;min-height:370px;}.page{max-width:1232px;min-width:768px;margin-left:auto;margin-right:auto;}header,#header{position:relative;background-color:#333;margin:0;padding:0;height:34px;}header #heading,#header #heading{float:left;height:34px;}header #heading i,#header #heading i{display:block;height:Line truncated
|
||||||
@@ -214,6 +214,7 @@
|
|||||||
<Compile Include="Areas\API\Controllers\JobQueueJobController.cs" />
|
<Compile Include="Areas\API\Controllers\JobQueueJobController.cs" />
|
||||||
<Compile Include="Areas\API\Controllers\PluginController.cs" />
|
<Compile Include="Areas\API\Controllers\PluginController.cs" />
|
||||||
<Compile Include="Areas\API\Controllers\SearchController.cs" />
|
<Compile Include="Areas\API\Controllers\SearchController.cs" />
|
||||||
|
<Compile Include="Areas\API\Models\DocumentTemplate\AddOnImportUserFlagRuleModel.cs" />
|
||||||
<Compile Include="Areas\API\Models\DocumentTemplate\BulkGenerateUserModel.cs" />
|
<Compile Include="Areas\API\Models\DocumentTemplate\BulkGenerateUserModel.cs" />
|
||||||
<Compile Include="Areas\API\Models\DocumentTemplate\DocumentHandlersModel.cs" />
|
<Compile Include="Areas\API\Models\DocumentTemplate\DocumentHandlersModel.cs" />
|
||||||
<Compile Include="Areas\API\Models\Job\DeviceHeldLocationModel.cs" />
|
<Compile Include="Areas\API\Models\Job\DeviceHeldLocationModel.cs" />
|
||||||
|
|||||||
@@ -241,6 +241,18 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
}
|
}
|
||||||
[NonAction]
|
[NonAction]
|
||||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
|
public virtual System.Web.Mvc.ActionResult RemoveOnImportUserFlagRule()
|
||||||
|
{
|
||||||
|
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.RemoveOnImportUserFlagRule);
|
||||||
|
}
|
||||||
|
[NonAction]
|
||||||
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
|
public virtual System.Web.Mvc.ActionResult AddOnImportUserFlagRule()
|
||||||
|
{
|
||||||
|
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.AddOnImportUserFlagRule);
|
||||||
|
}
|
||||||
|
[NonAction]
|
||||||
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
public virtual System.Web.Mvc.ActionResult GenerateDocumentHandlerUi()
|
public virtual System.Web.Mvc.ActionResult GenerateDocumentHandlerUi()
|
||||||
{
|
{
|
||||||
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.GenerateDocumentHandlerUi);
|
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.GenerateDocumentHandlerUi);
|
||||||
@@ -298,6 +310,8 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
public readonly string BulkGenerateAddUserDetail = "BulkGenerateAddUserDetail";
|
public readonly string BulkGenerateAddUserDetail = "BulkGenerateAddUserDetail";
|
||||||
public readonly string Generate = "Generate";
|
public readonly string Generate = "Generate";
|
||||||
public readonly string Delete = "Delete";
|
public readonly string Delete = "Delete";
|
||||||
|
public readonly string RemoveOnImportUserFlagRule = "RemoveOnImportUserFlagRule";
|
||||||
|
public readonly string AddOnImportUserFlagRule = "AddOnImportUserFlagRule";
|
||||||
public readonly string GenerateDocumentHandlerUi = "GenerateDocumentHandlerUi";
|
public readonly string GenerateDocumentHandlerUi = "GenerateDocumentHandlerUi";
|
||||||
public readonly string DocumentHandlers = "DocumentHandlers";
|
public readonly string DocumentHandlers = "DocumentHandlers";
|
||||||
}
|
}
|
||||||
@@ -336,6 +350,8 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
public const string BulkGenerateAddUserDetail = "BulkGenerateAddUserDetail";
|
public const string BulkGenerateAddUserDetail = "BulkGenerateAddUserDetail";
|
||||||
public const string Generate = "Generate";
|
public const string Generate = "Generate";
|
||||||
public const string Delete = "Delete";
|
public const string Delete = "Delete";
|
||||||
|
public const string RemoveOnImportUserFlagRule = "RemoveOnImportUserFlagRule";
|
||||||
|
public const string AddOnImportUserFlagRule = "AddOnImportUserFlagRule";
|
||||||
public const string GenerateDocumentHandlerUi = "GenerateDocumentHandlerUi";
|
public const string GenerateDocumentHandlerUi = "GenerateDocumentHandlerUi";
|
||||||
public const string DocumentHandlers = "DocumentHandlers";
|
public const string DocumentHandlers = "DocumentHandlers";
|
||||||
}
|
}
|
||||||
@@ -622,6 +638,26 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
public readonly string id = "id";
|
public readonly string id = "id";
|
||||||
public readonly string redirect = "redirect";
|
public readonly string redirect = "redirect";
|
||||||
}
|
}
|
||||||
|
static readonly ActionParamsClass_RemoveOnImportUserFlagRule s_params_RemoveOnImportUserFlagRule = new ActionParamsClass_RemoveOnImportUserFlagRule();
|
||||||
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
|
public ActionParamsClass_RemoveOnImportUserFlagRule RemoveOnImportUserFlagRuleParams { get { return s_params_RemoveOnImportUserFlagRule; } }
|
||||||
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
|
public class ActionParamsClass_RemoveOnImportUserFlagRule
|
||||||
|
{
|
||||||
|
public readonly string id = "id";
|
||||||
|
public readonly string ruleId = "ruleId";
|
||||||
|
}
|
||||||
|
static readonly ActionParamsClass_AddOnImportUserFlagRule s_params_AddOnImportUserFlagRule = new ActionParamsClass_AddOnImportUserFlagRule();
|
||||||
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
|
public ActionParamsClass_AddOnImportUserFlagRule AddOnImportUserFlagRuleParams { get { return s_params_AddOnImportUserFlagRule; } }
|
||||||
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
|
public class ActionParamsClass_AddOnImportUserFlagRule
|
||||||
|
{
|
||||||
|
public readonly string id = "id";
|
||||||
|
public readonly string addFlag = "addFlag";
|
||||||
|
public readonly string userFlagId = "userFlagId";
|
||||||
|
public readonly string comments = "comments";
|
||||||
|
}
|
||||||
static readonly ActionParamsClass_GenerateDocumentHandlerUi s_params_GenerateDocumentHandlerUi = new ActionParamsClass_GenerateDocumentHandlerUi();
|
static readonly ActionParamsClass_GenerateDocumentHandlerUi s_params_GenerateDocumentHandlerUi = new ActionParamsClass_GenerateDocumentHandlerUi();
|
||||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
public ActionParamsClass_GenerateDocumentHandlerUi GenerateDocumentHandlerUiParams { get { return s_params_GenerateDocumentHandlerUi; } }
|
public ActionParamsClass_GenerateDocumentHandlerUi GenerateDocumentHandlerUiParams { get { return s_params_GenerateDocumentHandlerUi; } }
|
||||||
@@ -1084,6 +1120,34 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
return callInfo;
|
return callInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[NonAction]
|
||||||
|
partial void RemoveOnImportUserFlagRuleOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, string id, System.Guid? ruleId);
|
||||||
|
|
||||||
|
[NonAction]
|
||||||
|
public override System.Web.Mvc.ActionResult RemoveOnImportUserFlagRule(string id, System.Guid? ruleId)
|
||||||
|
{
|
||||||
|
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.RemoveOnImportUserFlagRule);
|
||||||
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id);
|
||||||
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "ruleId", ruleId);
|
||||||
|
RemoveOnImportUserFlagRuleOverride(callInfo, id, ruleId);
|
||||||
|
return callInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
[NonAction]
|
||||||
|
partial void AddOnImportUserFlagRuleOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, string id, bool? addFlag, int? userFlagId, string comments);
|
||||||
|
|
||||||
|
[NonAction]
|
||||||
|
public override System.Web.Mvc.ActionResult AddOnImportUserFlagRule(string id, bool? addFlag, int? userFlagId, string comments)
|
||||||
|
{
|
||||||
|
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.AddOnImportUserFlagRule);
|
||||||
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id);
|
||||||
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "addFlag", addFlag);
|
||||||
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "userFlagId", userFlagId);
|
||||||
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "comments", comments);
|
||||||
|
AddOnImportUserFlagRuleOverride(callInfo, id, addFlag, userFlagId, comments);
|
||||||
|
return callInfo;
|
||||||
|
}
|
||||||
|
|
||||||
[NonAction]
|
[NonAction]
|
||||||
partial void GenerateDocumentHandlerUiOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, string templateId, string targetId, string handlerId);
|
partial void GenerateDocumentHandlerUiOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, string templateId, string targetId, string handlerId);
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user