Feature: Device Importing & Exporting
This commit is contained in:
1 parent
a3aaed1d13
commit
ad6b1b19b6
67 files changed
+3057
-265
No files matched your search
@@ -0,0 +1,102 @@
|
||||
using Disco.Models.BI.Device;
|
||||
using Disco.Models.Repository;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Disco.BI.DeviceBI.Importing
|
||||
{
|
||||
public static class Export
|
||||
{
|
||||
private const string ExportHeader = "Serial Number,Device Model,Device Profile,Device Batch,Assigned User,Location,Asset Number";
|
||||
|
||||
public static MemoryStream GenerateExport(IQueryable<Device> Devices)
|
||||
{
|
||||
var devices = Devices.Select(d => new ImportDevice()
|
||||
{
|
||||
SerialNumber = d.SerialNumber,
|
||||
DeviceModelId = d.DeviceModelId,
|
||||
DeviceProfileId = d.DeviceProfileId,
|
||||
DeviceBatchId = d.DeviceBatchId,
|
||||
AssignedUserId = d.AssignedUserId,
|
||||
Location = d.Location,
|
||||
AssetNumber = d.AssetNumber
|
||||
});
|
||||
|
||||
MemoryStream exportStream = new MemoryStream();
|
||||
|
||||
StreamWriter exportWriter = new StreamWriter(exportStream);
|
||||
// Write Header
|
||||
exportWriter.WriteLine(ExportHeader);
|
||||
|
||||
foreach (var device in devices)
|
||||
device.ExportCsv(exportWriter);
|
||||
|
||||
exportWriter.Flush();
|
||||
|
||||
exportStream.Position = 0;
|
||||
return exportStream;
|
||||
}
|
||||
|
||||
private static void ExportCsv(this ImportDevice device, StreamWriter writer)
|
||||
{
|
||||
// SERIAL NUMBER
|
||||
writer.Write('"');
|
||||
writer.Write(device.SerialNumber.Replace("\"", "\"\""));
|
||||
writer.Write('"');
|
||||
|
||||
writer.Write(',');
|
||||
|
||||
// DEVICE MODEL
|
||||
if (device.DeviceModelId.HasValue)
|
||||
writer.Write(device.DeviceModelId.Value);
|
||||
|
||||
writer.Write(',');
|
||||
|
||||
// DEVICE PROFILE
|
||||
writer.Write(device.DeviceProfileId);
|
||||
|
||||
writer.Write(',');
|
||||
|
||||
// DEVICE BATCH
|
||||
if (device.DeviceBatchId.HasValue)
|
||||
writer.Write(device.DeviceBatchId.Value);
|
||||
|
||||
writer.Write(',');
|
||||
|
||||
// ASSIGNED USER
|
||||
if (device.AssignedUserId != null)
|
||||
{
|
||||
writer.Write('"');
|
||||
writer.Write(device.AssignedUserId.Replace("\"", "\"\""));
|
||||
writer.Write('"');
|
||||
}
|
||||
|
||||
writer.Write(',');
|
||||
|
||||
// LOCATION
|
||||
if (!string.IsNullOrWhiteSpace(device.Location))
|
||||
{
|
||||
writer.Write('"');
|
||||
writer.Write(device.Location.Replace("\"", "\"\""));
|
||||
writer.Write('"');
|
||||
}
|
||||
|
||||
writer.Write(',');
|
||||
|
||||
// ASSET NUMBER
|
||||
if (!string.IsNullOrWhiteSpace(device.AssetNumber))
|
||||
{
|
||||
writer.Write('"');
|
||||
writer.Write(device.AssetNumber.Replace("\"", "\"\""));
|
||||
writer.Write('"');
|
||||
}
|
||||
|
||||
writer.WriteLine();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -8,14 +8,23 @@ using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web;
|
||||
using PopulateRecordReferences = System.Tuple<System.Collections.Generic.Dictionary<int, Disco.Models.Repository.DeviceModel>, System.Collections.Generic.Dictionary<int, Disco.Models.Repository.DeviceProfile>, System.Collections.Generic.Dictionary<int, Disco.Models.Repository.DeviceBatch>>;
|
||||
|
||||
namespace Disco.BI.DeviceBI.Importing
|
||||
{
|
||||
internal static class Import
|
||||
public static class Import
|
||||
{
|
||||
internal const string ImportParseCacheKey = "ImportParseResults_{0}";
|
||||
|
||||
internal static void ImportRecord(this ImportDevice device, DiscoDataContext dbContext, PopulateRecordReferences references)
|
||||
public static ImportDeviceSession GetSession(string ImportParseTaskId)
|
||||
{
|
||||
string parseKey = string.Format(ImportParseCacheKey, ImportParseTaskId);
|
||||
|
||||
return (ImportDeviceSession)HttpRuntime.Cache.Get(parseKey);
|
||||
}
|
||||
|
||||
internal static bool ImportRecord(this ImportDevice device, DiscoDataContext dbContext, PopulateRecordReferences references)
|
||||
{
|
||||
// Skips If Errors
|
||||
if (device.Errors == null || device.Errors.Count == 0)
|
||||
@@ -38,11 +47,16 @@ namespace Disco.BI.DeviceBI.Importing
|
||||
dbContext.Devices.Add(discoDevice);
|
||||
}
|
||||
|
||||
discoDevice.DeviceModelId = device.DeviceModelId;
|
||||
discoDevice.DeviceProfileId = device.DeviceProfileId;
|
||||
discoDevice.DeviceBatchId = device.DeviceBatchId;
|
||||
discoDevice.Location = device.Location;
|
||||
discoDevice.AssetNumber = device.AssetNumber;
|
||||
if (discoDevice.DeviceModelId != device.DeviceModelId)
|
||||
discoDevice.DeviceModelId = device.DeviceModelId;
|
||||
if (discoDevice.DeviceProfileId != device.DeviceProfileId)
|
||||
discoDevice.DeviceProfileId = device.DeviceProfileId;
|
||||
if (discoDevice.DeviceBatchId != device.DeviceBatchId)
|
||||
discoDevice.DeviceBatchId = device.DeviceBatchId;
|
||||
if (discoDevice.Location != device.Location)
|
||||
discoDevice.Location = device.Location;
|
||||
if (discoDevice.AssetNumber != device.AssetNumber)
|
||||
discoDevice.AssetNumber = device.AssetNumber;
|
||||
|
||||
if (discoDevice.AssignedUserId != device.AssignedUserId)
|
||||
{
|
||||
@@ -50,8 +64,11 @@ namespace Disco.BI.DeviceBI.Importing
|
||||
}
|
||||
|
||||
dbContext.SaveChanges();
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
internal static PopulateRecordReferences GetPopulateRecordReferences(DiscoDataContext dbContext)
|
||||
@@ -72,7 +89,12 @@ namespace Disco.BI.DeviceBI.Importing
|
||||
|
||||
// SERIAL NUMBER - Existing Device
|
||||
if (!device.Errors.ContainsKey("SerialNumber"))
|
||||
{
|
||||
device.Device = dbContext.Devices.Find(device.SerialNumber);
|
||||
if (device.Device != null && device.Device.DecommissionedDate.HasValue)
|
||||
device.Errors.Add("SerialNumber", "The device is decommissioned");
|
||||
}
|
||||
|
||||
|
||||
// DEVICE MODEL
|
||||
if (!device.Errors.ContainsKey("DeviceModelId"))
|
||||
@@ -223,5 +245,21 @@ namespace Disco.BI.DeviceBI.Importing
|
||||
Errors = errors
|
||||
};
|
||||
}
|
||||
|
||||
#region ImportDevice Extensions
|
||||
|
||||
public static string ImportStatus(this ImportDevice device)
|
||||
{
|
||||
if (device.Errors.Count > 0)
|
||||
return "Error";
|
||||
|
||||
if (device.Device != null)
|
||||
return "Update";
|
||||
|
||||
return "New";
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
@@ -22,10 +22,9 @@ namespace Disco.BI.DeviceBI.Importing
|
||||
public override bool SingleInstanceTask { get { return false; } }
|
||||
public override bool CancelInitiallySupported { get { return false; } }
|
||||
|
||||
internal const string ImportParseCacheKey = "ImportParseResults_{0}";
|
||||
|
||||
protected override void ExecuteTask()
|
||||
{
|
||||
string csvFilename = (string)this.ExecutionContext.JobDetail.JobDataMap["CsvFilename"];
|
||||
MemoryStream csvStream = (MemoryStream)this.ExecutionContext.JobDetail.JobDataMap["CsvImport"];
|
||||
|
||||
this.Status.UpdateStatus(0, "Parsing CSV File", "Loading Records");
|
||||
@@ -64,12 +63,20 @@ namespace Disco.BI.DeviceBI.Importing
|
||||
}
|
||||
}
|
||||
|
||||
// Create Session Result
|
||||
ImportDeviceSession session = new ImportDeviceSession()
|
||||
{
|
||||
ImportParseTaskId = this.Status.SessionId,
|
||||
ImportFilename = csvFilename,
|
||||
ImportDevices = records
|
||||
};
|
||||
|
||||
// Set Results to Cache
|
||||
string key = string.Format(ImportParseCacheKey, this.Status.SessionId);
|
||||
HttpRuntime.Cache.Insert(key, records, null, Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(60), CacheItemPriority.NotRemovable, null);
|
||||
string key = string.Format(Import.ImportParseCacheKey, this.Status.SessionId);
|
||||
HttpRuntime.Cache.Insert(key, session, null, Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(60), CacheItemPriority.NotRemovable, null);
|
||||
}
|
||||
|
||||
public static ScheduledTaskStatus Run(Stream CsvImport)
|
||||
public static ScheduledTaskStatus Run(Stream CsvImport, String CsvFilename)
|
||||
{
|
||||
|
||||
MemoryStream csvStream = new MemoryStream();
|
||||
@@ -77,7 +84,7 @@ namespace Disco.BI.DeviceBI.Importing
|
||||
csvStream.Position = 0;
|
||||
|
||||
var task = new ImportParseTask();
|
||||
JobDataMap taskData = new JobDataMap() { { "CsvImport", csvStream } };
|
||||
JobDataMap taskData = new JobDataMap() { { "CsvImport", csvStream }, { "CsvFilename", CsvFilename } };
|
||||
return task.ScheduleTask(taskData);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,18 +20,19 @@ namespace Disco.BI.DeviceBI.Importing
|
||||
|
||||
protected override void ExecuteTask()
|
||||
{
|
||||
string parseKey = (string)this.ExecutionContext.JobDetail.JobDataMap["ParseKey"];
|
||||
string importParseTaskId = (string)this.ExecutionContext.JobDetail.JobDataMap["ImportParseTaskId"];
|
||||
|
||||
if (string.IsNullOrWhiteSpace(parseKey))
|
||||
throw new ArgumentNullException("ParseKey");
|
||||
if (string.IsNullOrWhiteSpace(importParseTaskId))
|
||||
throw new ArgumentNullException("ImportParseTaskId");
|
||||
|
||||
parseKey = string.Format(ImportParseTask.ImportParseCacheKey, parseKey);
|
||||
ImportDeviceSession session = Import.GetSession(importParseTaskId);
|
||||
|
||||
List<ImportDevice> records = (List<ImportDevice>)HttpRuntime.Cache.Get(parseKey);
|
||||
|
||||
if (records == null)
|
||||
if (session == null)
|
||||
throw new InvalidOperationException("The session timed out (60 minutes), try importing again");
|
||||
|
||||
List<ImportDevice> records = session.ImportDevices;
|
||||
int recordsImported = 0;
|
||||
|
||||
this.Status.UpdateStatus(0, "Processing Device Import", "Importing Devices");
|
||||
|
||||
using (DiscoDataContext dbContext = new DiscoDataContext())
|
||||
@@ -41,7 +42,8 @@ namespace Disco.BI.DeviceBI.Importing
|
||||
DateTime lastUpdate = DateTime.Now;
|
||||
foreach (var record in records)
|
||||
{
|
||||
record.ImportRecord(dbContext, populateReferences);
|
||||
if (record.ImportRecord(dbContext, populateReferences))
|
||||
recordsImported++;
|
||||
|
||||
if (DateTime.Now.Subtract(lastUpdate).TotalSeconds > 1)
|
||||
{
|
||||
@@ -52,15 +54,16 @@ namespace Disco.BI.DeviceBI.Importing
|
||||
}
|
||||
}
|
||||
|
||||
this.Status.SetFinishedMessage(string.Format("Imported {0} of {1} Devices", recordsImported, records.Count));
|
||||
}
|
||||
|
||||
public static ScheduledTaskStatus Run(string ParseTaskSessionKey)
|
||||
public static ScheduledTaskStatus Run(string ImportParseTaskId)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(ParseTaskSessionKey))
|
||||
throw new ArgumentNullException("ParseTaskSessionKey");
|
||||
if (string.IsNullOrWhiteSpace(ImportParseTaskId))
|
||||
throw new ArgumentNullException("ImportParseTaskId");
|
||||
|
||||
var task = new ImportProcessTask();
|
||||
JobDataMap taskData = new JobDataMap() { { "ParseKey", ParseTaskSessionKey } };
|
||||
JobDataMap taskData = new JobDataMap() { { "ImportParseTaskId", ImportParseTaskId } };
|
||||
return task.ScheduleTask(taskData);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -123,6 +123,7 @@
|
||||
<Compile Include="BI\AttachmentBI\Utilities.cs" />
|
||||
<Compile Include="BI\DeviceBI\BatchUtilities.cs" />
|
||||
<Compile Include="BI\DeviceBI\DeviceModelBI.cs" />
|
||||
<Compile Include="BI\DeviceBI\Importing\Export.cs" />
|
||||
<Compile Include="BI\DeviceBI\Importing\Import.cs" />
|
||||
<Compile Include="BI\DeviceBI\Importing\ImportParseTask.cs" />
|
||||
<Compile Include="BI\DeviceBI\Importing\ImportProcessTask.cs" />
|
||||
@@ -251,9 +252,7 @@
|
||||
<ItemGroup>
|
||||
<None Include="Resources\MimeType-unknown48.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="BI\CertificateBI\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<ProjectExtensions>
|
||||
<VisualStudio>
|
||||
|
||||
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.2.0722.2112")]
|
||||
[assembly: AssemblyFileVersion("1.2.0722.2112")]
|
||||
[assembly: AssemblyVersion("1.2.0725.1725")]
|
||||
[assembly: AssemblyFileVersion("1.2.0725.1725")]
|
||||
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.2.0722.2115")]
|
||||
[assembly: AssemblyFileVersion("1.2.0722.2115")]
|
||||
[assembly: AssemblyVersion("1.2.0725.1725")]
|
||||
[assembly: AssemblyFileVersion("1.2.0725.1725")]
|
||||
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.2.0722.2047")]
|
||||
[assembly: AssemblyFileVersion("1.2.0722.2047")]
|
||||
[assembly: AssemblyVersion("1.2.0725.1725")]
|
||||
[assembly: AssemblyFileVersion("1.2.0725.1725")]
|
||||
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.2.0722.2112")]
|
||||
[assembly: AssemblyFileVersion("1.2.0722.2112")]
|
||||
[assembly: AssemblyVersion("1.2.0725.1725")]
|
||||
[assembly: AssemblyFileVersion("1.2.0725.1725")]
|
||||
@@ -28,7 +28,6 @@ namespace Disco.Models.BI.Device
|
||||
[StringLength(40)]
|
||||
public string AssetNumber { get; set; }
|
||||
|
||||
|
||||
public Repository.Device Device { get; set; }
|
||||
public Repository.DeviceModel DeviceModel { get; set; }
|
||||
public Repository.DeviceProfile DeviceProfile { get; set; }
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Disco.Models.BI.Device
|
||||
{
|
||||
public class ImportDeviceSession
|
||||
{
|
||||
public string ImportParseTaskId { get; set; }
|
||||
public string ImportFilename { get; set; }
|
||||
public List<ImportDevice> ImportDevices { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -47,6 +47,7 @@
|
||||
<ItemGroup>
|
||||
<Compile Include="BI\Config\OrganisationAddress.cs" />
|
||||
<Compile Include="BI\Device\ImportDevice.cs" />
|
||||
<Compile Include="BI\Device\ImportDeviceSession.cs" />
|
||||
<Compile Include="BI\DocumentTemplate\DocumentState.cs" />
|
||||
<Compile Include="BI\Expressions\IImageExpressionResult.cs" />
|
||||
<Compile Include="BI\Interop\Community\PluginLibraryCompatibilityItem.cs" />
|
||||
@@ -102,10 +103,11 @@
|
||||
<Compile Include="UI\Config\DeviceBatch\ConfigDeviceBatchIndexModel.cs" />
|
||||
<Compile Include="UI\Config\DeviceBatch\ConfigDeviceBatchIndexModelItem.cs" />
|
||||
<Compile Include="UI\Config\DeviceBatch\ConfigDeviceBatchShowModel.cs" />
|
||||
<Compile Include="UI\Config\DeviceBatch\ConfigDeviceBatchShowModelMembership.cs" />
|
||||
<Compile Include="UI\Config\DeviceBatch\ConfigDeviceBatchTimelineModel.cs" />
|
||||
<Compile Include="UI\Config\DeviceModel\ConfigDeviceModelIndexModel.cs" />
|
||||
<Compile Include="UI\Config\DeviceModel\ConfigDeviceModelIndexModelItem.cs" />
|
||||
<Compile Include="UI\Config\DeviceModel\ConfigDeviceModelShowModelComponents.cs" />
|
||||
<Compile Include="UI\Config\DeviceModel\ConfigDeviceModelComponentsModel.cs" />
|
||||
<Compile Include="UI\Config\DeviceModel\ConfigDeviceModelShowModel.cs" />
|
||||
<Compile Include="UI\Config\DeviceProfile\ConfigDeviceProfileCreateModel.cs" />
|
||||
<Compile Include="UI\Config\DeviceProfile\ConfigDeviceProfileDefaultsModel.cs" />
|
||||
@@ -125,6 +127,7 @@
|
||||
<Compile Include="UI\Config\Organisation\ConfigOrganisationIndexModel.cs" />
|
||||
<Compile Include="UI\Device\DeviceAddOfflineModel.cs" />
|
||||
<Compile Include="UI\Device\DeviceImportModel.cs" />
|
||||
<Compile Include="UI\Device\DeviceImportReviewModel.cs" />
|
||||
<Compile Include="UI\Device\DeviceIndexModel.cs" />
|
||||
<Compile Include="UI\Device\DeviceShowModel.cs" />
|
||||
<Compile Include="UI\Job\JobCreateModel.cs" />
|
||||
|
||||
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.2.0722.2112")]
|
||||
[assembly: AssemblyFileVersion("1.2.0722.2112")]
|
||||
[assembly: AssemblyVersion("1.2.0725.1725")]
|
||||
[assembly: AssemblyFileVersion("1.2.0725.1725")]
|
||||
@@ -0,0 +1,16 @@
|
||||
using Disco.Models.BI.Device;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Disco.Models.UI.Device
|
||||
{
|
||||
public interface DeviceImportReviewModel : BaseUIModel
|
||||
{
|
||||
string ImportParseTaskId { get; set; }
|
||||
string ImportFilename { get; set; }
|
||||
List<ImportDevice> ImportDevices { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.2.0722.2112")]
|
||||
[assembly: AssemblyFileVersion("1.2.0722.2112")]
|
||||
[assembly: AssemblyVersion("1.2.0725.1725")]
|
||||
[assembly: AssemblyFileVersion("1.2.0725.1725")]
|
||||
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.2.0722.2112")]
|
||||
[assembly: AssemblyFileVersion("1.2.0722.2112")]
|
||||
[assembly: AssemblyVersion("1.2.0725.1725")]
|
||||
[assembly: AssemblyFileVersion("1.2.0725.1725")]
|
||||
@@ -465,5 +465,22 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Exporting
|
||||
public virtual ActionResult ExportDevices(int id)
|
||||
{
|
||||
DeviceBatch db = dbContext.DeviceBatches.Find(id);
|
||||
if (db == null)
|
||||
throw new ArgumentNullException("id", "Invalid Device Batch Id");
|
||||
|
||||
var devices = dbContext.Devices.Where(d => !d.DecommissionedDate.HasValue && d.DeviceBatchId == db.Id);
|
||||
|
||||
var export = BI.DeviceBI.Importing.Export.GenerateExport(devices);
|
||||
|
||||
var filename = string.Format("DiscoDeviceExport-Batch_{0}-{1:yyyyMMdd-HHmmss}.csv", db.Id, DateTime.Now);
|
||||
|
||||
return File(export, "text/csv", filename);
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
@@ -464,14 +464,19 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
|
||||
#endregion
|
||||
|
||||
#region Importing / Exporting
|
||||
public virtual ActionResult ImportParse(HttpPostedFileBase ImportFile)
|
||||
{
|
||||
if (ImportFile == null || ImportFile.ContentLength == 0)
|
||||
throw new ArgumentNullException("ImportFile");
|
||||
|
||||
var status = Disco.BI.DeviceBI.Importing.ImportParseTask.Run(ImportFile.InputStream);
|
||||
var fileName = ImportFile.FileName;
|
||||
if (fileName.Contains(@"\"))
|
||||
fileName = fileName.Substring(fileName.LastIndexOf('\\') + 1);
|
||||
|
||||
status.SetFinishedUrl(Url.Action(MVC.API.Device.ImportProcess(status.SessionId)));
|
||||
var status = Disco.BI.DeviceBI.Importing.ImportParseTask.Run(ImportFile.InputStream, fileName);
|
||||
|
||||
status.SetFinishedUrl(Url.Action(MVC.Device.ImportReview(status.SessionId)));
|
||||
|
||||
return RedirectToAction(MVC.Config.Logging.TaskStatus(status.SessionId));
|
||||
}
|
||||
@@ -483,8 +488,23 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
|
||||
var status = Disco.BI.DeviceBI.Importing.ImportProcessTask.Run(ParseTaskSessionKey);
|
||||
|
||||
status.SetFinishedUrl(Url.Action(MVC.Device.Index()));
|
||||
|
||||
return RedirectToAction(MVC.Config.Logging.TaskStatus(status.SessionId));
|
||||
}
|
||||
|
||||
public virtual ActionResult ExportAllDevices()
|
||||
{
|
||||
// Non-Decommissioned Devices
|
||||
var devices = dbContext.Devices.Where(d => !d.DecommissionedDate.HasValue);
|
||||
|
||||
var export = BI.DeviceBI.Importing.Export.GenerateExport(devices);
|
||||
|
||||
var filename = string.Format("DiscoDeviceExport-AllDevices-{0:yyyyMMdd-HHmmss}.csv", DateTime.Now);
|
||||
|
||||
return File(export, "text/csv", filename);
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
@@ -334,5 +334,22 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Exporting
|
||||
public virtual ActionResult ExportDevices(int id)
|
||||
{
|
||||
DeviceModel dm = dbContext.DeviceModels.Find(id);
|
||||
if (dm == null)
|
||||
throw new ArgumentNullException("id", "Invalid Device Model Id");
|
||||
|
||||
var devices = dbContext.Devices.Where(d => !d.DecommissionedDate.HasValue && d.DeviceModelId == dm.Id);
|
||||
|
||||
var export = BI.DeviceBI.Importing.Export.GenerateExport(devices);
|
||||
|
||||
var filename = string.Format("DiscoDeviceExport-Model_{0}-{1:yyyyMMdd-HHmmss}.csv", dm.Id, DateTime.Now);
|
||||
|
||||
return File(export, "text/csv", filename);
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,7 @@ using System.Web.Mvc;
|
||||
using Disco.BI;
|
||||
using Disco.BI.Extensions;
|
||||
using Disco.Data.Configuration.Modules;
|
||||
using Disco.Models.Repository;
|
||||
|
||||
namespace Disco.Web.Areas.API.Controllers
|
||||
{
|
||||
@@ -389,5 +390,22 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Exporting
|
||||
public virtual ActionResult ExportDevices(int id)
|
||||
{
|
||||
DeviceProfile dp = dbContext.DeviceProfiles.Find(id);
|
||||
if (dp == null)
|
||||
throw new ArgumentNullException("id", "Invalid Device Profile Id");
|
||||
|
||||
var devices = dbContext.Devices.Where(d => !d.DecommissionedDate.HasValue && d.DeviceProfileId == dp.Id);
|
||||
|
||||
var export = BI.DeviceBI.Importing.Export.GenerateExport(devices);
|
||||
|
||||
var filename = string.Format("DiscoDeviceExport-Profile_{0}-{1:yyyyMMdd-HHmmss}.csv", dp.Id, DateTime.Now);
|
||||
|
||||
return File(export, "text/csv", filename);
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1195,6 +1195,10 @@ body .ui-tooltip {
|
||||
.tableData > tbody > tr:hover > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
.tableData > tfoot > tr > th,
|
||||
.tableData > tfoot > tr > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
.tableDataDark {
|
||||
border: solid 1px #8db2d8;
|
||||
border-collapse: collapse;
|
||||
@@ -1668,6 +1672,10 @@ table.genericData > tbody > tr > th {
|
||||
table.genericData > tbody > tr:hover > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
table.genericData > tfoot > tr > th,
|
||||
table.genericData > tfoot > tr > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
table.genericData td.id {
|
||||
text-align: center;
|
||||
}
|
||||
@@ -1889,6 +1897,10 @@ table.jobTable > tbody > tr > th {
|
||||
table.jobTable > tbody > tr:hover > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
table.jobTable > tfoot > tr > th,
|
||||
table.jobTable > tfoot > tr > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
table.jobTable.hideStatusClosed tr[data-status=Closed] {
|
||||
display: none;
|
||||
}
|
||||
@@ -2217,7 +2229,7 @@ div.columnHost .column50 {
|
||||
white-space: nowrap;
|
||||
}
|
||||
.code {
|
||||
font-family: Consolas, monospace;
|
||||
font-family: Consolas, "Courier New", monospace;
|
||||
}
|
||||
div.code {
|
||||
border: 1px dashed #bbb;
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted #000}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin-top:2px;padding:.5em .5em .5em .7em;min-height:0}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-noicons{padding-left:.7em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month-year{width:100%}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:1Line truncated
|
||||
.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted #000}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin-top:2px;padding:.5em .5em .5em .7em;min-height:0}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-noicons{padding-left:.7em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month-year{width:100%}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:1Line truncated
|
||||
@@ -17,6 +17,10 @@
|
||||
.tableData > tbody > tr:hover > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
.tableData > tfoot > tr > th,
|
||||
.tableData > tfoot > tr > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
.tableDataDark {
|
||||
border: solid 1px #8db2d8;
|
||||
border-collapse: collapse;
|
||||
@@ -140,6 +144,10 @@ table.expressionsTable > tbody > tr > th {
|
||||
table.expressionsTable > tbody > tr:hover > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
table.expressionsTable > tfoot > tr > th,
|
||||
table.expressionsTable > tfoot > tr > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
table.expressionsTable td.parseError {
|
||||
background-color: #FFD8D8;
|
||||
}
|
||||
@@ -165,6 +173,10 @@ table.expressionsTable td.parseError {
|
||||
#deviceComponents > tbody > tr:hover > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
#deviceComponents > tfoot > tr > th,
|
||||
#deviceComponents > tfoot > tr > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
#deviceComponents tr th.actions {
|
||||
width: 20px;
|
||||
}
|
||||
@@ -522,7 +534,7 @@ div.logEventsViewport table.logEventsViewport > tbody > tr > td.eventType {
|
||||
margin-left: 6px;
|
||||
background-color: #222;
|
||||
color: #0F0;
|
||||
font-family: Consolas, monospace;
|
||||
font-family: Consolas, "Courier New", monospace;
|
||||
border: 4px solid #CCC;
|
||||
-moz-border-radius: 4px;
|
||||
-webkit-border-radius: 4px;
|
||||
|
||||
@@ -641,7 +641,7 @@ div.logEventsViewport
|
||||
margin-left: 6px;
|
||||
background-color: #222;
|
||||
color: #0F0;
|
||||
font-family: Consolas, monospace;
|
||||
font-family: @FontFamilyMono;
|
||||
border: 4px solid #CCC;
|
||||
-moz-border-radius: 4px;
|
||||
-webkit-border-radius: 4px;
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
.tableData{border:solid 1px #e8eef4;border-collapse:collapse}.tableData>tbody>tr>td{border:solid 1px #e8eef4;background-color:#fff}.tableData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfd}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#e8eef4;border:solid 1px #e8eef4}.tableData>tbody>tr:hover>td{background-color:#e8eef4}.tableDataDark{border:solid 1px #8db2d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #8db2d8;background-color:#fff}.tableDataDark th{background-color:#8db2d8;border:solid 1px #8db2d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #e8eef4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#e8eef4;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}#pageMenu td .pageMenuArea>a.config{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACsElEQVQ4y41T3UtTcRie3QaNRhKC/4SgN4KBeSGK4EAvuzChNZQSvJgXYldCV5tMiUzEDVuZ84M0P4OmpjO3lV+bs21nH2fnbGd69mFuMz/39DunFsUadODh/Hj5vc/zPu/7/iQAJP9CQ0NDrU6nO9Lr9YnS0tKqfPdyAoODg7daWlpuqFQqYyyeQDKVQmdnp6G9vf26RqO5nZfAYDC0vZ2ezuj0es5oHEuGuQhCYQ7RWAznFxeYmpo6fmkwcCaTKfO8v1/5F4FMJrv26vUIQ7MhxOJxEYc8DzrIgItEcHB4iONkEql0Gqdn5xgdHfXnVFBXV6cNkATK54M/QMNm+4yPq2vY3NqCl8QSR0ci0icnqK6ufppDoO3t3fSRROe+C/PzCyKJ3e64CjLslZC0tLyMyMHPSjQ9PZbfBEqlslar1fIut/uS8vpgtdoQCoVB/NJSqVReWFh4b2FxkY8SW0JVQl88FHXZ19fHl5eXV0kqK++qInwU+y43duwOrJnXQVE+1NfLn2RVHigUAx7KC/P6BulLEH6aJs2No6LiTpukrKzsEcOy2HN+xfbOLlbXzOCjMajV6vdZgiGd7oswlZnZOdj3nAjQhCQQQElJiUJCPmlTU9MsGR1H/GJre0ds1uTkJEZG3nwzGo3HY+Pj4jSsNhu8/gD0w8OskCPk/rl5z1LpE7DE/wfTkjjGXWLJQRRpovhuZgYO5z4pP4iamhp1zhS6u7u572dniCcScHs8sFisWN+w4NMvWIi6QB4ku9LV1RXKIVB1dJjJX1iiDNm+TJjjRL+CqrAfRDlDFusqHDlAa2vrSg6B4KexsXGiqKjofnFx8WNSxalfbBYNyutNkvhDElfI5fIJ4W7ex5TFi4EBF0umwzAMmpubV/77NWZRUFAgI52eE0DON/Pd+wH6O+vw3ozilAAAAABJRU5ErkJggg==)}#pageMenu td .pageMenuArea>a.config:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACiElEQVQ4y41Ta0iTYRQe/ShCTCpJiiRIKvtTiUE3+2VRiMR+JEk3ktKMslmGJZVEf1aZhpFFS/uRQ7Jcq2jVKvKCu2S66eZl05zu5qd9m+5i28TtO73njYXyNeiDw/dyOOc5z3me9xUAgOBfUXYgNUv3+JxH/0Q0lZ22MjNWHS/R9agwsfZU+hL5hZ0vAi4HhLwsKC5lSBuLtsepbx9MignQ/bRENCC7xekkRYyx4brf6zCB194Pv1gbhGeCMNAk9pEaZlgp4Tru5xXOA0hKWLSg59kVu8dqBJyK4R+3wJSlG3xOM/iZHxD0TEDI54LZ4DQYpFdHeAyK96+rxgb3YAdMDevBoZXDaHM9jH1/R3MBt5PGjH8SzmSmiHkAmru5Omz8aWyGwbf3KAijV0YIqwg2WT7XgW9siDJR38n59hdAcjI9S1NxiGX728M4ya5uAo+tF8i+1sT4hcLk5YuPDikesLgWskJdXCZNWFt1hM3ZtjpTcDxjTen0xAiwfW04EUZbpOA2a6Eka315dMrDE2kS0gTWtgaqC7JDcXN3JIsExOMinIjUGd1HCoCA7WLhpygAuQ9d6Ir5TRWM93yhABj7NiUVCMiXUHl4s4JYx6ALTNcHKlZf400w1Jd5Sd7X+/wGdcOueQWTQ52gry12YA/2zr15NWgTsiFeUxtxpQnDVzrNJK+gLPF8dm9KJc+FlvI9zGzAR++Aa0AFNtXLeYHTERxDeXm3kwfw+uIuFReJIABHBOJwZ9yXTv0jHEf+EczX5W9t5QHgPteEG2VrV8Tlpa6KP09YhKJiEVf8JH+a5AtKszfIsDbmY4pGZ02+mVImwlYf29L6369xDqNlROn3GOS8NFbdbzB85s9H8NGVAAAAAElFTkSuQmCC)}#updateAvailableContainer{float:right;border:1px dashed #ddd;background-color:#fff;font-size:.6em;line-height:1em;padding:4px 10px 4px 70px;text-align:right;height:64px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADEAAABACAYAAACz4p94AAAVPUlEQVRo3s2aWaxk13Wev7X3PkONd+6+PQ+cmoNItkha4iCYtBVLpGQ7MkQ78EMICBZt+EFAAENMgAAKkAQInYcEQR6Sl8AKHE1OBBkg2YJFKS0O8iCSgimymyLZTXY3e+471q1bVWfYKw/7nLrVDCkDQQNhNQ7OrdNVe69/Tf9aa5dwLV+P/ycOuE1z8fxZKaa2U4pQYkEBY0m3tZk79pKePXbc8/ZPrtm27pqscvfn4aWnYO+exq5WvqCptUOXMHAJmYkZFYpzMfO7usysnSnOvnnqIpB9tEC89BQArW5zenpK7ugPB+nQRLRtQm4tK3lJZCKmui1ttFt9Ytf76IGoXs00WUib9oHp6dlOZoyU4siNxY9KrHV0Gw1Va5dw9nVg9SMJIo3jxTSJPjnXbc8UYqWwjhzDMCmxxtFsNXQTvUDkvguc/kiCEGsX4ii6ud3tTJXGUIhjKJbesERcRLedMvB+Gmu713LfawoC9Q1nbDrTdHFpHKWxbIil5RTjItrNhEtIijWNjyyIIi8iI0g3TSisozQOVUPTCDZKaDYjBBVEoo8siOFoJKinncTk1lLaiEwtqXNESUI3teABMeYjC2IwGIovSpqxIzeO0jr6RKQupptEbIs8AmBEP7og+hv4vCB2DmsdhYtwGtHEMR8J2xyIEhj8IxvYvR5lNsIaQYxBjMFhaakw42C23k2uLYhr6ptcPJ8x3FQjghXBVEASK7Ss0A67KSvr2TW1xF9897uRM/aPW63mnla7U7Zb7bC5UN0FEETkqmfhOUglrBHDn3z32cM220yCpDJWuAGsASuQRK79L77y2Jef+Mf/40EFUdlaQyb2kbAZBkFRijwnyzLyoiDPMrJwRXme/5UzmEjEfBkxtwqCMeHaEnTr76ufT2wuAqIcmmlxYZDhvWppVEpVCpQcyD1kHk0i17hp1/bfCZKCqdarARgRMBPPjCAalBeAMt5bVVHV0llr1BjJjAhxHBEnCda6qzRvEMSAiA2LimDEhA3HloDIOWBEXnopjacsPUP19MXQK6HnEUWI4pi02awiPAgKEnxbggWlAmOqTxljq2ASvCp5ntcgCmeMwVpLmjb43z/8AUl+kZgMjEHiGfCKiWJwCUWRUSKIsYhmCAXYFCmGiHpeO9OnffAuhmVJQYliGPmCnhiuGEvHwWiwyQ/+15+z9uPv4FUxrS6MelDm+NYUuBhrLNYlaL+HZhkap2AU1ZCieyPLdTffwaFDN6GqODGVyQRmZ2f4/V/7OKkbgFho7YM8g7QFaYdvP3+MYxeWKLMR4kugBBOD5qhXfvOR69HWHFfyAu+FUmHolT5wxSSkubB9cZ5z76zyzsJ1eO+RRgufD1AtyLine truncated
|
||||
.tableData{border:solid 1px #e8eef4;border-collapse:collapse}.tableData>tbody>tr>td{border:solid 1px #e8eef4;background-color:#fff}.tableData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfd}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#e8eef4;border:solid 1px #e8eef4}.tableData>tbody>tr:hover>td{background-color:#e8eef4}.tableData>tfoot>tr>th,.tableData>tfoot>tr>td{background-color:#e8eef4}.tableDataDark{border:solid 1px #8db2d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #8db2d8;background-color:#fff}.tableDataDark th{background-color:#8db2d8;border:solid 1px #8db2d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #e8eef4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#e8eef4;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}#pageMenu td .pageMenuArea>a.config{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACsElEQVQ4y41T3UtTcRie3QaNRhKC/4SgN4KBeSGK4EAvuzChNZQSvJgXYldCV5tMiUzEDVuZ84M0P4OmpjO3lV+bs21nH2fnbGd69mFuMz/39DunFsUadODh/Hj5vc/zPu/7/iQAJP9CQ0NDrU6nO9Lr9YnS0tKqfPdyAoODg7daWlpuqFQqYyyeQDKVQmdnp6G9vf26RqO5nZfAYDC0vZ2ezuj0es5oHEuGuQhCYQ7RWAznFxeYmpo6fmkwcCaTKfO8v1/5F4FMJrv26vUIQ7MhxOJxEYc8DzrIgItEcHB4iONkEql0Gqdn5xgdHfXnVFBXV6cNkATK54M/QMNm+4yPq2vY3NqCl8QSR0ci0icnqK6ufppDoO3t3fSRROe+C/PzCyKJ3e64CjLslZC0tLyMyMHPSjQ9PZbfBEqlslar1fIut/uS8vpgtdoQCoVB/NJSqVReWFh4b2FxkY8SW0JVQl88FHXZ19fHl5eXV0kqK++qInwU+y43duwOrJnXQVE+1NfLn2RVHigUAx7KC/P6BulLEH6aJs2No6LiTpukrKzsEcOy2HN+xfbOLlbXzOCjMajV6vdZgiGd7oswlZnZOdj3nAjQhCQQQElJiUJCPmlTU9MsGR1H/GJre0ds1uTkJEZG3nwzGo3HY+Pj4jSsNhu8/gD0w8OskCPk/rl5z1LpE7DE/wfTkjjGXWLJQRRpovhuZgYO5z4pP4iamhp1zhS6u7u572dniCcScHs8sFisWN+w4NMvWIi6QB4ku9LV1RXKIVB1dJjJX1iiDNm+TJjjRL+CqrAfRDlDFusqHDlAa2vrSg6B4KexsXGiqKjofnFx8WNSxalfbBYNyutNkvhDElfI5fIJ4W7ex5TFi4EBF0umwzAMmpubV/77NWZRUFAgI52eE0DON/Pd+wH6O+vw3ozilAAAAABJRU5ErkJggg==)}#pageMenu td .pageMenuArea>a.config:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACiElEQVQ4y41Ta0iTYRQe/ShCTCpJiiRIKvtTiUE3+2VRiMR+JEk3ktKMslmGJZVEf1aZhpFFS/uRQ7Jcq2jVKvKCu2S66eZl05zu5qd9m+5i28TtO73njYXyNeiDw/dyOOc5z3me9xUAgOBfUXYgNUv3+JxH/0Q0lZ22MjNWHS/R9agwsfZU+hL5hZ0vAi4HhLwsKC5lSBuLtsepbx9MignQ/bRENCC7xekkRYyx4brf6zCB194Pv1gbhGeCMNAk9pEaZlgp4Tru5xXOA0hKWLSg59kVu8dqBJyK4R+3wJSlG3xOM/iZHxD0TEDI54LZ4DQYpFdHeAyK96+rxgb3YAdMDevBoZXDaHM9jH1/R3MBt5PGjH8SzmSmiHkAmru5Omz8aWyGwbf3KAijV0YIqwg2WT7XgW9siDJR38n59hdAcjI9S1NxiGX728M4ya5uAo+tF8i+1sT4hcLk5YuPDikesLgWskJdXCZNWFt1hM3ZtjpTcDxjTen0xAiwfW04EUZbpOA2a6Eka315dMrDE2kS0gTWtgaqC7JDcXN3JIsExOMinIjUGd1HCoCA7WLhpygAuQ9d6Ir5TRWM93yhABj7NiUVCMiXUHl4s4JYx6ALTNcHKlZf400w1Jd5Sd7X+/wGdcOueQWTQ52gry12YA/2zr15NWgTsiFeUxtxpQnDVzrNJK+gLPF8dm9KJc+FlvI9zGzAR++Aa0AFNtXLeYHTERxDeXm3kwfw+uIuFReJIABHBOJwZ9yXTv0jHEf+EczX5W9t5QHgPteEG2VrV8Tlpa6KP09YhKJiEVf8JH+a5AtKszfIsDbmY4pGZ02+mVImwlYf29L6369xDqNlROn3GOS8NFbdbzB85s9H8NGVAAAAAElFTkSuQmCC)}#updateAvailableContainer{float:right;border:1px dashed #ddd;background-color:#fff;font-size:.6em;line-height:1em;padding:4px 10px 4px 70px;text-align:right;height:64px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADEAAABACAYAAACz4p94AAAVPUlEQVRo3s2aWaxk13Wev7X3PkONd+6+PQ+cmoNItkha4iCYtBVLpGQ7MkQ78EMICBZt+EFAAENMgAAKkAQInYcEQR6Sl8AKHE1OBBkg2YJFKS0O8iCSgimymyLZTXY3e+471q1bVWfYKw/7nLrVDCkDQQNhNQ7OrdNVe69/Tf9aa5dwLV+P/ycOuE1z8fxZKaa2U4pQYkEBY0m3tZk79pKePXbc8/ZPrtm27pqscvfn4aWnYO+exq5WvqCptUOXMHAJmYkZFYpzMfO7usysnSnOvnnqIpB9tEC89BQArW5zenpK7ugPB+nQRLRtQm4tK3lJZCKmui1ttFt9Ytf76IGoXs00WUib9oHp6dlOZoyU4siNxY9KrHV0Gw1Va5dw9nVg9SMJIo3jxTSJPjnXbc8UYqWwjhzDMCmxxtFsNXQTvUDkvguc/kiCEGsX4ii6ud3tTJXGUIhjKJbesERcRLedMvB+Gmu713LfawoC9Q1nbDrTdHFpHKWxbIil5RTjItrNhEtIijWNjyyIIi8iI0g3TSisozQOVUPTCDZKaDYjBBVEoo8siOFoJKinncTk1lLaiEwtqXNESUI3teABMeYjC2IwGIovSpqxIzeO0jr6RKQupptEbIs8AmBEP7og+hv4vCB2DmsdhYtwGtHEMR8J2xyIEhj8IxvYvR5lNsIaQYxBjMFhaakw42C23k2uLYhr6ptcPJ8x3FQjghXBVEASK7Ss0A67KSvr2TW1xF9897uRM/aPW63mnla7U7Zb7bC5UN0FEETkqmfhOUglrBHDn3z32cM220yCpDJWuAGsASuQRK79L77y2Jef+Mf/40EFUdlaQyb2kbAZBkFRijwnyzLyoiDPMrJwRXme/5UzmEjEfBkxtwqCMeHaEnTr76ufT2wuAqIcmmlxYZDhvWppVEpVCpQcyD1kHk0i17hp1/bfCZKCqdarARgRMBPPjCAalBeAMt5bVVHV0llr1BjJjAhxHBEnCda6qzRvEMSAiA2LimDEhA3HloDIOWBEXnopjacsPUP19MXQK6HnEUWI4pi02awiPAgKEnxbggWlAmOqTxljq2ASvCp5ntcgCmeMwVpLmjb43z/8AUl+kZgMjEHiGfCKiWJwCUWRUSKIsYhmCAXYFCmGiHpeO9OnffAuhmVJQYliGPmCnhiuGEvHwWiwyQ/+15+z9uPv4FUxrS6MelDm+NYUuBhrLNYlaL+HZhkap2AU1ZCieyPLdTffwaFDN6GqODGVyQRmZ2f4/V/7OKkbgFho7YM8g7QFaYdvP3+MYxeWKLLine truncated
|
||||
@@ -1,4 +1,4 @@
|
||||
#organisationCredits span.message {
|
||||
#organisationCredits span.message {
|
||||
color: #888;
|
||||
}
|
||||
#organisationCredits a {
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
#organisationCredits span.message{color:#888}#organisationCredits a{text-decoration:none}#pageMenu .pageMenuArea{padding-left:104px;min-height:40px;background-repeat:no-repeat;background-position:left center}#pageMenu .pageMenuArea>a{padding-left:0!important;background-image:none!important;float:left}#pageMenu .pageMenuArea>a:hover{background-image:none!important}#pageMenu .pageMenuArea>.licence{padding-top:3px;font-size:.9em;float:right;font-style:italic;color:#888}#pageMenu .pageMenuArea>.licence:before{content:"["}#pageMenu .pageMenuArea>.licence:after{content:"]"}#pageMenu .pageMenuArea>.licence>a{color:#888}#pageMenu .pageMenuArea>.pageMenuBlurb{clear:both}#pageMenu .pageMenuArea .pageMenuAreaSub>h3{font-size:1em}#pageMenu .pageMenuArea .pageMenuAreaSub>div{font-size:.8em;color:#888;padding-bottom:3px}#pageMenu .pageMenuArea .pageMenuAreaSub>div>a{text-decoration:none}#pageMenu .pageMenuArea .pageMenuAreaSub>div .licence{font-style:italic}#pageMenu .pageMenuArea .pageMenuAreaSub>div .licence:before{content:"["}#pageMenu .pageMenuArea .pageMenuAreaSub>div .licence:after{content:"]"}#pageMenu .pageMenuArea .pageMenuAreaSub>div .licence>a{color:#888}#pageMenu .pageMenuArea.MicrosoftNET{background-image:url(data:image/png;base64,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 truncated
|
||||
#organisationCredits span.message{color:#888}#organisationCredits a{text-decoration:none}#pageMenu .pageMenuArea{padding-left:104px;min-height:40px;background-repeat:no-repeat;background-position:left center}#pageMenu .pageMenuArea>a{padding-left:0!important;background-image:none!important;float:left}#pageMenu .pageMenuArea>a:hover{background-image:none!important}#pageMenu .pageMenuArea>.licence{padding-top:3px;font-size:.9em;float:right;font-style:italic;color:#888}#pageMenu .pageMenuArea>.licence:before{content:"["}#pageMenu .pageMenuArea>.licence:after{content:"]"}#pageMenu .pageMenuArea>.licence>a{color:#888}#pageMenu .pageMenuArea>.pageMenuBlurb{clear:both}#pageMenu .pageMenuArea .pageMenuAreaSub>h3{font-size:1em}#pageMenu .pageMenuArea .pageMenuAreaSub>div{font-size:.8em;color:#888;padding-bottom:3px}#pageMenu .pageMenuArea .pageMenuAreaSub>div>a{text-decoration:none}#pageMenu .pageMenuArea .pageMenuAreaSub>div .licence{font-style:italic}#pageMenu .pageMenuArea .pageMenuAreaSub>div .licence:before{content:"["}#pageMenu .pageMenuArea .pageMenuAreaSub>div .licence:after{content:"]"}#pageMenu .pageMenuArea .pageMenuAreaSub>div .licence>a{color:#888}#pageMenu .pageMenuArea.MicrosoftNET{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAoCAYAAAAIeF9DAAAUsElEQVRo3sWbe4xd13Xef2uf533PixySQ1KiSJGhXpRlVXIqxRRtNwYaywnaxEaa1Kkb1E1hN1UfaYUicBvXTYMiDYgGKCLJQVw0lR3kYTtKW7SJK0WWFD8kS5QcS7IjieJT5Dzv3Me595yz9+of99zhkJy5w6e7gYU5Z+7j7L2//a219rf2FX4AzRx+Ushy7il7sm+qzO6ZBp5v6DlHkiuJdfSsI8kdVpXQGKxCL1eSXOn2chbfPkv79CLzrx7H5lbbX/1l5f9z2/7IMwbYAbwb2K+Z3d4/uVxS69afCyPHdu2a+m837Z1cNEZWv6TAgn9dQVBqOPcBWU7eb9q9H3o7kJml+Y47Ntfp3rprYqFRi7qKKiiKEnpC7Hk4hSRXUWtN8/h89Z3vn653zjbLeZL6Dq8v1dqpsb/zOy9UtjX+YPo9O4+ZKHBABiTPP3ggv84gCLAV+Hngo8B+VTVplmGXesgIMABKpeCzlWo4bUS8C15afPzgXpXrBMa4qH7ca/c/oQutXdLPw2LeV1rgG+7YPdm+97Yti9Y31jNCyTeoKgtLif/yN96ovvHS27X2QstDHWIThBQzOYPXmAYRgNQvh7+z9Ud2/WY0Ue4Xq6wNzD7/4AF3HcCoAf8E+KfAOEA/y2S50yFPcxptMCOeanzz3ZmZ8U9vnanPj02UmqtessCrjx/cm8k1BsIIvDew7t96s62782anohcAgep5JN22uebec+/OZKIeudhaXn7u++GLz7wedVs9QBH6iCbAuZF6jc0E07uGoOCF/p9vfWD3w0Et6hdv6QBvXku27HjkmRuBR4GDg2EorV7fbyWJUZRyVyn1RnpRHRsv/4fJTdXXdt44fjwIvWzVa0cfP7j3JIBcQzDKAv+gat0v6qnFnb1Wcr47vACIlQvx2dSo8kN7Ku61p/7SLBxfAFVELCJ9RNaeU398mnB65zlQ4uDPtx7a8yvGN7Z4SxN45VowZccjz+wEvgDcVgxFmr1eqd3v+wDGKo1mPpIdQeC9uG37+G+XK2F/ZmfjmDEyfHcCfP3xg3stgLlGYDQM/Ospp79kTi7c2Fvu+qiCG5pbda2gbvA/ESTybNZZ7n33qy+bhTNN1BPEt5gwQ0KBIFjT8vYCLmniBT5e4IPVgwvfPvExoFbYduDmqx3bzkeeqQp8VmC3QCLQ66Sp38lyX4yHGI8oVYzTYqWtafnYePlZY6RcrgTGGImBcmFHh2BcE0DM4ScnDPy7zSIf0zNL2zrLXXPRxDsdMMQN7qW4N3HQ37Jv87en9029XK1FrlQJoVpCaiES+IgfjLR04QwiDi/08EKPvJP9dO9Mex9QL+yOu584Mn6lY7vhkWdE4KcE7hfoCfRS66SV5TFiQAzGQdyzSOFu1rI4Dr5bqUZNMdKo1qJsFRgd4PR583mVYNQFHp425kPBQnt7c64lF7JCVBGniHMr1zjFj/zOzG0zX9t04+T3g5mptyUOO/GNW2B6CtuYQsMQAn+kqSjp0lm8wBuYb6LuiebPoNQLlowD7777iSNX5pqF7Qg/OwhkJArpcprXHCKIgAhxkuPlui45BLKx8coRESlHkRcEoecBJSAGvvP4wb3umgBiDj9ZEviFKSM/Vk/SnbOnFgTriol3BQjnWLGaNWPVML/5r9341Pi2xltAx8Thgr1h5gW3awfx5jEII7TSgCAEf7T12y3QfIUl5O7O/lznllWu61Zg+nLHd+Ojz4rA3xCYGLKjb13YdxoNwfCsEiX5KFdFXArfjEtBBtQr1dAaI1HBjuPA2Yvm9QrB8ICP1ER+YrNjz9kT855N88JF6QUuang9uJ+sxbzv/t1nKtP1Y0C3SFP/1Farh+PI79e3jBFVYkx9DInigesaZb5H0lzEBH5hnskWugeBamFjwL1XMMw6yAMgSWH9jnUNFQbsQIg7KWbEvkNE8sZ4+aiIVI2RerUeJwUYBnjx8YN79aoBMYefFOD+CD66XeSW1txy2G52LgjcBStWAYE6auWQD963G3+88kqqLBU+9GngjyPf/EUp9M9UKjG1TQ2CUoSp1dcN6qut32ljPM6xxLr9rpdvW8WSu+5+4kj18rwVuwS2DNmROzWp1cowMvi5I0qykbGjVA7fieJAgVpc8jUIzNBdvQIsrpk9XsHK2WXg720Vs0/6WWPu1Hwx4atS2TWu48jnfe/ZxcRUpfVypq8W7Hgd+N/PP3ggA86+6/Nff1FgpzfdwCYpLvDo5xlq7Yad6rVbVDdNDm9Du9y7w8TVl4v7CnAH8NxlAHIPkBdG6tzmHA2QwbBK7R7GjWKHsY3xyqyIVAGpNeJ3RCQG5oDn12LHZTPEHH6yCvzdCZGbG3DD7KkFsl42IqMaXPtGuPfdO9m8tcFSrm80HaeANwswkhVZIfSeikNf640S5bEyQTkibFwaS5JW51xwDzw0dXtXZVtjww3dpbSbHn22Auwp9ggJ0O9anRqu/aCfEybZqNBBuRI2w8j3gHoQekGlGvYKdnzt8YN72+vO8eXswoEfjeC2aeTWXivxmmeb5wdtvdhdCcr+/VvZfsMkSe503uoLDt4B/s/zDx5YPk/nCb2vl0KvVYp8JjbVCOOQ0ngDE4YbpsBZbrF5jhf6eKGPERnT1G5d5bZuv/uJI5OXyI7NAptW3JWqlzqtA4hTysvJIGFZX0B09fFKIiI1oFatRS3PMwFwAnhp1LMvx2XtFvjANLLHt27s9Ik5XJ5fvPPW8wXMrdsmuWnfFnoOFF1cMvIywjPPP3hg7sIHhIH3mieygEjdH6/QbvWw1idqVOm1kw07mLQTSo3KyrxIancSeseL+zLwLuDPLgGQWwutpgfQtzpjVUsAUZISpPlIiaNcjbMg8CNVIs+XtD4WN4EAeOLxg3v7Ixf+JbIjBj5cgckxZH9nuUt7scVGG8BqvcTNd+wgEyHJHW2nr3ZFngKOrfWc//XjB5bi0D9SCj3q1Yh6o0wQBVQnG5hgY5Z0OgnGE4xvML5BrG5axZAx4L6Nxrrn0WfDC9xVL7FuqwImdwN26Pq+yhio1EvGQc2p1srlsBUExqB8E/j+hnN9iVnVPQZumla5ndxGs8dnUevOl0XOy6gU3/e46Y4dSCmka5WuVU2cftnBq6P0pVLoPR2HHnHosWmiQhiHVMeqBKUIPG+kZZmjn6TnvsxpGavjq0B54O4njoQbsGNCYLKQSZJc1e87nR4E8gQvH51gxJUYL/AC5zQSMGMTpVmUvqJfXi2RXA1DJoAHqkqjquxpL7ZJltorqexFqa5TRGF6zzTxVJ3EuqEd7WXuS0VGtf6AQu+lOPC6ceAxORYTxQF+6FObuLSstd3srPaYhtytBuQG4PaRgAg7i31fT4Rez7lGrloL+hmldn9kIBcR4mpcrEmlVAkWwtCoqn5Z9XyJ5IoAKQL5fQaq08qdmttg/uQc6kZvAKubaozdtHmlCtjNXX4myX//eCt9a8MOGXnZGFkyRohDn3LsIyJUGxWMt/H66bYuiDWZraBaL2yzOr1nvc/ue+xZD7gJ6A+ta3U3Tk2l2cU4h6DrWhSHGN/DDZRtOz5eWlDlLVX9n188tE+vGhBgM3CgotRKys3Lc82CHYPJF+fO06jEOfzYZ2z/DH1jhq6K+b594+1O9sTbn7h/Qyn8kb++ew743vC+URl4mCAKiCvxhgNKexlpb5XbypxvUxsXVnaZfWLine truncated
|
||||
@@ -25,6 +25,7 @@
|
||||
|
||||
@FontFamilyBody: "Segoe UI", Arial, Verdana, Tahoma, sans-serif;
|
||||
@FontFamilyHeading: "Segoe UI", Arial, Verdana, Tahoma, sans-serif;
|
||||
@FontFamilyMono: Consolas, "Courier New", monospace;
|
||||
@FontWeightHeading: lighter;
|
||||
@FontStretchHeading: condensed;
|
||||
|
||||
|
||||
@@ -17,6 +17,10 @@
|
||||
.tableData > tbody > tr:hover > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
.tableData > tfoot > tr > th,
|
||||
.tableData > tfoot > tr > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
.tableDataDark {
|
||||
border: solid 1px #8db2d8;
|
||||
border-collapse: collapse;
|
||||
@@ -319,3 +323,92 @@
|
||||
#deviceShowResources #Attachments div.attachmentInput span.photo {
|
||||
background-image: url(data:image/png;base64,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) /*Images/Actions/photo.png*/;
|
||||
}
|
||||
#deviceImport #ImportFile {
|
||||
width: 100%;
|
||||
}
|
||||
#deviceImport #documentation {
|
||||
width: 700px;
|
||||
margin: 20px auto;
|
||||
}
|
||||
#deviceImport #documentation > table > thead > tr > th:first-child {
|
||||
width: 100px;
|
||||
}
|
||||
#deviceImportReview #errorMessage {
|
||||
font-weight: bold;
|
||||
color: red;
|
||||
}
|
||||
#deviceImportReview #devicesNavigation {
|
||||
margin-top: 15px;
|
||||
text-align: right;
|
||||
}
|
||||
#deviceImportReview #devicesNavigation ul {
|
||||
display: inline-block;
|
||||
padding: 1px;
|
||||
border: 1px solid #bbb;
|
||||
}
|
||||
#deviceImportReview #devicesNavigation ul li {
|
||||
display: inline-block;
|
||||
padding: 1px 6px;
|
||||
margin: 0;
|
||||
}
|
||||
#deviceImportReview #devicesNavigation ul li.statusError {
|
||||
background-color: #ffd3d3;
|
||||
}
|
||||
#deviceImportReview #devicesNavigation ul li.statusUpdate {
|
||||
background-color: #d3f3ff;
|
||||
}
|
||||
#deviceImportReview #devicesNavigation ul li.statusNew {
|
||||
background-color: #d9ffb4;
|
||||
}
|
||||
#deviceImportReview #devices {
|
||||
border: solid 1px #e8eef4;
|
||||
border-collapse: collapse;
|
||||
margin-top: 6px;
|
||||
}
|
||||
#deviceImportReview #devices > tbody > tr > td {
|
||||
border: solid 1px #e8eef4;
|
||||
background-color: #fff;
|
||||
}
|
||||
#deviceImportReview #devices > tbody > tr:nth-child(odd) > td {
|
||||
background-color: #fcfcfd;
|
||||
}
|
||||
#deviceImportReview #devices > thead > tr > th,
|
||||
#deviceImportReview #devices > tbody > tr > th {
|
||||
background-color: #e8eef4;
|
||||
border: solid 1px #e8eef4;
|
||||
}
|
||||
#deviceImportReview #devices > tbody > tr:hover > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
#deviceImportReview #devices > tfoot > tr > th,
|
||||
#deviceImportReview #devices > tfoot > tr > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
#deviceImportReview #devices > tbody td {
|
||||
vertical-align: middle;
|
||||
min-height: 32px;
|
||||
}
|
||||
#deviceImportReview #devices > tbody tr.statusError td {
|
||||
background-color: #ffd3d3;
|
||||
}
|
||||
#deviceImportReview #devices > tbody tr.statusUpdate td {
|
||||
background-color: #d3f3ff;
|
||||
}
|
||||
#deviceImportReview #devices > tbody tr.statusNew td {
|
||||
background-color: #d9ffb4;
|
||||
}
|
||||
#deviceImportReview #devices > tbody tr td.action {
|
||||
font-weight: bold;
|
||||
}
|
||||
#deviceImportReview #devices > tbody tr td.serialNumber {
|
||||
font-family: Consolas, "Courier New", monospace;
|
||||
font-weight: bold;
|
||||
}
|
||||
#deviceImportReview #devices > tbody tr td.model img.modelImage {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
margin-right: 2px;
|
||||
}
|
||||
#deviceImportReview #devices > tbody .error {
|
||||
font-weight: bold;
|
||||
}
|
||||
@@ -309,3 +309,120 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#deviceImport {
|
||||
#ImportFile {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#documentation {
|
||||
width: 700px;
|
||||
margin: 20px auto;
|
||||
|
||||
& > table {
|
||||
& > thead > tr > th:first-child {
|
||||
width: 100px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#deviceImportReview {
|
||||
|
||||
#errorMessage {
|
||||
font-weight: bold;
|
||||
color: red;
|
||||
}
|
||||
|
||||
#devicesNavigation {
|
||||
margin-top: 15px;
|
||||
text-align: right;
|
||||
|
||||
ul {
|
||||
display: inline-block;
|
||||
padding: 1px;
|
||||
border: 1px solid #bbb;
|
||||
|
||||
li {
|
||||
display: inline-block;
|
||||
padding: 1px 6px;
|
||||
margin: 0;
|
||||
|
||||
&.statusError {
|
||||
background-color: #ffd3d3;
|
||||
}
|
||||
|
||||
&.statusUpdate {
|
||||
background-color: #d3f3ff;
|
||||
}
|
||||
|
||||
&.statusNew {
|
||||
background-color: #d9ffb4;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#devices {
|
||||
.tableData;
|
||||
margin-top: 6px;
|
||||
|
||||
& > tbody {
|
||||
|
||||
td {
|
||||
vertical-align: middle;
|
||||
min-height: 32px;
|
||||
}
|
||||
|
||||
tr.statusError td {
|
||||
background-color: #ffd3d3;
|
||||
}
|
||||
|
||||
tr.statusUpdate td {
|
||||
background-color: #d3f3ff;
|
||||
}
|
||||
|
||||
tr.statusNew td {
|
||||
background-color: #d9ffb4;
|
||||
}
|
||||
|
||||
tr {
|
||||
td.action {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
td.serialNumber {
|
||||
font-family: @FontFamilyMono;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
td.model {
|
||||
img.modelImage {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
margin-right: 2px;
|
||||
}
|
||||
}
|
||||
|
||||
td.profile {
|
||||
}
|
||||
|
||||
td.batch {
|
||||
}
|
||||
|
||||
td.assignedUser {
|
||||
}
|
||||
|
||||
td.location {
|
||||
}
|
||||
|
||||
td.assetNumber {
|
||||
}
|
||||
}
|
||||
|
||||
.error {
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -1 +1 @@
|
||||
.tableData{border:solid 1px #e8eef4;border-collapse:collapse}.tableData>tbody>tr>td{border:solid 1px #e8eef4;background-color:#fff}.tableData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfd}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#e8eef4;border:solid 1px #e8eef4}.tableData>tbody>tr:hover>td{background-color:#e8eef4}.tableDataDark{border:solid 1px #8db2d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #8db2d8;background-color:#fff}.tableDataDark th{background-color:#8db2d8;border:solid 1px #8db2d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #e8eef4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#e8eef4;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}#layout_PageHeading #Device_Show_Status{margin-left:20px;display:inline-block;height:50px;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;font-weight:lighter;font-stretch:condensed;font-size:.7em;text-transform:uppercase}#layout_PageHeading #Device_Show_Status span.icon{margin-right:6px}#Device_Show #Device_Show_Subjects{table-layout:fixed}#Device_Show #Device_Show_Subjects>tbody>tr>td{padding-top:0;height:100%}#Device_Show #Device_Show_Subjects>tbody>tr>td>div{position:relative}#Device_Show #Device_Show_Subjects>tbody>tr>td>div div.status{margin-top:2px;padding-top:2px;border-top:1px dashed #ddd}#Device_Show #Device_Show_Subjects>tbody>tr>td>div input.discreet{margin-left:-2px}#Device_Show #Device_Show_Subjects>tbody>tr>td:not(:last-child){border-right:1px dashed #aaa}#Device_Show #Device_Show_Subjects .dialog{display:none}#Device_Show #Device_Show_Subjects #Device_Show_Details table.verticalHeadings>tbody>tr>td:first-child{width:104px;font-weight:bold}#Device_Show #Device_Show_Subjects #Device_Show_Details #Device_Show_Details_Asset_Name{font-weight:bold}#Device_Show #Device_Show_Subjects #Device_Show_Details #Device_Show_Details_Asset_Enrolled_Trusted{display:inline-block;height:16px;padding-left:16px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACWUlEQVQ4y6XRXWiSURgHcJsXa4WNNuuyiy6CoAupixERoXXhmljuxaJiFrVA1i72cVFCOSMt8rNt2YfGO5g5Z1NstWW+c4ZBq4QpqMkEbZDSCObAMprjdf90sIjxsgUdODd/zvmd5zwPCwDrf/aGB7q6utgmk8ngdruzVqt10eVyTWu1Wuk/AXK5vMpoNPpjsRgGbU8/9fbdH/J4PAuRSARKpfLKhoBYLG595nTCaDSZVjPp6TPbHQ5H0mAwfBeJRHXrAp0dna9JcqCguX2H/Xd+S625aLFYQBDE8XWBd+8/TI6Njc+vzcfGX4nLX4FOp5OuC0wGAlS53NzaPPAm2Gi32+H3+5tYJEl+pigKoVAIPp+PnpqaosPhMF1uHB2Px2mv14vya6VgMKhhHGN3d/dSMplENptFIpHA3NwcCoUCSqUSKqvScZVKBbPZHGQEFApFMZ1OI5PJIBqNrkD5fB40Ta8AlcrUajVsNpufEbh+42YxHEkh+/UbUqlZpGd/lAH8WTMzMzDd64d7NMAMDOobi/OpHqh6rqK9jcCvBQncQzK0Xm5DPn0BJ4lz6GgVIkedYAaamxqK0dEDePl4FziczehTsZGLs7BnNwdiwRac4lejvp6La83VzABv/8FF/qG9oD/WQS/fhNptHEw8rEJiuAo7ubXACAtH9m0Fu2YHxQzweEuEVIYnaiFmvQ04f1aItksi5KaP4ZFGjDB5GG/7j4LL5YYYgZYW2c/yiJbv6h/A0EvC4RjGiOsFnK4J+KgABmyjsDufL0skki8CgYCoXOLz+TWrwG+kXMkgQ6yv+QAAAABJRU5ErkJggg==);background-repeat:no-repeat}#Device_Show #Device_Show_Subjects #Device_Show_Details #Device_Show_GenerateDocument_Container{padding-top:4px}#Device_Show #Device_Show_Subjects #Device_Show_Details #Device_Show_GenerateDocument_Container #Device_Show_GenerateDocument{padding:0}#Device_Show #Device_Show_Subjects #Device_Show_Policies table.verticalHeadings>tbody>tr>td:first-child{width:120px;font-weight:bold}#Device_Show #Device_Show_Subjects #Device_Show_Aspects #Device_Show_Aspects_Model_Image{display:block;width:256px;height:256px;margin:0 auto}#Device_Show #Device_Show_Subjects #Device_Show_Subjects_Actions>td{padding-top:4px}#DeviceDetailTabs{margin-top:10px;border-radius:0;background-image:none;background-color:#fff;border:none;padding:0}#DeviceDetailTabs #DeviceDetailTabItems{border-radius:0;border-top:1px solid #ddd;border-right:1px solid #ddd;border-left:1px solid #ddd;border-bottom:none;padding:2px 0 0 4px;background-image:none;background-color:#eee;display:table}#DeviceDetailTabs #DeviceDetailTabItems>li{top:0;border-radius:0;margin:0 5px 0 0;padding:0;line-height:normal;margin-right:4px}#DeviceDetailTabs #DeviceDetailTabItems>li>a{padding:5px 8px}#DeviceDetailTabs div.ui-tabs-panel{border-radius:0;padding:4px;border-right:1px solid #ddd;border-bottom:1px solid #ddd;border-left:1px solid #ddd;border-top:none;background-color:#eee}#Device_Show_Policies_Profile_Actions_Update_Dialog ul li,#Device_Show_Policies_Batch_Actions_Update_Dialog ul li{background-color:#fff;padding:2px 0}#Device_Show_Policies_Profile_Actions_Update_Dialog ul li:nth-cLine truncated
|
||||
.tableData{border:solid 1px #e8eef4;border-collapse:collapse}.tableData>tbody>tr>td{border:solid 1px #e8eef4;background-color:#fff}.tableData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfd}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#e8eef4;border:solid 1px #e8eef4}.tableData>tbody>tr:hover>td{background-color:#e8eef4}.tableData>tfoot>tr>th,.tableData>tfoot>tr>td{background-color:#e8eef4}.tableDataDark{border:solid 1px #8db2d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #8db2d8;background-color:#fff}.tableDataDark th{background-color:#8db2d8;border:solid 1px #8db2d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #e8eef4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#e8eef4;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}#layout_PageHeading #Device_Show_Status{margin-left:20px;display:inline-block;height:50px;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;font-weight:lighter;font-stretch:condensed;font-size:.7em;text-transform:uppercase}#layout_PageHeading #Device_Show_Status span.icon{margin-right:6px}#Device_Show #Device_Show_Subjects{table-layout:fixed}#Device_Show #Device_Show_Subjects>tbody>tr>td{padding-top:0;height:100%}#Device_Show #Device_Show_Subjects>tbody>tr>td>div{position:relative}#Device_Show #Device_Show_Subjects>tbody>tr>td>div div.status{margin-top:2px;padding-top:2px;border-top:1px dashed #ddd}#Device_Show #Device_Show_Subjects>tbody>tr>td>div input.discreet{margin-left:-2px}#Device_Show #Device_Show_Subjects>tbody>tr>td:not(:last-child){border-right:1px dashed #aaa}#Device_Show #Device_Show_Subjects .dialog{display:none}#Device_Show #Device_Show_Subjects #Device_Show_Details table.verticalHeadings>tbody>tr>td:first-child{width:104px;font-weight:bold}#Device_Show #Device_Show_Subjects #Device_Show_Details #Device_Show_Details_Asset_Name{font-weight:bold}#Device_Show #Device_Show_Subjects #Device_Show_Details #Device_Show_Details_Asset_Enrolled_Trusted{display:inline-block;height:16px;padding-left:16px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACWUlEQVQ4y6XRXWiSURgHcJsXa4WNNuuyiy6CoAupixERoXXhmljuxaJiFrVA1i72cVFCOSMt8rNt2YfGO5g5Z1NstWW+c4ZBq4QpqMkEbZDSCObAMprjdf90sIjxsgUdODd/zvmd5zwPCwDrf/aGB7q6utgmk8ngdruzVqt10eVyTWu1Wuk/AXK5vMpoNPpjsRgGbU8/9fbdH/J4PAuRSARKpfLKhoBYLG595nTCaDSZVjPp6TPbHQ5H0mAwfBeJRHXrAp0dna9JcqCguX2H/Xd+S625aLFYQBDE8XWBd+8/TI6Njc+vzcfGX4nLX4FOp5OuC0wGAlS53NzaPPAm2Gi32+H3+5tYJEl+pigKoVAIPp+PnpqaosPhMF1uHB2Px2mv14vya6VgMKhhHGN3d/dSMplENptFIpHA3NwcCoUCSqUSKqvScZVKBbPZHGQEFApFMZ1OI5PJIBqNrkD5fB40Ta8AlcrUajVsNpufEbh+42YxHEkh+/UbUqlZpGd/lAH8WTMzMzDd64d7NMAMDOobi/OpHqh6rqK9jcCvBQncQzK0Xm5DPn0BJ4lz6GgVIkedYAaamxqK0dEDePl4FziczehTsZGLs7BnNwdiwRac4lejvp6La83VzABv/8FF/qG9oD/WQS/fhNptHEw8rEJiuAo7ubXACAtH9m0Fu2YHxQzweEuEVIYnaiFmvQ04f1aItksi5KaP4ZFGjDB5GG/7j4LL5YYYgZYW2c/yiJbv6h/A0EvC4RjGiOsFnK4J+KgABmyjsDufL0skki8CgYCoXOLz+TWrwG+kXMkgQ6yv+QAAAABJRU5ErkJggg==);background-repeat:no-repeat}#Device_Show #Device_Show_Subjects #Device_Show_Details #Device_Show_GenerateDocument_Container{padding-top:4px}#Device_Show #Device_Show_Subjects #Device_Show_Details #Device_Show_GenerateDocument_Container #Device_Show_GenerateDocument{padding:0}#Device_Show #Device_Show_Subjects #Device_Show_Policies table.verticalHeadings>tbody>tr>td:first-child{width:120px;font-weight:bold}#Device_Show #Device_Show_Subjects #Device_Show_Aspects #Device_Show_Aspects_Model_Image{display:block;width:256px;height:256px;margin:0 auto}#Device_Show #Device_Show_Subjects #Device_Show_Subjects_Actions>td{padding-top:4px}#DeviceDetailTabs{margin-top:10px;border-radius:0;background-image:none;background-color:#fff;border:none;padding:0}#DeviceDetailTabs #DeviceDetailTabItems{border-radius:0;border-top:1px solid #ddd;border-right:1px solid #ddd;border-left:1px solid #ddd;border-bottom:none;padding:2px 0 0 4px;background-image:none;background-color:#eee;display:table}#DeviceDetailTabs #DeviceDetailTabItems>li{top:0;border-radius:0;margin:0 5px 0 0;padding:0;line-height:normal;margin-right:4px}#DeviceDetailTabs #DeviceDetailTabItems>li>a{padding:5px 8px}#DeviceDetailTabs div.ui-tabs-panel{border-radius:0;padding:4px;border-right:1px solid #ddd;border-bottom:1px solid #ddd;border-left:1px solid #ddd;border-top:none;background-color:#eee}#Device_Show_Policies_Profile_Actions_Update_Dialog ul li,#Device_Show_Policies_Batch_Actions_Update_Dialog ul li{background-color:#fff;paddinLine truncated
|
||||
@@ -1,15 +1,26 @@
|
||||
.tableData {
|
||||
.tableData {
|
||||
border: solid 1px #e8eef4;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
.tableData td {
|
||||
.tableData > tbody > tr > td {
|
||||
border: solid 1px #e8eef4;
|
||||
background-color: #fff;
|
||||
}
|
||||
.tableData th {
|
||||
.tableData > tbody > tr:nth-child(odd) > td {
|
||||
background-color: #fcfcfd;
|
||||
}
|
||||
.tableData > thead > tr > th,
|
||||
.tableData > tbody > tr > th {
|
||||
background-color: #e8eef4;
|
||||
border: solid 1px #e8eef4;
|
||||
}
|
||||
.tableData > tbody > tr:hover > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
.tableData > tfoot > tr > th,
|
||||
.tableData > tfoot > tr > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
.tableDataDark {
|
||||
border: solid 1px #8db2d8;
|
||||
border-collapse: collapse;
|
||||
|
||||
@@ -4,8 +4,7 @@ body
|
||||
{
|
||||
padding: 0;
|
||||
}
|
||||
#main
|
||||
{
|
||||
#main {
|
||||
background-color: #FFF;
|
||||
overflow: auto;
|
||||
padding: 0;
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
.tableData{border:solid 1px #e8eef4;border-collapse:collapse}.tableData td{border:solid 1px #e8eef4;background-color:#fff}.tableData th{background-color:#e8eef4;border:solid 1px #e8eef4}.tableDataDark{border:solid 1px #8db2d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #8db2d8;background-color:#fff}.tableDataDark th{background-color:#8db2d8;border:solid 1px #8db2d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #e8eef4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#e8eef4;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{padding:0}#main{background-color:#fff;overflow:auto;padding:0;-moz-border-radius:0 0 6px 6px;-webkit-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}
|
||||
.tableData{border:solid 1px #e8eef4;border-collapse:collapse}.tableData>tbody>tr>td{border:solid 1px #e8eef4;background-color:#fff}.tableData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfd}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#e8eef4;border:solid 1px #e8eef4}.tableData>tbody>tr:hover>td{background-color:#e8eef4}.tableData>tfoot>tr>th,.tableData>tfoot>tr>td{background-color:#e8eef4}.tableDataDark{border:solid 1px #8db2d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #8db2d8;background-color:#fff}.tableDataDark th{background-color:#8db2d8;border:solid 1px #8db2d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #e8eef4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#e8eef4;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{padding:0}#main{background-color:#fff;overflow:auto;padding:0;-moz-border-radius:0 0 6px 6px;-webkit-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}
|
||||
@@ -1,4 +1,4 @@
|
||||
#dialogWait {
|
||||
#dialogWait {
|
||||
padding-top: 30px;
|
||||
}
|
||||
#dialogWait .ajaxLoading {
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
#dialogWait{padding-top:30px}#dialogWait .ajaxLoading{margin-right:15px}#dialogWait div{padding-left:31px}#main{background:url(data:image/jpeg;base64,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 truncated
|
||||
#dialogWait{padding-top:30px}#dialogWait .ajaxLoading{margin-right:15px}#dialogWait div{padding-left:31px}#main{background:url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCAH0BM4DASIAAhEBAxEB/8QAGQABAQEBAQEAAAAAAAAAAAAAAAECAwQI/8QAHxABAQEAAwEBAQEBAQAAAAAAABEBAjFhIYESUUFx/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAIB/8QAFxEBAQEBAAAAAAAAAAAAAAAAABEBIf/aAAwDAQACEQMRAD8A+ywpQAqUFClAClAClAClAClAClAClAClAClACpQUKlBQpQApQApQApQApQApQAqUFClACpQUSlBRKAohQUQoKIAolKCiUoKJSgolKCiUoKJSgolKCiUoKJSgolKCiUoKJSgolKCiUoKJSgolKCiUoKJSgolKCiUoKJSgolKChSgCUoKJSgolKCiUoKJSgolKCiUoKJSgolKCiUoKJSgolKCiUoKJSgolKCiUoKJSgolKCiUoKJSgolKCiUoKJSgolKCiUoKJSgolKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUClQBaVAFpUAWlQBaVAFpUAWqyA0lQBoZAWlQBaVAFpUAaEpQUSlBRKUFEpQUSlBRKUFEpQUSlBRKUFEpQUSlBRKUFEpQUSlBRKUFEqgAACUoKJSgolKCiUoKJSgolKCiUoKJSgolKCiUoKJSgolKCiUoKJSgolKCiUoKJSgolKCiUoKJSgolKCiUoKJSgolKCiUoKJSgUqALSoAtKgC0qALSoAtKgC0qALSoAtKgC0qALSoAtKgC0qALSoAtKgC0qALSoAtKgC0qALSoAtQNATdTdTdBqpUAWl9QBaVAFvpUAWrWQGqVL6lBqlS+pQapWaUGqVmlBqlZpQaqs0oNDNAaGSg0M0oNDN9KDQzVoKM0oNCUoKJSgolKCiUoKJSgolKCiUoKJSgolKCiUoKJSgoYAAACUoKJSgoAAAAAAJQUSlBRKUFEpQUSlBRKUFEpQUSlBRKUFEpQUSlBRKUFEpQUSlBRKUFEpQUSlBRKUFEpQUSlBUqANJUAaGSg0lQBoZoC1WQGkqALVZAWlSgLSpSgtKgDSVAFqsgNJUAWlQBarIC1WSgtVmgNJUAaSoUFrO6bqaCpUTdBqolKCrWaUGqVmlBqlZpQapWaoLSoAtKgC0qALVZAaGVoKJSgolKCiUoKJSgolKCiUoKJSg1fS+s0oLSpSgtKlKC0qUoLSpSgtKJQWlSlBaVKUFpUpQWlSlBaUAWrmsgNUqUAE3QFEAUSlBRKUFEoCiALSoAUoAUoAUolBaVKUFpUpQWlSlBaVKUFpUpQWlSlBaUAKUACgAUAKtQBRAFEpQUSlBRKUASlBRKUFBKCiUoKJVABKCiUoKJSgolUASqAAACUFEpQUSqAJVAEpQUEoKJSgoJQUSoC7qam6m6BulSpQapWaUGqVmlBqlZpQapWaUGqVmrQWlSlBatZAapWQGqVlaC0qUoLVZpQaGaUGhmlBoZzVoKM0oNDNKDQzSg0JSgolKCiUoKJSgolKCiUoKJSgolKCiUoKJSgq1mqC0qALisrQUAAAAAAAAAASqAMgLSoAtKgACUFEpQUSlBRKoAAAAC1AGgSgolKCiUoKMgNJUpQWlZpQapWaUGqjNKDQzSg0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACboLrO6bqaAiam6ClZqA3RmlBoZpQaGc0oNDNKDQzSg0M1qgLUpQWlSlBaVAFq1kBqlZAapWQGqMgNDK0FEpQUSlBRKUFWs0oNUrNKDVKzSg1Ss0oNUrNWgBUoKtSlBaVKlBqlSgLSoAtKgDVKlKC1UMBqlTAFqAAAAAAAAAACaCpRKC1KVAWlQBaVF/AUDMAz/xRKCiUoKJ/SUGhndSg2n9M0oNf0f0zUoN/0lZpQapWaUGqVmlBRKUFEpQUSlBRKUGqVAFpUAWrWQFpUAWlQBb6VAFpUAWlQBaVAFpUAWlQBaVAFpUAWlQBaVAFq1kBaVAFpUAXdN1Km6C7rO6nLWd0F3U1E3QWlSlBaVKUFpUoDVKyA1TGQGhAFEAUS+lBq+lZpQapUpQWlSlBaVAGrq1gBulYAbpWFoNUrNKDVKzS4DVKzSg1RmlBqjNKDQzSg0M0oNDNKDQzSg0M0oNDNKDQzVBQzSgtKgDWCUoKuJQFrTNKDQgCiAKIAogCpRKBTeioAAAAAsKUFSpupQaq/wBMbqUG6m6zU/oG91KxSg3SsUoNDNKDQzSg0M0oNDNKDQzSg1Ss0oNUrNKDVKzSg1Ss0oNUrNQHSlQBaVAFpUAWlQBaVAFpUAWlQBaVAFpUAWlQBaVAFpUAWlQBaVAFpUAWlQBaVAFpUKAnLV3WN0DdZ3TdZBd1lN0voKH6foLSp+n6C0rN9WgtKlKC0qUoNUzWaA3SsLQapWaUGqM3f9KDQzSg0rNKDQzSg0VmrQWlSlBaVM0BaVAFpUAWlQBaVAFpUAapWQGqVkBqlZAapWQGqVlQWlQvoKIAq5rNXAazUqLQaGc6aoLVxlQUZaBaVKAtKgC0qALSoAAAAUASgKlSm6C1N1ndSg1vI/pilBqogClQBaVKgNUrIDVKyA1SpUBqlZAaqVAFpUAWlQBatZAapWQFpUAWlQoN0qALSoAtKgC0qALSoAtKgC0qALSoAtKgC0qALSoAtKgC0qALSoAtKgC0qALSoAtKhoG6zums7oG6zupus7v0GqVm+l9BqlZvoDVKzfS+g1Ss30voNUrN9L6DWarF9L6DYxSg2M0oNYtxnNKkapWc1VC0qALSoAtEAWiFBRKAq1laC1azTEjVSpSgtLv+s1aoapWaUGqVmlSNUrJVDVKzSg0fWaUGvpdZAaulZAapWQGqtYAbqsZq5oNZq1nNUFWs4uA1mrmsLQaDAFxayA1RkBorIDVKyA1UqACom6C7rNN1ACpoBuiam6C3Cs1AapWQGqVkBorIDV0+sgNF1kBr6M0oNFZKDVKyVI1Ss0wGisihr6VmlBrdS7/qUoLSpUoNbqIUHWlxKVItwuJS4C3C4lwoLSpSgtwqUuAtKlKC0qUoLcKlKC0uJSgtwqUBaVKUFpUpQWlxKUFpUpQW4VKXAWlSlBbhcSlBU1Km6oN1jlq7WOWgbqbqbrO6C0rNKDVM1mrQaWsUqWxuozVoxqlZpVDVKzSg1Ss0oNUrNUFqsgLVvrFKDpfS+sVaDV9KzTEjV9KzSqGqVAFpUAWlQBqmayA2lZpQauFZAapWQGqrFKDYxSg2MUoNjFWg0lz/AFmlBsYpQapUpQbpWKtBqmIUGs1c1jFB0MZzpoFomLgLnRSlBrNKzSg0M0oNDNKDRus0oLdSlQF3UNQFqCboKm6zugG6M7pQN1aiboNVN1Kn9AtKlSg2MUoNVWKUGxilBsYpQbGKUGxilBsZp/SWtVKzRTGt0rIDVKyA1S4yAtL6gDrSoAtKgC0qALSoAtwqALfSoAtKgC0qALSoAtKgC0qALSoAtKgC0qALSoAtKgC03UQFTdNZ5aCbvrO6ctY3foCbqboC0rNUFpUAWlQBaVkBqmamANDIlrebqVkUxqlACrUAWlQBatZAap/TIDYwVLWy+sVapjV9L6yJbG7n+mawKZGr6X1KUFvq/qABfRKCl9SlBb6JVAvpfQBf0/UAL6v6gBfS+gC/pUAX9EAXN9VIoLmrhmLmARoXOgXJislBorNKDVwuJSg1miCRRKVQolWgAgFPgmgaVE0F3WdhqaC6gzugu6l9QA3SpqAogCpfQBafqAL+n6gC/p+oAX1f1AC+r+oAv6fqAL+n6gAX0Sgt9L6lKC30vqUoLfS+pTQW+l9ZaB2pUAWlQBaVBIpUAWlQBaIKFpUEi0qChSoJFogC0qChaVAFpUAWlQSLSoApUAWoADG61rG6oTdc91rlrO9giGgAACoAogCiYUFAAAAAS0aTCjFGWlAAAAAAAAAAAUAKUAWiAKtZXNS1agmgolKoqiAVVrNKMapUpUi0qA2LVZaGAdrmKEi5jWcVzATOK5jULmAkVN3E3Qa3SsbyKDV9WsVc1I1VZMUNZqs1QValAWiAKrK0FEpQNTehN0DdTTU0AE3QN1ndN0ATdN1AAABKUCI0ykWlQGxaVAItKjQwAUAJugqVKlSKJSilEpQUQqmVSoBVqYGDGsXMMz61mA2AkAFAlQBoAAAABLaADABQAAAJABQAAAJbQBTBKgDQAAJqRnWeWtMclDO79Z3fq6zoAm9KAJVSACgAAAAVAFExUgAoAEtXFZAg0mIMaGWlADINAAAAAAAAmKAAAFAAAAAAAAAzAMXMXMazATFjWYuYCZjWCbqRRndZ3kob3U3WN3U3UjW6VitKFpUMBozUqg1mrjGauaDVEzVBarNEjVKyqhaVKA0M1c0FZ1dRImmjO6oXdZ3TdAE3TdQAEoKm6iVLYpUFFABhQEgAoXOhFo1am6lEsKAoAAAAAAAAAMAa44ccb44BxxtM+YzQapUEi0qALSoAtKgDSVAFqsgLSoAtKgC0qALSoAtKgC0qALVZAWlQBpKgC0qACaqAm6xya3tje1DO6zvTW79Z1IgA0EpVMawqCVLVZAGkxRIJnSqBUAUZzpoAAARQAEqFqAwAGAAAAoAAAAaZFJaEqA0JigAAAAC5xaLine truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
.isotope-item{z-index:2}.isotope-hidden.isotope-item{pointer-events:none;z-index:1}.isotope,.isotope .isotope-item{-webkit-transition-duration:.8s;-moz-transition-duration:.8s;-o-transition-duration:.8s;transition-duration:.8s}.isotope{-webkit-transition-property:height,width;-moz-transition-property:height,width;-o-transition-property:height,width;transition-property:height,width}.isotope .isotope-item{-webkit-transition-property:-webkit-transform,opacity;-moz-transition-property:-moz-transform,opacity;-o-transition-property:top,left,opacity;transition-property:transform,opacity}.isotope.no-transition,.isotope.no-transition .isotope-item,.isotope .isotope-item.no-transition{-webkit-transition-duration:0;-moz-transition-duration:0;-o-transition-duration:0;transition-duration:0}
|
||||
.isotope-item{z-index:2}.isotope-hidden.isotope-item{pointer-events:none;z-index:1}.isotope,.isotope .isotope-item{-webkit-transition-duration:.8s;-moz-transition-duration:.8s;-o-transition-duration:.8s;transition-duration:.8s}.isotope{-webkit-transition-property:height,width;-moz-transition-property:height,width;-o-transition-property:height,width;transition-property:height,width}.isotope .isotope-item{-webkit-transition-property:-webkit-transform,opacity;-moz-transition-property:-moz-transform,opacity;-o-transition-property:top,left,opacity;transition-property:transform,opacity}.isotope.no-transition,.isotope.no-transition .isotope-item,.isotope .isotope-item.no-transition{-webkit-transition-duration:0s;-moz-transition-duration:0s;-o-transition-duration:0s;transition-duration:0s}
|
||||
@@ -17,6 +17,10 @@
|
||||
.tableData > tbody > tr:hover > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
.tableData > tfoot > tr > th,
|
||||
.tableData > tfoot > tr > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
.tableDataDark {
|
||||
border: solid 1px #8db2d8;
|
||||
border-collapse: collapse;
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
.tableData{border:solid 1px #e8eef4;border-collapse:collapse}.tableData>tbody>tr>td{border:solid 1px #e8eef4;background-color:#fff}.tableData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfd}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#e8eef4;border:solid 1px #e8eef4}.tableData>tbody>tr:hover>td{background-color:#e8eef4}.tableDataDark{border:solid 1px #8db2d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #8db2d8;background-color:#fff}.tableDataDark th{background-color:#8db2d8;border:solid 1px #8db2d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #e8eef4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#e8eef4;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}#layout_PageHeading #Job_Show_Status{margin-left:20px;display:inline-block;height:50px;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;font-weight:lighter;font-stretch:condensed;font-size:.7em;text-transform:uppercase}#layout_PageHeading #Job_Show_Status span.icon{margin-right:6px}#Job_Show #Job_Show_Subjects{table-layout:fixed}#Job_Show #Job_Show_Subjects>tbody>tr>td{padding-top:0;height:100%}#Job_Show #Job_Show_Subjects>tbody>tr>td>div{position:relative}#Job_Show #Job_Show_Subjects>tbody>tr>td>div div.status{margin-top:2px;padding-top:2px;border-top:1px dashed #ddd}#Job_Show #Job_Show_Subjects>tbody>tr>td>div input.discreet{margin-left:-2px}#Job_Show #Job_Show_Subjects>tbody>tr>td:not(:last-child){border-right:1px dashed #aaa}#Job_Show #Job_Show_Subjects .dialog{display:none}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_Type>table{table-layout:fixed}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_SubTypes_1,#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_SubTypes_2{padding-left:16px;font-weight:bold}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_SubTypes_Update{margin-left:16px;font-size:.9em}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_SubTypes_Update_Dialog{display:none}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_Dates{padding-bottom:6px}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_Dates table{table-layout:fixed}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_Dates table>tbody>tr>td{vertical-align:middle}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_Dates table>tbody>tr>td:first-child{font-weight:bold;width:60px}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_GenerateDocument_Container{padding-top:4px}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_GenerateDocument_Container #Job_Show_GenerateDocument{padding:0}#Job_Show #Job_Show_Subjects #Job_Show_Device>div{padding-left:102px;min-height:100px}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Model_Image{position:absolute;left:0;top:0;height:96px;width:96px}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Details{float:left}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Details_HWar,#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Details_HNWar{float:right;border-left:1px dashed #ddd;padding-left:4px;margin-right:2px}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Details_HWar_Details_Button,#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Details_HNWar_Details_Button{font-size:.9em}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_DeviceHeld table{table-layout:fixed}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_DeviceHeld table>tbody>tr>td:first-child{width:62px}#Job_Show #Job_Show_Subjects #Job_Show_User #Job_Show_User_Type{font-style:italic}#Job_Show #Job_Show_Subjects #Job_Show_Subjects_Actions>td{padding-top:4px}#Job_Show #Job_Show_Subjects #Job_Show_Subjects_Actions #Job_Show_Device_Actions{padding-left:111px}#jobDetailTabs{margin-top:10px;border-radius:0;background-image:none;background-color:#fff;border:none;padding:0}#jobDetailTabs #jobDetailTabItems{border-radius:0;border-top:1px solid #ddd;border-right:1px solid #ddd;border-left:1px solid #ddd;border-bottom:none;padding:2px 0 0 4px;background-image:none;background-color:#eee;display:table}#jobDetailTabs #jobDetailTabItems>li{top:0;border-radius:0;margin:0 5px 0 0;padding:0;line-height:normal;margin-right:4px}#jobDetailTabs #jobDetailTabItems>li>a{padding:5px 8px}#jobDetailTabs div.ui-tabs-panel{border-radius:0;padding:4px;border-right:1px solid #ddd;border-bottom:1px solid #ddd;border-left:1px solid #ddd;border-top:noneLine truncated
|
||||
.tableData{border:solid 1px #e8eef4;border-collapse:collapse}.tableData>tbody>tr>td{border:solid 1px #e8eef4;background-color:#fff}.tableData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfd}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#e8eef4;border:solid 1px #e8eef4}.tableData>tbody>tr:hover>td{background-color:#e8eef4}.tableData>tfoot>tr>th,.tableData>tfoot>tr>td{background-color:#e8eef4}.tableDataDark{border:solid 1px #8db2d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #8db2d8;background-color:#fff}.tableDataDark th{background-color:#8db2d8;border:solid 1px #8db2d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #e8eef4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#e8eef4;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}#layout_PageHeading #Job_Show_Status{margin-left:20px;display:inline-block;height:50px;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;font-weight:lighter;font-stretch:condensed;font-size:.7em;text-transform:uppercase}#layout_PageHeading #Job_Show_Status span.icon{margin-right:6px}#Job_Show #Job_Show_Subjects{table-layout:fixed}#Job_Show #Job_Show_Subjects>tbody>tr>td{padding-top:0;height:100%}#Job_Show #Job_Show_Subjects>tbody>tr>td>div{position:relative}#Job_Show #Job_Show_Subjects>tbody>tr>td>div div.status{margin-top:2px;padding-top:2px;border-top:1px dashed #ddd}#Job_Show #Job_Show_Subjects>tbody>tr>td>div input.discreet{margin-left:-2px}#Job_Show #Job_Show_Subjects>tbody>tr>td:not(:last-child){border-right:1px dashed #aaa}#Job_Show #Job_Show_Subjects .dialog{display:none}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_Type>table{table-layout:fixed}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_SubTypes_1,#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_SubTypes_2{padding-left:16px;font-weight:bold}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_SubTypes_Update{margin-left:16px;font-size:.9em}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_SubTypes_Update_Dialog{display:none}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_Dates{padding-bottom:6px}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_Dates table{table-layout:fixed}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_Dates table>tbody>tr>td{vertical-align:middle}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_Job_Dates table>tbody>tr>td:first-child{font-weight:bold;width:60px}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_GenerateDocument_Container{padding-top:4px}#Job_Show #Job_Show_Subjects #Job_Show_Job #Job_Show_GenerateDocument_Container #Job_Show_GenerateDocument{padding:0}#Job_Show #Job_Show_Subjects #Job_Show_Device>div{padding-left:102px;min-height:100px}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Model_Image{position:absolute;left:0;top:0;height:96px;width:96px}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Details{float:left}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Details_HWar,#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Details_HNWar{float:right;border-left:1px dashed #ddd;padding-left:4px;margin-right:2px}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Details_HWar_Details_Button,#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_Details_HNWar_Details_Button{font-size:.9em}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_DeviceHeld table{table-layout:fixed}#Job_Show #Job_Show_Subjects #Job_Show_Device #Job_Show_Device_DeviceHeld table>tbody>tr>td:first-child{width:62px}#Job_Show #Job_Show_Subjects #Job_Show_User #Job_Show_User_Type{font-style:italic}#Job_Show #Job_Show_Subjects #Job_Show_Subjects_Actions>td{padding-top:4px}#Job_Show #Job_Show_Subjects #Job_Show_Subjects_Actions #Job_Show_Device_Actions{padding-left:111px}#jobDetailTabs{margin-top:10px;border-radius:0;background-image:none;background-color:#fff;border:none;padding:0}#jobDetailTabs #jobDetailTabItems{border-radius:0;border-top:1px solid #ddd;border-right:1px solid #ddd;border-left:1px solid #ddd;border-bottom:none;padding:2px 0 0 4px;background-image:none;background-color:#eee;display:table}#jobDetailTabs #jobDetailTabItems>li{top:0;border-radius:0;margin:0 5px 0 0;padding:0;line-height:normal;margin-right:4px}#jobDetailTabs #jobDetailTabItems>li>a{padding:5px 8px}#jobDetailTabs div.ui-tabs-panel{border-radius:0;padding:4px;border-right:1px solid #ddd;Line truncated
|
||||
@@ -7,7 +7,7 @@
|
||||
background-color: #fff;
|
||||
}
|
||||
.tableData > tbody > tr:nth-child(odd) > td {
|
||||
background-color: #baccde;
|
||||
background-color: #fcfcfd;
|
||||
}
|
||||
.tableData > thead > tr > th,
|
||||
.tableData > tbody > tr > th {
|
||||
@@ -17,6 +17,10 @@
|
||||
.tableData > tbody > tr:hover > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
.tableData > tfoot > tr > th,
|
||||
.tableData > tfoot > tr > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
.tableDataDark {
|
||||
border: solid 1px #8db2d8;
|
||||
border-collapse: collapse;
|
||||
|
||||
@@ -1,30 +1,29 @@
|
||||
@import "Declarations";
|
||||
|
||||
// Data Table Mixin
|
||||
.tableData
|
||||
{
|
||||
.tableData {
|
||||
border: solid 1px @TableDataBorderColour;
|
||||
border-collapse: collapse;
|
||||
|
||||
&>tbody > tr > td
|
||||
{
|
||||
& > tbody > tr > td {
|
||||
border: solid 1px @TableDataBorderColour;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
&>tbody > tr:nth-child(odd) > td
|
||||
{
|
||||
& > tbody > tr:nth-child(odd) > td {
|
||||
background-color: @TableDataRowBackgroundColor;
|
||||
}
|
||||
|
||||
&>thead > tr > th, &>tbody > tr > th
|
||||
{
|
||||
& > thead > tr > th, & > tbody > tr > th {
|
||||
background-color: @TableDataBorderColour;
|
||||
border: solid 1px @TableDataBorderColour;
|
||||
}
|
||||
|
||||
&>tbody > tr:hover > td
|
||||
{
|
||||
& > tbody > tr:hover > td {
|
||||
background-color: @TableDataBorderColour;
|
||||
}
|
||||
|
||||
& > tfoot > tr > th, & > tfoot > tr > td {
|
||||
background-color: @TableDataBorderColour;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
.tableData{border:solid 1px #e8eef4;border-collapse:collapse}.tableData>tbody>tr>td{border:solid 1px #e8eef4;background-color:#fff}.tableData>tbody>tr:nth-child(odd)>td{background-color:#baccde}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#e8eef4;border:solid 1px #e8eef4}.tableData>tbody>tr:hover>td{background-color:#e8eef4}.tableDataDark{border:solid 1px #8db2d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #8db2d8;background-color:#fff}.tableDataDark th{background-color:#8db2d8;border:solid 1px #8db2d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #e8eef4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#e8eef4;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}
|
||||
.tableData{border:solid 1px #e8eef4;border-collapse:collapse}.tableData>tbody>tr>td{border:solid 1px #e8eef4;background-color:#fff}.tableData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfd}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#e8eef4;border:solid 1px #e8eef4}.tableData>tbody>tr:hover>td{background-color:#e8eef4}.tableData>tfoot>tr>th,.tableData>tfoot>tr>td{background-color:#e8eef4}.tableDataDark{border:solid 1px #8db2d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #8db2d8;background-color:#fff}.tableDataDark th{background-color:#8db2d8;border:solid 1px #8db2d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #e8eef4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#e8eef4;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}
|
||||
@@ -17,6 +17,10 @@
|
||||
.tableData > tbody > tr:hover > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
.tableData > tfoot > tr > th,
|
||||
.tableData > tfoot > tr > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
.tableDataDark {
|
||||
border: solid 1px #8db2d8;
|
||||
border-collapse: collapse;
|
||||
@@ -490,6 +494,10 @@ table.genericData > tbody > tr > th {
|
||||
table.genericData > tbody > tr:hover > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
table.genericData > tfoot > tr > th,
|
||||
table.genericData > tfoot > tr > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
table.genericData td.id {
|
||||
text-align: center;
|
||||
}
|
||||
@@ -711,6 +719,10 @@ table.jobTable > tbody > tr > th {
|
||||
table.jobTable > tbody > tr:hover > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
table.jobTable > tfoot > tr > th,
|
||||
table.jobTable > tfoot > tr > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
table.jobTable.hideStatusClosed tr[data-status=Closed] {
|
||||
display: none;
|
||||
}
|
||||
@@ -1039,7 +1051,7 @@ div.columnHost .column50 {
|
||||
white-space: nowrap;
|
||||
}
|
||||
.code {
|
||||
font-family: Consolas, monospace;
|
||||
font-family: Consolas, "Courier New", monospace;
|
||||
}
|
||||
div.code {
|
||||
border: 1px dashed #bbb;
|
||||
|
||||
@@ -302,7 +302,7 @@ img
|
||||
|
||||
code
|
||||
{
|
||||
font-family: Consolas, "Courier New", monospace;
|
||||
font-family: @FontFamilyMono;
|
||||
}
|
||||
|
||||
hr
|
||||
@@ -1247,7 +1247,7 @@ div.columnHost
|
||||
|
||||
.code
|
||||
{
|
||||
font-family: Consolas, monospace;
|
||||
font-family: @FontFamilyMono;
|
||||
}
|
||||
|
||||
div.code
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
.tableData{border:solid 1px #e8eef4;border-collapse:collapse}.tableData>tbody>tr>td{border:solid 1px #e8eef4;background-color:#fff}.tableData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfd}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#e8eef4;border:solid 1px #e8eef4}.tableData>tbody>tr:hover>td{background-color:#e8eef4}.tableDataDark{border:solid 1px #8db2d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #8db2d8;background-color:#fff}.tableDataDark th{background-color:#8db2d8;border:solid 1px #8db2d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #e8eef4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#e8eef4;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 10px;color:#333}body.layout{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAFvCAMAAABEoqrSAAADAFBMVEVRUVFUVFRYWFhbW1tfX19iYmJmZmZpaWltbW1wcHB0dHR3d3d7e3t/f3/MzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD28iAmAAAAbklEQVRIx2NUZ4ABlv9kMZkYRrXhYUphMwzZXEYCogQV0FfbUHMOrSxGAoyMBEygM/M/zZnMjFiZDPQEjCYEsin2/EYKk6qGDTVzR7TnRwN1NFBHPT8aqKOBOur5Uc+PBip1zWVkYGCBCv2nhrkAr7hI+jpl4KUAAAAASUVORK5CYII=) left top repeat-x #d1d1d1}.page{max-width:1230px;min-width:750px;margin-left:auto;margin-right:auto}header,#header{position:relative;margin:0;padding:0;height:110px}header #headerMenu,#header #headerMenu{height:24px;padding:4px;line-height:22px;text-align:right}header #headerMenu a,#header #headerMenu a{color:#000;text-decoration:none}header #headerMenu a:hover,#header #headerMenu a:hover{text-decoration:underline}header #heading,#header #heading{float:left;height:75px}header #heading img,#header #heading img{height:75px;width:300px}header nav,#header nav{padding:0;margin:0;font-size:1.1em}header nav ul#menu,#header nav ul#menu{height:29px;padding:3px 6px;margin:0;list-style:none;z-index:100000}header nav ul#menu>li,#header nav ul#menu>li{display:inline-block;z-index:100000;margin-bottom:-4px}header nav ul#menu>li a,#header nav ul#menu>li a{padding:4px 10px;text-decoration:none;color:#fff;display:inline-block;height:21px}header nav ul#menu>li a:hover,#header nav ul#menu>li a:hover{color:#ffd5ba;text-decoration:none}header nav ul#menu>li a:active,#header nav ul#menu>li a:active{text-decoration:none}header nav ul#menu>li.sep,#header nav ul#menu>li.sep{margin-top:4px;height:21px;border-left:1px solid #777}header nav ul#menu>li.moveRight,#header nav ul#menu>li.moveRight{margin-left:40px}header nav ul#menu>li>ul,#header nav ul#menu>li>ul{z-index:100000;display:none;list-style:none;position:absolute;margin:2px 0 0 0;-moz-border-radius:0 0 0 0;-webkit-border-radius:0 0 0 0;border-radius:0 0 0 0;border-left:1px solid #ecab72;border-bottom:2px solid #ecab72;border-right:1px solid #ecab72;padding:0;min-width:180px}header nav ul#menu>li>ul li,#header nav ul#menu>li>ul li{position:relative;background-color:rgba(242,242,242,.9);background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAUCAYAAABMDlehAAAAIUlEQVQI12NgYGBQYGJgYPgLJ/6gciEEMwMDAyMzA1kAAB/mByD2JQzYAAAAAElFTkSuQmCC);background-position:top;background-repeat:repeat-x}header nav ul#menu>li>ul li:hover,#header nav ul#menu>li>ul li:hover{background-color:rgba(249,228,210,.75)}header nav ul#menu>li>ul li.hasSubmenu,#header nav ul#menu>li>ul li.hasSubmenu{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAANCAYAAACgu+4kAAAAa0lEQVQoz2NgGBRg8uTJO4BYhxIDVgPxHyCeDcQS5BpiAcSHgfgzENcBMRe5BgUC8Line truncated
|
||||
.tableData{border:solid 1px #e8eef4;border-collapse:collapse}.tableData>tbody>tr>td{border:solid 1px #e8eef4;background-color:#fff}.tableData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfd}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#e8eef4;border:solid 1px #e8eef4}.tableData>tbody>tr:hover>td{background-color:#e8eef4}.tableData>tfoot>tr>th,.tableData>tfoot>tr>td{background-color:#e8eef4}.tableDataDark{border:solid 1px #8db2d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #8db2d8;background-color:#fff}.tableDataDark th{background-color:#8db2d8;border:solid 1px #8db2d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #e8eef4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#e8eef4;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 10px;color:#333}body.layout{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAFvCAMAAABEoqrSAAADAFBMVEVRUVFUVFRYWFhbW1tfX19iYmJmZmZpaWltbW1wcHB0dHR3d3d7e3t/f3/MzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD28iAmAAAAbklEQVRIx2NUZ4ABlv9kMZkYRrXhYUphMwzZXEYCogQV0FfbUHMOrSxGAoyMBEygM/M/zZnMjFiZDPQEjCYEsin2/EYKk6qGDTVzR7TnRwN1NFBHPT8aqKOBOur5Uc+PBip1zWVkYGCBCv2nhrkAr7hI+jpl4KUAAAAASUVORK5CYII=) left top repeat-x #d1d1d1}.page{max-width:1230px;min-width:750px;margin-left:auto;margin-right:auto}header,#header{position:relative;margin:0;padding:0;height:110px}header #headerMenu,#header #headerMenu{height:24px;padding:4px;line-height:22px;text-align:right}header #headerMenu a,#header #headerMenu a{color:#000;text-decoration:none}header #headerMenu a:hover,#header #headerMenu a:hover{text-decoration:underline}header #heading,#header #heading{float:left;height:75px}header #heading img,#header #heading img{height:75px;width:300px}header nav,#header nav{padding:0;margin:0;font-size:1.1em}header nav ul#menu,#header nav ul#menu{height:29px;padding:3px 6px;margin:0;list-style:none;z-index:100000}header nav ul#menu>li,#header nav ul#menu>li{display:inline-block;z-index:100000;margin-bottom:-4px}header nav ul#menu>li a,#header nav ul#menu>li a{padding:4px 10px;text-decoration:none;color:#fff;display:inline-block;height:21px}header nav ul#menu>li a:hover,#header nav ul#menu>li a:hover{color:#ffd5ba;text-decoration:none}header nav ul#menu>li a:active,#header nav ul#menu>li a:active{text-decoration:none}header nav ul#menu>li.sep,#header nav ul#menu>li.sep{margin-top:4px;height:21px;border-left:1px solid #777}header nav ul#menu>li.moveRight,#header nav ul#menu>li.moveRight{margin-left:40px}header nav ul#menu>li>ul,#header nav ul#menu>li>ul{z-index:100000;display:none;list-style:none;position:absolute;margin:2px 0 0 0;-moz-border-radius:0 0 0 0;-webkit-border-radius:0 0 0 0;border-radius:0 0 0 0;border-left:1px solid #ecab72;border-bottom:2px solid #ecab72;border-right:1px solid #ecab72;padding:0;min-width:180px}header nav ul#menu>li>ul li,#header nav ul#menu>li>ul li{position:relative;background-color:rgba(242,242,242,.9);background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAUCAYAAABMDlehAAAAIUlEQVQI12NgYGBQYGJgYPgLJ/6gciEEMwMDAyMzA1kAAB/mByD2JQzYAAAAAElFTkSuQmCC);background-position:top;background-repeat:repeat-x}header nav ul#menu>li>ul li:hover,#header nav ul#menu>li>ul li:hover{background-color:rgba(249,228,210,.75)}header nav ul#menu>li>ul li.hasSubmenu,#header nav ul#menu>li>ul li.hasSubmenu{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAANCAYAAACgu+Line truncated
|
||||
@@ -1,4 +1,4 @@
|
||||
.timeline-container {
|
||||
.timeline-container {
|
||||
border: 1px solid #aaa;
|
||||
}
|
||||
.timeline-event-label {
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
@import "../Declarations";
|
||||
|
||||
.timeline-container {
|
||||
border: 1px solid #aaa;
|
||||
}
|
||||
|
||||
.timeline-event-label {
|
||||
font-family: Consolas, "Courier New", monospace;
|
||||
font-family: @FontFamilyMono;
|
||||
font-size: 0.8em;
|
||||
padding-right: 1px;
|
||||
}
|
||||
@@ -1 +1 @@
|
||||
.timeline-container{border:1px solid #aaa}.timeline-event-label{font-family:Consolas,"Courier New",monospace;font-size:.8em;padding-right:1px}
|
||||
.timeline-container{border:1px solid #aaa}.timeline-event-label{font-family:Consolas,"Courier New",monospace;font-size:.8em;padding-right:1px}
|
||||
@@ -17,6 +17,10 @@
|
||||
.tableData > tbody > tr:hover > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
.tableData > tfoot > tr > th,
|
||||
.tableData > tfoot > tr > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
.tableDataDark {
|
||||
border: solid 1px #8db2d8;
|
||||
border-collapse: collapse;
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
.tableData{border:solid 1px #e8eef4;border-collapse:collapse}.tableData>tbody>tr>td{border:solid 1px #e8eef4;background-color:#fff}.tableData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfd}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#e8eef4;border:solid 1px #e8eef4}.tableData>tbody>tr:hover>td{background-color:#e8eef4}.tableDataDark{border:solid 1px #8db2d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #8db2d8;background-color:#fff}.tableDataDark th{background-color:#8db2d8;border:solid 1px #8db2d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #e8eef4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#e8eef4;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}#User_Show #User_Show_Subjects{table-layout:fixed}#User_Show #User_Show_Subjects>tbody>tr>td{padding-top:0;height:100%}#User_Show #User_Show_Subjects>tbody>tr>td>div{position:relative}#User_Show #User_Show_Subjects>tbody>tr>td>div div.status{margin-top:2px;padding-top:2px;border-top:1px dashed #ddd}#User_Show #User_Show_Subjects>tbody>tr>td>div input.discreet{margin-left:-2px}#User_Show #User_Show_Subjects>tbody>tr>td:not(:last-child){border-right:1px dashed #aaa}#User_Show #User_Show_Subjects .dialog{display:none}#User_Show #User_Show_Subjects #User_Show_Details{width:330px}#User_Show #User_Show_Subjects #User_Show_Details table.verticalHeadings>tbody>tr>td:first-child{width:104px;font-weight:bold}#User_Show #User_Show_Subjects #User_Show_Details #User_Show_Details_Identity_Id{font-weight:bold}#User_Show #User_Show_Subjects #User_Show_Details #User_Show_GenerateDocument_Container{padding-top:4px}#User_Show #User_Show_Subjects #User_Show_Details #User_Show_GenerateDocument_Container #User_Show_GenerateDocument{padding:0}#User_Show #User_Show_Subjects #User_Show_Details #User_Show_Details_Actions{margin-top:4px}#User_Show #User_Show_Subjects #User_Show_AssignedDevices .User_Show_AssignedDevices_CurrentAssignment{border-bottom:1px dashed #ddd;padding:4px}#User_Show #User_Show_Subjects #User_Show_AssignedDevices .User_Show_AssignedDevices_CurrentAssignment td:first-child{width:90px;font-weight:bold}#User_Show #User_Show_Subjects #User_Show_AssignedDevices .User_Show_AssignedDevices_CurrentAssignment img.User_Show_AssignedDevices_CurrentAssignment_Image{float:left;width:64px;height:64px;margin-right:6px}#User_Show #User_Show_Subjects #User_Show_AssignedDevices .User_Show_AssignedDevices_CurrentAssignment div.User_Show_AssignedDevices_CurrentAssignment_Details{float:left}#User_Show #User_Show_Subjects #User_Show_Subjects_Actions>td{padding-top:4px}#UserDetailTabs{margin-top:10px;border-radius:0;background-image:none;background-color:#fff;border:none;padding:0}#UserDetailTabs #UserDetailTabItems{border-radius:0;border-top:1px solid #ddd;border-right:1px solid #ddd;border-left:1px solid #ddd;border-bottom:none;padding:2px 0 0 4px;background-image:none;background-color:#eee;display:table}#UserDetailTabs #UserDetailTabItems>li{top:0;border-radius:0;margin:0 5px 0 0;padding:0;line-height:normal;margin-right:4px}#UserDetailTabs #UserDetailTabItems>li>a{padding:5px 8px}#UserDetailTabs div.ui-tabs-panel{border-radius:0;padding:4px;border-right:1px solid #ddd;border-bottom:1px solid #ddd;border-left:1px solid #ddd;border-top:none;background-color:#eee}#UserDetailTab-JobsContainer div.jobTable{margin:-1px;border:1px solid #ddd}#UserDetailTab-JobsContainer .dataTables_wrapper .dataTables_filter{margin-top:-24px;-moz-opacity:1;opacity:1}#UserDetailTab-JobsContainer .dataTables_wrapper .dataTables_length{margin-top:-24px;-moz-opacity:1;opacity:1}#UserDetailTab-JobsContainer .dataTables_wrapper .dataTables_showStatusClosed{right:220px;margin-top:-24px}#userShowResources #Attachments{padding:0;border:1px solid #ccc;background-color:#fff}#userShowResources #Attachments div.attachmentOutput{height:115px;overflow:auto;font-size:.95em}#userShowResources #Attachments div.attachmentOutput>a{display:block;float:left;height:48px;width:221px;padding:2px;margin:2px;font-size:.9em;border:1px solid #fff;color:#000;text-decoration:none}#userShowResources #Attachments div.attachmentOutput>a span.comments,#userShowResources #Attachments div.attachmentOutput>a span.author,#userShowResources #Attachments div.attachmentOutput>a span.timestamp{display:block;float:left;width:168px;overflow:hidden;height:16px}#userShowResources #Attachments div.attachmentOutput>a span.author{color:#888;width:150px}#usLine truncated
|
||||
.tableData{border:solid 1px #e8eef4;border-collapse:collapse}.tableData>tbody>tr>td{border:solid 1px #e8eef4;background-color:#fff}.tableData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfd}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#e8eef4;border:solid 1px #e8eef4}.tableData>tbody>tr:hover>td{background-color:#e8eef4}.tableData>tfoot>tr>th,.tableData>tfoot>tr>td{background-color:#e8eef4}.tableDataDark{border:solid 1px #8db2d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #8db2d8;background-color:#fff}.tableDataDark th{background-color:#8db2d8;border:solid 1px #8db2d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #e8eef4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#e8eef4;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}#User_Show #User_Show_Subjects{table-layout:fixed}#User_Show #User_Show_Subjects>tbody>tr>td{padding-top:0;height:100%}#User_Show #User_Show_Subjects>tbody>tr>td>div{position:relative}#User_Show #User_Show_Subjects>tbody>tr>td>div div.status{margin-top:2px;padding-top:2px;border-top:1px dashed #ddd}#User_Show #User_Show_Subjects>tbody>tr>td>div input.discreet{margin-left:-2px}#User_Show #User_Show_Subjects>tbody>tr>td:not(:last-child){border-right:1px dashed #aaa}#User_Show #User_Show_Subjects .dialog{display:none}#User_Show #User_Show_Subjects #User_Show_Details{width:330px}#User_Show #User_Show_Subjects #User_Show_Details table.verticalHeadings>tbody>tr>td:first-child{width:104px;font-weight:bold}#User_Show #User_Show_Subjects #User_Show_Details #User_Show_Details_Identity_Id{font-weight:bold}#User_Show #User_Show_Subjects #User_Show_Details #User_Show_GenerateDocument_Container{padding-top:4px}#User_Show #User_Show_Subjects #User_Show_Details #User_Show_GenerateDocument_Container #User_Show_GenerateDocument{padding:0}#User_Show #User_Show_Subjects #User_Show_Details #User_Show_Details_Actions{margin-top:4px}#User_Show #User_Show_Subjects #User_Show_AssignedDevices .User_Show_AssignedDevices_CurrentAssignment{border-bottom:1px dashed #ddd;padding:4px}#User_Show #User_Show_Subjects #User_Show_AssignedDevices .User_Show_AssignedDevices_CurrentAssignment td:first-child{width:90px;font-weight:bold}#User_Show #User_Show_Subjects #User_Show_AssignedDevices .User_Show_AssignedDevices_CurrentAssignment img.User_Show_AssignedDevices_CurrentAssignment_Image{float:left;width:64px;height:64px;margin-right:6px}#User_Show #User_Show_Subjects #User_Show_AssignedDevices .User_Show_AssignedDevices_CurrentAssignment div.User_Show_AssignedDevices_CurrentAssignment_Details{float:left}#User_Show #User_Show_Subjects #User_Show_Subjects_Actions>td{padding-top:4px}#UserDetailTabs{margin-top:10px;border-radius:0;background-image:none;background-color:#fff;border:none;padding:0}#UserDetailTabs #UserDetailTabItems{border-radius:0;border-top:1px solid #ddd;border-right:1px solid #ddd;border-left:1px solid #ddd;border-bottom:none;padding:2px 0 0 4px;background-image:none;background-color:#eee;display:table}#UserDetailTabs #UserDetailTabItems>li{top:0;border-radius:0;margin:0 5px 0 0;padding:0;line-height:normal;margin-right:4px}#UserDetailTabs #UserDetailTabItems>li>a{padding:5px 8px}#UserDetailTabs div.ui-tabs-panel{border-radius:0;padding:4px;border-right:1px solid #ddd;border-bottom:1px solid #ddd;border-left:1px solid #ddd;border-top:none;background-color:#eee}#UserDetailTab-JobsContainer div.jobTable{margin:-1px;border:1px solid #ddd}#UserDetailTab-JobsContainer .dataTables_wrapper .dataTables_filter{margin-top:-24px;-moz-opacity:1;opacity:1}#UserDetailTab-JobsContainer .dataTables_wrapper .dataTables_length{margin-top:-24px;-moz-opacity:1;opacity:1}#UserDetailTab-JobsContainer .dataTables_wrapper .dataTables_showStatusClosed{right:220px;margin-top:-24px}#userShowResources #Attachments{padding:0;border:1px solid #ccc;background-color:#fff}#userShowResources #Attachments div.attachmentOutput{height:115px;overflow:auto;font-size:.95em}#userShowResources #Attachments div.attachmentOutput>a{display:block;float:left;height:48px;width:221px;padding:2px;margin:2px;font-size:.9em;border:1px solid #fff;color:#000;text-decoration:none}#userShowResources #Attachments div.attachmentOutput>a span.comments,#userShowResources #Attachments div.attachmentOutput>a span.author,#userShowResources #Attachments div.attachmentOutput>a span.timestamp{display:block;float:left;width:168px;overflow:hidden;height:16px}#userShowResources #AtLine truncated
|
||||
@@ -1,7 +1,91 @@
|
||||
.ui-widget {
|
||||
.tableData {
|
||||
border: solid 1px #e8eef4;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
.tableData > tbody > tr > td {
|
||||
border: solid 1px #e8eef4;
|
||||
background-color: #fff;
|
||||
}
|
||||
.tableData > tbody > tr:nth-child(odd) > td {
|
||||
background-color: #fcfcfd;
|
||||
}
|
||||
.tableData > thead > tr > th,
|
||||
.tableData > tbody > tr > th {
|
||||
background-color: #e8eef4;
|
||||
border: solid 1px #e8eef4;
|
||||
}
|
||||
.tableData > tbody > tr:hover > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
.tableData > tfoot > tr > th,
|
||||
.tableData > tfoot > tr > td {
|
||||
background-color: #e8eef4;
|
||||
}
|
||||
.tableDataDark {
|
||||
border: solid 1px #8db2d8;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
.tableDataDark td {
|
||||
border: solid 1px #8db2d8;
|
||||
background-color: #fff;
|
||||
}
|
||||
.tableDataDark th {
|
||||
background-color: #8db2d8;
|
||||
border: solid 1px #8db2d8;
|
||||
}
|
||||
.tableDataContainer {
|
||||
background-color: #fff;
|
||||
}
|
||||
.tableDataVertical {
|
||||
border: solid 1px #e8eef4;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
.tableDataVertical > tbody > tr:nth-child(odd) {
|
||||
background-color: #e8eef4;
|
||||
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: 0.3;
|
||||
opacity: 0.3;
|
||||
}
|
||||
.subtleUntilHover:hover {
|
||||
-moz-opacity: 1;
|
||||
opacity: 1;
|
||||
}
|
||||
.ui-widget {
|
||||
/*font-size: 11px !important;*/
|
||||
|
||||
font-size: 12px !important;
|
||||
font-family: "Segoe UI", Arial, Verdana, Tahoma, sans-serif;
|
||||
}
|
||||
.ui-widget input,
|
||||
.ui-widget select,
|
||||
.ui-widget textarea,
|
||||
.ui-widget button {
|
||||
font-family: "Segoe UI", Arial, Verdana, Tahoma, sans-serif;
|
||||
}
|
||||
.watermark {
|
||||
color: #888 !important;
|
||||
@@ -53,3 +137,12 @@
|
||||
.ui-tabs .ui-tabs-panel {
|
||||
padding: .5em;
|
||||
}
|
||||
/*.ui-tabs > ul > li.ui-state-default
|
||||
{
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.ui-tabs > ul > li.ui-state-active
|
||||
{
|
||||
font-weight: bold;
|
||||
}*/
|
||||
@@ -1,3 +1,5 @@
|
||||
@import "Shared";
|
||||
|
||||
.ui-widget
|
||||
{
|
||||
/*font-size: 11px !important;*/
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
.ui-widget{font-size:12px!important}.watermark{color:#888!important}.ui-autocomplete-loading{background:#fff url(data:image/gif;base64,R0lGODlhEAALAPQAAP///9t2Hfnq3vfl1fvz7Nt5Itt2HeGORey7kOipcvTZwd+IO+WdXu6/l+irdfXbxeCKPtt4IOWfYvrx6Pjp3Pz49eKTTvnr3/z38/TXvvHLqvbiz/v17wAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA) right center no-repeat}.ui-autocomplete{max-height:150px;overflow-y:auto;overflow-x:hidden;padding-right:20px}* html .ui-autocomplete{height:150px}.ui-timepicker-div .ui-widget-header{margin-bottom:8px}.ui-timepicker-div dl{text-align:left}.ui-timepicker-div dl dt{height:25px;margin-bottom:-25px}.ui-timepicker-div dl dd{margin:0 10px 10px 65px}.ui-timepicker-div td{font-size:90%}.ui-tpicker-grid-label{background:none;border:none;margin:0;padding:0}.ui-progressbar-value{background-image:url(data:image/gif;base64,R0lGODlhMAAWAPMPAO+cSvfOlPfFlO/FjP+9c/+1c/e1a/+tUu+ta++tY/+lSvelQvelSu+cQv/WnAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgAh/wtYTVAgRGF0YVhNUIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgAh/wtYTVAgRGF0YVhNUIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgAh/wtYTVAgRGF0YVhNUIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgAh/wtYTVAgRGF0YVhNUIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgAh/wtYTVAgRGF0YVhNUIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgAh/wtYTVAgRGF0YVhNUIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgAh/wtYTVAgRGF0YVhNUIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgAh/wtYTVAgRGF0YVhNUIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgAh/wtYTVAgRGF0YVhNUIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgAh/wtYTVAgRGF0YVhNUIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgAh/wtYTVAgRGF0YVhNUIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgAh/wtYTVAgRGF0YVhNUIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgAh/wtYTVAgRGF0YVhNUIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgAh/wtYTVAgRGF0YVhNUIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgAh/wtYTVAgRGF0YVhNUIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgAh/wtYTVAgRGF0YVhNUIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgAh/wtYTVLine truncated
|
||||
.tableData{border:solid 1px #e8eef4;border-collapse:collapse}.tableData>tbody>tr>td{border:solid 1px #e8eef4;background-color:#fff}.tableData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfd}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#e8eef4;border:solid 1px #e8eef4}.tableData>tbody>tr:hover>td{background-color:#e8eef4}.tableData>tfoot>tr>th,.tableData>tfoot>tr>td{background-color:#e8eef4}.tableDataDark{border:solid 1px #8db2d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #8db2d8;background-color:#fff}.tableDataDark th{background-color:#8db2d8;border:solid 1px #8db2d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #e8eef4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#e8eef4;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}.ui-widget{font-size:12px!important;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif}.watermark{color:#888!important}.ui-autocomplete-loading{background:#fff url(data:image/gif;base64,R0lGODlhEAALAPQAAP///9t2Hfnq3vfl1fvz7Nt5Itt2HeGORey7kOipcvTZwd+IO+WdXu6/l+irdfXbxeCKPtt4IOWfYvrx6Pjp3Pz49eKTTvnr3/z38/TXvvHLqvbiz/v17wAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA) right center no-repeat}.ui-autocomplete{max-height:150px;overflow-y:auto;overflow-x:hidden;padding-right:20px}* html .ui-autocomplete{height:150px}.ui-timepicker-div .ui-widget-header{margin-bottom:8px}.ui-timepicker-div dl{text-align:left}.ui-timepicker-div dl dt{height:25px;margin-bottom:-25px}.ui-timepicker-div dl dd{margin:0 10px 10px 65px}.ui-timepicker-div td{font-size:90%}.ui-tpicker-grid-label{background:none;border:none;margin:0;padding:0}.ui-progressbar-value{background-image:url(data:image/gif;base64,R0lGODlhMAAWAPMPAO+cSvfOlPfFlO/FjP+9c/+1c/e1a/+tUu+ta++tY/+lSvelQvelSu+cQv/WnAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgAh/wtYTVAgRGF0YVhNUIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgAh/wtYTVAgRGF0YVhNUIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgAh/wtYTVAgRGF0YVhNUIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgAh/wtYTVAgRGF0YVhNUIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgAh/wtYTVAgRGF0YVhNUIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgAh/wtYTVAgRGF0YVhNUIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgAh/wtYTVAgRGF0YVhNUIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgAh/wtYTVAgRGF0YVhNUIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgAh/wtYTVAgRGF0YVhNUIAgILine truncated
|
||||
@@ -76,16 +76,38 @@ namespace Disco.Web.Controllers
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Import
|
||||
#region Import/Export
|
||||
[HttpGet]
|
||||
public virtual ActionResult Import()
|
||||
public virtual ActionResult ImportExport()
|
||||
{
|
||||
Models.Device.ImportModel m = new Models.Device.ImportModel();
|
||||
|
||||
m.DeviceModels = dbContext.DeviceModels.ToList();
|
||||
m.DeviceProfiles = dbContext.DeviceProfiles.ToList();
|
||||
m.DeviceBatches = dbContext.DeviceBatches.ToList();
|
||||
|
||||
// UI Extensions
|
||||
UIExtensions.ExecuteExtensions<DeviceImportModel>(this.ControllerContext, m);
|
||||
|
||||
return View();
|
||||
return View(m);
|
||||
}
|
||||
[HttpGet]
|
||||
public virtual ActionResult ImportReview(string ImportParseTaskId)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(ImportParseTaskId))
|
||||
throw new ArgumentNullException("ImportParseTaskId");
|
||||
|
||||
var session = Disco.BI.DeviceBI.Importing.Import.GetSession(ImportParseTaskId);
|
||||
|
||||
if (session == null)
|
||||
throw new ArgumentException("The Import Parse Task Id is invalid or the session timed out (60 minutes), try importing again", "ImportParseTaskId");
|
||||
|
||||
Models.Device.ImportReviewModel m = Models.Device.ImportReviewModel.FromImportDeviceSession(session);
|
||||
|
||||
// UI Extensions
|
||||
UIExtensions.ExecuteExtensions<DeviceImportReviewModel>(this.ControllerContext, m);
|
||||
|
||||
return View(m);
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
+22
-10
@@ -194,6 +194,7 @@
|
||||
<Compile Include="Areas\Config\Models\Config\IndexModel.cs" />
|
||||
<Compile Include="Areas\Config\Models\DeviceBatch\CreateModel.cs" />
|
||||
<Compile Include="Areas\Config\Models\DeviceBatch\TimelineModel.cs" />
|
||||
<Compile Include="Areas\Config\Models\DeviceBatch\_ShowModelMembership.cs" />
|
||||
<Compile Include="Areas\Config\Models\DeviceProfile\CreateModel.cs" />
|
||||
<Compile Include="Areas\Config\Models\DocumentTemplate\ImportStatusModel.cs" />
|
||||
<Compile Include="Areas\Config\Models\Enrolment\StatusModel.cs" />
|
||||
@@ -514,6 +515,7 @@
|
||||
</Compile>
|
||||
<Compile Include="Models\Device\AddOfflineModel.cs" />
|
||||
<Compile Include="Models\Device\ImportModel.cs" />
|
||||
<Compile Include="Models\Device\ImportReviewModel.cs" />
|
||||
<Compile Include="Models\Device\IndexModel.cs" />
|
||||
<Compile Include="Models\Device\ShowModel.cs" />
|
||||
<Compile Include="Models\InitialConfig\CompleteModel.cs" />
|
||||
@@ -567,10 +569,15 @@
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>_Subject.cshtml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Views\Device\Import.generated.cs">
|
||||
<Compile Include="Views\Device\ImportExport.generated.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Import.cshtml</DependentUpon>
|
||||
<DependentUpon>ImportExport.cshtml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Views\Device\ImportReview.generated.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>ImportReview.cshtml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Views\Device\Index.generated.cs">
|
||||
<DependentUpon>Index.cshtml</DependentUpon>
|
||||
@@ -856,6 +863,7 @@
|
||||
</None>
|
||||
<None Include="ClientSource\Scripts\Core\jquery-ui-1.10.3.js" />
|
||||
<None Include="ClientSource\Scripts\Core\jquery-2.0.2.js" />
|
||||
<Content Include="ClientSource\Scripts\Core\disco.uicore.js" />
|
||||
<Content Include="ClientSource\Scripts\Modules\Disco-AjaxHelperIcons.min.js">
|
||||
<DependentUpon>Disco-AjaxHelperIcons.js.bundle</DependentUpon>
|
||||
</Content>
|
||||
@@ -1068,15 +1076,15 @@
|
||||
<Content Include="ClientSource\Style\Declarations.min.css">
|
||||
<DependentUpon>Declarations.less</DependentUpon>
|
||||
</Content>
|
||||
<None Include="ClientSource\Style\Device.css">
|
||||
<DependentUpon>Device.less</DependentUpon>
|
||||
</None>
|
||||
<Content Include="ClientSource\Style\Device.min.css">
|
||||
<DependentUpon>Device.less</DependentUpon>
|
||||
</Content>
|
||||
<None Include="ClientSource\Style\Dialog.css">
|
||||
<DependentUpon>Dialog.less</DependentUpon>
|
||||
</None>
|
||||
<Content Include="ClientSource\Style\Device.css">
|
||||
<DependentUpon>Device.less</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="ClientSource\Style\Device.min.css">
|
||||
<DependentUpon>Device.less</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="ClientSource\Style\Dialog.min.css">
|
||||
<DependentUpon>Dialog.less</DependentUpon>
|
||||
</Content>
|
||||
@@ -1450,9 +1458,13 @@
|
||||
<Generator>RazorGenerator</Generator>
|
||||
<LastGenOutput>_Subject.generated.cs</LastGenOutput>
|
||||
</None>
|
||||
<None Include="Views\Device\Import.cshtml">
|
||||
<None Include="Views\Device\ImportExport.cshtml">
|
||||
<Generator>RazorGenerator</Generator>
|
||||
<LastGenOutput>Import.generated.cs</LastGenOutput>
|
||||
<LastGenOutput>ImportExport.generated.cs</LastGenOutput>
|
||||
</None>
|
||||
<None Include="Views\Device\ImportReview.cshtml">
|
||||
<Generator>RazorGenerator</Generator>
|
||||
<LastGenOutput>ImportReview.generated.cs</LastGenOutput>
|
||||
</None>
|
||||
<None Include="Views\Device\Index.cshtml">
|
||||
<Generator>RazorGenerator</Generator>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Disco.Models.UI.Device;
|
||||
using Disco.Models.Repository;
|
||||
using Disco.Models.UI.Device;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
@@ -9,7 +10,11 @@ namespace Disco.Web.Models.Device
|
||||
{
|
||||
public class ImportModel : DeviceImportModel
|
||||
{
|
||||
[Required, Display(Name="Import File")]
|
||||
[Required, Display(Name="CSV Import File")]
|
||||
public HttpPostedFileBase ImportFile { get; set; }
|
||||
|
||||
public List<DeviceModel> DeviceModels { get; set; }
|
||||
public List<DeviceProfile> DeviceProfiles { get; set; }
|
||||
public List<DeviceBatch> DeviceBatches { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
using Disco.Models.BI.Device;
|
||||
using Disco.Models.UI.Device;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
|
||||
namespace Disco.Web.Models.Device
|
||||
{
|
||||
public class ImportReviewModel : DeviceImportReviewModel
|
||||
{
|
||||
public string ImportParseTaskId { get; set; }
|
||||
public string ImportFilename { get; set; }
|
||||
public List<ImportDevice> ImportDevices { get; set; }
|
||||
|
||||
public static ImportReviewModel FromImportDeviceSession(ImportDeviceSession session)
|
||||
{
|
||||
return new ImportReviewModel()
|
||||
{
|
||||
ImportParseTaskId = session.ImportParseTaskId,
|
||||
ImportFilename = session.ImportFilename,
|
||||
ImportDevices = session.ImportDevices
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -31,5 +31,5 @@ using System.Runtime.InteropServices;
|
||||
//
|
||||
// You can specify all the values or you can default the Revision and Build Numbers
|
||||
// by using the '*' as shown below:
|
||||
[assembly: AssemblyVersion("1.2.0722.2112")]
|
||||
[assembly: AssemblyFileVersion("1.2.0722.2112")]
|
||||
[assembly: AssemblyVersion("1.2.0725.1725")]
|
||||
[assembly: AssemblyFileVersion("1.2.0725.1725")]
|
||||
+125
-8
@@ -1083,6 +1083,12 @@ namespace Disco.Web.Controllers
|
||||
return RedirectToRoutePermanent(callInfo.RouteValueDictionary);
|
||||
}
|
||||
|
||||
[NonAction]
|
||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||
public virtual System.Web.Mvc.ActionResult ImportReview()
|
||||
{
|
||||
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.ImportReview);
|
||||
}
|
||||
[NonAction]
|
||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||
public virtual System.Web.Mvc.ActionResult Show()
|
||||
@@ -1107,7 +1113,8 @@ namespace Disco.Web.Controllers
|
||||
{
|
||||
public readonly string Index = "Index";
|
||||
public readonly string AddOffline = "AddOffline";
|
||||
public readonly string Import = "Import";
|
||||
public readonly string ImportExport = "ImportExport";
|
||||
public readonly string ImportReview = "ImportReview";
|
||||
public readonly string Show = "Show";
|
||||
}
|
||||
|
||||
@@ -1116,7 +1123,8 @@ namespace Disco.Web.Controllers
|
||||
{
|
||||
public const string Index = "Index";
|
||||
public const string AddOffline = "AddOffline";
|
||||
public const string Import = "Import";
|
||||
public const string ImportExport = "ImportExport";
|
||||
public const string ImportReview = "ImportReview";
|
||||
public const string Show = "Show";
|
||||
}
|
||||
|
||||
@@ -1129,6 +1137,14 @@ namespace Disco.Web.Controllers
|
||||
{
|
||||
public readonly string m = "m";
|
||||
}
|
||||
static readonly ActionParamsClass_ImportReview s_params_ImportReview = new ActionParamsClass_ImportReview();
|
||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||
public ActionParamsClass_ImportReview ImportReviewParams { get { return s_params_ImportReview; } }
|
||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||
public class ActionParamsClass_ImportReview
|
||||
{
|
||||
public readonly string ImportParseTaskId = "ImportParseTaskId";
|
||||
}
|
||||
static readonly ActionParamsClass_Show s_params_Show = new ActionParamsClass_Show();
|
||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||
public ActionParamsClass_Show ShowParams { get { return s_params_Show; } }
|
||||
@@ -1150,14 +1166,16 @@ namespace Disco.Web.Controllers
|
||||
public readonly string _DeviceTable = "_DeviceTable";
|
||||
public readonly string _ViewStart = "_ViewStart";
|
||||
public readonly string AddOffline = "AddOffline";
|
||||
public readonly string Import = "Import";
|
||||
public readonly string ImportExport = "ImportExport";
|
||||
public readonly string ImportReview = "ImportReview";
|
||||
public readonly string Index = "Index";
|
||||
public readonly string Show = "Show";
|
||||
}
|
||||
public readonly string _DeviceTable = "~/Views/Device/_DeviceTable.cshtml";
|
||||
public readonly string _ViewStart = "~/Views/Device/_ViewStart.cshtml";
|
||||
public readonly string AddOffline = "~/Views/Device/AddOffline.cshtml";
|
||||
public readonly string Import = "~/Views/Device/Import.cshtml";
|
||||
public readonly string ImportExport = "~/Views/Device/ImportExport.cshtml";
|
||||
public readonly string ImportReview = "~/Views/Device/ImportReview.cshtml";
|
||||
public readonly string Index = "~/Views/Device/Index.cshtml";
|
||||
public readonly string Show = "~/Views/Device/Show.cshtml";
|
||||
static readonly _DevicePartsClass s_DeviceParts = new _DevicePartsClass();
|
||||
@@ -1217,12 +1235,22 @@ namespace Disco.Web.Controllers
|
||||
return callInfo;
|
||||
}
|
||||
|
||||
partial void ImportOverride(T4MVC_System_Web_Mvc_ActionResult callInfo);
|
||||
partial void ImportExportOverride(T4MVC_System_Web_Mvc_ActionResult callInfo);
|
||||
|
||||
public override System.Web.Mvc.ActionResult Import()
|
||||
public override System.Web.Mvc.ActionResult ImportExport()
|
||||
{
|
||||
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.Import);
|
||||
ImportOverride(callInfo);
|
||||
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.ImportExport);
|
||||
ImportExportOverride(callInfo);
|
||||
return callInfo;
|
||||
}
|
||||
|
||||
partial void ImportReviewOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, string ImportParseTaskId);
|
||||
|
||||
public override System.Web.Mvc.ActionResult ImportReview(string ImportParseTaskId)
|
||||
{
|
||||
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.ImportReview);
|
||||
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "ImportParseTaskId", ImportParseTaskId);
|
||||
ImportReviewOverride(callInfo, ImportParseTaskId);
|
||||
return callInfo;
|
||||
}
|
||||
|
||||
@@ -2592,6 +2620,12 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
{
|
||||
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.Index);
|
||||
}
|
||||
[NonAction]
|
||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||
public virtual System.Web.Mvc.ActionResult ExportDevices()
|
||||
{
|
||||
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.ExportDevices);
|
||||
}
|
||||
|
||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||
public DeviceBatchController Actions { get { return MVC.API.DeviceBatch; } }
|
||||
@@ -2626,6 +2660,7 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
public readonly string Delete = "Delete";
|
||||
public readonly string Index = "Index";
|
||||
public readonly string Timeline = "Timeline";
|
||||
public readonly string ExportDevices = "ExportDevices";
|
||||
}
|
||||
|
||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||
@@ -2649,6 +2684,7 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
public const string Delete = "Delete";
|
||||
public const string Index = "Index";
|
||||
public const string Timeline = "Timeline";
|
||||
public const string ExportDevices = "ExportDevices";
|
||||
}
|
||||
|
||||
|
||||
@@ -2820,6 +2856,14 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
{
|
||||
public readonly string id = "id";
|
||||
}
|
||||
static readonly ActionParamsClass_ExportDevices s_params_ExportDevices = new ActionParamsClass_ExportDevices();
|
||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||
public ActionParamsClass_ExportDevices ExportDevicesParams { get { return s_params_ExportDevices; } }
|
||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||
public class ActionParamsClass_ExportDevices
|
||||
{
|
||||
public readonly string id = "id";
|
||||
}
|
||||
static readonly ViewsClass s_views = new ViewsClass();
|
||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||
public ViewsClass Views { get { return s_views; } }
|
||||
@@ -3050,6 +3094,16 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
return callInfo;
|
||||
}
|
||||
|
||||
partial void ExportDevicesOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id);
|
||||
|
||||
public override System.Web.Mvc.ActionResult ExportDevices(int id)
|
||||
{
|
||||
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.ExportDevices);
|
||||
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id);
|
||||
ExportDevicesOverride(callInfo, id);
|
||||
return callInfo;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3329,6 +3383,7 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
public readonly string AttachmentRemove = "AttachmentRemove";
|
||||
public readonly string ImportParse = "ImportParse";
|
||||
public readonly string ImportProcess = "ImportProcess";
|
||||
public readonly string ExportAllDevices = "ExportAllDevices";
|
||||
}
|
||||
|
||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||
@@ -3354,6 +3409,7 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
public const string AttachmentRemove = "AttachmentRemove";
|
||||
public const string ImportParse = "ImportParse";
|
||||
public const string ImportProcess = "ImportProcess";
|
||||
public const string ExportAllDevices = "ExportAllDevices";
|
||||
}
|
||||
|
||||
|
||||
@@ -3776,6 +3832,15 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
return callInfo;
|
||||
}
|
||||
|
||||
partial void ExportAllDevicesOverride(T4MVC_System_Web_Mvc_ActionResult callInfo);
|
||||
|
||||
public override System.Web.Mvc.ActionResult ExportAllDevices()
|
||||
{
|
||||
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.ExportAllDevices);
|
||||
ExportAllDevicesOverride(callInfo);
|
||||
return callInfo;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3869,6 +3934,12 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
{
|
||||
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.ComponentRemove);
|
||||
}
|
||||
[NonAction]
|
||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||
public virtual System.Web.Mvc.ActionResult ExportDevices()
|
||||
{
|
||||
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.ExportDevices);
|
||||
}
|
||||
|
||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||
public DeviceModelController Actions { get { return MVC.API.DeviceModel; } }
|
||||
@@ -3897,6 +3968,7 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
public readonly string ComponentUpdate = "ComponentUpdate";
|
||||
public readonly string ComponentRemove = "ComponentRemove";
|
||||
public readonly string Index = "Index";
|
||||
public readonly string ExportDevices = "ExportDevices";
|
||||
}
|
||||
|
||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||
@@ -3914,6 +3986,7 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
public const string ComponentUpdate = "ComponentUpdate";
|
||||
public const string ComponentRemove = "ComponentRemove";
|
||||
public const string Index = "Index";
|
||||
public const string ExportDevices = "ExportDevices";
|
||||
}
|
||||
|
||||
|
||||
@@ -4023,6 +4096,14 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
{
|
||||
public readonly string id = "id";
|
||||
}
|
||||
static readonly ActionParamsClass_ExportDevices s_params_ExportDevices = new ActionParamsClass_ExportDevices();
|
||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||
public ActionParamsClass_ExportDevices ExportDevicesParams { get { return s_params_ExportDevices; } }
|
||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||
public class ActionParamsClass_ExportDevices
|
||||
{
|
||||
public readonly string id = "id";
|
||||
}
|
||||
static readonly ViewsClass s_views = new ViewsClass();
|
||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||
public ViewsClass Views { get { return s_views; } }
|
||||
@@ -4189,6 +4270,16 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
return callInfo;
|
||||
}
|
||||
|
||||
partial void ExportDevicesOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id);
|
||||
|
||||
public override System.Web.Mvc.ActionResult ExportDevices(int id)
|
||||
{
|
||||
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.ExportDevices);
|
||||
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id);
|
||||
ExportDevicesOverride(callInfo, id);
|
||||
return callInfo;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4306,6 +4397,12 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
{
|
||||
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.DefaultAddDeviceOffline);
|
||||
}
|
||||
[NonAction]
|
||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||
public virtual System.Web.Mvc.ActionResult ExportDevices()
|
||||
{
|
||||
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.ExportDevices);
|
||||
}
|
||||
|
||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||
public DeviceProfileController Actions { get { return MVC.API.DeviceProfile; } }
|
||||
@@ -4338,6 +4435,7 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
public readonly string Delete = "Delete";
|
||||
public readonly string Default = "Default";
|
||||
public readonly string DefaultAddDeviceOffline = "DefaultAddDeviceOffline";
|
||||
public readonly string ExportDevices = "ExportDevices";
|
||||
}
|
||||
|
||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||
@@ -4359,6 +4457,7 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
public const string Delete = "Delete";
|
||||
public const string Default = "Default";
|
||||
public const string DefaultAddDeviceOffline = "DefaultAddDeviceOffline";
|
||||
public const string ExportDevices = "ExportDevices";
|
||||
}
|
||||
|
||||
|
||||
@@ -4510,6 +4609,14 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
public readonly string id = "id";
|
||||
public readonly string redirect = "redirect";
|
||||
}
|
||||
static readonly ActionParamsClass_ExportDevices s_params_ExportDevices = new ActionParamsClass_ExportDevices();
|
||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||
public ActionParamsClass_ExportDevices ExportDevicesParams { get { return s_params_ExportDevices; } }
|
||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||
public class ActionParamsClass_ExportDevices
|
||||
{
|
||||
public readonly string id = "id";
|
||||
}
|
||||
static readonly ViewsClass s_views = new ViewsClass();
|
||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||
public ViewsClass Views { get { return s_views; } }
|
||||
@@ -4716,6 +4823,16 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
return callInfo;
|
||||
}
|
||||
|
||||
partial void ExportDevicesOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id);
|
||||
|
||||
public override System.Web.Mvc.ActionResult ExportDevices(int id)
|
||||
{
|
||||
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.ExportDevices);
|
||||
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id);
|
||||
ExportDevicesOverride(callInfo, id);
|
||||
return callInfo;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
@model Disco.Web.Models.Device.ImportModel
|
||||
@{
|
||||
ViewBag.Title = Html.ToBreadcrumb("Devices", MVC.Device.Index(), "Import Devices");
|
||||
}
|
||||
@using (Html.BeginForm(MVC.API.Device.ImportParse(), FormMethod.Post, new { enctype = "multipart/form-data" }))
|
||||
{
|
||||
@Html.ValidationSummary()
|
||||
<div id="importDialog" class="form" style="width: 450px">
|
||||
<table>
|
||||
<tr>
|
||||
<th>
|
||||
@Html.LabelFor(m => m.ImportFile)
|
||||
</th>
|
||||
<td>
|
||||
<input id="ImportFile" name="ImportFile" type="file" data-val="true" data-val-required="An Import File is required." />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p class="actions">
|
||||
<input type="submit" class="button" value="Import" />
|
||||
</p>
|
||||
</div>
|
||||
}
|
||||
@@ -1,129 +0,0 @@
|
||||
#pragma warning disable 1591
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.18051
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Disco.Web.Views.Device
|
||||
{
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Web;
|
||||
using System.Web.Helpers;
|
||||
using System.Web.Mvc;
|
||||
using System.Web.Mvc.Ajax;
|
||||
using System.Web.Mvc.Html;
|
||||
using System.Web.Routing;
|
||||
using System.Web.Security;
|
||||
using System.Web.UI;
|
||||
using System.Web.WebPages;
|
||||
using Disco.BI.Extensions;
|
||||
using Disco.Models.Repository;
|
||||
using Disco.Web;
|
||||
using Disco.Web.Extensions;
|
||||
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "2.0.0.0")]
|
||||
[System.Web.WebPages.PageVirtualPathAttribute("~/Views/Device/Import.cshtml")]
|
||||
public partial class Import : System.Web.Mvc.WebViewPage<Disco.Web.Models.Device.ImportModel>
|
||||
{
|
||||
public Import()
|
||||
{
|
||||
}
|
||||
public override void Execute()
|
||||
{
|
||||
|
||||
#line 2 "..\..\Views\Device\Import.cshtml"
|
||||
|
||||
ViewBag.Title = Html.ToBreadcrumb("Devices", MVC.Device.Index(), "Import Devices");
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("\r\n");
|
||||
|
||||
|
||||
#line 5 "..\..\Views\Device\Import.cshtml"
|
||||
using (Html.BeginForm(MVC.API.Device.ImportParse(), FormMethod.Post, new { enctype = "multipart/form-data" }))
|
||||
{
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 7 "..\..\Views\Device\Import.cshtml"
|
||||
Write(Html.ValidationSummary());
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 7 "..\..\Views\Device\Import.cshtml"
|
||||
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" <div");
|
||||
|
||||
WriteLiteral(" id=\"importDialog\"");
|
||||
|
||||
WriteLiteral(" class=\"form\"");
|
||||
|
||||
WriteLiteral(" style=\"width: 450px\"");
|
||||
|
||||
WriteLiteral(">\r\n <table>\r\n <tr>\r\n <th>\r\n");
|
||||
|
||||
WriteLiteral(" ");
|
||||
|
||||
|
||||
#line 12 "..\..\Views\Device\Import.cshtml"
|
||||
Write(Html.LabelFor(m => m.ImportFile));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("\r\n </th>\r\n <td>\r\n <input");
|
||||
|
||||
WriteLiteral(" id=\"ImportFile\"");
|
||||
|
||||
WriteLiteral(" name=\"ImportFile\"");
|
||||
|
||||
WriteLiteral(" type=\"file\"");
|
||||
|
||||
WriteLiteral(" data-val=\"true\"");
|
||||
|
||||
WriteLiteral(" data-val-required=\"An Import File is required.\"");
|
||||
|
||||
WriteLiteral(" />\r\n </td>\r\n </tr>\r\n </table>\r\n <p");
|
||||
|
||||
WriteLiteral(" class=\"actions\"");
|
||||
|
||||
WriteLiteral(">\r\n <input");
|
||||
|
||||
WriteLiteral(" type=\"submit\"");
|
||||
|
||||
WriteLiteral(" class=\"button\"");
|
||||
|
||||
WriteLiteral(" value=\"Import\"");
|
||||
|
||||
WriteLiteral(" />\r\n </p>\r\n </div>\r\n");
|
||||
|
||||
|
||||
#line 23 "..\..\Views\Device\Import.cshtml"
|
||||
}
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma warning restore 1591
|
||||
@@ -0,0 +1,192 @@
|
||||
@model Disco.Web.Models.Device.ImportModel
|
||||
@{
|
||||
ViewBag.Title = Html.ToBreadcrumb("Devices", MVC.Device.Index(), "Import/Export Devices");
|
||||
}
|
||||
<div id="deviceImport">
|
||||
@using (Html.BeginForm(MVC.API.Device.ImportParse(), FormMethod.Post, new { enctype = "multipart/form-data" }))
|
||||
{
|
||||
@Html.ValidationSummary()
|
||||
<div id="importDialog" class="form" style="width: 450px">
|
||||
<h2>Import Devices</h2>
|
||||
<table>
|
||||
<tr>
|
||||
<th>
|
||||
@Html.LabelFor(m => m.ImportFile)
|
||||
</th>
|
||||
<td>
|
||||
<input id="ImportFile" name="ImportFile" type="file" data-val="true" data-val-required="An Import File is required." />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p class="actions">
|
||||
<input type="submit" class="button" value="Import" />
|
||||
</p>
|
||||
</div>
|
||||
}
|
||||
<div id="documentation">
|
||||
<h3>CSV Import Specification</h3>
|
||||
<h4>Format</h4>
|
||||
<ul>
|
||||
<li>The import file must be in <strong>comma-separated values format</strong> (<a href="http://en.wikipedia.org/wiki/Comma-separated_values" target="_blank">CSV Reference</a>).</li>
|
||||
<li>The <strong>first line will be ignored</strong> (it is assumed the file includes headers).</li>
|
||||
<li>Be conscious of editors removing leading zeros from serial numbers (ie: Microsoft Excel).</li>
|
||||
</ul>
|
||||
<h4>Fields</h4>
|
||||
<div class="smallMessage">The following fields/columns are available for to the import file. The <strong>order of the fields</strong> must be as shown below.</div>
|
||||
<table class="tableData">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 100px;">Field Name</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Serial Number</th>
|
||||
<td><strong>Required</strong> - must contain the device serial number (maximum of 60 characters).
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Device Model</th>
|
||||
<td>The <span class="code">ID</span> for the Device Model (<a href="#" id="showDeviceModels">Show IDs</a>). <em>Default: <span class="code">1</span> [@Html.ActionLink(Model.DeviceModels[0].ToString(), MVC.Config.DeviceModel.Index(Model.DeviceModels[0].Id))]</em>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Device Profile</th>
|
||||
<td>The <span class="code">ID</span> for the Device Profile (<a href="#" id="showDeviceProfiles">Show IDs</a>). <em>Default: <span class="code">1</span> [@Html.ActionLink(Model.DeviceProfiles[0].ToString(), MVC.Config.DeviceProfile.Index(Model.DeviceProfiles[0].Id))]</em>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Device Batch</th>
|
||||
<td>The <span class="code">ID</span> for the Device Batch (<a href="#" id="showDeviceBatches">Show IDs</a>). <em>Default: <span class="code"><None></span></em>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Assigned User</th>
|
||||
<td>The <span class="code">ID</span> for the User assigned to the device. <em>Default: <span class="code"><None></span></em>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Location</th>
|
||||
<td>Updates the Location of the device. Maximum of 250 characters. <em>Default: <span class="code"><None></span></em>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Asset Number</th>
|
||||
<td>Updates the Asset Number of the device. Maximum of 40 characters. <em>Default: <span class="code"><None></span></em>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<div id="showDeviceModelsDialog" class="hiddenDialog" title="Disco Device Model Ids">
|
||||
<table class="tableData">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>Description</th>
|
||||
<th>Manufacturer</th>
|
||||
<th>Model</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var dm in Model.DeviceModels)
|
||||
{
|
||||
<tr>
|
||||
<td>@Html.ActionLink(dm.Id.ToString(), MVC.Config.DeviceModel.Index(dm.Id))</td>
|
||||
<td>@dm.ToString()</td>
|
||||
<td>@dm.Manufacturer</td>
|
||||
<td>@dm.Model</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div id="showDeviceProfilesDialog" class="hiddenDialog" title="Disco Device Profile Ids">
|
||||
<table class="tableData">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>Name</th>
|
||||
<th>Short Name</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var dp in Model.DeviceProfiles)
|
||||
{
|
||||
<tr>
|
||||
<td>@Html.ActionLink(dp.Id.ToString(), MVC.Config.DeviceProfile.Index(dp.Id))</td>
|
||||
<td>@dp.Name</td>
|
||||
<td>@dp.ShortName</td>
|
||||
<td>@dp.Description</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div id="showDeviceBatchesDialog" class="hiddenDialog" title="Disco Device Batch Ids">
|
||||
<table class="tableData">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>Name</th>
|
||||
<th>Purchase Date</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var db in Model.DeviceBatches)
|
||||
{
|
||||
<tr>
|
||||
<td>@Html.ActionLink(db.Id.ToString(), MVC.Config.DeviceBatch.Index(db.Id))</td>
|
||||
<td>@db.Name</td>
|
||||
<td>@CommonHelpers.FriendlyDate(db.PurchaseDate)</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(function () {
|
||||
var dialogOptions = {
|
||||
width: 700,
|
||||
height: 600,
|
||||
resizable: false,
|
||||
modal: true,
|
||||
autoOpen: false
|
||||
},
|
||||
$showDeviceModelsDialog = null,
|
||||
$showDeviceProfilesDialog = null,
|
||||
$showDeviceBatchesDialog = null;
|
||||
|
||||
$('#showDeviceModels').click(function (e) {
|
||||
e.preventDefault();
|
||||
if (!$showDeviceModelsDialog)
|
||||
$showDeviceModelsDialog = $('#showDeviceModelsDialog').dialog(dialogOptions);
|
||||
$showDeviceModelsDialog.dialog('open');
|
||||
});
|
||||
|
||||
$('#showDeviceProfiles').click(function (e) {
|
||||
e.preventDefault();
|
||||
if (!$showDeviceProfilesDialog)
|
||||
$showDeviceProfilesDialog = $('#showDeviceProfilesDialog').dialog(dialogOptions);
|
||||
$showDeviceProfilesDialog.dialog('open');
|
||||
});
|
||||
$('#showDeviceBatches').click(function (e) {
|
||||
e.preventDefault();
|
||||
if (!$showDeviceBatchesDialog)
|
||||
$showDeviceBatchesDialog = $('#showDeviceBatchesDialog').dialog(dialogOptions);
|
||||
$showDeviceBatchesDialog.dialog('open');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
|
||||
<div class="actionBar">
|
||||
@Html.ActionLinkButton("Export All Devices", MVC.API.Device.ExportAllDevices())
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,547 @@
|
||||
#pragma warning disable 1591
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.18051
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Disco.Web.Views.Device
|
||||
{
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Web;
|
||||
using System.Web.Helpers;
|
||||
using System.Web.Mvc;
|
||||
using System.Web.Mvc.Ajax;
|
||||
using System.Web.Mvc.Html;
|
||||
using System.Web.Routing;
|
||||
using System.Web.Security;
|
||||
using System.Web.UI;
|
||||
using System.Web.WebPages;
|
||||
using Disco.BI.Extensions;
|
||||
using Disco.Models.Repository;
|
||||
using Disco.Web;
|
||||
using Disco.Web.Extensions;
|
||||
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "2.0.0.0")]
|
||||
[System.Web.WebPages.PageVirtualPathAttribute("~/Views/Device/ImportExport.cshtml")]
|
||||
public partial class ImportExport : System.Web.Mvc.WebViewPage<Disco.Web.Models.Device.ImportModel>
|
||||
{
|
||||
public ImportExport()
|
||||
{
|
||||
}
|
||||
public override void Execute()
|
||||
{
|
||||
|
||||
#line 2 "..\..\Views\Device\ImportExport.cshtml"
|
||||
|
||||
ViewBag.Title = Html.ToBreadcrumb("Devices", MVC.Device.Index(), "Import/Export Devices");
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("\r\n<div");
|
||||
|
||||
WriteLiteral(" id=\"deviceImport\"");
|
||||
|
||||
WriteLiteral(">\r\n");
|
||||
|
||||
|
||||
#line 6 "..\..\Views\Device\ImportExport.cshtml"
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 6 "..\..\Views\Device\ImportExport.cshtml"
|
||||
using (Html.BeginForm(MVC.API.Device.ImportParse(), FormMethod.Post, new { enctype = "multipart/form-data" }))
|
||||
{
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 8 "..\..\Views\Device\ImportExport.cshtml"
|
||||
Write(Html.ValidationSummary());
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 8 "..\..\Views\Device\ImportExport.cshtml"
|
||||
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" <div");
|
||||
|
||||
WriteLiteral(" id=\"importDialog\"");
|
||||
|
||||
WriteLiteral(" class=\"form\"");
|
||||
|
||||
WriteLiteral(" style=\"width: 450px\"");
|
||||
|
||||
WriteLiteral(">\r\n <h2>Import Devices</h2>\r\n <table>\r\n <tr>" +
|
||||
"\r\n <th>\r\n");
|
||||
|
||||
WriteLiteral(" ");
|
||||
|
||||
|
||||
#line 14 "..\..\Views\Device\ImportExport.cshtml"
|
||||
Write(Html.LabelFor(m => m.ImportFile));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("\r\n </th>\r\n <td>\r\n <i" +
|
||||
"nput");
|
||||
|
||||
WriteLiteral(" id=\"ImportFile\"");
|
||||
|
||||
WriteLiteral(" name=\"ImportFile\"");
|
||||
|
||||
WriteLiteral(" type=\"file\"");
|
||||
|
||||
WriteLiteral(" data-val=\"true\"");
|
||||
|
||||
WriteLiteral(" data-val-required=\"An Import File is required.\"");
|
||||
|
||||
WriteLiteral(" />\r\n </td>\r\n </tr>\r\n </table>\r\n " +
|
||||
" <p");
|
||||
|
||||
WriteLiteral(" class=\"actions\"");
|
||||
|
||||
WriteLiteral(">\r\n <input");
|
||||
|
||||
WriteLiteral(" type=\"submit\"");
|
||||
|
||||
WriteLiteral(" class=\"button\"");
|
||||
|
||||
WriteLiteral(" value=\"Import\"");
|
||||
|
||||
WriteLiteral(" />\r\n </p>\r\n </div>\r\n");
|
||||
|
||||
|
||||
#line 25 "..\..\Views\Device\ImportExport.cshtml"
|
||||
}
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" <div");
|
||||
|
||||
WriteLiteral(" id=\"documentation\"");
|
||||
|
||||
WriteLiteral(">\r\n <h3>CSV Import Specification</h3>\r\n <h4>Format</h4>\r\n <u" +
|
||||
"l>\r\n <li>The import file must be in <strong>comma-separated values fo" +
|
||||
"rmat</strong> (<a");
|
||||
|
||||
WriteLiteral(" href=\"http://en.wikipedia.org/wiki/Comma-separated_values\"");
|
||||
|
||||
WriteLiteral(" target=\"_blank\"");
|
||||
|
||||
WriteLiteral(@">CSV Reference</a>).</li>
|
||||
<li>The <strong>first line will be ignored</strong> (it is assumed the file includes headers).</li>
|
||||
<li>Be conscious of editors removing leading zeros from serial numbers (ie: Microsoft Excel).</li>
|
||||
</ul>
|
||||
<h4>Fields</h4>
|
||||
<div");
|
||||
|
||||
WriteLiteral(" class=\"smallMessage\"");
|
||||
|
||||
WriteLiteral(">The following fields/columns are available for to the import file. The <strong>o" +
|
||||
"rder of the fields</strong> must be as shown below.</div>\r\n <table");
|
||||
|
||||
WriteLiteral(" class=\"tableData\"");
|
||||
|
||||
WriteLiteral(">\r\n <thead>\r\n <tr>\r\n <th");
|
||||
|
||||
WriteLiteral(" style=\"width: 100px;\"");
|
||||
|
||||
WriteLiteral(@">Field Name</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Serial Number</th>
|
||||
<td><strong>Required</strong> - must contain the device serial number (maximum of 60 characters).
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Device Model</th>
|
||||
<td>The <span");
|
||||
|
||||
WriteLiteral(" class=\"code\"");
|
||||
|
||||
WriteLiteral(">ID</span> for the Device Model (<a");
|
||||
|
||||
WriteLiteral(" href=\"#\"");
|
||||
|
||||
WriteLiteral(" id=\"showDeviceModels\"");
|
||||
|
||||
WriteLiteral(">Show IDs</a>). <em>Default: <span");
|
||||
|
||||
WriteLiteral(" class=\"code\"");
|
||||
|
||||
WriteLiteral(">1</span> [");
|
||||
|
||||
|
||||
#line 51 "..\..\Views\Device\ImportExport.cshtml"
|
||||
Write(Html.ActionLink(Model.DeviceModels[0].ToString(), MVC.Config.DeviceModel.Index(Model.DeviceModels[0].Id)));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("]</em>\r\n </td>\r\n </tr>\r\n <tr>\r\n " +
|
||||
" <th>Device Profile</th>\r\n <td>The <span");
|
||||
|
||||
WriteLiteral(" class=\"code\"");
|
||||
|
||||
WriteLiteral(">ID</span> for the Device Profile (<a");
|
||||
|
||||
WriteLiteral(" href=\"#\"");
|
||||
|
||||
WriteLiteral(" id=\"showDeviceProfiles\"");
|
||||
|
||||
WriteLiteral(">Show IDs</a>). <em>Default: <span");
|
||||
|
||||
WriteLiteral(" class=\"code\"");
|
||||
|
||||
WriteLiteral(">1</span> [");
|
||||
|
||||
|
||||
#line 56 "..\..\Views\Device\ImportExport.cshtml"
|
||||
Write(Html.ActionLink(Model.DeviceProfiles[0].ToString(), MVC.Config.DeviceProfile.Index(Model.DeviceProfiles[0].Id)));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("]</em>\r\n </td>\r\n </tr>\r\n <tr>\r\n " +
|
||||
" <th>Device Batch</th>\r\n <td>The <span");
|
||||
|
||||
WriteLiteral(" class=\"code\"");
|
||||
|
||||
WriteLiteral(">ID</span> for the Device Batch (<a");
|
||||
|
||||
WriteLiteral(" href=\"#\"");
|
||||
|
||||
WriteLiteral(" id=\"showDeviceBatches\"");
|
||||
|
||||
WriteLiteral(">Show IDs</a>). <em>Default: <span");
|
||||
|
||||
WriteLiteral(" class=\"code\"");
|
||||
|
||||
WriteLiteral("><None></span></em>\r\n </td>\r\n </tr>\r\n " +
|
||||
" <tr>\r\n <th>Assigned User</th>\r\n " +
|
||||
" <td>The <span");
|
||||
|
||||
WriteLiteral(" class=\"code\"");
|
||||
|
||||
WriteLiteral(">ID</span> for the User assigned to the device. <em>Default: <span");
|
||||
|
||||
WriteLiteral(" class=\"code\"");
|
||||
|
||||
WriteLiteral("><None></span></em>\r\n </td>\r\n </tr>\r\n " +
|
||||
" <tr>\r\n <th>Location</th>\r\n <td" +
|
||||
">Updates the Location of the device. Maximum of 250 characters. <em>Default: <sp" +
|
||||
"an");
|
||||
|
||||
WriteLiteral(" class=\"code\"");
|
||||
|
||||
WriteLiteral("><None></span></em>\r\n </td>\r\n </tr>\r\n " +
|
||||
" <tr>\r\n <th>Asset Number</th>\r\n " +
|
||||
" <td>Updates the Asset Number of the device. Maximum of 40 characters. <em>Defau" +
|
||||
"lt: <span");
|
||||
|
||||
WriteLiteral(" class=\"code\"");
|
||||
|
||||
WriteLiteral("><None></span></em>\r\n </td>\r\n </tr>\r\n " +
|
||||
" </tbody>\r\n </table>\r\n\r\n\r\n <div");
|
||||
|
||||
WriteLiteral(" id=\"showDeviceModelsDialog\"");
|
||||
|
||||
WriteLiteral(" class=\"hiddenDialog\"");
|
||||
|
||||
WriteLiteral(" title=\"Disco Device Model Ids\"");
|
||||
|
||||
WriteLiteral(">\r\n <table");
|
||||
|
||||
WriteLiteral(" class=\"tableData\"");
|
||||
|
||||
WriteLiteral(@">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>Description</th>
|
||||
<th>Manufacturer</th>
|
||||
<th>Model</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
");
|
||||
|
||||
|
||||
#line 94 "..\..\Views\Device\ImportExport.cshtml"
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 94 "..\..\Views\Device\ImportExport.cshtml"
|
||||
foreach (var dm in Model.DeviceModels)
|
||||
{
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" <tr>\r\n <td>");
|
||||
|
||||
|
||||
#line 97 "..\..\Views\Device\ImportExport.cshtml"
|
||||
Write(Html.ActionLink(dm.Id.ToString(), MVC.Config.DeviceModel.Index(dm.Id)));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("</td>\r\n <td>");
|
||||
|
||||
|
||||
#line 98 "..\..\Views\Device\ImportExport.cshtml"
|
||||
Write(dm.ToString());
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("</td>\r\n <td>");
|
||||
|
||||
|
||||
#line 99 "..\..\Views\Device\ImportExport.cshtml"
|
||||
Write(dm.Manufacturer);
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("</td>\r\n <td>");
|
||||
|
||||
|
||||
#line 100 "..\..\Views\Device\ImportExport.cshtml"
|
||||
Write(dm.Model);
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("</td>\r\n </tr>\r\n");
|
||||
|
||||
|
||||
#line 102 "..\..\Views\Device\ImportExport.cshtml"
|
||||
}
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" </tbody>\r\n </table>\r\n </div>\r\n\r\n <div");
|
||||
|
||||
WriteLiteral(" id=\"showDeviceProfilesDialog\"");
|
||||
|
||||
WriteLiteral(" class=\"hiddenDialog\"");
|
||||
|
||||
WriteLiteral(" title=\"Disco Device Profile Ids\"");
|
||||
|
||||
WriteLiteral(">\r\n <table");
|
||||
|
||||
WriteLiteral(" class=\"tableData\"");
|
||||
|
||||
WriteLiteral(@">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>Name</th>
|
||||
<th>Short Name</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
");
|
||||
|
||||
|
||||
#line 118 "..\..\Views\Device\ImportExport.cshtml"
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 118 "..\..\Views\Device\ImportExport.cshtml"
|
||||
foreach (var dp in Model.DeviceProfiles)
|
||||
{
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" <tr>\r\n <td>");
|
||||
|
||||
|
||||
#line 121 "..\..\Views\Device\ImportExport.cshtml"
|
||||
Write(Html.ActionLink(dp.Id.ToString(), MVC.Config.DeviceProfile.Index(dp.Id)));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("</td>\r\n <td>");
|
||||
|
||||
|
||||
#line 122 "..\..\Views\Device\ImportExport.cshtml"
|
||||
Write(dp.Name);
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("</td>\r\n <td>");
|
||||
|
||||
|
||||
#line 123 "..\..\Views\Device\ImportExport.cshtml"
|
||||
Write(dp.ShortName);
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("</td>\r\n <td>");
|
||||
|
||||
|
||||
#line 124 "..\..\Views\Device\ImportExport.cshtml"
|
||||
Write(dp.Description);
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("</td>\r\n </tr>\r\n");
|
||||
|
||||
|
||||
#line 126 "..\..\Views\Device\ImportExport.cshtml"
|
||||
}
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" </tbody>\r\n </table>\r\n </div>\r\n\r\n <div");
|
||||
|
||||
WriteLiteral(" id=\"showDeviceBatchesDialog\"");
|
||||
|
||||
WriteLiteral(" class=\"hiddenDialog\"");
|
||||
|
||||
WriteLiteral(" title=\"Disco Device Batch Ids\"");
|
||||
|
||||
WriteLiteral(">\r\n <table");
|
||||
|
||||
WriteLiteral(" class=\"tableData\"");
|
||||
|
||||
WriteLiteral(@">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>Name</th>
|
||||
<th>Purchase Date</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
");
|
||||
|
||||
|
||||
#line 141 "..\..\Views\Device\ImportExport.cshtml"
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 141 "..\..\Views\Device\ImportExport.cshtml"
|
||||
foreach (var db in Model.DeviceBatches)
|
||||
{
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" <tr>\r\n <td>");
|
||||
|
||||
|
||||
#line 144 "..\..\Views\Device\ImportExport.cshtml"
|
||||
Write(Html.ActionLink(db.Id.ToString(), MVC.Config.DeviceBatch.Index(db.Id)));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("</td>\r\n <td>");
|
||||
|
||||
|
||||
#line 145 "..\..\Views\Device\ImportExport.cshtml"
|
||||
Write(db.Name);
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("</td>\r\n <td>");
|
||||
|
||||
|
||||
#line 146 "..\..\Views\Device\ImportExport.cshtml"
|
||||
Write(CommonHelpers.FriendlyDate(db.PurchaseDate));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("</td>\r\n </tr>\r\n");
|
||||
|
||||
|
||||
#line 148 "..\..\Views\Device\ImportExport.cshtml"
|
||||
}
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral(" </tbody>\r\n </table>\r\n </div>\r\n\r\n <script" +
|
||||
">\r\n $(function () {\r\n var dialogOptions = {\r\n " +
|
||||
" width: 700,\r\n height: 600,\r\n re" +
|
||||
"sizable: false,\r\n modal: true,\r\n autoOpen:" +
|
||||
" false\r\n },\r\n $showDeviceModelsDialog = null,\r\n " +
|
||||
" $showDeviceProfilesDialog = null,\r\n $showDeviceBatch" +
|
||||
"esDialog = null;\r\n\r\n $(\'#showDeviceModels\').click(function (e) {\r" +
|
||||
"\n e.preventDefault();\r\n if (!$showDeviceMo" +
|
||||
"delsDialog)\r\n $showDeviceModelsDialog = $(\'#showDeviceMod" +
|
||||
"elsDialog\').dialog(dialogOptions);\r\n $showDeviceModelsDialog." +
|
||||
"dialog(\'open\');\r\n });\r\n\r\n $(\'#showDeviceProfiles\')" +
|
||||
".click(function (e) {\r\n e.preventDefault();\r\n " +
|
||||
" if (!$showDeviceProfilesDialog)\r\n $showDeviceProfiles" +
|
||||
"Dialog = $(\'#showDeviceProfilesDialog\').dialog(dialogOptions);\r\n " +
|
||||
" $showDeviceProfilesDialog.dialog(\'open\');\r\n });\r\n " +
|
||||
" $(\'#showDeviceBatches\').click(function (e) {\r\n e.preventD" +
|
||||
"efault();\r\n if (!$showDeviceBatchesDialog)\r\n " +
|
||||
" $showDeviceBatchesDialog = $(\'#showDeviceBatchesDialog\').dialog(dialogOpt" +
|
||||
"ions);\r\n $showDeviceBatchesDialog.dialog(\'open\');\r\n " +
|
||||
" });\r\n });\r\n </script>\r\n </div>\r\n\r\n <div");
|
||||
|
||||
WriteLiteral(" class=\"actionBar\"");
|
||||
|
||||
WriteLiteral(">\r\n");
|
||||
|
||||
WriteLiteral(" ");
|
||||
|
||||
|
||||
#line 190 "..\..\Views\Device\ImportExport.cshtml"
|
||||
Write(Html.ActionLinkButton("Export All Devices", MVC.API.Device.ExportAllDevices()));
|
||||
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
WriteLiteral("\r\n </div>\r\n</div>\r\n");
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma warning restore 1591
|
||||
@@ -0,0 +1,249 @@
|
||||
@model Disco.Web.Models.Device.ImportReviewModel
|
||||
@using Disco.BI.DeviceBI.Importing
|
||||
@{
|
||||
ViewBag.Title = Html.ToBreadcrumb("Devices", MVC.Device.Index(), "Import Devices", MVC.Device.ImportExport(), string.Format("File: {0}", Model.ImportFilename));
|
||||
|
||||
int importDeviceOkCount = Model.ImportDevices.Count(id => id.Errors.Count == 0);
|
||||
int importDeviceNewCount = Model.ImportDevices.Count(id => id.Errors.Count == 0 && id.Device == null);
|
||||
int importDeviceUpdateCount = Model.ImportDevices.Count(id => id.Errors.Count == 0 && id.Device != null);
|
||||
int importDeviceErrorCount = Model.ImportDevices.Count - importDeviceOkCount;
|
||||
}
|
||||
<div id="deviceImportReview">
|
||||
@if (Model.ImportDevices.Count > 0)
|
||||
{
|
||||
<h2>Parsed @Model.ImportDevices.Count Device Record@(Model.ImportDevices.Count != 1 ? "s" : null)</h2>
|
||||
<h4>
|
||||
@importDeviceOkCount of @Model.ImportDevices.Count Device@(Model.ImportDevices.Count != 1 ? "s" : null) are ready for import.
|
||||
</h4>
|
||||
if (importDeviceErrorCount > 0)
|
||||
{
|
||||
<h4 id="errorMessage">
|
||||
@(importDeviceErrorCount) Record@(importDeviceErrorCount != 1 ? "s" : null) will be skipped if the import continues
|
||||
</h4>
|
||||
}
|
||||
|
||||
<div id="devicesNavigation">
|
||||
<ul class="none">
|
||||
@if (importDeviceNewCount > 0)
|
||||
{<li class="statusNew">
|
||||
<input id="devicesNavigationNew" type="checkbox" checked="checked" /><label for="devicesNavigationNew">Show New Devices (@(Model.ImportDevices.Count(id => id.Errors.Count == 0 && id.Device == null)))</label>
|
||||
</li>}@if (importDeviceUpdateCount > 0)
|
||||
{<li class="statusUpdate">
|
||||
<input id="devicesNavigationUpdate" type="checkbox" checked="checked" /><label for="devicesNavigationUpdate">Show Updates (@(Model.ImportDevices.Count(id => id.Errors.Count == 0 && id.Device != null)))</label>
|
||||
</li>}@if (importDeviceErrorCount > 0)
|
||||
{<li class="statusError">
|
||||
<input id="devicesNavigationError" type="checkbox" checked="checked" /><label for="devicesNavigationError">Show Errors (@(Model.ImportDevices.Count(id => id.Errors.Count != 0)))</label>
|
||||
</li>}
|
||||
</ul>
|
||||
<script>
|
||||
$(function () {
|
||||
$devices = $('#devices');
|
||||
$rows = $devices.children('tbody').children('tr');
|
||||
|
||||
$('#devicesNavigationNew').change(function () {
|
||||
if ($(this).is(':checked'))
|
||||
$rows.filter('.statusNew').show();
|
||||
else
|
||||
$rows.filter('.statusNew').hide();
|
||||
});
|
||||
|
||||
$('#devicesNavigationUpdate').change(function () {
|
||||
if ($(this).is(':checked'))
|
||||
$rows.filter('.statusUpdate').show();
|
||||
else
|
||||
$rows.filter('.statusUpdate').hide();
|
||||
});
|
||||
|
||||
$('#devicesNavigationError').change(function () {
|
||||
if ($(this).is(':checked'))
|
||||
$rows.filter('.statusError').show();
|
||||
else
|
||||
$rows.filter('.statusError').hide();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
|
||||
<table id="devices">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="row">Row</th>
|
||||
<th class="action">Action</th>
|
||||
<th class="serialNumber">Serial Number</th>
|
||||
<th class="model">Model</th>
|
||||
<th class="profile">Profile</th>
|
||||
<th class="batch">Batch</th>
|
||||
<th class="assignedUser">Assigned User</th>
|
||||
<th class="location">Location</th>
|
||||
<th class="assetNumber">Asset Number</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var device in Model.ImportDevices)
|
||||
{
|
||||
bool isUpdate = device.Device != null;
|
||||
string error;
|
||||
<tr class="status@(device.ImportStatus())">
|
||||
<td class="row">
|
||||
@((Model.ImportDevices.IndexOf(device) + 1))
|
||||
</td>
|
||||
<td class="action">
|
||||
@(device.ImportStatus())
|
||||
</td>
|
||||
<td class="serialNumber">
|
||||
@if (device.Device == null)
|
||||
{
|
||||
@device.SerialNumber
|
||||
}
|
||||
else
|
||||
{
|
||||
@Html.ActionLink(device.SerialNumber, MVC.Device.Show(device.SerialNumber), new { target = "_blank" })
|
||||
}
|
||||
|
||||
@if (device.Errors.TryGetValue("SerialNumber", out error))
|
||||
{
|
||||
<div class="error">@error</div>
|
||||
}
|
||||
</td>
|
||||
<td class="model">
|
||||
@if (device.Errors.TryGetValue("DeviceModelId", out error))
|
||||
{
|
||||
<div class="error">@error</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!isUpdate || device.DeviceModelId != device.Device.DeviceModelId)
|
||||
{
|
||||
<img class="modelImage" alt="Model Image" src="@Url.Action(MVC.API.DeviceModel.Image(device.DeviceModel.Id, device.DeviceModel.ImageHash()))" />
|
||||
@device.DeviceModel.ToString()
|
||||
}
|
||||
else
|
||||
{
|
||||
<span class="smallMessage">No Change</span>
|
||||
}
|
||||
}</td>
|
||||
<td class="profile">
|
||||
@if (device.Errors.TryGetValue("DeviceProfileId", out error))
|
||||
{
|
||||
<div class="error">@error</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!isUpdate || device.DeviceProfileId != device.Device.DeviceProfileId)
|
||||
{
|
||||
@device.DeviceProfile.ToString()
|
||||
}
|
||||
else
|
||||
{
|
||||
<span class="smallMessage">No Change</span>
|
||||
}
|
||||
}</td>
|
||||
<td class="batch">
|
||||
@if (device.Errors.TryGetValue("DeviceBatchId", out error))
|
||||
{
|
||||
<div class="error">@error</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!isUpdate || device.DeviceBatchId != device.Device.DeviceBatchId)
|
||||
{
|
||||
if (device.DeviceBatch == null)
|
||||
{
|
||||
<text><None></text>
|
||||
}
|
||||
else
|
||||
{
|
||||
@device.DeviceBatch.ToString()
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
<span class="smallMessage">No Change</span>
|
||||
}
|
||||
}</td>
|
||||
<td class="assignedUser">
|
||||
@if (device.Errors.TryGetValue("AssignedUserId", out error))
|
||||
{
|
||||
<div class="error">@error</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!isUpdate || device.AssignedUserId != device.Device.AssignedUserId)
|
||||
{
|
||||
if (device.AssignedUser == null)
|
||||
{
|
||||
<text><None></text>
|
||||
}
|
||||
else
|
||||
{
|
||||
@device.AssignedUser.ToString()
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
<span class="smallMessage">No Change</span>
|
||||
}
|
||||
}</td>
|
||||
<td class="location">
|
||||
@if (device.Errors.TryGetValue("Location", out error))
|
||||
{
|
||||
<div class="error">@error</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!isUpdate || device.Location != device.Device.Location)
|
||||
{
|
||||
if (device.Location == null)
|
||||
{
|
||||
<text><None></text>
|
||||
}
|
||||
else
|
||||
{
|
||||
@device.Location
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
<span class="smallMessage">No Change</span>
|
||||
}
|
||||
}</td>
|
||||
<td class="assetNumber">
|
||||
@if (device.Errors.TryGetValue("AssetNumber", out error))
|
||||
{
|
||||
<div class="error">@error</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!isUpdate || device.AssetNumber != device.Device.AssetNumber)
|
||||
{
|
||||
if (device.AssetNumber == null)
|
||||
{
|
||||
<text><None></text>
|
||||
}
|
||||
else
|
||||
{
|
||||
@device.AssetNumber
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
<span class="smallMessage">No Change</span>
|
||||
}
|
||||
}</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
if (importDeviceOkCount > 0)
|
||||
{
|
||||
<div class="actionBar">
|
||||
@Html.ActionLinkButton(string.Format("Import {0} Device{1}", importDeviceOkCount, importDeviceOkCount != 1 ? "s" : null), MVC.API.Device.ImportProcess(Model.ImportParseTaskId))
|
||||
</div>
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
<h2>No Devices were found in this file</h2>
|
||||
}
|
||||
</div>
|
||||
File diff suppressed because it is too large.
Load diff
@@ -5,6 +5,6 @@
|
||||
Search for a Device</h3>
|
||||
@Html.Partial(MVC.Shared.Views._SearchDialog, "devices")
|
||||
<div class="actionBar">
|
||||
@Html.ActionLinkButton("Import Devices", MVC.Device.Import())
|
||||
@Html.ActionLinkButton("Import/Export Devices", MVC.Device.ImportExport())
|
||||
@Html.ActionLinkButton("Add Offline Device", MVC.Device.AddOffline())
|
||||
</div>
|
||||
@@ -67,7 +67,7 @@ WriteLiteral(" ");
|
||||
|
||||
|
||||
#line 8 "..\..\Views\Device\Index.cshtml"
|
||||
Write(Html.ActionLinkButton("Import Devices", MVC.Device.Import()));
|
||||
Write(Html.ActionLinkButton("Import/Export Devices", MVC.Device.ImportExport()));
|
||||
|
||||
|
||||
#line default
|
||||
|
||||
Reference in new issue
Block a user