Update #4: Import Location Lists
This commit is contained in:
1 parent
5be747afbc
commit
bfa3bf1e94
8 files changed
+284
-25
No files matched your search
@@ -2158,24 +2158,25 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
throw new InvalidOperationException("Unknown Location Mode Configured");
|
throw new InvalidOperationException("Unknown Location Mode Configured");
|
||||||
}
|
}
|
||||||
|
|
||||||
var locationReferences = ManagedJobList.OpenJobsTable(j => j).Items.JobLocationReferences().ToDictionary(lr => lr.Location);
|
var locationReferences = ManagedJobList.OpenJobsTable(j => j).Items.JobLocationReferences(locations);
|
||||||
|
|
||||||
var results = locations.Select(location =>
|
var results = locationReferences.Select(locRef =>
|
||||||
{
|
{
|
||||||
JobLocationReference reference;
|
string reference = null;
|
||||||
|
|
||||||
if (locationReferences.TryGetValue(location, out reference))
|
if (locRef.References == null && locRef.References.Count > 0)
|
||||||
{
|
{
|
||||||
|
if (locRef.References.Count == 1)
|
||||||
|
reference = string.Format("Job {0}", locRef.References[0].JobId);
|
||||||
|
else
|
||||||
|
reference = string.Format("{0} jobs", locRef.References.Count);
|
||||||
|
}
|
||||||
|
|
||||||
return new Models.Job.DeviceHeldLocationModel()
|
return new Models.Job.DeviceHeldLocationModel()
|
||||||
{
|
{
|
||||||
Location = location,
|
Location = locRef.Location,
|
||||||
References = (reference.References.Count == 1 ? string.Format("Job {0}", reference.References.First().JobId) : string.Format("{0} jobs", reference.References.Count))
|
References = reference
|
||||||
};
|
};
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return new Models.Job.DeviceHeldLocationModel() { Location = location };
|
|
||||||
}
|
|
||||||
}).ToList();
|
}).ToList();
|
||||||
|
|
||||||
return Json(results, JsonRequestBehavior.AllowGet);
|
return Json(results, JsonRequestBehavior.AllowGet);
|
||||||
|
|||||||
@@ -50,7 +50,53 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
[DiscoAuthorize(Claims.Config.JobPreferences.Configure)]
|
[DiscoAuthorize(Claims.Config.JobPreferences.Configure)]
|
||||||
public virtual ActionResult UpdateLocationList(string[] LocationList, bool redirect = false)
|
public virtual ActionResult UpdateLocationList(string[] LocationList, bool redirect = false)
|
||||||
{
|
{
|
||||||
Database.DiscoConfiguration.JobPreferences.LocationList = LocationList.Where(i => !string.IsNullOrWhiteSpace(i)).Select(i => i.Trim()).OrderBy(i => i).ToList();
|
var list = LocationList
|
||||||
|
.Where(i => !string.IsNullOrWhiteSpace(i))
|
||||||
|
.Select(i => i.Trim())
|
||||||
|
.Distinct(StringComparer.InvariantCultureIgnoreCase)
|
||||||
|
.OrderBy(i => i);
|
||||||
|
|
||||||
|
Database.DiscoConfiguration.JobPreferences.LocationList = list.ToList();
|
||||||
|
Database.SaveChanges();
|
||||||
|
|
||||||
|
if (redirect)
|
||||||
|
return RedirectToAction(MVC.Config.JobPreferences.Index());
|
||||||
|
else
|
||||||
|
return Json("OK", JsonRequestBehavior.AllowGet);
|
||||||
|
}
|
||||||
|
|
||||||
|
[DiscoAuthorize(Claims.Config.JobPreferences.Configure)]
|
||||||
|
public virtual ActionResult ImportLocationList(string LocationList, bool AutomaticList = false, bool Override = false, bool redirect = false)
|
||||||
|
{
|
||||||
|
IEnumerable<string> list;
|
||||||
|
|
||||||
|
if (AutomaticList == true)
|
||||||
|
{
|
||||||
|
var jobDateThreshold = DateTime.Now.AddYears(-1);
|
||||||
|
list = Database.Jobs
|
||||||
|
.Where(j => (j.OpenedDate > jobDateThreshold || !j.ClosedDate.HasValue) && j.DeviceHeldLocation != null)
|
||||||
|
.Select(j => j.DeviceHeldLocation).Distinct().ToList();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
list = LocationList
|
||||||
|
.Split(new string[] { Environment.NewLine, ",", ";" }, StringSplitOptions.RemoveEmptyEntries);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Override)
|
||||||
|
{
|
||||||
|
// Incorporate existing list
|
||||||
|
list = list.Concat(Database.DiscoConfiguration.JobPreferences.LocationList);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove duplicates & Order
|
||||||
|
list = list
|
||||||
|
.Where(l => !string.IsNullOrWhiteSpace(l))
|
||||||
|
.Select(l => l.Trim())
|
||||||
|
.Distinct(StringComparer.InvariantCultureIgnoreCase)
|
||||||
|
.OrderBy(i => i);
|
||||||
|
|
||||||
|
Database.DiscoConfiguration.JobPreferences.LocationList = list.ToList();
|
||||||
Database.SaveChanges();
|
Database.SaveChanges();
|
||||||
|
|
||||||
if (redirect)
|
if (redirect)
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="Config_Location_List">
|
<div id="Config_Location_List">
|
||||||
<a id="Config_Location_List_Button" href="#" class="button small">Update List</a>
|
<a id="Config_Location_List_Button" href="#" class="button small">Update List</a> <a id="Config_Location_List_ImportButton" href="#" class="button small">Import List</a>
|
||||||
<div id="Config_Location_List_Dialog" class="dialog" title="Locations">
|
<div id="Config_Location_List_Dialog" class="dialog" title="Locations">
|
||||||
<div id="Config_Location_List_Dialog_ListContainer">
|
<div id="Config_Location_List_Dialog_ListContainer">
|
||||||
<span id="Config_Location_List_Dialog_None" class="smallMessage">The List is Empty</span>
|
<span id="Config_Location_List_Dialog_None" class="smallMessage">The List is Empty</span>
|
||||||
@@ -38,6 +38,18 @@
|
|||||||
</div>
|
</div>
|
||||||
<form id="Config_Location_List_Dialog_Form" action="@(Url.Action(MVC.API.JobPreferences.UpdateLocationList(null, redirect: true)))" method="post"></form>
|
<form id="Config_Location_List_Dialog_Form" action="@(Url.Action(MVC.API.JobPreferences.UpdateLocationList(null, redirect: true)))" method="post"></form>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="Config_Location_ListImport_Dialog" class="dialog" title="Import Locations">
|
||||||
|
<form id="Config_Location_ListImport_Dialog_Form" action="@(Url.Action(MVC.API.JobPreferences.ImportLocationList(null, redirect: true)))" method="post">
|
||||||
|
<input type="hidden" id="Config_Location_ListImport_Dialog_AutomaticList" name="AutomaticList" value="False" />
|
||||||
|
<div id="Config_Location_ListImport_Dialog_Overwrite_Container">
|
||||||
|
<input type="checkbox" id="Config_Location_ListImport_Dialog_Overwrite" name="Override" value="True" /><label for="Config_Location_ListImport_Dialog_Overwrite">Override Existing List</label>
|
||||||
|
</div>
|
||||||
|
<textarea id="Config_Location_ListImport_Dialog_LocationList" name="LocationList"></textarea>
|
||||||
|
<div style="padding: 0.7em 0.7em; margin-top: 10px;" class="ui-state-highlight ui-corner-all">
|
||||||
|
<i class="fa fa-info-circle information"></i> Enter multiple locations separated by <code><new line></code>, commas (<code>,</code>) or semicolons (<code>;</code>).
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="Config_Location_Optional">
|
<div id="Config_Location_Optional">
|
||||||
<div style="padding: 0.7em 0.7em;" class="ui-state-highlight ui-corner-all">
|
<div style="padding: 0.7em 0.7em;" class="ui-state-highlight ui-corner-all">
|
||||||
@@ -220,6 +232,43 @@
|
|||||||
dialog.dialog("disable");
|
dialog.dialog("disable");
|
||||||
dialog.dialog("option", "buttons", null);
|
dialog.dialog("option", "buttons", null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Import
|
||||||
|
var dialogImport, formImport;
|
||||||
|
|
||||||
|
$('#Config_Location_List_ImportButton').click(showDialogImport);
|
||||||
|
|
||||||
|
function showDialogImport() {
|
||||||
|
if (!dialogImport) {
|
||||||
|
dialogImport = $('#Config_Location_ListImport_Dialog').dialog({
|
||||||
|
resizable: false,
|
||||||
|
modal: true,
|
||||||
|
autoOpen: false,
|
||||||
|
width: 350,
|
||||||
|
height: 420,
|
||||||
|
buttons: {
|
||||||
|
"Build Automatic List": function () {
|
||||||
|
$('#Config_Location_ListImport_Dialog_AutomaticList').val('True').closest('form').submit();
|
||||||
|
dialogImport.dialog("disable");
|
||||||
|
dialogImport.dialog("option", "buttons", null);
|
||||||
|
},
|
||||||
|
"Import List": function () {
|
||||||
|
$('#Config_Location_ListImport_Dialog_LocationList').closest('form').submit();
|
||||||
|
dialogImport.dialog("disable");
|
||||||
|
dialogImport.dialog("option", "buttons", null);
|
||||||
|
},
|
||||||
|
Cancel: function () {
|
||||||
|
dialogImport.dialog("close");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
dialogImport.dialog('open');
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -148,7 +148,15 @@ WriteLiteral(" href=\"#\"");
|
|||||||
|
|
||||||
WriteLiteral(" class=\"button small\"");
|
WriteLiteral(" class=\"button small\"");
|
||||||
|
|
||||||
WriteLiteral(">Update List</a>\r\n <div");
|
WriteLiteral(">Update List</a> <a");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"Config_Location_List_ImportButton\"");
|
||||||
|
|
||||||
|
WriteLiteral(" href=\"#\"");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"button small\"");
|
||||||
|
|
||||||
|
WriteLiteral(">Import List</a>\r\n <div");
|
||||||
|
|
||||||
WriteLiteral(" id=\"Config_Location_List_Dialog\"");
|
WriteLiteral(" id=\"Config_Location_List_Dialog\"");
|
||||||
|
|
||||||
@@ -246,19 +254,93 @@ WriteLiteral(">Add</a>\r\n </div>\r\n
|
|||||||
|
|
||||||
WriteLiteral(" id=\"Config_Location_List_Dialog_Form\"");
|
WriteLiteral(" id=\"Config_Location_List_Dialog_Form\"");
|
||||||
|
|
||||||
WriteAttribute("action", Tuple.Create(" action=\"", 2359), Tuple.Create("\"", 2446)
|
WriteAttribute("action", Tuple.Create(" action=\"", 2447), Tuple.Create("\"", 2534)
|
||||||
|
|
||||||
#line 39 "..\..\Areas\Config\Views\JobPreferences\Parts\Locations.cshtml"
|
#line 39 "..\..\Areas\Config\Views\JobPreferences\Parts\Locations.cshtml"
|
||||||
, Tuple.Create(Tuple.Create("", 2368), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.API.JobPreferences.UpdateLocationList(null, redirect: true))
|
, Tuple.Create(Tuple.Create("", 2456), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.API.JobPreferences.UpdateLocationList(null, redirect: true))
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
#line hidden
|
#line hidden
|
||||||
, 2368), false)
|
, 2456), false)
|
||||||
);
|
);
|
||||||
|
|
||||||
WriteLiteral(" method=\"post\"");
|
WriteLiteral(" method=\"post\"");
|
||||||
|
|
||||||
WriteLiteral("></form>\r\n </div>\r\n </div>\r\n");
|
WriteLiteral("></form>\r\n </div>\r\n <div");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"Config_Location_ListImport_Dialog\"");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"dialog\"");
|
||||||
|
|
||||||
|
WriteLiteral(" title=\"Import Locations\"");
|
||||||
|
|
||||||
|
WriteLiteral(">\r\n <form");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"Config_Location_ListImport_Dialog_Form\"");
|
||||||
|
|
||||||
|
WriteAttribute("action", Tuple.Create(" action=\"", 2766), Tuple.Create("\"", 2853)
|
||||||
|
|
||||||
|
#line 42 "..\..\Areas\Config\Views\JobPreferences\Parts\Locations.cshtml"
|
||||||
|
, Tuple.Create(Tuple.Create("", 2775), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.API.JobPreferences.ImportLocationList(null, redirect: true))
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
, 2775), false)
|
||||||
|
);
|
||||||
|
|
||||||
|
WriteLiteral(" method=\"post\"");
|
||||||
|
|
||||||
|
WriteLiteral(">\r\n <input");
|
||||||
|
|
||||||
|
WriteLiteral(" type=\"hidden\"");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"Config_Location_ListImport_Dialog_AutomaticList\"");
|
||||||
|
|
||||||
|
WriteLiteral(" name=\"AutomaticList\"");
|
||||||
|
|
||||||
|
WriteLiteral(" value=\"False\"");
|
||||||
|
|
||||||
|
WriteLiteral(" />\r\n <div");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"Config_Location_ListImport_Dialog_Overwrite_Container\"");
|
||||||
|
|
||||||
|
WriteLiteral(">\r\n <input");
|
||||||
|
|
||||||
|
WriteLiteral(" type=\"checkbox\"");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"Config_Location_ListImport_Dialog_Overwrite\"");
|
||||||
|
|
||||||
|
WriteLiteral(" name=\"Override\"");
|
||||||
|
|
||||||
|
WriteLiteral(" value=\"True\"");
|
||||||
|
|
||||||
|
WriteLiteral(" /><label");
|
||||||
|
|
||||||
|
WriteLiteral(" for=\"Config_Location_ListImport_Dialog_Overwrite\"");
|
||||||
|
|
||||||
|
WriteLiteral(">Override Existing List</label>\r\n </div>\r\n " +
|
||||||
|
" <textarea");
|
||||||
|
|
||||||
|
WriteLiteral(" id=\"Config_Location_ListImport_Dialog_LocationList\"");
|
||||||
|
|
||||||
|
WriteLiteral(" name=\"LocationList\"");
|
||||||
|
|
||||||
|
WriteLiteral("></textarea>\r\n <div");
|
||||||
|
|
||||||
|
WriteLiteral(" style=\"padding: 0.7em 0.7em; margin-top: 10px;\"");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"ui-state-highlight ui-corner-all\"");
|
||||||
|
|
||||||
|
WriteLiteral(">\r\n <i");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"fa fa-info-circle information\"");
|
||||||
|
|
||||||
|
WriteLiteral(@"></i> Enter multiple locations separated by <code><new line></code>, commas (<code>,</code>) or semicolons (<code>;</code>).
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
");
|
||||||
|
|
||||||
WriteLiteral(" <div");
|
WriteLiteral(" <div");
|
||||||
|
|
||||||
@@ -304,7 +386,7 @@ WriteLiteral(">\r\n $(function () {\r\n
|
|||||||
" null,\r\n \'");
|
" null,\r\n \'");
|
||||||
|
|
||||||
|
|
||||||
#line 57 "..\..\Areas\Config\Views\JobPreferences\Parts\Locations.cshtml"
|
#line 69 "..\..\Areas\Config\Views\JobPreferences\Parts\Locations.cshtml"
|
||||||
Write(Url.Action(MVC.API.JobPreferences.UpdateLocationMode()));
|
Write(Url.Action(MVC.API.JobPreferences.UpdateLocationMode()));
|
||||||
|
|
||||||
|
|
||||||
@@ -400,11 +482,35 @@ WriteLiteral("\',\r\n \'LocationMode\');\r\n\r\n
|
|||||||
"en\'\r\n }).val(location));\r\n\r\n " +
|
"en\'\r\n }).val(location));\r\n\r\n " +
|
||||||
" }).get();\r\n\r\n form.submit();\r\n\r\n " +
|
" }).get();\r\n\r\n form.submit();\r\n\r\n " +
|
||||||
" dialog.dialog(\"disable\");\r\n dialog.dial" +
|
" dialog.dialog(\"disable\");\r\n dialog.dial" +
|
||||||
"og(\"option\", \"buttons\", null);\r\n }\r\n }" +
|
"og(\"option\", \"buttons\", null);\r\n }\r\n\r\n " +
|
||||||
");\r\n </script>\r\n");
|
" // Import\r\n var dialogImport, formImport;\r\n\r\n " +
|
||||||
|
" $(\'#Config_Location_List_ImportButton\').click(showDialogImport)" +
|
||||||
|
";\r\n\r\n function showDialogImport() {\r\n " +
|
||||||
|
" if (!dialogImport) {\r\n dialogImport = $(\'" +
|
||||||
|
"#Config_Location_ListImport_Dialog\').dialog({\r\n " +
|
||||||
|
" resizable: false,\r\n modal: true,\r\n " +
|
||||||
|
" autoOpen: false,\r\n " +
|
||||||
|
" width: 350,\r\n height: 420,\r\n " +
|
||||||
|
" buttons: {\r\n \"Build " +
|
||||||
|
"Automatic List\": function () {\r\n $(\'#" +
|
||||||
|
"Config_Location_ListImport_Dialog_AutomaticList\').val(\'True\').closest(\'form\').su" +
|
||||||
|
"bmit();\r\n dialogImport.dialog(\"disabl" +
|
||||||
|
"e\");\r\n dialogImport.dialog(\"option\", " +
|
||||||
|
"\"buttons\", null);\r\n },\r\n " +
|
||||||
|
" \"Import List\": function () {\r\n " +
|
||||||
|
" $(\'#Config_Location_ListImport_Dialog_LocationList\').closest(\'f" +
|
||||||
|
"orm\').submit();\r\n dialogImport.dialog" +
|
||||||
|
"(\"disable\");\r\n dialogImport.dialog(\"o" +
|
||||||
|
"ption\", \"buttons\", null);\r\n },\r\n " +
|
||||||
|
" Cancel: function () {\r\n " +
|
||||||
|
" dialogImport.dialog(\"close\");\r\n " +
|
||||||
|
" }\r\n }\r\n " +
|
||||||
|
" });\r\n }\r\n\r\n dialogImpor" +
|
||||||
|
"t.dialog(\'open\');\r\n\r\n return false;\r\n " +
|
||||||
|
" }\r\n\r\n });\r\n </script>\r\n");
|
||||||
|
|
||||||
|
|
||||||
#line 225 "..\..\Areas\Config\Views\JobPreferences\Parts\Locations.cshtml"
|
#line 274 "..\..\Areas\Config\Views\JobPreferences\Parts\Locations.cshtml"
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -413,14 +519,14 @@ WriteLiteral("\',\r\n \'LocationMode\');\r\n\r\n
|
|||||||
#line default
|
#line default
|
||||||
#line hidden
|
#line hidden
|
||||||
|
|
||||||
#line 228 "..\..\Areas\Config\Views\JobPreferences\Parts\Locations.cshtml"
|
#line 277 "..\..\Areas\Config\Views\JobPreferences\Parts\Locations.cshtml"
|
||||||
Write(Model.LocationModeOptions().First(o => o.Key == Model.LocationMode.ToString()).Value);
|
Write(Model.LocationModeOptions().First(o => o.Key == Model.LocationMode.ToString()).Value);
|
||||||
|
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
#line hidden
|
#line hidden
|
||||||
|
|
||||||
#line 228 "..\..\Areas\Config\Views\JobPreferences\Parts\Locations.cshtml"
|
#line 277 "..\..\Areas\Config\Views\JobPreferences\Parts\Locations.cshtml"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -988,6 +988,17 @@ div.logEventsViewport table.logEventsViewport > tbody > tr > td.eventType {
|
|||||||
#Config_Location_List_Dialog #Config_Location_List_Dialog_List li .remove:hover {
|
#Config_Location_List_Dialog #Config_Location_List_Dialog_List li .remove:hover {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
#Config_Location_ListImport_Dialog {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
#Config_Location_ListImport_Dialog #Config_Location_ListImport_Dialog_Overwrite_Container {
|
||||||
|
margin: 6px 0;
|
||||||
|
}
|
||||||
|
#Config_Location_ListImport_Dialog #Config_Location_ListImport_Dialog_LocationList {
|
||||||
|
width: 100%;
|
||||||
|
height: 200px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
#Config_JobQueues_Index i {
|
#Config_JobQueues_Index i {
|
||||||
width: 1.2857142857142858em;
|
width: 1.2857142857142858em;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|||||||
@@ -1126,6 +1126,20 @@ div.logEventsViewport {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#Config_Location_ListImport_Dialog {
|
||||||
|
display: none;
|
||||||
|
|
||||||
|
#Config_Location_ListImport_Dialog_Overwrite_Container {
|
||||||
|
margin: 6px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#Config_Location_ListImport_Dialog_LocationList {
|
||||||
|
width: 100%;
|
||||||
|
height: 200px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#Config_JobQueues_Index {
|
#Config_JobQueues_Index {
|
||||||
i {
|
i {
|
||||||
width: 1.2857142857142858em;
|
width: 1.2857142857142858em;
|
||||||
|
|||||||
+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:#fcfcfc}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}.tableData>tbody>tr:hover>td{background-color:#fefefe}.tableData>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}.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}#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.dynatree-node.property span.dynatree-icon{background-position-x:-48px}table.expressionsTable{border:solid 1px #f4f4f4;border-collapse:collapse}table.expressionsTable>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}table.expressionsTable>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}table.expressionsTable>thead>tr>th,table.expressionsTable>tbody>tr>th{background-color: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:#fcfcfc}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#f4f4f4;border:solid 1px #f4f4f4}.tableData>tbody>tr:hover>td{background-color:#fefefe}.tableData>tbody>tr:hover:nth-child(odd)>td{background-color:#fafafa}.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}#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.dynatree-node.property span.dynatree-icon{background-position-x:-48px}table.expressionsTable{border:solid 1px #f4f4f4;border-collapse:collapse}table.expressionsTable>tbody>tr>td{border:solid 1px #f4f4f4;background-color:#fff}table.expressionsTable>tbody>tr:nth-child(odd)>td{background-color:#fcfcfc}table.expressionsTable>thead>tr>th,table.expressionsTable>tbody>tr>th{background-color:Line truncated
|
||||||
@@ -7718,6 +7718,12 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
{
|
{
|
||||||
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateLocationList);
|
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateLocationList);
|
||||||
}
|
}
|
||||||
|
[NonAction]
|
||||||
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
|
public virtual System.Web.Mvc.ActionResult ImportLocationList()
|
||||||
|
{
|
||||||
|
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.ImportLocationList);
|
||||||
|
}
|
||||||
|
|
||||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
public JobPreferencesController Actions { get { return MVC.API.JobPreferences; } }
|
public JobPreferencesController Actions { get { return MVC.API.JobPreferences; } }
|
||||||
@@ -7738,6 +7744,7 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
public readonly string UpdateStaleJobMinutesThreshold = "UpdateStaleJobMinutesThreshold";
|
public readonly string UpdateStaleJobMinutesThreshold = "UpdateStaleJobMinutesThreshold";
|
||||||
public readonly string UpdateLocationMode = "UpdateLocationMode";
|
public readonly string UpdateLocationMode = "UpdateLocationMode";
|
||||||
public readonly string UpdateLocationList = "UpdateLocationList";
|
public readonly string UpdateLocationList = "UpdateLocationList";
|
||||||
|
public readonly string ImportLocationList = "ImportLocationList";
|
||||||
}
|
}
|
||||||
|
|
||||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
@@ -7747,6 +7754,7 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
public const string UpdateStaleJobMinutesThreshold = "UpdateStaleJobMinutesThreshold";
|
public const string UpdateStaleJobMinutesThreshold = "UpdateStaleJobMinutesThreshold";
|
||||||
public const string UpdateLocationMode = "UpdateLocationMode";
|
public const string UpdateLocationMode = "UpdateLocationMode";
|
||||||
public const string UpdateLocationList = "UpdateLocationList";
|
public const string UpdateLocationList = "UpdateLocationList";
|
||||||
|
public const string ImportLocationList = "ImportLocationList";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -7786,6 +7794,17 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
public readonly string LocationList = "LocationList";
|
public readonly string LocationList = "LocationList";
|
||||||
public readonly string redirect = "redirect";
|
public readonly string redirect = "redirect";
|
||||||
}
|
}
|
||||||
|
static readonly ActionParamsClass_ImportLocationList s_params_ImportLocationList = new ActionParamsClass_ImportLocationList();
|
||||||
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
|
public ActionParamsClass_ImportLocationList ImportLocationListParams { get { return s_params_ImportLocationList; } }
|
||||||
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
|
public class ActionParamsClass_ImportLocationList
|
||||||
|
{
|
||||||
|
public readonly string LocationList = "LocationList";
|
||||||
|
public readonly string AutomaticList = "AutomaticList";
|
||||||
|
public readonly string Override = "Override";
|
||||||
|
public readonly string redirect = "redirect";
|
||||||
|
}
|
||||||
static readonly ViewsClass s_views = new ViewsClass();
|
static readonly ViewsClass s_views = new ViewsClass();
|
||||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
public ViewsClass Views { get { return s_views; } }
|
public ViewsClass Views { get { return s_views; } }
|
||||||
@@ -7849,6 +7868,19 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
return callInfo;
|
return callInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
partial void ImportLocationListOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, string LocationList, bool AutomaticList, bool Override, bool redirect);
|
||||||
|
|
||||||
|
public override System.Web.Mvc.ActionResult ImportLocationList(string LocationList, bool AutomaticList, bool Override, bool redirect)
|
||||||
|
{
|
||||||
|
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.ImportLocationList);
|
||||||
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "LocationList", LocationList);
|
||||||
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "AutomaticList", AutomaticList);
|
||||||
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "Override", Override);
|
||||||
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "redirect", redirect);
|
||||||
|
ImportLocationListOverride(callInfo, LocationList, AutomaticList, Override, redirect);
|
||||||
|
return callInfo;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user