feature: job preferences - On Device Ready For Return expression
This commit is contained in:
@@ -75,6 +75,12 @@ namespace Disco.Data.Configuration.Modules
|
|||||||
set { Set(value); }
|
set { Set(value); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string OnDeviceReadyForReturnExpression
|
||||||
|
{
|
||||||
|
get { return Get<string>(null); }
|
||||||
|
set { Set(value); }
|
||||||
|
}
|
||||||
|
|
||||||
public string OnCloseExpression
|
public string OnCloseExpression
|
||||||
{
|
{
|
||||||
get { return Get<string>(null); }
|
get { return Get<string>(null); }
|
||||||
|
|||||||
@@ -64,12 +64,34 @@ namespace Disco.Services
|
|||||||
!j.DeviceReadyForReturn.HasValue && !j.DeviceReturnedDate.HasValue;
|
!j.DeviceReadyForReturn.HasValue && !j.DeviceReturnedDate.HasValue;
|
||||||
}
|
}
|
||||||
public static void OnDeviceReadyForReturn(this Job j, User Technician)
|
public static void OnDeviceReadyForReturn(this Job j, User Technician)
|
||||||
|
public static void OnDeviceReadyForReturn(this Job j, DiscoDataContext Database, User Technician)
|
||||||
{
|
{
|
||||||
if (!j.CanDeviceReadyForReturn())
|
if (!j.CanDeviceReadyForReturn())
|
||||||
throw new InvalidOperationException("Device Ready for Return was Denied");
|
throw new InvalidOperationException("Device Ready for Return was Denied");
|
||||||
|
|
||||||
j.DeviceReadyForReturn = DateTime.Now;
|
j.DeviceReadyForReturn = DateTime.Now;
|
||||||
j.DeviceReadyForReturnTechUserId = Technician.UserId;
|
j.DeviceReadyForReturnTechUserId = Technician.UserId;
|
||||||
|
|
||||||
|
// Evaluate OnDeviceReadyForReturnExpression Expression
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var result = j.EvaluateOnDeviceReadyForReturnExpression(Database);
|
||||||
|
if (!string.IsNullOrWhiteSpace(result))
|
||||||
|
{
|
||||||
|
var jl = new JobLog()
|
||||||
|
{
|
||||||
|
Job = j,
|
||||||
|
TechUser = Technician,
|
||||||
|
Timestamp = DateTime.Now,
|
||||||
|
Comments = result
|
||||||
|
};
|
||||||
|
Database.JobLogs.Add(jl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
SystemLog.LogException("Job Expression - OnDeviceReadyForReturnExpression", ex);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|||||||
@@ -407,6 +407,21 @@ namespace Disco.Services
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string EvaluateOnDeviceReadyForReturnExpression(this Job job, DiscoDataContext Database)
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(Database.DiscoConfiguration.JobPreferences.OnDeviceReadyForReturnExpression))
|
||||||
|
{
|
||||||
|
Expression compiledExpression = Jobs.Jobs.OnDeviceReadyForReturnExpressionFromCache(Database);
|
||||||
|
IDictionary evaluatorVariables = Expression.StandardVariables(null, Database, job.OpenedTechUser, DateTime.Now, null, job);
|
||||||
|
object result = compiledExpression.EvaluateFirst<object>(job, evaluatorVariables);
|
||||||
|
if (result == null)
|
||||||
|
return null;
|
||||||
|
else
|
||||||
|
return result.ToString();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
public static string EvaluateOnCloseExpression(this Job job, DiscoDataContext Database)
|
public static string EvaluateOnCloseExpression(this Job job, DiscoDataContext Database)
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(Database.DiscoConfiguration.JobPreferences.OnCloseExpression))
|
if (!string.IsNullOrEmpty(Database.DiscoConfiguration.JobPreferences.OnCloseExpression))
|
||||||
|
|||||||
@@ -131,6 +131,16 @@ namespace Disco.Services.Jobs
|
|||||||
ExpressionCache.InvalidateSingleCache("Job_OnCreateExpression");
|
ExpressionCache.InvalidateSingleCache("Job_OnCreateExpression");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Expression OnDeviceReadyForReturnExpressionFromCache(DiscoDataContext Database)
|
||||||
|
{
|
||||||
|
return ExpressionCache.GetOrCreateSingleExpressions("Job_OnDeviceReadyForReturnExpression", () => Expression.TokenizeSingleDynamic(null, Database.DiscoConfiguration.JobPreferences.OnDeviceReadyForReturnExpression, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void OnDeviceReadyForReturnExpressionInvalidateCache()
|
||||||
|
{
|
||||||
|
ExpressionCache.InvalidateSingleCache("Job_OnDeviceReadyForReturnExpression");
|
||||||
|
}
|
||||||
|
|
||||||
public static Expression OnCloseExpressionFromCache(DiscoDataContext Database)
|
public static Expression OnCloseExpressionFromCache(DiscoDataContext Database)
|
||||||
{
|
{
|
||||||
return ExpressionCache.GetOrCreateSingleExpressions("Job_OnCloseExpression", () => Expression.TokenizeSingleDynamic(null, Database.DiscoConfiguration.JobPreferences.OnCloseExpression, 0));
|
return ExpressionCache.GetOrCreateSingleExpressions("Job_OnCloseExpression", () => Expression.TokenizeSingleDynamic(null, Database.DiscoConfiguration.JobPreferences.OnCloseExpression, 0));
|
||||||
|
|||||||
@@ -1604,12 +1604,13 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
[DiscoAuthorize(Claims.Job.Properties.DeviceReadyForReturn)]
|
[DiscoAuthorize(Claims.Job.Properties.DeviceReadyForReturn)]
|
||||||
public virtual ActionResult DeviceReadyForReturn(int id, bool redirect)
|
public virtual ActionResult DeviceReadyForReturn(int id, bool redirect)
|
||||||
{
|
{
|
||||||
|
Database.Configuration.LazyLoadingEnabled = true;
|
||||||
var j = Database.Jobs.Find(id);
|
var j = Database.Jobs.Find(id);
|
||||||
if (j != null)
|
if (j != null)
|
||||||
{
|
{
|
||||||
if (j.CanDeviceReadyForReturn())
|
if (j.CanDeviceReadyForReturn())
|
||||||
{
|
{
|
||||||
j.OnDeviceReadyForReturn(CurrentUser);
|
j.OnDeviceReadyForReturn(Database, Database.Users.Find(CurrentUser.UserId));
|
||||||
|
|
||||||
Database.SaveChanges();
|
Database.SaveChanges();
|
||||||
if (redirect)
|
if (redirect)
|
||||||
|
|||||||
@@ -143,6 +143,30 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
return Json("OK", JsonRequestBehavior.AllowGet);
|
return Json("OK", JsonRequestBehavior.AllowGet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[DiscoAuthorize(Claims.Config.JobPreferences.Configure)]
|
||||||
|
public virtual ActionResult UpdateOnDeviceReadyForReturnExpression(string OnDeviceReadyForReturnExpression, bool redirect = false)
|
||||||
|
{
|
||||||
|
string expression = null;
|
||||||
|
|
||||||
|
if (!string.IsNullOrWhiteSpace(OnDeviceReadyForReturnExpression))
|
||||||
|
{
|
||||||
|
expression = OnDeviceReadyForReturnExpression.Trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Database.DiscoConfiguration.JobPreferences.OnDeviceReadyForReturnExpression != expression)
|
||||||
|
{
|
||||||
|
Database.DiscoConfiguration.JobPreferences.OnDeviceReadyForReturnExpression = expression;
|
||||||
|
Database.SaveChanges();
|
||||||
|
|
||||||
|
Jobs.OnDeviceReadyForReturnExpressionInvalidateCache();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (redirect)
|
||||||
|
return RedirectToAction(MVC.Config.JobPreferences.Index());
|
||||||
|
else
|
||||||
|
return Json("OK", JsonRequestBehavior.AllowGet);
|
||||||
|
}
|
||||||
|
|
||||||
[DiscoAuthorize(Claims.Config.JobPreferences.Configure)]
|
[DiscoAuthorize(Claims.Config.JobPreferences.Configure)]
|
||||||
public virtual ActionResult UpdateOnCloseExpression(string OnCloseExpression, bool redirect = false)
|
public virtual ActionResult UpdateOnCloseExpression(string OnCloseExpression, bool redirect = false)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ namespace Disco.Web.Areas.Config.Controllers
|
|||||||
LocationMode = Database.DiscoConfiguration.JobPreferences.LocationMode,
|
LocationMode = Database.DiscoConfiguration.JobPreferences.LocationMode,
|
||||||
LocationList = Database.DiscoConfiguration.JobPreferences.LocationList,
|
LocationList = Database.DiscoConfiguration.JobPreferences.LocationList,
|
||||||
OnCreateExpression = Database.DiscoConfiguration.JobPreferences.OnCreateExpression,
|
OnCreateExpression = Database.DiscoConfiguration.JobPreferences.OnCreateExpression,
|
||||||
OnCloseExpression = Database.DiscoConfiguration.JobPreferences.OnCloseExpression
|
OnDeviceReadyForReturnExpression = Database.DiscoConfiguration.JobPreferences.OnDeviceReadyForReturnExpression,
|
||||||
|
OnCloseExpression = Database.DiscoConfiguration.JobPreferences.OnCloseExpression,
|
||||||
};
|
};
|
||||||
|
|
||||||
// UI Extensions
|
// UI Extensions
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ namespace Disco.Web.Areas.Config.Models.JobPreferences
|
|||||||
[DataType(DataType.MultilineText)]
|
[DataType(DataType.MultilineText)]
|
||||||
public string OnCreateExpression { get; set; }
|
public string OnCreateExpression { get; set; }
|
||||||
[DataType(DataType.MultilineText)]
|
[DataType(DataType.MultilineText)]
|
||||||
|
public string OnDeviceReadyForReturnExpression { get; set; }
|
||||||
|
[DataType(DataType.MultilineText)]
|
||||||
public string OnCloseExpression { get; set; }
|
public string OnCloseExpression { get; set; }
|
||||||
|
|
||||||
public List<KeyValuePair<string, string>> DefaultNoticeboardThemeOptions()
|
public List<KeyValuePair<string, string>> DefaultNoticeboardThemeOptions()
|
||||||
|
|||||||
@@ -75,6 +75,74 @@
|
|||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th style="width: 200px">On Device Ready For Return:</th>
|
||||||
|
<td>
|
||||||
|
@if (canConfig)
|
||||||
|
{
|
||||||
|
@Html.EditorFor(model => model.OnDeviceReadyForReturnExpression)
|
||||||
|
@AjaxHelpers.AjaxRemove()
|
||||||
|
@AjaxHelpers.AjaxSave()
|
||||||
|
@AjaxHelpers.AjaxLoader()
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function () {
|
||||||
|
var field = $('#OnDeviceReadyForReturnExpression');
|
||||||
|
var fieldRemove = field.next('.ajaxRemove');
|
||||||
|
var fieldOriginalWidth, fieldOriginalHeight;
|
||||||
|
|
||||||
|
document.DiscoFunctions.PropertyChangeHelper(
|
||||||
|
field,
|
||||||
|
'None',
|
||||||
|
'@Url.Action(MVC.API.JobPreferences.UpdateOnDeviceReadyForReturnExpression())',
|
||||||
|
'OnDeviceReadyForReturnExpression'
|
||||||
|
);
|
||||||
|
|
||||||
|
field.focus(function () {
|
||||||
|
fieldOriginalWidth = field.width();
|
||||||
|
fieldOriginalHeight = field.height();
|
||||||
|
field.css('overflow', 'visible').animate({ width: field.parent().width() - 42, height: 75 }, 200);
|
||||||
|
}).blur(function () {
|
||||||
|
field.css('overflow', 'hidden').animate({ width: fieldOriginalWidth, height: fieldOriginalHeight }, 200);
|
||||||
|
}).change(function () {
|
||||||
|
if (!!field.val()) {
|
||||||
|
fieldRemove.show();
|
||||||
|
} else {
|
||||||
|
fieldRemove.hide();
|
||||||
|
}
|
||||||
|
}).attr('placeholder', 'None').attr('spellcheck', 'false');
|
||||||
|
|
||||||
|
fieldRemove.click(function () {
|
||||||
|
field.val('').change();
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!!field.val()) {
|
||||||
|
fieldRemove.show();
|
||||||
|
} else {
|
||||||
|
fieldRemove.hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (string.IsNullOrWhiteSpace(Model.OnDeviceReadyForReturnExpression))
|
||||||
|
{
|
||||||
|
<span class="smallMessage"><None Specified></span>
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
<div class="code">
|
||||||
|
@Model.OnDeviceReadyForReturnExpression
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
<div class="info-box">
|
||||||
|
<p class="fa-p">
|
||||||
|
<i class="fa fa-fw fa-info-circle"></i>This expression will be evaluated whenever a device is flagged as Ready For Return. If the expression has any output it will be added to the job log.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th style="width: 200px">On Close:</th>
|
<th style="width: 200px">On Close:</th>
|
||||||
<td>
|
<td>
|
||||||
|
|||||||
@@ -250,7 +250,7 @@ WriteLiteral("></i>This expression will be evaluated whenever a job is created.
|
|||||||
|
|
||||||
WriteLiteral(" style=\"width: 200px\"");
|
WriteLiteral(" style=\"width: 200px\"");
|
||||||
|
|
||||||
WriteLiteral(">On Close:</th>\r\n <td>\r\n");
|
WriteLiteral(">On Device Ready For Return:</th>\r\n <td>\r\n");
|
||||||
|
|
||||||
|
|
||||||
#line 81 "..\..\Areas\Config\Views\JobPreferences\Parts\Expressions.cshtml"
|
#line 81 "..\..\Areas\Config\Views\JobPreferences\Parts\Expressions.cshtml"
|
||||||
@@ -268,7 +268,7 @@ WriteLiteral(">On Close:</th>\r\n <td>\r\n");
|
|||||||
#line hidden
|
#line hidden
|
||||||
|
|
||||||
#line 83 "..\..\Areas\Config\Views\JobPreferences\Parts\Expressions.cshtml"
|
#line 83 "..\..\Areas\Config\Views\JobPreferences\Parts\Expressions.cshtml"
|
||||||
Write(Html.EditorFor(model => model.OnCloseExpression));
|
Write(Html.EditorFor(model => model.OnDeviceReadyForReturnExpression));
|
||||||
|
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
@@ -328,7 +328,7 @@ WriteLiteral(" type=\"text/javascript\"");
|
|||||||
|
|
||||||
WriteLiteral(@">
|
WriteLiteral(@">
|
||||||
$(function () {
|
$(function () {
|
||||||
var field = $('#OnCloseExpression');
|
var field = $('#OnDeviceReadyForReturnExpression');
|
||||||
var fieldRemove = field.next('.ajaxRemove');
|
var fieldRemove = field.next('.ajaxRemove');
|
||||||
var fieldOriginalWidth, fieldOriginalHeight;
|
var fieldOriginalWidth, fieldOriginalHeight;
|
||||||
|
|
||||||
@@ -339,38 +339,48 @@ WriteLiteral(@">
|
|||||||
|
|
||||||
|
|
||||||
#line 96 "..\..\Areas\Config\Views\JobPreferences\Parts\Expressions.cshtml"
|
#line 96 "..\..\Areas\Config\Views\JobPreferences\Parts\Expressions.cshtml"
|
||||||
Write(Url.Action(MVC.API.JobPreferences.UpdateOnCloseExpression()));
|
Write(Url.Action(MVC.API.JobPreferences.UpdateOnDeviceReadyForReturnExpression()));
|
||||||
|
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
#line hidden
|
#line hidden
|
||||||
WriteLiteral("\',\r\n \'OnCloseExpression\'\r\n " +
|
WriteLiteral(@"',
|
||||||
" );\r\n\r\n field.focus(function () {\r\n " +
|
'OnDeviceReadyForReturnExpression'
|
||||||
" fieldOriginalWidth = field.width();\r\n " +
|
);
|
||||||
" fieldOriginalHeight = field.height();\r\n " +
|
|
||||||
" field.css(\'overflow\', \'visible\').animate({ width: field.par" +
|
field.focus(function () {
|
||||||
"ent().width() - 42, height: 75 }, 200);\r\n }).blur" +
|
fieldOriginalWidth = field.width();
|
||||||
"(function () {\r\n field.css(\'overflow\', \'hidde" +
|
fieldOriginalHeight = field.height();
|
||||||
"n\').animate({ width: fieldOriginalWidth, height: fieldOriginalHeight }, 200);\r\n " +
|
field.css('overflow', 'visible').animate({ width: field.parent().width() - 42, height: 75 }, 200);
|
||||||
" }).change(function () {\r\n " +
|
}).blur(function () {
|
||||||
" if (!!field.val()) {\r\n fieldR" +
|
field.css('overflow', 'hidden').animate({ width: fieldOriginalWidth, height: fieldOriginalHeight }, 200);
|
||||||
"emove.show();\r\n } else {\r\n " +
|
}).change(function () {
|
||||||
" fieldRemove.hide();\r\n }\r" +
|
if (!!field.val()) {
|
||||||
"\n }).attr(\'placeholder\', \'None\').attr(\'spellcheck" +
|
fieldRemove.show();
|
||||||
"\', \'false\');\r\n\r\n fieldRemove.click(function () {\r" +
|
} else {
|
||||||
"\n field.val(\'\').change();\r\n " +
|
fieldRemove.hide();
|
||||||
" });\r\n\r\n if (!!field.val()) {\r\n " +
|
}
|
||||||
" fieldRemove.show();\r\n " +
|
}).attr('placeholder', 'None').attr('spellcheck', 'false');
|
||||||
" } else {\r\n fieldRemove.hide();\r\n " +
|
|
||||||
" }\r\n });\r\n <" +
|
fieldRemove.click(function () {
|
||||||
"/script>\r\n");
|
field.val('').change();
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!!field.val()) {
|
||||||
|
fieldRemove.show();
|
||||||
|
} else {
|
||||||
|
fieldRemove.hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
");
|
||||||
|
|
||||||
|
|
||||||
#line 125 "..\..\Areas\Config\Views\JobPreferences\Parts\Expressions.cshtml"
|
#line 125 "..\..\Areas\Config\Views\JobPreferences\Parts\Expressions.cshtml"
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(Model.OnCloseExpression))
|
if (string.IsNullOrWhiteSpace(Model.OnDeviceReadyForReturnExpression))
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
@@ -401,7 +411,7 @@ WriteLiteral(" ");
|
|||||||
|
|
||||||
|
|
||||||
#line 135 "..\..\Areas\Config\Views\JobPreferences\Parts\Expressions.cshtml"
|
#line 135 "..\..\Areas\Config\Views\JobPreferences\Parts\Expressions.cshtml"
|
||||||
Write(Model.OnCloseExpression);
|
Write(Model.OnDeviceReadyForReturnExpression);
|
||||||
|
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
@@ -428,6 +438,194 @@ WriteLiteral(">\r\n <i");
|
|||||||
|
|
||||||
WriteLiteral(" class=\"fa fa-fw fa-info-circle\"");
|
WriteLiteral(" class=\"fa fa-fw fa-info-circle\"");
|
||||||
|
|
||||||
|
WriteLiteral(@"></i>This expression will be evaluated whenever a device is flagged as Ready For Return. If the expression has any output it will be added to the job log.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th");
|
||||||
|
|
||||||
|
WriteLiteral(" style=\"width: 200px\"");
|
||||||
|
|
||||||
|
WriteLiteral(">On Close:</th>\r\n <td>\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 149 "..\..\Areas\Config\Views\JobPreferences\Parts\Expressions.cshtml"
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
|
||||||
|
#line 149 "..\..\Areas\Config\Views\JobPreferences\Parts\Expressions.cshtml"
|
||||||
|
if (canConfig)
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
|
||||||
|
#line 151 "..\..\Areas\Config\Views\JobPreferences\Parts\Expressions.cshtml"
|
||||||
|
Write(Html.EditorFor(model => model.OnCloseExpression));
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
|
||||||
|
#line 151 "..\..\Areas\Config\Views\JobPreferences\Parts\Expressions.cshtml"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
|
||||||
|
#line 152 "..\..\Areas\Config\Views\JobPreferences\Parts\Expressions.cshtml"
|
||||||
|
Write(AjaxHelpers.AjaxRemove());
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
|
||||||
|
#line 152 "..\..\Areas\Config\Views\JobPreferences\Parts\Expressions.cshtml"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
|
||||||
|
#line 153 "..\..\Areas\Config\Views\JobPreferences\Parts\Expressions.cshtml"
|
||||||
|
Write(AjaxHelpers.AjaxSave());
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
|
||||||
|
#line 153 "..\..\Areas\Config\Views\JobPreferences\Parts\Expressions.cshtml"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
|
||||||
|
#line 154 "..\..\Areas\Config\Views\JobPreferences\Parts\Expressions.cshtml"
|
||||||
|
Write(AjaxHelpers.AjaxLoader());
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
|
||||||
|
#line 154 "..\..\Areas\Config\Views\JobPreferences\Parts\Expressions.cshtml"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" <script");
|
||||||
|
|
||||||
|
WriteLiteral(" type=\"text/javascript\"");
|
||||||
|
|
||||||
|
WriteLiteral(@">
|
||||||
|
$(function () {
|
||||||
|
var field = $('#OnCloseExpression');
|
||||||
|
var fieldRemove = field.next('.ajaxRemove');
|
||||||
|
var fieldOriginalWidth, fieldOriginalHeight;
|
||||||
|
|
||||||
|
document.DiscoFunctions.PropertyChangeHelper(
|
||||||
|
field,
|
||||||
|
'None',
|
||||||
|
'");
|
||||||
|
|
||||||
|
|
||||||
|
#line 164 "..\..\Areas\Config\Views\JobPreferences\Parts\Expressions.cshtml"
|
||||||
|
Write(Url.Action(MVC.API.JobPreferences.UpdateOnCloseExpression()));
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral("\',\r\n \'OnCloseExpression\'\r\n " +
|
||||||
|
" );\r\n\r\n field.focus(function () {\r\n " +
|
||||||
|
" fieldOriginalWidth = field.width();\r\n " +
|
||||||
|
" fieldOriginalHeight = field.height();\r\n " +
|
||||||
|
" field.css(\'overflow\', \'visible\').animate({ width: field.par" +
|
||||||
|
"ent().width() - 42, height: 75 }, 200);\r\n }).blur" +
|
||||||
|
"(function () {\r\n field.css(\'overflow\', \'hidde" +
|
||||||
|
"n\').animate({ width: fieldOriginalWidth, height: fieldOriginalHeight }, 200);\r\n " +
|
||||||
|
" }).change(function () {\r\n " +
|
||||||
|
" if (!!field.val()) {\r\n fieldR" +
|
||||||
|
"emove.show();\r\n } else {\r\n " +
|
||||||
|
" fieldRemove.hide();\r\n }\r" +
|
||||||
|
"\n }).attr(\'placeholder\', \'None\').attr(\'spellcheck" +
|
||||||
|
"\', \'false\');\r\n\r\n fieldRemove.click(function () {\r" +
|
||||||
|
"\n field.val(\'\').change();\r\n " +
|
||||||
|
" });\r\n\r\n if (!!field.val()) {\r\n " +
|
||||||
|
" fieldRemove.show();\r\n " +
|
||||||
|
" } else {\r\n fieldRemove.hide();\r\n " +
|
||||||
|
" }\r\n });\r\n <" +
|
||||||
|
"/script>\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 193 "..\..\Areas\Config\Views\JobPreferences\Parts\Expressions.cshtml"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (string.IsNullOrWhiteSpace(Model.OnCloseExpression))
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" <span");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"smallMessage\"");
|
||||||
|
|
||||||
|
WriteLiteral("><None Specified></span>\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 199 "..\..\Areas\Config\Views\JobPreferences\Parts\Expressions.cshtml"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" <div");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"code\"");
|
||||||
|
|
||||||
|
WriteLiteral(">\r\n");
|
||||||
|
|
||||||
|
WriteLiteral(" ");
|
||||||
|
|
||||||
|
|
||||||
|
#line 203 "..\..\Areas\Config\Views\JobPreferences\Parts\Expressions.cshtml"
|
||||||
|
Write(Model.OnCloseExpression);
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral("\r\n </div>\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 205 "..\..\Areas\Config\Views\JobPreferences\Parts\Expressions.cshtml"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" <div");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"info-box\"");
|
||||||
|
|
||||||
|
WriteLiteral(">\r\n <p");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"fa-p\"");
|
||||||
|
|
||||||
|
WriteLiteral(">\r\n <i");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"fa fa-fw fa-info-circle\"");
|
||||||
|
|
||||||
WriteLiteral("></i>This expression will be evaluated whenever a job is closed. If the expressio" +
|
WriteLiteral("></i>This expression will be evaluated whenever a job is closed. If the expressio" +
|
||||||
"n has any output it will be added to the job log.\r\n </p>\r\n " +
|
"n has any output it will be added to the job log.\r\n </p>\r\n " +
|
||||||
" </div>\r\n </td>\r\n </tr>\r\n </table>\r\n</div>");
|
" </div>\r\n </td>\r\n </tr>\r\n </table>\r\n</div>");
|
||||||
|
|||||||
@@ -1553,8 +1553,7 @@ h1.Config_DocumentTemplates {
|
|||||||
#Config_JobPref_Expressions {
|
#Config_JobPref_Expressions {
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
}
|
}
|
||||||
#Config_JobPref_Expressions #OnCreateExpression,
|
#Config_JobPref_Expressions textarea {
|
||||||
#Config_JobPref_Expressions #OnCloseExpression {
|
|
||||||
height: 16px;
|
height: 16px;
|
||||||
min-height: 16px;
|
min-height: 16px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|||||||
@@ -1807,7 +1807,7 @@ h1.Config_DocumentTemplates {
|
|||||||
#Config_JobPref_Expressions {
|
#Config_JobPref_Expressions {
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
|
|
||||||
#OnCreateExpression, #OnCloseExpression {
|
textarea {
|
||||||
height: 16px;
|
height: 16px;
|
||||||
min-height: 16px;
|
min-height: 16px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|||||||
+1
-1
File diff suppressed because one or more lines are too long
@@ -103,6 +103,12 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
}
|
}
|
||||||
[NonAction]
|
[NonAction]
|
||||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
|
public virtual System.Web.Mvc.ActionResult UpdateOnDeviceReadyForReturnExpression()
|
||||||
|
{
|
||||||
|
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateOnDeviceReadyForReturnExpression);
|
||||||
|
}
|
||||||
|
[NonAction]
|
||||||
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
public virtual System.Web.Mvc.ActionResult UpdateOnCloseExpression()
|
public virtual System.Web.Mvc.ActionResult UpdateOnCloseExpression()
|
||||||
{
|
{
|
||||||
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateOnCloseExpression);
|
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateOnCloseExpression);
|
||||||
@@ -130,6 +136,7 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
public readonly string UpdateLocationList = "UpdateLocationList";
|
public readonly string UpdateLocationList = "UpdateLocationList";
|
||||||
public readonly string ImportLocationList = "ImportLocationList";
|
public readonly string ImportLocationList = "ImportLocationList";
|
||||||
public readonly string UpdateOnCreateExpression = "UpdateOnCreateExpression";
|
public readonly string UpdateOnCreateExpression = "UpdateOnCreateExpression";
|
||||||
|
public readonly string UpdateOnDeviceReadyForReturnExpression = "UpdateOnDeviceReadyForReturnExpression";
|
||||||
public readonly string UpdateOnCloseExpression = "UpdateOnCloseExpression";
|
public readonly string UpdateOnCloseExpression = "UpdateOnCloseExpression";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -143,6 +150,7 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
public const string UpdateLocationList = "UpdateLocationList";
|
public const string UpdateLocationList = "UpdateLocationList";
|
||||||
public const string ImportLocationList = "ImportLocationList";
|
public const string ImportLocationList = "ImportLocationList";
|
||||||
public const string UpdateOnCreateExpression = "UpdateOnCreateExpression";
|
public const string UpdateOnCreateExpression = "UpdateOnCreateExpression";
|
||||||
|
public const string UpdateOnDeviceReadyForReturnExpression = "UpdateOnDeviceReadyForReturnExpression";
|
||||||
public const string UpdateOnCloseExpression = "UpdateOnCloseExpression";
|
public const string UpdateOnCloseExpression = "UpdateOnCloseExpression";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -212,6 +220,15 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
public readonly string OnCreateExpression = "OnCreateExpression";
|
public readonly string OnCreateExpression = "OnCreateExpression";
|
||||||
public readonly string redirect = "redirect";
|
public readonly string redirect = "redirect";
|
||||||
}
|
}
|
||||||
|
static readonly ActionParamsClass_UpdateOnDeviceReadyForReturnExpression s_params_UpdateOnDeviceReadyForReturnExpression = new ActionParamsClass_UpdateOnDeviceReadyForReturnExpression();
|
||||||
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
|
public ActionParamsClass_UpdateOnDeviceReadyForReturnExpression UpdateOnDeviceReadyForReturnExpressionParams { get { return s_params_UpdateOnDeviceReadyForReturnExpression; } }
|
||||||
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
|
public class ActionParamsClass_UpdateOnDeviceReadyForReturnExpression
|
||||||
|
{
|
||||||
|
public readonly string OnDeviceReadyForReturnExpression = "OnDeviceReadyForReturnExpression";
|
||||||
|
public readonly string redirect = "redirect";
|
||||||
|
}
|
||||||
static readonly ActionParamsClass_UpdateOnCloseExpression s_params_UpdateOnCloseExpression = new ActionParamsClass_UpdateOnCloseExpression();
|
static readonly ActionParamsClass_UpdateOnCloseExpression s_params_UpdateOnCloseExpression = new ActionParamsClass_UpdateOnCloseExpression();
|
||||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
public ActionParamsClass_UpdateOnCloseExpression UpdateOnCloseExpressionParams { get { return s_params_UpdateOnCloseExpression; } }
|
public ActionParamsClass_UpdateOnCloseExpression UpdateOnCloseExpressionParams { get { return s_params_UpdateOnCloseExpression; } }
|
||||||
@@ -333,6 +350,19 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
return callInfo;
|
return callInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[NonAction]
|
||||||
|
partial void UpdateOnDeviceReadyForReturnExpressionOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, string OnDeviceReadyForReturnExpression, bool redirect);
|
||||||
|
|
||||||
|
[NonAction]
|
||||||
|
public override System.Web.Mvc.ActionResult UpdateOnDeviceReadyForReturnExpression(string OnDeviceReadyForReturnExpression, bool redirect)
|
||||||
|
{
|
||||||
|
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateOnDeviceReadyForReturnExpression);
|
||||||
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "OnDeviceReadyForReturnExpression", OnDeviceReadyForReturnExpression);
|
||||||
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "redirect", redirect);
|
||||||
|
UpdateOnDeviceReadyForReturnExpressionOverride(callInfo, OnDeviceReadyForReturnExpression, redirect);
|
||||||
|
return callInfo;
|
||||||
|
}
|
||||||
|
|
||||||
[NonAction]
|
[NonAction]
|
||||||
partial void UpdateOnCloseExpressionOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, string OnCloseExpression, bool redirect);
|
partial void UpdateOnCloseExpressionOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, string OnCloseExpression, bool redirect);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user