Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
@@ -20,15 +20,18 @@ namespace Client.Utils
|
||||
public static String CEF_LOCALES_PATH = BASE_PATH + "CEF\\Resources\\locales";
|
||||
public static String CEF_EXCEPTIONLOG_PATH = BASE_PATH + "ExceptionLog";
|
||||
public static String errorPageFile = BASE_PATH + "error.pg";
|
||||
|
||||
|
||||
//Config Names
|
||||
public static String JOB_OPENING_PATH = BASE_PATH + "TempJob\\";
|
||||
|
||||
|
||||
//Config Names
|
||||
public const string CONFIG_KEY = "Config";
|
||||
public const string CLIENT_CONFIG_KEY = "Client";
|
||||
public const string CONNECTION_CONFIG_KEY = "Connection";
|
||||
public const string VENDORHMI_CONFIG_KEY = "VendorHmi";
|
||||
public const string EXTSFT_CONFIG_KEY = "ExtSoftwares";
|
||||
public const string SFT_CONFIG_KEY = "Software";
|
||||
public const string JOB_MAIN_FILENAME = "main.cnc";
|
||||
public const string JOB_METADATA_FILENAME = "metadata.json";
|
||||
public enum Rendering {GPU = 0, CPU = 1 };
|
||||
|
||||
|
||||
|
||||
@@ -1,24 +1,22 @@
|
||||
using Chromium;
|
||||
using Chromium.Remote;
|
||||
using Chromium.Remote.Event;
|
||||
using Chromium.WebBrowser;
|
||||
using Client.Config;
|
||||
using Client.Config.SubModels;
|
||||
using Client.Utils;
|
||||
using CMS_Client.Browser_Tools.Models;
|
||||
using CMS_Client.Browser_Tools.Models.Errors;
|
||||
using CMS_Client.Browser_Tools.Models.Metadata;
|
||||
using CMS_Client.View;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Imaging;
|
||||
using System.IO;
|
||||
using System.IO.Compression;
|
||||
using System.Linq;
|
||||
using System.Net.Http;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using static Client.Utils.Constants;
|
||||
|
||||
@@ -26,15 +24,17 @@ namespace CMS_Client.Browser_Tools
|
||||
{
|
||||
public class BrowserJSObject : JSObject
|
||||
{
|
||||
//The first letter of All PUBLIC Variables and Methods must be Lower-Case (CEF Settings)
|
||||
// The first letter of All PUBLIC Variables and Methods must be Lower-Case (CEF Settings)
|
||||
|
||||
private MainForm mainForm;
|
||||
private static readonly string[] _validExtensions = { "",".txt", ".cnc", ".ini", ".mpf", ".spf" };
|
||||
private static readonly string[] _validExtensions = { "", ".txt", ".cnc", ".ini", ".mpf", ".spf" };
|
||||
private static readonly string[] _validImages = { ".jpg", ".jpeg", ".png" };
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#region CONSTRUCTOR_METHOD
|
||||
//Constructor Method
|
||||
|
||||
// Constructor Method
|
||||
public BrowserJSObject(MainForm f)
|
||||
{
|
||||
mainForm = f;
|
||||
@@ -51,27 +51,31 @@ namespace CMS_Client.Browser_Tools
|
||||
AddFunction("getChromiumVersion").Execute += getChromiumVersion;
|
||||
AddFunction("getClientID").Execute += getClientID;
|
||||
AddFunction("getConfiguredProcesses").Execute += getConfiguredProcesses;
|
||||
AddFunction("getConfiguredProcessesInMainMenu").Execute += getConfiguredProcessesInMainMenu;
|
||||
AddFunction("getConfiguredProcessesInMainMenu").Execute += getConfiguredProcessesInMainMenu;
|
||||
AddFunction("startNewProcess").Execute += startNewProcess;
|
||||
AddFunction("openOrStartProcess").Execute += openOrStartProcess;
|
||||
AddFunction("isVirtualKeybConfigured").Execute += isVirtualKeybConfigured;
|
||||
AddFunction("sendHMICommand").Execute += sendHMICommand;
|
||||
AddFunction("getHMICommandCount").Execute += getHMICommandCount;
|
||||
AddFunction("getOSdriveList").Execute += getOSdriveList;
|
||||
AddFunction("getFileList").Execute += getFileList;
|
||||
AddFunction("getProgramInfo").Execute += getProgramInfo;
|
||||
|
||||
AddFunction("uploadAndActivateProgram").Execute += uploadAndActivateProgram;
|
||||
AddFunction("uploadAndAddToQueue").Execute += uploadAndAddToQueue;
|
||||
|
||||
AddFunction("openJob").Execute += openJob;
|
||||
AddFunction("saveJob").Execute += saveJob;
|
||||
AddFunction("addImageToJob").Execute += addImageToJob;
|
||||
AddFunction("delImageFromJob").Execute += delImageFromJob;
|
||||
AddFunction("addPPToJob").Execute += addPPToJob;
|
||||
AddFunction("delPPFromJob").Execute += delPPFromJob;
|
||||
}
|
||||
|
||||
#endregion
|
||||
#endregion CONSTRUCTOR_METHOD
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#region FORM_BEHAVIOUR_METHODS
|
||||
|
||||
//Minimize Main Window
|
||||
// Minimize Main Window
|
||||
public void minimizeForm(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
//Invoke method if is needed or call the method in STD mode
|
||||
@@ -80,16 +84,13 @@ namespace CMS_Client.Browser_Tools
|
||||
{
|
||||
mainForm.WindowState = FormWindowState.Minimized;
|
||||
});
|
||||
|
||||
else
|
||||
{
|
||||
mainForm.WindowState = FormWindowState.Minimized;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//Maximize Main Window
|
||||
// Maximize Main Window
|
||||
public void maximizeForm(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
//Invoke method if is needed or call the method in STD mode
|
||||
@@ -98,16 +99,13 @@ namespace CMS_Client.Browser_Tools
|
||||
{
|
||||
mainForm.WindowState = FormWindowState.Maximized;
|
||||
});
|
||||
|
||||
else
|
||||
{
|
||||
mainForm.WindowState = FormWindowState.Maximized;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//Close Main Window
|
||||
// Close Main Window
|
||||
public void closeForm(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
//If the mainform is disposed do nothing
|
||||
@@ -118,16 +116,17 @@ namespace CMS_Client.Browser_Tools
|
||||
mainForm.Close();
|
||||
}
|
||||
|
||||
//Reload Broken Page
|
||||
// Reload Broken Page
|
||||
private void reloadBrokenPage(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
//Invoke method if is needed or call the method in STD mode
|
||||
mainForm.reloadBrokenPage();
|
||||
}
|
||||
|
||||
#endregion
|
||||
#endregion FORM_BEHAVIOUR_METHODS
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#region NC_BEHAVIOUR_METHODS
|
||||
|
||||
public void setNcWindowState(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
@@ -155,51 +154,25 @@ namespace CMS_Client.Browser_Tools
|
||||
e.SetReturnValue(NcWindow.NcCapture);
|
||||
}
|
||||
|
||||
//Send a command to HMI
|
||||
public void sendHMICommand(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
if (e.Arguments.Count() == 0)
|
||||
return;
|
||||
|
||||
int val = e.Arguments[0].IntValue - 1;
|
||||
|
||||
if (val < 0 || val > (NcWindow.NcWindowCommand.Count - 1))
|
||||
return;
|
||||
|
||||
NcWindow.SendCommandKey(NcWindow.NcWindowCommand[val]);
|
||||
|
||||
if (NcWindow.State == NcState.SHOW)
|
||||
{
|
||||
Thread.Sleep(1000);
|
||||
mainForm.HideNCWindow();
|
||||
mainForm.ShowNCWindow();
|
||||
NcWindow.ActivateNcWindow();
|
||||
}
|
||||
}
|
||||
|
||||
//Get command vounts to HMI
|
||||
public void getHMICommandCount(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
e.SetReturnValue(NcWindow.NcWindowCommand.Count);
|
||||
}
|
||||
|
||||
#endregion
|
||||
#endregion NC_BEHAVIOUR_METHODS
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#region CHROMIUM_METHODS
|
||||
|
||||
//Get the Version of Chromium
|
||||
// Get the Version of Chromium
|
||||
public void getChromiumVersion(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
e.SetReturnValue(CfxRuntime.GetChromeVersion());
|
||||
}
|
||||
|
||||
#endregion
|
||||
#endregion CHROMIUM_METHODS
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#region STEP_METHODS
|
||||
|
||||
//Get the ID of STEP Client
|
||||
// Get the ID of STEP Client
|
||||
public void getClientID(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
e.SetReturnValue((int)Config.ConnectionConfig.Id);
|
||||
@@ -210,31 +183,31 @@ namespace CMS_Client.Browser_Tools
|
||||
NcWindow.ForceStepFocus();
|
||||
}
|
||||
|
||||
//Get the option of virtual Keyb configured
|
||||
// Get the option of virtual Keyb configured
|
||||
private void isVirtualKeybConfigured(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
e.SetReturnValue((Boolean)Config.ClientConfig.ShowVirtualKeyboard);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#endregion STEP_METHODS
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#region PROCESSES_METHODS
|
||||
|
||||
//Read all configured processes
|
||||
// Read all configured processes
|
||||
public void getConfiguredProcesses(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(Config.ExtSoftwaresConfig.Where(X => X.inMainMenuBar==false)));
|
||||
}
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(Config.ExtSoftwaresConfig.Where(X => X.inMainMenuBar == false)));
|
||||
}
|
||||
|
||||
//Read all configured processes in main menu
|
||||
// Read all configured processes in main menu
|
||||
public void getConfiguredProcessesInMainMenu(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(Config.ExtSoftwaresConfig.Where(X => X.inMainMenuBar == true)));
|
||||
}
|
||||
|
||||
|
||||
|
||||
//Start a new process
|
||||
// Start a new process
|
||||
public void startNewProcess(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
if (e.Arguments.Count() == 0)
|
||||
@@ -244,9 +217,7 @@ namespace CMS_Client.Browser_Tools
|
||||
t.Start(e.Arguments[0].StringValue);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//Open the last window or Start a new process
|
||||
// Open the last window or Start a new process
|
||||
public void openOrStartProcess(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
if (e.Arguments.Count() == 0)
|
||||
@@ -256,8 +227,7 @@ namespace CMS_Client.Browser_Tools
|
||||
t.Start(e.Arguments[0].StringValue);
|
||||
}
|
||||
|
||||
|
||||
//Function used in Thread
|
||||
// Function used in Thread
|
||||
private void OpenStartNew(object id)
|
||||
{
|
||||
Software sft = Config.ExtSoftwaresConfig.FirstOrDefault(X => X.id == (string)id);
|
||||
@@ -273,21 +243,21 @@ namespace CMS_Client.Browser_Tools
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Function used in Thread
|
||||
// Function used in Thread
|
||||
private void OpenNew(object id)
|
||||
{
|
||||
Software sft = Config.ExtSoftwaresConfig.FirstOrDefault(X => X.id == (string)id);
|
||||
if (sft != null)
|
||||
Process.Start(sft.path, sft.arguments);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#endregion PROCESSES_METHODS
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#region FILESYSTEM_METHODS
|
||||
|
||||
//Read all drives in Operating System
|
||||
// Read all drives in Operating System
|
||||
public void getOSdriveList(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
List<Drive> drivelist = new List<Drive>();
|
||||
@@ -312,8 +282,7 @@ namespace CMS_Client.Browser_Tools
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(drivelist));
|
||||
}
|
||||
|
||||
|
||||
//Read all files in directory
|
||||
// Read all files in directory
|
||||
public void getFileList(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
List<Models.File> filelist = new List<Models.File>();
|
||||
@@ -334,7 +303,6 @@ namespace CMS_Client.Browser_Tools
|
||||
{
|
||||
foreach (String item in Directory.GetDirectories(p))
|
||||
{
|
||||
|
||||
filelist.Add(new Models.File
|
||||
{
|
||||
Name = Path.GetFileName(item),
|
||||
@@ -342,7 +310,6 @@ namespace CMS_Client.Browser_Tools
|
||||
Path = Path.GetFullPath(item),
|
||||
IsDirectory = true
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -353,14 +320,17 @@ namespace CMS_Client.Browser_Tools
|
||||
foreach (String item in Directory.GetFiles(p))
|
||||
{
|
||||
if (_validExtensions.Contains(Path.GetExtension(item).ToLower()))
|
||||
{
|
||||
bool isJob = Path.GetExtension(item) == "job";
|
||||
filelist.Add(new Models.File
|
||||
{
|
||||
Name = Path.GetFileName(item),
|
||||
AbsolutePath = Path.GetFullPath(item),
|
||||
Path = Path.GetFullPath(item),
|
||||
IsDirectory = false
|
||||
IsDirectory = false,
|
||||
IsJob = isJob
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -370,8 +340,7 @@ namespace CMS_Client.Browser_Tools
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(filelist));
|
||||
}
|
||||
|
||||
|
||||
//Upload and activate the program
|
||||
// Upload and activate the program
|
||||
public async void uploadAndActivateProgram(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
String fileToUpload = "";
|
||||
@@ -384,7 +353,7 @@ namespace CMS_Client.Browser_Tools
|
||||
//Check the arguments numbers
|
||||
if (e.Arguments.Length < 1 || e.Arguments[0] == null)
|
||||
{
|
||||
e.SetReturnValue(Constants.Uploadpage +"INVALID_ARGUMENTS");
|
||||
e.SetReturnValue(Constants.Uploadpage + "INVALID_ARGUMENTS");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -392,7 +361,7 @@ namespace CMS_Client.Browser_Tools
|
||||
fileToUpload = e.Arguments[0].StringValue;
|
||||
if (!System.IO.File.Exists(fileToUpload))
|
||||
{
|
||||
e.SetReturnValue(Constants.Uploadpage+";FILE_NOT_FOUND");
|
||||
e.SetReturnValue(Constants.Uploadpage + ";FILE_NOT_FOUND");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -421,7 +390,7 @@ namespace CMS_Client.Browser_Tools
|
||||
|
||||
//Add the content to the form
|
||||
form.Add(new ByteArrayContent(filecontent), "file", fileName);
|
||||
if(imagecontent != null)
|
||||
if (imagecontent != null)
|
||||
form.Add(new ByteArrayContent(imagecontent), "image", imageName);
|
||||
|
||||
//Send them
|
||||
@@ -429,17 +398,16 @@ namespace CMS_Client.Browser_Tools
|
||||
"http://" + Config.ConnectionConfig.ServerUrl + ":" + Config.ConnectionConfig.ServerPort + "/" + Constants.Uploadpage,
|
||||
form).Result;
|
||||
//Wait the answer
|
||||
if(response.StatusCode == System.Net.HttpStatusCode.BadRequest)
|
||||
if (response.StatusCode == System.Net.HttpStatusCode.BadRequest)
|
||||
e.SetReturnValue(Constants.Uploadpage + ";" + await response.Content.ReadAsStringAsync());
|
||||
else if(response.StatusCode != System.Net.HttpStatusCode.OK)
|
||||
else if (response.StatusCode != System.Net.HttpStatusCode.OK)
|
||||
e.SetReturnValue(Constants.Uploadpage + ";" + response.ReasonPhrase);
|
||||
else
|
||||
e.SetReturnValue("");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//Upload and add to queue
|
||||
// Upload and add to queue
|
||||
public async void uploadAndAddToQueue(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
string fileToUpload = "";
|
||||
@@ -510,11 +478,9 @@ namespace CMS_Client.Browser_Tools
|
||||
else
|
||||
e.SetReturnValue("");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
//Read info of a file
|
||||
// Read info of a file
|
||||
public void getProgramInfo(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
InfoFile file = new InfoFile();
|
||||
@@ -545,7 +511,6 @@ namespace CMS_Client.Browser_Tools
|
||||
file.Content = new List<string>();
|
||||
try
|
||||
{
|
||||
|
||||
StreamReader fileRead = new StreamReader(p);
|
||||
while ((line = fileRead.ReadLine()) != null && counter < 10)
|
||||
{
|
||||
@@ -562,7 +527,6 @@ namespace CMS_Client.Browser_Tools
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -571,8 +535,7 @@ namespace CMS_Client.Browser_Tools
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(file));
|
||||
}
|
||||
|
||||
|
||||
//Private functions...
|
||||
// Private functions
|
||||
private String ElaborateName(String name, DriveType type)
|
||||
{
|
||||
if (!String.IsNullOrWhiteSpace(name))
|
||||
@@ -587,7 +550,6 @@ namespace CMS_Client.Browser_Tools
|
||||
}
|
||||
return "Undefined Drive";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private String ElaborateType(DriveType type)
|
||||
@@ -599,9 +561,289 @@ namespace CMS_Client.Browser_Tools
|
||||
case DriveType.Network: return "NTW";
|
||||
}
|
||||
return "SPFO";
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
#endregion FILESYSTEM_METHODS
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#region JOB_METHODS
|
||||
|
||||
// Read job data
|
||||
public void openJob(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
JobToStep job = new JobToStep();
|
||||
OpenFileDialog jobOpenFileDialog = new OpenFileDialog
|
||||
{
|
||||
Filter = "CMS Job Files(*.JOB,*.ZIP)|*.job;*.zip",
|
||||
Multiselect = false
|
||||
};
|
||||
|
||||
if (jobOpenFileDialog.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
if (!Directory.Exists(JOB_OPENING_PATH))
|
||||
Directory.CreateDirectory(JOB_OPENING_PATH);
|
||||
|
||||
ClearTempPath();
|
||||
|
||||
using (ZipArchive archive = ZipFile.OpenRead(jobOpenFileDialog.FileName))
|
||||
{
|
||||
// Setup main Fields
|
||||
job.Name = Path.GetFileName(jobOpenFileDialog.FileName);
|
||||
job.LastEditTimestamp = new FileInfo(jobOpenFileDialog.FileName).LastAccessTime;
|
||||
|
||||
foreach (ZipArchiveEntry entry in archive.Entries)
|
||||
{
|
||||
// Get main program content
|
||||
if (entry.Name.Equals(JOB_MAIN_FILENAME, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
using (var reader = new StreamReader(entry.Open()))
|
||||
{
|
||||
job.IsoMainProgram = (reader.ReadToEnd());
|
||||
}
|
||||
}
|
||||
// Add all images
|
||||
else if (_validImages.Contains(Path.GetExtension(entry.Name).ToLower()))
|
||||
{
|
||||
var bytes = default(byte[]);
|
||||
entry.ExtractToFile(JOB_OPENING_PATH + entry.Name, true);
|
||||
using (var memstream = new MemoryStream())
|
||||
{
|
||||
entry.Open().CopyTo(memstream);
|
||||
bytes = memstream.ToArray();
|
||||
job.Metadata.Generics.Images.Add(new ImageParam()
|
||||
{
|
||||
Name = Path.GetFileNameWithoutExtension(entry.Name),
|
||||
Base64 = "data:image/" + Path.GetExtension(entry.Name).ToLower().TrimStart('.') + ";base64," + Convert.ToBase64String(bytes)
|
||||
});
|
||||
}
|
||||
}
|
||||
// Metadata
|
||||
else if (entry.Name.Equals(JOB_METADATA_FILENAME, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
MetadataToFile metasFromFile = new MetadataToFile();
|
||||
|
||||
using (var reader = new StreamReader(entry.Open()))
|
||||
{
|
||||
metasFromFile = JsonConvert.DeserializeObject<MetadataToFile>(reader.ReadToEnd());
|
||||
if (metasFromFile == null)
|
||||
{
|
||||
e.SetReturnValue(null);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
job.Metadata.Generics.Description = metasFromFile.Description;
|
||||
job.Metadata.Generics.ExecutionTime = metasFromFile.ExecutionTime;
|
||||
job.Metadata.Tools = metasFromFile.Tools;
|
||||
job.Metadata.Customs = metasFromFile.Customs;
|
||||
}
|
||||
}
|
||||
}
|
||||
// All other files
|
||||
else
|
||||
{
|
||||
entry.ExtractToFile(JOB_OPENING_PATH + entry.Name, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(job));
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
e.SetReturnValue(null);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Save all job
|
||||
public void saveJob(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
MetadataToFile metafile = new MetadataToFile();
|
||||
|
||||
//check the arguments
|
||||
if (e.Arguments.Count() == 0)
|
||||
return;
|
||||
|
||||
//Call Save Dialog
|
||||
SaveFileDialog jobSaveFileDialog = new SaveFileDialog();
|
||||
jobSaveFileDialog.Filter = "CMS Job Files(*.JOB)|*.job|Zip Files(*.ZIP)|*.zip";
|
||||
if (jobSaveFileDialog.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
// Job deserialize
|
||||
JobToStep job = JsonConvert.DeserializeObject<JobToStep>(e.Arguments[0].StringValue);
|
||||
if (job == null)
|
||||
{
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(new ErrorContainer("corrupted_model")));
|
||||
return;
|
||||
}
|
||||
|
||||
//Metadata
|
||||
metafile.Description = job.Metadata.Generics.Description;
|
||||
metafile.ExecutionTime = job.Metadata.Generics.ExecutionTime;
|
||||
metafile.Tools = job.Metadata.Tools;
|
||||
metafile.Customs = job.Metadata.Customs;
|
||||
using (StreamWriter file = System.IO.File.CreateText(JOB_OPENING_PATH + JOB_METADATA_FILENAME))
|
||||
{
|
||||
JsonSerializer serializer = new JsonSerializer
|
||||
{
|
||||
Formatting = Formatting.Indented
|
||||
};
|
||||
serializer.Serialize(file, metafile);
|
||||
}
|
||||
|
||||
//Main Program
|
||||
System.IO.File.WriteAllText(JOB_OPENING_PATH + JOB_MAIN_FILENAME, job.IsoMainProgram);
|
||||
|
||||
//delete Zip File if exists
|
||||
if (System.IO.File.Exists(jobSaveFileDialog.FileName))
|
||||
System.IO.File.Delete(jobSaveFileDialog.FileName);
|
||||
|
||||
//Create Zip File
|
||||
ZipFile.CreateFromDirectory(JOB_OPENING_PATH, jobSaveFileDialog.FileName);
|
||||
}
|
||||
e.SetReturnValue(null);
|
||||
return;
|
||||
}
|
||||
|
||||
// Add an image
|
||||
public void addImageToJob(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
OpenFileDialog imageOpenFileDialog = new OpenFileDialog();
|
||||
imageOpenFileDialog.Filter = "Images Files(*.JPG,*.JPEG,*.PNG)|*.jpg;*.jpeg;*.png";
|
||||
imageOpenFileDialog.Multiselect = false;
|
||||
if (imageOpenFileDialog.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
String newImagePath = JOB_OPENING_PATH + Path.GetFileName(imageOpenFileDialog.FileName);
|
||||
|
||||
//If exixts send error
|
||||
if (System.IO.File.Exists(newImagePath))
|
||||
{
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(new ErrorContainer("file_esists")));
|
||||
return;
|
||||
}
|
||||
|
||||
//Copy the file
|
||||
System.IO.File.Copy(imageOpenFileDialog.FileName, newImagePath);
|
||||
|
||||
//Send to Step
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(new ImageParam()
|
||||
{
|
||||
Name = Path.GetFileNameWithoutExtension(imageOpenFileDialog.FileName),
|
||||
Base64 = "data:image/" + Path.GetExtension(newImagePath).ToLower().TrimStart('.') + ";base64," + Convert.ToBase64String(System.IO.File.ReadAllBytes(newImagePath))
|
||||
}));
|
||||
return;
|
||||
}
|
||||
e.SetReturnValue(null);
|
||||
return;
|
||||
}
|
||||
|
||||
// Delete an image
|
||||
public void delImageFromJob(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
//check the arguments
|
||||
if (e.Arguments.Count() == 0 && e.Arguments[0].IsString)
|
||||
return;
|
||||
|
||||
//Get the file Path
|
||||
String imagePath = JOB_OPENING_PATH + e.Arguments[0].StringValue;
|
||||
|
||||
//If not exixts Error!
|
||||
if (!System.IO.File.Exists(imagePath))
|
||||
{
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(new ErrorContainer("file_not_esists")));
|
||||
return;
|
||||
}
|
||||
|
||||
//delete it
|
||||
System.IO.File.Delete(imagePath);
|
||||
|
||||
e.SetReturnValue(null);
|
||||
return;
|
||||
}
|
||||
|
||||
// Add a Part-Program
|
||||
public void addPPToJob(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
OpenFileDialog PPOpenFileDialog = new OpenFileDialog();
|
||||
PPOpenFileDialog.Multiselect = false;
|
||||
if (PPOpenFileDialog.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
//Check the extension
|
||||
if (!_validExtensions.Contains(Path.GetExtension(PPOpenFileDialog.FileName).ToLower()))
|
||||
{
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(new ErrorContainer("extension_not_available")));
|
||||
return;
|
||||
}
|
||||
|
||||
String newPPPath = JOB_OPENING_PATH + Path.GetFileName(PPOpenFileDialog.FileName);
|
||||
|
||||
//If exixts delete old file and save the new one
|
||||
if (System.IO.File.Exists(newPPPath))
|
||||
{
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(new ErrorContainer("file_esists")));
|
||||
return;
|
||||
}
|
||||
|
||||
//Copy the file
|
||||
System.IO.File.Copy(PPOpenFileDialog.FileName, newPPPath);
|
||||
|
||||
//Send to Step
|
||||
e.SetReturnValue(null);
|
||||
return;
|
||||
}
|
||||
e.SetReturnValue(null);
|
||||
return;
|
||||
}
|
||||
|
||||
// Delete an image
|
||||
public void delPPFromJob(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
//check the arguments
|
||||
if (e.Arguments.Count() == 0 && e.Arguments[0].IsString)
|
||||
return;
|
||||
|
||||
//Get the file Path
|
||||
String ppPath = JOB_OPENING_PATH + e.Arguments[0].StringValue;
|
||||
|
||||
//If not exixts Error!
|
||||
if (!System.IO.File.Exists(ppPath))
|
||||
{
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(new ErrorContainer("file_not_esists")));
|
||||
return;
|
||||
}
|
||||
|
||||
//delete it
|
||||
System.IO.File.Delete(ppPath);
|
||||
|
||||
e.SetReturnValue(null);
|
||||
return;
|
||||
}
|
||||
|
||||
// Clear the temp folder files
|
||||
private void ClearTempPath()
|
||||
{
|
||||
DirectoryInfo di = new DirectoryInfo(JOB_OPENING_PATH);
|
||||
foreach (FileInfo file in di.GetFiles())
|
||||
file.Delete();
|
||||
foreach (DirectoryInfo dir in di.GetDirectories())
|
||||
dir.Delete(true);
|
||||
}
|
||||
|
||||
// Clear the temp folder files
|
||||
private string GetExtensionFromBase64(string base64img)
|
||||
{
|
||||
base64img = base64img.Remove(0, "data:image/".Length);
|
||||
return base64img.Substring(0, base64img.IndexOf(";base64,"));
|
||||
}
|
||||
|
||||
//Clear the temp folder files
|
||||
private string GetContentFromBase64(string base64img)
|
||||
{
|
||||
return base64img.Substring(base64img.IndexOf(";base64,") + ";base64,".Length);
|
||||
}
|
||||
|
||||
#endregion JOB_METHODS
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace CMS_Client.Browser_Tools.Models.Errors
|
||||
{
|
||||
public class ErrorContainer
|
||||
{
|
||||
public String Error;
|
||||
|
||||
public ErrorContainer(String Err)
|
||||
{
|
||||
this.Error = Err;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -8,9 +8,10 @@ namespace CMS_Client.Browser_Tools.Models
|
||||
{
|
||||
public class File
|
||||
{
|
||||
public String Name;
|
||||
public String AbsolutePath;
|
||||
public String Path;
|
||||
public Boolean IsDirectory;
|
||||
public string Name;
|
||||
public string AbsolutePath;
|
||||
public string Path;
|
||||
public bool IsDirectory;
|
||||
public bool IsJob;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
using CMS_Client.Browser_Tools.Models.Metadata;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace CMS_Client.Browser_Tools.Models
|
||||
{
|
||||
public class JobToStep
|
||||
{
|
||||
public string Name;
|
||||
public DateTime LastEditTimestamp;
|
||||
public string IsoMainProgram;
|
||||
public Metas Metadata;
|
||||
|
||||
public JobToStep()
|
||||
{
|
||||
Metadata = new Metas();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace CMS_Client.Browser_Tools.Models.Metadata
|
||||
{
|
||||
public class CustomParam
|
||||
{
|
||||
public string Name;
|
||||
public string Type;
|
||||
public List<string> SelectionList;
|
||||
public int Value;
|
||||
|
||||
public CustomParam()
|
||||
{
|
||||
SelectionList = new List<string>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace CMS_Client.Browser_Tools.Models.Metadata
|
||||
{
|
||||
public class GenericsParam
|
||||
{
|
||||
public List<ImageParam> Images;
|
||||
public string Description;
|
||||
public TimeSpan ExecutionTime;
|
||||
|
||||
public GenericsParam()
|
||||
{
|
||||
Images = new List<ImageParam>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace CMS_Client.Browser_Tools.Models.Metadata
|
||||
{
|
||||
public class ImageParam
|
||||
{
|
||||
public string Name;
|
||||
public string Base64;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace CMS_Client.Browser_Tools.Models.Metadata
|
||||
{
|
||||
public class Metas
|
||||
{
|
||||
public GenericsParam Generics;
|
||||
public List<int> Tools;
|
||||
public List<CustomParam> Customs;
|
||||
|
||||
public Metas()
|
||||
{
|
||||
Generics = new GenericsParam();
|
||||
Tools = new List<int>();
|
||||
Customs = new List<CustomParam>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
using CMS_Client.Browser_Tools.Models.Metadata;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace CMS_Client.Browser_Tools.Models
|
||||
{
|
||||
public class MetadataToFile
|
||||
{
|
||||
public string Description;
|
||||
public TimeSpan ExecutionTime;
|
||||
public List<int> Tools;
|
||||
public List<CustomParam> Customs;
|
||||
|
||||
public MetadataToFile()
|
||||
{
|
||||
Tools = new List<int>();
|
||||
Customs = new List<CustomParam>();
|
||||
}
|
||||
}
|
||||
}
|
||||
+12
-1
@@ -135,6 +135,8 @@
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.IO.Compression" />
|
||||
<Reference Include="System.IO.Compression.FileSystem" />
|
||||
<Reference Include="System.Runtime.Serialization" />
|
||||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.Web.Extensions" />
|
||||
@@ -151,8 +153,15 @@
|
||||
<ItemGroup>
|
||||
<Compile Include="Browser_Tools\BrowserJSObject.cs" />
|
||||
<Compile Include="Browser_Tools\Models\Drive.cs" />
|
||||
<Compile Include="Browser_Tools\Models\Errors\ErrorContainer.cs" />
|
||||
<Compile Include="Browser_Tools\Models\File.cs" />
|
||||
<Compile Include="Browser_Tools\Models\InfoFile.cs" />
|
||||
<Compile Include="Browser_Tools\Models\MetadataToFile.cs" />
|
||||
<Compile Include="Browser_Tools\Models\JobToStep.cs" />
|
||||
<Compile Include="Browser_Tools\Models\Metadata\CustomParam.cs" />
|
||||
<Compile Include="Browser_Tools\Models\Metadata\GenericsParam.cs" />
|
||||
<Compile Include="Browser_Tools\Models\Metadata\ImageParam.cs" />
|
||||
<Compile Include="Browser_Tools\Models\Metadata\Metas.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="View\LoadingForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
@@ -257,7 +266,9 @@
|
||||
<ItemGroup>
|
||||
<None Include="Resources\Client_Icon.ico" />
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<ItemGroup>
|
||||
<None Include="Resources\CM_ACTIVE_LOGO.png" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>
|
||||
|
||||
@@ -5,11 +5,11 @@ using System.Runtime.InteropServices;
|
||||
// Le informazioni generali relative a un assembly sono controllate dal seguente
|
||||
// set di attributi. Modificare i valori di questi attributi per modificare le informazioni
|
||||
// associate a un assembly.
|
||||
[assembly: AssemblyTitle("CMS Step - Client")]
|
||||
[assembly: AssemblyDescription("STEP Client For CMS Machines")]
|
||||
[assembly: AssemblyTitle("CMS Active Client")]
|
||||
[assembly: AssemblyDescription("CMS Active Client - Main HMI for CMS Machines")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("CMS Spa")]
|
||||
[assembly: AssemblyProduct("CMS Step - Client")]
|
||||
[assembly: AssemblyProduct("CMS Active Client")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2017")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
Generated
+113
-103
@@ -1,103 +1,113 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// Il codice è stato generato da uno strumento.
|
||||
// Versione runtime:4.0.30319.42000
|
||||
//
|
||||
// Le modifiche apportate a questo file possono provocare un comportamento non corretto e andranno perse se
|
||||
// il codice viene rigenerato.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace CMS_Client.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Classe di risorse fortemente tipizzata per la ricerca di stringhe localizzate e così via.
|
||||
/// </summary>
|
||||
// Questa classe è stata generata automaticamente dalla classe StronglyTypedResourceBuilder.
|
||||
// tramite uno strumento quale ResGen o Visual Studio.
|
||||
// Per aggiungere o rimuovere un membro, modificare il file con estensione ResX ed eseguire nuovamente ResGen
|
||||
// con l'opzione /str oppure ricompilare il progetto VS.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce l'istanza di ResourceManager nella cache utilizzata da questa classe.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CMS_Client.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Esegue l'override della proprietà CurrentUICulture del thread corrente per tutte le
|
||||
/// ricerche di risorse eseguite utilizzando questa classe di risorse fortemente tipizzata.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Cerca una risorsa localizzata di tipo System.Drawing.Icon simile a (Icona).
|
||||
/// </summary>
|
||||
internal static System.Drawing.Icon Client_Icon {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("Client_Icon", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Cerca una risorsa localizzata di tipo System.Drawing.Icon simile a (Icona).
|
||||
/// </summary>
|
||||
internal static System.Drawing.Icon CMS_Icon {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("CMS_Icon", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap CMS_LOGO {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("CMS_LOGO", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Cerca una risorsa localizzata di tipo System.Drawing.Icon simile a (Icona).
|
||||
/// </summary>
|
||||
internal static System.Drawing.Icon SinumerikHmi {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("SinumerikHmi", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// Il codice è stato generato da uno strumento.
|
||||
// Versione runtime:4.0.30319.42000
|
||||
//
|
||||
// Le modifiche apportate a questo file possono provocare un comportamento non corretto e andranno perse se
|
||||
// il codice viene rigenerato.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace CMS_Client.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Classe di risorse fortemente tipizzata per la ricerca di stringhe localizzate e così via.
|
||||
/// </summary>
|
||||
// Questa classe è stata generata automaticamente dalla classe StronglyTypedResourceBuilder.
|
||||
// tramite uno strumento quale ResGen o Visual Studio.
|
||||
// Per aggiungere o rimuovere un membro, modificare il file con estensione ResX ed eseguire nuovamente ResGen
|
||||
// con l'opzione /str oppure ricompilare il progetto VS.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce l'istanza di ResourceManager nella cache utilizzata da questa classe.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CMS_Client.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Esegue l'override della proprietà CurrentUICulture del thread corrente per tutte le
|
||||
/// ricerche di risorse eseguite utilizzando questa classe di risorse fortemente tipizzata.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Cerca una risorsa localizzata di tipo System.Drawing.Icon simile a (Icona).
|
||||
/// </summary>
|
||||
internal static System.Drawing.Icon Client_Icon {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("Client_Icon", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap CM_ACTIVE_LOGO {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("CM_ACTIVE_LOGO", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Cerca una risorsa localizzata di tipo System.Drawing.Icon simile a (Icona).
|
||||
/// </summary>
|
||||
internal static System.Drawing.Icon CMS_Icon {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("CMS_Icon", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap CMS_LOGO {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("CMS_LOGO", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Cerca una risorsa localizzata di tipo System.Drawing.Icon simile a (Icona).
|
||||
/// </summary>
|
||||
internal static System.Drawing.Icon SinumerikHmi {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("SinumerikHmi", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+135
-132
@@ -1,133 +1,136 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="Client_Icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Client_Icon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="CMS_Icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\CMS_Icon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="CMS_LOGO" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\CMS_LOGO.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="SinumerikHmi" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\SinumerikHmi.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="Client_Icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Client_Icon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="CMS_Icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\CMS_Icon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="CMS_LOGO" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\CMS_LOGO.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="SinumerikHmi" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\SinumerikHmi.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="CM_ACTIVE_LOGO" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\CM_ACTIVE_LOGO.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 108 KiB |
Generated
+69
-96
@@ -28,106 +28,79 @@
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
this.pictureBox1 = new System.Windows.Forms.PictureBox();
|
||||
this.TitlePanel = new System.Windows.Forms.Panel();
|
||||
this.VersionLBL = new System.Windows.Forms.Label();
|
||||
this.StatusLBL = new System.Windows.Forms.Label();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||
this.TitlePanel.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(151)))), ((int)(((byte)(151)))), ((int)(((byte)(151)))));
|
||||
this.panel1.Location = new System.Drawing.Point(0, 64);
|
||||
this.panel1.Name = "panel1";
|
||||
this.panel1.Size = new System.Drawing.Size(592, 2);
|
||||
this.panel1.TabIndex = 11;
|
||||
//
|
||||
// pictureBox1
|
||||
//
|
||||
this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
|
||||
this.pictureBox1.Image = global::CMS_Client.Properties.Resources.CMS_LOGO;
|
||||
this.pictureBox1.Location = new System.Drawing.Point(457, 64);
|
||||
this.pictureBox1.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.pictureBox1.Name = "pictureBox1";
|
||||
this.pictureBox1.Size = new System.Drawing.Size(135, 60);
|
||||
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||
this.pictureBox1.TabIndex = 10;
|
||||
this.pictureBox1.TabStop = false;
|
||||
//
|
||||
// TitlePanel
|
||||
//
|
||||
this.TitlePanel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.TitlePanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(38)))), ((int)(((byte)(128)))));
|
||||
this.TitlePanel.Controls.Add(this.VersionLBL);
|
||||
this.TitlePanel.Location = new System.Drawing.Point(0, 0);
|
||||
this.TitlePanel.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.TitlePanel.Name = "TitlePanel";
|
||||
this.TitlePanel.Size = new System.Drawing.Size(592, 64);
|
||||
this.TitlePanel.TabIndex = 9;
|
||||
//
|
||||
// VersionLBL
|
||||
//
|
||||
this.VersionLBL.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.VersionLBL.Font = new System.Drawing.Font("Work Sans", 18F, System.Drawing.FontStyle.Bold);
|
||||
this.VersionLBL.ForeColor = System.Drawing.Color.White;
|
||||
this.VersionLBL.Location = new System.Drawing.Point(0, 0);
|
||||
this.VersionLBL.Name = "VersionLBL";
|
||||
this.VersionLBL.Size = new System.Drawing.Size(592, 64);
|
||||
this.VersionLBL.TabIndex = 0;
|
||||
this.VersionLBL.Text = "...";
|
||||
this.VersionLBL.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// StatusLBL
|
||||
//
|
||||
this.StatusLBL.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.StatusLBL.Font = new System.Drawing.Font("Work Sans", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.StatusLBL.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(151)))), ((int)(((byte)(151)))), ((int)(((byte)(151)))));
|
||||
this.StatusLBL.Location = new System.Drawing.Point(0, 124);
|
||||
this.StatusLBL.Name = "StatusLBL";
|
||||
this.StatusLBL.Size = new System.Drawing.Size(592, 349);
|
||||
this.StatusLBL.TabIndex = 12;
|
||||
this.StatusLBL.Text = "...";
|
||||
this.StatusLBL.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// LoadingForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(592, 568);
|
||||
this.Controls.Add(this.StatusLBL);
|
||||
this.Controls.Add(this.panel1);
|
||||
this.Controls.Add(this.pictureBox1);
|
||||
this.Controls.Add(this.TitlePanel);
|
||||
this.Icon = global::CMS_Client.Properties.Resources.Client_Icon;
|
||||
this.Movable = false;
|
||||
this.Name = "LoadingForm";
|
||||
this.Resizable = false;
|
||||
this.ShadowType = MetroFramework.Forms.MetroFormShadowType.AeroShadow;
|
||||
this.ShowIcon = false;
|
||||
this.ShowInTaskbar = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
|
||||
this.Text = "Loading CMS Client";
|
||||
this.TopMost = true;
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
|
||||
this.TitlePanel.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
this.pictureBox1 = new System.Windows.Forms.PictureBox();
|
||||
this.VersionLBL = new System.Windows.Forms.Label();
|
||||
this.StatusLBL = new System.Windows.Forms.Label();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// pictureBox1
|
||||
//
|
||||
this.pictureBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(43)))), ((int)(((byte)(91)))));
|
||||
this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
|
||||
this.pictureBox1.Image = global::CMS_Client.Properties.Resources.CM_ACTIVE_LOGO;
|
||||
this.pictureBox1.Location = new System.Drawing.Point(-1, 0);
|
||||
this.pictureBox1.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.pictureBox1.Name = "pictureBox1";
|
||||
this.pictureBox1.Size = new System.Drawing.Size(971, 203);
|
||||
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||
this.pictureBox1.TabIndex = 10;
|
||||
this.pictureBox1.TabStop = false;
|
||||
//
|
||||
// VersionLBL
|
||||
//
|
||||
this.VersionLBL.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.VersionLBL.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(43)))), ((int)(((byte)(91)))));
|
||||
this.VersionLBL.Font = new System.Drawing.Font("Work Sans", 18F, System.Drawing.FontStyle.Bold);
|
||||
this.VersionLBL.ForeColor = System.Drawing.Color.White;
|
||||
this.VersionLBL.Location = new System.Drawing.Point(1, 0);
|
||||
this.VersionLBL.Name = "VersionLBL";
|
||||
this.VersionLBL.Size = new System.Drawing.Size(592, 35);
|
||||
this.VersionLBL.TabIndex = 0;
|
||||
this.VersionLBL.Text = "...";
|
||||
this.VersionLBL.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// StatusLBL
|
||||
//
|
||||
this.StatusLBL.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.StatusLBL.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(43)))), ((int)(((byte)(91)))));
|
||||
this.StatusLBL.Font = new System.Drawing.Font("Work Sans", 9.749999F, System.Drawing.FontStyle.Bold);
|
||||
this.StatusLBL.ForeColor = System.Drawing.Color.White;
|
||||
this.StatusLBL.Location = new System.Drawing.Point(1, 168);
|
||||
this.StatusLBL.Name = "StatusLBL";
|
||||
this.StatusLBL.Size = new System.Drawing.Size(969, 35);
|
||||
this.StatusLBL.TabIndex = 12;
|
||||
this.StatusLBL.Text = "...";
|
||||
this.StatusLBL.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// LoadingForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(969, 203);
|
||||
this.Controls.Add(this.VersionLBL);
|
||||
this.Controls.Add(this.StatusLBL);
|
||||
this.Controls.Add(this.pictureBox1);
|
||||
this.Icon = global::CMS_Client.Properties.Resources.Client_Icon;
|
||||
this.Movable = false;
|
||||
this.Name = "LoadingForm";
|
||||
this.Resizable = false;
|
||||
this.ShadowType = MetroFramework.Forms.MetroFormShadowType.AeroShadow;
|
||||
this.ShowIcon = false;
|
||||
this.ShowInTaskbar = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
|
||||
this.Text = "Loading CMS Client";
|
||||
this.TopMost = true;
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Panel panel1;
|
||||
private System.Windows.Forms.PictureBox pictureBox1;
|
||||
private System.Windows.Forms.Panel TitlePanel;
|
||||
private System.Windows.Forms.Label VersionLBL;
|
||||
private System.Windows.Forms.Label StatusLBL;
|
||||
}
|
||||
|
||||
@@ -27,9 +27,12 @@ namespace CMS_Client.View
|
||||
|
||||
//Set window Position
|
||||
this.Location = new Point((Screen.PrimaryScreen.Bounds.Width / 2) - (this.Width / 2), (Screen.PrimaryScreen.Bounds.Height / 2) - (this.Height / 2));
|
||||
|
||||
//Setup Product Name
|
||||
VersionLBL.Text = Application.ProductName;
|
||||
|
||||
//Setup product label
|
||||
if (Environment.Is64BitProcess)
|
||||
VersionLBL.Text = "V" + Application.ProductVersion + " - 64 Bit";
|
||||
else
|
||||
VersionLBL.Text = "V" + Application.ProductVersion + " - 32 Bit";
|
||||
}
|
||||
|
||||
|
||||
|
||||
+119
-119
@@ -1,120 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
@@ -134,8 +134,14 @@ namespace CMS_Client.View
|
||||
|
||||
|
||||
//Close Chromium Runtime
|
||||
CfxRuntime.Shutdown();
|
||||
|
||||
try
|
||||
{
|
||||
CfxRuntime.Shutdown();
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -52,8 +52,6 @@ namespace CMS_Client.View
|
||||
private static Process ncprocess;
|
||||
public static String NcCapture { get { return ncCapture; } }
|
||||
private static String ncCapture;
|
||||
public static List<String> NcWindowCommand { get { return ncWindowCommand; } }
|
||||
private static List<String> ncWindowCommand;
|
||||
|
||||
private static int LastX, LastY;
|
||||
private static int LastWidth = 1024, LastHeight = 768;
|
||||
@@ -526,20 +524,7 @@ namespace CMS_Client.View
|
||||
ncCapture = "data:image/png;base64,";
|
||||
|
||||
}
|
||||
|
||||
|
||||
//Send command to Nc window
|
||||
public static void SendCommandKey(String CMD)
|
||||
{
|
||||
if(String.IsNullOrWhiteSpace(CMD))
|
||||
return;
|
||||
|
||||
if (ncprocess != null && ncprocess.MainWindowHandle != IntPtr.Zero && state == NcState.SHOW)
|
||||
{
|
||||
SetForegroundWindow(ncprocess.MainWindowHandle);
|
||||
SendKeys.SendWait(CMD);
|
||||
}
|
||||
}
|
||||
public static void ActivateNcWindow()
|
||||
{
|
||||
SetForegroundWindow(ncprocess.MainWindowHandle);
|
||||
@@ -957,16 +942,6 @@ namespace CMS_Client.View
|
||||
ncWindowHeight = HMI_WINDOW_HEIGHT_DEMO;
|
||||
ncWindowX = HMI_WINDOW_POS_X_DEMO;
|
||||
ncWindowY = HMI_WINDOW_POS_Y_DEMO;
|
||||
ncWindowCommand = new List<string>();
|
||||
ncWindowCommand.Add("^(1)");
|
||||
ncWindowCommand.Add("^(2)");
|
||||
ncWindowCommand.Add("^(3)");
|
||||
ncWindowCommand.Add("^(4)");
|
||||
ncWindowCommand.Add("^(5)");
|
||||
ncWindowCommand.Add("^(6)");
|
||||
ncWindowCommand.Add("^(7)");
|
||||
ncWindowCommand.Add("^(8)");
|
||||
ncWindowCommand.Add("^(9)");
|
||||
}; break;
|
||||
|
||||
// 1: Fanuc
|
||||
@@ -978,7 +953,6 @@ namespace CMS_Client.View
|
||||
ncWindowHeight = HMI_WINDOW_HEIGHT_FANUC;
|
||||
ncWindowX = HMI_WINDOW_POS_X_FANUC;
|
||||
ncWindowY = HMI_WINDOW_POS_Y_FANUC;
|
||||
ncWindowCommand = new List<string>();
|
||||
}; break;
|
||||
|
||||
// 2: Siemens
|
||||
@@ -990,13 +964,6 @@ namespace CMS_Client.View
|
||||
ncWindowHeight = HMI_WINDOW_HEIGHT_SIEMENS;
|
||||
ncWindowX = HMI_WINDOW_POS_X_SIEMENS;
|
||||
ncWindowY = HMI_WINDOW_POS_Y_SIEMENS;
|
||||
ncWindowCommand = new List<string>();
|
||||
ncWindowCommand.Add("{F10}{F1}");
|
||||
ncWindowCommand.Add("{F10}{F2}");
|
||||
ncWindowCommand.Add("{F10}{F3}");
|
||||
ncWindowCommand.Add("{F10}{F4}");
|
||||
ncWindowCommand.Add("{F10}{F5}");
|
||||
ncWindowCommand.Add("{F10}{F6}");
|
||||
}; break;
|
||||
|
||||
// 3: Osai
|
||||
@@ -1008,7 +975,6 @@ namespace CMS_Client.View
|
||||
ncWindowHeight = HMI_WINDOW_HEIGHT_OSAI;
|
||||
ncWindowX = HMI_WINDOW_POS_X_OSAI;
|
||||
ncWindowY = HMI_WINDOW_POS_Y_OSAI;
|
||||
ncWindowCommand = new List<string>();
|
||||
}; break;
|
||||
}
|
||||
}
|
||||
|
||||
Generated
+107
-134
@@ -28,144 +28,117 @@
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.CloseLabel = new System.Windows.Forms.Label();
|
||||
this.VersionLBL = new System.Windows.Forms.Label();
|
||||
this.TitlePanel = new System.Windows.Forms.Panel();
|
||||
this.pictureBox1 = new System.Windows.Forms.PictureBox();
|
||||
this.StatusLBL = new System.Windows.Forms.Label();
|
||||
this.ErrorLBL = new System.Windows.Forms.Label();
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
this.TitlePanel.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// CloseLabel
|
||||
//
|
||||
this.CloseLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.CloseLabel.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.CloseLabel.Font = new System.Drawing.Font("Work Sans Medium", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.CloseLabel.ForeColor = System.Drawing.Color.White;
|
||||
this.CloseLabel.Location = new System.Drawing.Point(545, 0);
|
||||
this.CloseLabel.Margin = new System.Windows.Forms.Padding(3, 0, 2, 0);
|
||||
this.CloseLabel.Name = "CloseLabel";
|
||||
this.CloseLabel.Padding = new System.Windows.Forms.Padding(0, 0, 5, 0);
|
||||
this.CloseLabel.Size = new System.Drawing.Size(47, 64);
|
||||
this.CloseLabel.TabIndex = 3;
|
||||
this.CloseLabel.Text = "X";
|
||||
this.CloseLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||
this.CloseLabel.Click += new System.EventHandler(this.CloseLabel_Click);
|
||||
this.CloseLabel.MouseClick += new System.Windows.Forms.MouseEventHandler(this.CloseLabel_MouseClick);
|
||||
//
|
||||
// VersionLBL
|
||||
//
|
||||
this.VersionLBL.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.VersionLBL.Font = new System.Drawing.Font("Work Sans", 18F, System.Drawing.FontStyle.Bold);
|
||||
this.VersionLBL.ForeColor = System.Drawing.Color.White;
|
||||
this.VersionLBL.Location = new System.Drawing.Point(0, 0);
|
||||
this.VersionLBL.Name = "VersionLBL";
|
||||
this.VersionLBL.Size = new System.Drawing.Size(536, 64);
|
||||
this.VersionLBL.TabIndex = 0;
|
||||
this.VersionLBL.Text = "...";
|
||||
this.VersionLBL.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// TitlePanel
|
||||
//
|
||||
this.TitlePanel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.TitlePanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(38)))), ((int)(((byte)(128)))));
|
||||
this.TitlePanel.Controls.Add(this.VersionLBL);
|
||||
this.TitlePanel.Controls.Add(this.CloseLabel);
|
||||
this.TitlePanel.Location = new System.Drawing.Point(0, 0);
|
||||
this.TitlePanel.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.TitlePanel.Name = "TitlePanel";
|
||||
this.TitlePanel.Size = new System.Drawing.Size(592, 64);
|
||||
this.TitlePanel.TabIndex = 4;
|
||||
//
|
||||
// pictureBox1
|
||||
//
|
||||
this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
|
||||
this.pictureBox1.Image = global::CMS_Client.Properties.Resources.CMS_LOGO;
|
||||
this.pictureBox1.Location = new System.Drawing.Point(457, 64);
|
||||
this.pictureBox1.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.pictureBox1.Name = "pictureBox1";
|
||||
this.pictureBox1.Size = new System.Drawing.Size(135, 60);
|
||||
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||
this.pictureBox1.TabIndex = 6;
|
||||
this.pictureBox1.TabStop = false;
|
||||
//
|
||||
// StatusLBL
|
||||
//
|
||||
this.StatusLBL.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.StatusLBL.Font = new System.Drawing.Font("Work Sans", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.StatusLBL.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(151)))), ((int)(((byte)(151)))), ((int)(((byte)(151)))));
|
||||
this.StatusLBL.Location = new System.Drawing.Point(0, 124);
|
||||
this.StatusLBL.Name = "StatusLBL";
|
||||
this.StatusLBL.Size = new System.Drawing.Size(592, 349);
|
||||
this.StatusLBL.TabIndex = 5;
|
||||
this.StatusLBL.Text = "...";
|
||||
this.StatusLBL.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// ErrorLBL
|
||||
//
|
||||
this.ErrorLBL.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.ErrorLBL.Font = new System.Drawing.Font("Work Sans", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.ErrorLBL.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
|
||||
this.ErrorLBL.Location = new System.Drawing.Point(0, 473);
|
||||
this.ErrorLBL.Name = "ErrorLBL";
|
||||
this.ErrorLBL.Size = new System.Drawing.Size(592, 93);
|
||||
this.ErrorLBL.TabIndex = 7;
|
||||
this.ErrorLBL.Text = "...";
|
||||
this.ErrorLBL.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(151)))), ((int)(((byte)(151)))), ((int)(((byte)(151)))));
|
||||
this.panel1.Location = new System.Drawing.Point(0, 64);
|
||||
this.panel1.Name = "panel1";
|
||||
this.panel1.Size = new System.Drawing.Size(592, 2);
|
||||
this.panel1.TabIndex = 8;
|
||||
//
|
||||
// OpeningForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BorderStyle = MetroFramework.Forms.MetroFormBorderStyle.FixedSingle;
|
||||
this.ClientSize = new System.Drawing.Size(592, 568);
|
||||
this.ControlBox = false;
|
||||
this.Controls.Add(this.panel1);
|
||||
this.Controls.Add(this.ErrorLBL);
|
||||
this.Controls.Add(this.pictureBox1);
|
||||
this.Controls.Add(this.StatusLBL);
|
||||
this.Controls.Add(this.TitlePanel);
|
||||
this.Icon = global::CMS_Client.Properties.Resources.Client_Icon;
|
||||
this.Movable = false;
|
||||
this.Name = "OpeningForm";
|
||||
this.Resizable = false;
|
||||
this.ShadowType = MetroFramework.Forms.MetroFormShadowType.AeroShadow;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
|
||||
this.Text = "Loading CMS Client";
|
||||
this.TopMost = true;
|
||||
this.Load += new System.EventHandler(this.LoadingForm_Load);
|
||||
this.TitlePanel.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
this.VersionLBL = new System.Windows.Forms.Label();
|
||||
this.StatusLBL = new System.Windows.Forms.Label();
|
||||
this.ErrorLBL = new System.Windows.Forms.Label();
|
||||
this.pictureBox1 = new System.Windows.Forms.PictureBox();
|
||||
this.CloseLabel = new System.Windows.Forms.Label();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// VersionLBL
|
||||
//
|
||||
this.VersionLBL.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(43)))), ((int)(((byte)(91)))));
|
||||
this.VersionLBL.Font = new System.Drawing.Font("Work Sans", 18F, System.Drawing.FontStyle.Bold);
|
||||
this.VersionLBL.ForeColor = System.Drawing.Color.White;
|
||||
this.VersionLBL.Location = new System.Drawing.Point(0, 0);
|
||||
this.VersionLBL.Name = "VersionLBL";
|
||||
this.VersionLBL.Size = new System.Drawing.Size(929, 31);
|
||||
this.VersionLBL.TabIndex = 0;
|
||||
this.VersionLBL.Text = "...";
|
||||
this.VersionLBL.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// StatusLBL
|
||||
//
|
||||
this.StatusLBL.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.StatusLBL.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(43)))), ((int)(((byte)(91)))));
|
||||
this.StatusLBL.Font = new System.Drawing.Font("Work Sans", 9.749999F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.StatusLBL.ForeColor = System.Drawing.Color.White;
|
||||
this.StatusLBL.Location = new System.Drawing.Point(0, 169);
|
||||
this.StatusLBL.Name = "StatusLBL";
|
||||
this.StatusLBL.Size = new System.Drawing.Size(502, 34);
|
||||
this.StatusLBL.TabIndex = 5;
|
||||
this.StatusLBL.Text = "...";
|
||||
this.StatusLBL.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// ErrorLBL
|
||||
//
|
||||
this.ErrorLBL.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.ErrorLBL.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(43)))), ((int)(((byte)(91)))));
|
||||
this.ErrorLBL.Font = new System.Drawing.Font("Work Sans", 9.749999F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.ErrorLBL.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
|
||||
this.ErrorLBL.Location = new System.Drawing.Point(501, 169);
|
||||
this.ErrorLBL.Name = "ErrorLBL";
|
||||
this.ErrorLBL.Size = new System.Drawing.Size(468, 34);
|
||||
this.ErrorLBL.TabIndex = 7;
|
||||
this.ErrorLBL.Text = "...";
|
||||
this.ErrorLBL.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// pictureBox1
|
||||
//
|
||||
this.pictureBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(43)))), ((int)(((byte)(91)))));
|
||||
this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
|
||||
this.pictureBox1.Image = global::CMS_Client.Properties.Resources.CM_ACTIVE_LOGO;
|
||||
this.pictureBox1.Location = new System.Drawing.Point(0, 0);
|
||||
this.pictureBox1.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.pictureBox1.Name = "pictureBox1";
|
||||
this.pictureBox1.Size = new System.Drawing.Size(969, 203);
|
||||
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||
this.pictureBox1.TabIndex = 6;
|
||||
this.pictureBox1.TabStop = false;
|
||||
//
|
||||
// CloseLabel
|
||||
//
|
||||
this.CloseLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.CloseLabel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(43)))), ((int)(((byte)(91)))));
|
||||
this.CloseLabel.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.CloseLabel.Font = new System.Drawing.Font("Work Sans Medium", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.CloseLabel.ForeColor = System.Drawing.Color.White;
|
||||
this.CloseLabel.Location = new System.Drawing.Point(922, 0);
|
||||
this.CloseLabel.Margin = new System.Windows.Forms.Padding(3, 0, 2, 0);
|
||||
this.CloseLabel.Name = "CloseLabel";
|
||||
this.CloseLabel.Padding = new System.Windows.Forms.Padding(0, 0, 5, 0);
|
||||
this.CloseLabel.Size = new System.Drawing.Size(47, 57);
|
||||
this.CloseLabel.TabIndex = 3;
|
||||
this.CloseLabel.Text = "X";
|
||||
this.CloseLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||
this.CloseLabel.Click += new System.EventHandler(this.CloseLabel_Click);
|
||||
this.CloseLabel.MouseClick += new System.Windows.Forms.MouseEventHandler(this.CloseLabel_MouseClick);
|
||||
//
|
||||
// OpeningForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BorderStyle = MetroFramework.Forms.MetroFormBorderStyle.FixedSingle;
|
||||
this.ClientSize = new System.Drawing.Size(969, 203);
|
||||
this.ControlBox = false;
|
||||
this.Controls.Add(this.StatusLBL);
|
||||
this.Controls.Add(this.VersionLBL);
|
||||
this.Controls.Add(this.CloseLabel);
|
||||
this.Controls.Add(this.ErrorLBL);
|
||||
this.Controls.Add(this.pictureBox1);
|
||||
this.Icon = global::CMS_Client.Properties.Resources.Client_Icon;
|
||||
this.Movable = false;
|
||||
this.Name = "OpeningForm";
|
||||
this.Padding = new System.Windows.Forms.Padding(0, 60, 0, 0);
|
||||
this.Resizable = false;
|
||||
this.ShadowType = MetroFramework.Forms.MetroFormShadowType.AeroShadow;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
|
||||
this.Text = "Loading CMS Client";
|
||||
this.TopMost = true;
|
||||
this.Load += new System.EventHandler(this.LoadingForm_Load);
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
private System.Windows.Forms.Label CloseLabel;
|
||||
private System.Windows.Forms.Label VersionLBL;
|
||||
private System.Windows.Forms.Panel TitlePanel;
|
||||
private System.Windows.Forms.PictureBox pictureBox1;
|
||||
private System.Windows.Forms.Label StatusLBL;
|
||||
private System.Windows.Forms.Label ErrorLBL;
|
||||
private System.Windows.Forms.Panel panel1;
|
||||
private System.Windows.Forms.Label ErrorLBL;
|
||||
private System.Windows.Forms.PictureBox pictureBox1;
|
||||
private System.Windows.Forms.Label CloseLabel;
|
||||
}
|
||||
}
|
||||
@@ -21,7 +21,7 @@ namespace CMS_Client.View
|
||||
{
|
||||
public partial class OpeningForm : MetroFramework.Forms.MetroForm
|
||||
{
|
||||
public const int TimerTest = 2000;
|
||||
public const int TimerTest = 500;
|
||||
private HttpWebRequest ConnTestRequest;
|
||||
private HttpWebResponse ConnTestResponse;
|
||||
private String ConnTestError;
|
||||
@@ -53,9 +53,9 @@ namespace CMS_Client.View
|
||||
|
||||
//Setup product label
|
||||
if(Environment.Is64BitProcess)
|
||||
VersionLBL.Text = Application.ProductName + " V" + Application.ProductVersion + " - 64 Bit";
|
||||
VersionLBL.Text = "V" + Application.ProductVersion + " - 64 Bit";
|
||||
else
|
||||
VersionLBL.Text = Application.ProductName + " V" + Application.ProductVersion + " - 32 Bit";
|
||||
VersionLBL.Text = "V" + Application.ProductVersion + " - 32 Bit";
|
||||
}
|
||||
|
||||
|
||||
@@ -120,7 +120,7 @@ namespace CMS_Client.View
|
||||
//try to Request
|
||||
if(!Config.ConnectionConfig.BypassReadConfiguration)
|
||||
{
|
||||
setStatus("Connecting to \n" + Config.ConnectionConfig.ServerUrl + ":" + Config.ConnectionConfig.ServerPort + "\n", "");
|
||||
setStatus("Connecting to " + Config.ConnectionConfig.ServerUrl + ":" + Config.ConnectionConfig.ServerPort, "");
|
||||
|
||||
Boolean error=false;
|
||||
do {
|
||||
@@ -267,7 +267,7 @@ namespace CMS_Client.View
|
||||
for (int i = 0; i < WaitDot; i++) dot += ".";
|
||||
|
||||
//Set the status
|
||||
setStatus("Retry connection to \n" + Config.ConnectionConfig.ServerUrl + ":" + Config.ConnectionConfig.ServerPort + "\n" + dot, "Server not found (Error: " + ConnTestError + ")");
|
||||
setStatus("Retry connection to " + Config.ConnectionConfig.ServerUrl + ":" + Config.ConnectionConfig.ServerPort + " " + dot, "Server not found (Error: " + ConnTestError + ")");
|
||||
if (WaitDot < 3)
|
||||
WaitDot++;
|
||||
else
|
||||
@@ -339,6 +339,11 @@ namespace CMS_Client.View
|
||||
private void CloseLabel_MouseClick(object sender, EventArgs e)
|
||||
{
|
||||
Environment.Exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
private void CloseLabel_MouseClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+119
-119
@@ -1,120 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
Binary file not shown.
@@ -4,7 +4,7 @@
|
||||
<familyOpt>false</familyOpt>
|
||||
<shankOpt>false</shankOpt>
|
||||
<magPositionOpt>true</magPositionOpt>
|
||||
<offsetOpt>true</offsetOpt>
|
||||
<offsetOpt>false</offsetOpt>
|
||||
<reviveOpt>true</reviveOpt>
|
||||
<gammaOpt>true</gammaOpt>
|
||||
<lifeOpt>true</lifeOpt>
|
||||
|
||||
@@ -641,7 +641,11 @@ public static class ThreadsFunctions
|
||||
if (ncHandler.numericalControl.NC_IsConnected())
|
||||
{
|
||||
// Read data
|
||||
libraryError = ncHandler.UpdateAndGetPPQueue(out List<DTOQueueModel> queue);
|
||||
libraryError = ncHandler.UpdateQueue();
|
||||
if (libraryError.IsError())
|
||||
ManageLibraryError(libraryError);
|
||||
|
||||
libraryError = ncHandler.GetSelectedProcessQueue(out List<DTOQueueModel> queue);
|
||||
if (libraryError.IsError())
|
||||
ManageLibraryError(libraryError);
|
||||
|
||||
|
||||
@@ -77,6 +77,7 @@ namespace Step.Database.Controllers
|
||||
{
|
||||
MaintenanceModel dbMaint = new MaintenanceModel()
|
||||
{
|
||||
MaintenanceId = GetUserMaintenanceId(dbCtx.Maintenances),
|
||||
CreationDate = DateTime.Now,
|
||||
CounterId = 0,
|
||||
Interval = newMaint.Interval,
|
||||
@@ -97,6 +98,16 @@ namespace Step.Database.Controllers
|
||||
return dbMaint;
|
||||
}
|
||||
|
||||
private int GetUserMaintenanceId(IEnumerable<MaintenanceModel> maintenances)
|
||||
{
|
||||
int max = maintenances.Select(x => x.MaintenanceId).Max();
|
||||
// If there aren't user maintenance return 100
|
||||
if (max < 100)
|
||||
return 100;
|
||||
else
|
||||
return max + 1;
|
||||
}
|
||||
|
||||
public MaintenanceModel Update(int maintenanceId, DTOUpdateMaintenanceModel newMaint)
|
||||
{
|
||||
MaintenanceModel dbMaint = FindById(maintenanceId);
|
||||
|
||||
@@ -5,6 +5,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.Entity;
|
||||
using System.Linq;
|
||||
using static Step.Utils.SupportFunctions;
|
||||
|
||||
namespace Step.Database.Controllers
|
||||
{
|
||||
@@ -261,8 +262,8 @@ namespace Step.Database.Controllers
|
||||
.Where(x => x.ShankId == null || x.ShankId == 0)
|
||||
.ToList();
|
||||
|
||||
return dtoTools;
|
||||
}
|
||||
return dtoTools;
|
||||
}
|
||||
|
||||
public DbNcToolModel AddTool(DTONewNcToolModel dtoTool)
|
||||
{
|
||||
|
||||
@@ -0,0 +1,115 @@
|
||||
using Step.Model.DatabaseModels;
|
||||
using Step.Model.DTOModels;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using static Step.Model.Constants;
|
||||
|
||||
namespace Step.Database.Controllers
|
||||
{
|
||||
public class QueueController : IDisposable
|
||||
{
|
||||
private DatabaseContext dbCtx;
|
||||
public static Dictionary<int, List<DTOQueueModel>> PartProgramQueue = new Dictionary<int, List<DTOQueueModel>>();
|
||||
public static Dictionary<int, int> QueueRunningIndexes = new Dictionary<int, int>();
|
||||
|
||||
public QueueController()
|
||||
{
|
||||
// Initialize database context
|
||||
dbCtx = new DatabaseContext();
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
// Clear database context
|
||||
dbCtx.Dispose();
|
||||
}
|
||||
|
||||
public void UpdateQueue()
|
||||
{
|
||||
dbCtx.Queue.RemoveRange(dbCtx.Queue);
|
||||
|
||||
foreach(var item in PartProgramQueue)
|
||||
{
|
||||
// Create database model
|
||||
var dbRows = item.Value.Select(x => new QueueItemsModel()
|
||||
{
|
||||
Id = x.Id,
|
||||
AbsolutePath = x.AbsolutePath,
|
||||
PartProgramName = x.PartProgramName,
|
||||
Process = item.Key, // Process
|
||||
Reps = x.Reps,
|
||||
RemainingReps = x.RemainingReps,
|
||||
Status = (int)x.Status
|
||||
}).ToList();
|
||||
|
||||
// Add to db
|
||||
dbCtx.Queue.AddRange(dbRows);
|
||||
}
|
||||
|
||||
dbCtx.SaveChanges();
|
||||
}
|
||||
|
||||
public void UpdateReps(int processId, int id, int reps)
|
||||
{
|
||||
QueueItemsModel item = dbCtx.Queue.Where(x => x.Id == id && x.Process == processId).FirstOrDefault();
|
||||
// Update reps
|
||||
item.Reps = reps;
|
||||
item.RemainingReps = reps;
|
||||
|
||||
dbCtx.SaveChanges();
|
||||
}
|
||||
|
||||
public void DeleteItem(int processId, int id)
|
||||
{
|
||||
QueueItemsModel item = dbCtx.Queue.Where(x => x.Id == id && x.Process == processId).FirstOrDefault();
|
||||
|
||||
dbCtx.Queue.Remove(item);
|
||||
|
||||
dbCtx.SaveChanges();
|
||||
}
|
||||
|
||||
public void ReadAndPopulateQueue()
|
||||
{
|
||||
var dbQueue = dbCtx.Queue.ToList();
|
||||
bool foundData = false;
|
||||
foreach(var entity in dbQueue)
|
||||
{
|
||||
// Check if process queue exists
|
||||
if (!PartProgramQueue.ContainsKey(entity.Process))
|
||||
PartProgramQueue.Add(entity.Process, new List<DTOQueueModel>());
|
||||
|
||||
// Add db row to queue
|
||||
PartProgramQueue[entity.Process].Add(new DTOQueueModel()
|
||||
{
|
||||
Id = entity.Id,
|
||||
AbsolutePath = entity.AbsolutePath,
|
||||
PartProgramName = entity.PartProgramName,
|
||||
Reps = entity.Reps,
|
||||
RemainingReps = entity.RemainingReps,
|
||||
Status = (QUEUE_ITEM_STATUS)entity.Status
|
||||
});
|
||||
|
||||
if ((QUEUE_ITEM_STATUS)entity.Status != QUEUE_ITEM_STATUS.FINISHED && !foundData)
|
||||
{
|
||||
QueueRunningIndexes[entity.Process] = entity.Id - 1;
|
||||
foundData = true;
|
||||
}
|
||||
|
||||
if ((QUEUE_ITEM_STATUS)entity.Status == QUEUE_ITEM_STATUS.RUNNING)
|
||||
QueueRunningIndexes[entity.Process] = entity.Id - 1;
|
||||
}
|
||||
}
|
||||
|
||||
public void UpdateQueueIdsAndSave(int processId)
|
||||
{
|
||||
// Fix new ids
|
||||
for (int i = 0; i < PartProgramQueue[processId].Count(); i++)
|
||||
PartProgramQueue[processId][i].Id = i + 1;
|
||||
|
||||
UpdateQueue();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -34,6 +34,7 @@ namespace Step.Database
|
||||
public DbSet<DbNcShankModel> Shanks { get; set; }
|
||||
public DbSet<DbNcToolModel> Tools { get; set; }
|
||||
public DbSet<DbNcMagazinePositionModel> MagazinePositions { get; set; }
|
||||
public DbSet<QueueItemsModel> Queue { get; set; }
|
||||
|
||||
// Create migration string
|
||||
public static string CONNECTION_STRING = "Server = " + "localhost" + "; Database=" + DATABASE_NAME + ";Uid=" + DATABASE_USER + ";Pwd=" + DATABASE_PWD + ";";
|
||||
@@ -76,12 +77,16 @@ namespace Step.Database
|
||||
{
|
||||
maintenancesController.CheckDifferencesFromDbAndXml();
|
||||
}
|
||||
|
||||
// Get functionality and PLC default false functionality
|
||||
using (FunctionsAccessController functionsAccess = new FunctionsAccessController())
|
||||
{
|
||||
FunctionsAccessConfig = functionsAccess.FindAll();
|
||||
AllFunctionalityDisabled = functionsAccess.FindAllFunctionsAndDisableAll();
|
||||
}
|
||||
|
||||
using (QueueController queueController = new QueueController())
|
||||
queueController.ReadAndPopulateQueue();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -133,6 +138,7 @@ namespace Step.Database
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Set machine info into static server config
|
||||
using (MachinesController machinesController = new MachinesController())
|
||||
{
|
||||
|
||||
File diff suppressed because one or more lines are too long
+1
-1
@@ -13,7 +13,7 @@ namespace Step.Database.Migrations
|
||||
|
||||
string IMigrationMetadata.Id
|
||||
{
|
||||
get { return "201808031122175_InitMigration"; }
|
||||
get { return "201809181022557_InitMigration"; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Source
|
||||
+16
-1
@@ -172,7 +172,7 @@ namespace Step.Database.Migrations
|
||||
"dbo.maintenance",
|
||||
c => new
|
||||
{
|
||||
id = c.Int(nullable: false, identity: true),
|
||||
id = c.Int(nullable: false),
|
||||
intervall = c.Double(),
|
||||
deadline = c.DateTime(nullable: false, precision: 0),
|
||||
type = c.Int(nullable: false),
|
||||
@@ -217,6 +217,20 @@ namespace Step.Database.Migrations
|
||||
.ForeignKey("dbo.maintenance", t => t.maintenance, cascadeDelete: true)
|
||||
.Index(t => t.maintenance);
|
||||
|
||||
CreateTable(
|
||||
"dbo.queue",
|
||||
c => new
|
||||
{
|
||||
id = c.Int(nullable: false),
|
||||
process = c.Int(nullable: false),
|
||||
part_program_name = c.String(unicode: false),
|
||||
reps = c.Int(nullable: false),
|
||||
remaining_reps = c.Int(nullable: false),
|
||||
absolute_path = c.String(unicode: false),
|
||||
status = c.Int(nullable: false),
|
||||
})
|
||||
.PrimaryKey(t => new { t.id, t.process });
|
||||
|
||||
CreateTable(
|
||||
"dbo.session",
|
||||
c => new
|
||||
@@ -259,6 +273,7 @@ namespace Step.Database.Migrations
|
||||
DropIndex("dbo.tool", new[] { "shank_id" });
|
||||
DropIndex("dbo.tool", new[] { "family_id" });
|
||||
DropTable("dbo.session");
|
||||
DropTable("dbo.queue");
|
||||
DropTable("dbo.performed_maintenance");
|
||||
DropTable("dbo.maintenance_note");
|
||||
DropTable("dbo.maintenance");
|
||||
File diff suppressed because one or more lines are too long
@@ -73,15 +73,16 @@
|
||||
<Compile Include="Controllers\FunctionsAccessController.cs" />
|
||||
<Compile Include="Controllers\MachinesController.cs" />
|
||||
<Compile Include="Controllers\MaintenancesController.cs" />
|
||||
<Compile Include="Controllers\QueueController.cs" />
|
||||
<Compile Include="Controllers\NcToolManagerController.cs" />
|
||||
<Compile Include="Controllers\SessionsController.cs" />
|
||||
<Compile Include="Controllers\UsersController.cs" />
|
||||
<Compile Include="Controllers\MachinesUsersController.cs" />
|
||||
<Compile Include="Controllers\UserSoftkeysController.cs" />
|
||||
<Compile Include="DatabaseContext.cs" />
|
||||
<Compile Include="Migrations\201808031122175_InitMigration.cs" />
|
||||
<Compile Include="Migrations\201808031122175_InitMigration.Designer.cs">
|
||||
<DependentUpon>201808031122175_InitMigration.cs</DependentUpon>
|
||||
<Compile Include="Migrations\201809181022557_InitMigration.cs" />
|
||||
<Compile Include="Migrations\201809181022557_InitMigration.Designer.cs">
|
||||
<DependentUpon>201809181022557_InitMigration.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Migrations\Configuration.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
@@ -117,8 +118,8 @@
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Migrations\201808031122175_InitMigration.resx">
|
||||
<DependentUpon>201808031122175_InitMigration.cs</DependentUpon>
|
||||
<EmbeddedResource Include="Migrations\201809181022557_InitMigration.resx">
|
||||
<DependentUpon>201809181022557_InitMigration.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
|
||||
@@ -7,7 +7,10 @@ namespace Step.Model
|
||||
public static class Constants
|
||||
{
|
||||
public static readonly string[] VALID_FILE_EXTENSIONS = { "", ".txt", ".cnc", ".ini", ".mpf", ".spf" };
|
||||
public const double EPSILON = 0.001;
|
||||
public static readonly string[] VALID_IMAGE_EXTENSIONS = { ".jpg", ".jpeg", ".png" };
|
||||
public const double EPSILON = 0.001;
|
||||
public static string QUEUE_FILE_NAME = "pp";
|
||||
|
||||
|
||||
public enum ROLE_IDS
|
||||
{
|
||||
@@ -202,7 +205,8 @@ namespace Step.Model
|
||||
|
||||
// File paths
|
||||
public const string MAINTENANCE_ATTACHMENT_PATH = "C:\\CMS\\STEP\\attachment\\";
|
||||
public const string TEMP_FILE = @"C:/CMS/STEP/tmp/pp/";
|
||||
public const string PART_PRG_IMAGES = @"C:/CMS/STEP/pp_img/";
|
||||
public const string TEMP_FILE = @"C:\CMS\STEP\tmp\pp\";
|
||||
public const string QUEUE_TMP_FILE = @"C:\CMS\STEP\tmp\pp\queue\";
|
||||
public const string PART_PRG_IMAGES = @"C:\CMS\STEP\pp_img/";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,14 +6,16 @@ namespace Step.Model.DTOModels
|
||||
{
|
||||
public class DTOProcessesDataModel
|
||||
{
|
||||
public bool isRunning;
|
||||
public ushort selectedProcess;
|
||||
public byte selectedAxis;
|
||||
public bool IsRunning;
|
||||
public ushort SelectedProcess;
|
||||
public byte SelectedAxis;
|
||||
public QUEUE_STATUS QueueStatus;
|
||||
public bool StartStopQueueEnabled;
|
||||
public List<ProcessModel> processes;
|
||||
|
||||
public DTOProcessesDataModel()
|
||||
{
|
||||
isRunning = false;
|
||||
IsRunning = false;
|
||||
processes = new List<ProcessModel>();
|
||||
}
|
||||
|
||||
@@ -24,12 +26,12 @@ namespace Step.Model.DTOModels
|
||||
if (item == null)
|
||||
return false;
|
||||
|
||||
if (isRunning != item.isRunning)
|
||||
if (IsRunning != item.IsRunning)
|
||||
return false;
|
||||
|
||||
if (selectedProcess != item.selectedProcess)
|
||||
if (SelectedProcess != item.SelectedProcess)
|
||||
return false;
|
||||
if (selectedAxis != item.selectedAxis)
|
||||
if (SelectedAxis != item.SelectedAxis)
|
||||
return false;
|
||||
// If the numbers of the list's elemets are different, lists are different
|
||||
if (item.processes.Count != processes.Count)
|
||||
@@ -39,6 +41,12 @@ namespace Step.Model.DTOModels
|
||||
if (!listAreEquals)
|
||||
return false;
|
||||
|
||||
if (QueueStatus != item.QueueStatus)
|
||||
return false;
|
||||
|
||||
if (StartStopQueueEnabled != item.StartStopQueueEnabled)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ namespace Step.Model.DatabaseModels
|
||||
public class MaintenanceModel
|
||||
{
|
||||
[Key]
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Column("id")]
|
||||
public int MaintenanceId { get; set; }
|
||||
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Step.Model.DatabaseModels
|
||||
{
|
||||
[Table("queue")]
|
||||
public class QueueItemsModel
|
||||
{
|
||||
[Key]
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Column("id", Order = 0)]
|
||||
public int Id { get; set; }
|
||||
|
||||
[Key]
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Column("process", Order = 1)]
|
||||
public int Process { get; set; }
|
||||
|
||||
[Column("part_program_name")]
|
||||
public string PartProgramName { get; set; }
|
||||
|
||||
[Column("reps")]
|
||||
public int Reps { get; set; }
|
||||
|
||||
[Column("remaining_reps")]
|
||||
public int RemainingReps { get; set; }
|
||||
|
||||
[Column("absolute_path")]
|
||||
public string AbsolutePath { get; set; }
|
||||
|
||||
[Column("status")]
|
||||
public int Status { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -82,6 +82,7 @@
|
||||
<Compile Include="DatabaseModels\NcShankModel.cs" />
|
||||
<Compile Include="DatabaseModels\NcToolModel.cs" />
|
||||
<Compile Include="DatabaseModels\PerformedMaintenanceModel.cs" />
|
||||
<Compile Include="DatabaseModels\QueueItemsModel.cs" />
|
||||
<Compile Include="DatabaseModels\RoleModel.cs">
|
||||
<Generator>DtsGenerator</Generator>
|
||||
<LastGenOutput>RoleModel.cs.d.ts</LastGenOutput>
|
||||
|
||||
+226
-115
@@ -18,16 +18,14 @@ using System.Linq;
|
||||
using static CMS_CORE_Library.DataStructures;
|
||||
using static Step.Config.ServerConfig;
|
||||
using static Step.Model.Constants;
|
||||
using static Step.Database.Controllers.QueueController;
|
||||
|
||||
namespace Step.NC
|
||||
{
|
||||
public class NcHandler : IDisposable
|
||||
{
|
||||
public Nc numericalControl;
|
||||
|
||||
public static Dictionary<int, List<DTOQueueModel>> PartProgramQueue = new Dictionary<int, List<DTOQueueModel>>();
|
||||
private static int QueueRunningIndex = 0;
|
||||
|
||||
|
||||
public NcHandler()
|
||||
{
|
||||
// Choose NC
|
||||
@@ -80,7 +78,47 @@ namespace Step.NC
|
||||
public CmsError GetFileInfo(string path, out InfoFile fileInfo)
|
||||
{
|
||||
fileInfo = new InfoFile();
|
||||
return numericalControl.FILES_RGetFileInfo(path, ref fileInfo);
|
||||
|
||||
if (File.Exists(path))
|
||||
return GetQueueFileInfo(path, out fileInfo);
|
||||
else
|
||||
return numericalControl.FILES_RGetFileInfo(path, ref fileInfo);
|
||||
}
|
||||
|
||||
public CmsError GetQueueFileInfo(string path, out InfoFile fileInfo)
|
||||
{
|
||||
FileInfo fileData = new FileInfo(path);
|
||||
StreamReader fileRead = new StreamReader(path);
|
||||
int count = 0;
|
||||
string line = "";
|
||||
|
||||
fileInfo = new InfoFile()
|
||||
{
|
||||
Name = fileData.Name,
|
||||
CreationDate = fileData.CreationTime,
|
||||
LastModDate = fileData.LastAccessTime,
|
||||
AbsolutePath = path
|
||||
};
|
||||
|
||||
fileInfo.Content = new List<string>();
|
||||
while ((line = fileRead.ReadLine()) != null && count < 10)
|
||||
{
|
||||
fileInfo.Content.Add(line);
|
||||
count++;
|
||||
}
|
||||
fileRead.Close();
|
||||
|
||||
foreach (string ext in VALID_IMAGE_EXTENSIONS)
|
||||
{
|
||||
string imagePath = IMAGES_PATH + "/" + fileInfo.Name + ext;
|
||||
if (File.Exists(imagePath))
|
||||
{
|
||||
fileInfo.PreviewBase64 = "data:image/" + ext + ";base64," + Convert.ToBase64String(File.ReadAllBytes(imagePath));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
public CmsError GetActiveProgramInfo(out DTOActiveProgramDataModel dtoData)
|
||||
@@ -182,15 +220,13 @@ namespace Step.NC
|
||||
return numericalControl.FILES_WSetActiveProgram(selectedProcess, newFilePath, ref programData);
|
||||
}
|
||||
|
||||
public CmsError UploadPartProgramAddToQueue(string localPath, string fileName, int reps, out DTOQueueModel queueItem)
|
||||
public CmsError UploadPartProgramAndAddToQueue(string localPath, string fileName, int reps, out DTOQueueModel queueItem)
|
||||
{
|
||||
queueItem = new DTOQueueModel();
|
||||
// Upload to NC
|
||||
CmsError cmsError = UploadPartProgram(localPath, fileName, out string newFilePath);
|
||||
|
||||
|
||||
// Get selectedProcess id
|
||||
ushort selectedProcess = 0;
|
||||
cmsError = numericalControl.PROC_RSelectedProcess(ref selectedProcess);
|
||||
CmsError cmsError = numericalControl.PROC_RSelectedProcess(ref selectedProcess);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
@@ -199,7 +235,7 @@ namespace Step.NC
|
||||
PartProgramName = fileName,
|
||||
Reps = reps,
|
||||
RemainingReps = reps,
|
||||
AbsolutePath = newFilePath,
|
||||
AbsolutePath = localPath + fileName,
|
||||
Status = QUEUE_ITEM_STATUS.NOT_ACTIVE
|
||||
};
|
||||
|
||||
@@ -212,111 +248,142 @@ namespace Step.NC
|
||||
// Add new process to
|
||||
PartProgramQueue[selectedProcess].Add(queueItem);
|
||||
|
||||
|
||||
using (QueueController queueController = new QueueController())
|
||||
{
|
||||
queueController.UpdateQueue();
|
||||
}
|
||||
|
||||
return cmsError;
|
||||
}
|
||||
|
||||
public CmsError UpdateAndGetPPQueue(out List<DTOQueueModel> queueList)
|
||||
public CmsError UpdateQueue()
|
||||
{
|
||||
// Get selectedProcess id
|
||||
List<QueueStatusModel> queueData = new List<QueueStatusModel>();
|
||||
|
||||
CmsError cmsError = numericalControl.FILES_RQueueData(ref queueData);
|
||||
|
||||
foreach(var item in queueData)
|
||||
{
|
||||
if (!QueueRunningIndexes.ContainsKey(item.ProcessId))
|
||||
QueueRunningIndexes.Add(item.ProcessId, 0);
|
||||
|
||||
if (item.LoadNextProgram)
|
||||
{
|
||||
// Check if there is already a pp queue for the selected process
|
||||
if (PartProgramQueue.ContainsKey(item.ProcessId))
|
||||
{
|
||||
// Check if runnig exist
|
||||
if (PartProgramQueue[item.ProcessId].ElementAtOrDefault(QueueRunningIndexes[item.ProcessId]) != null)
|
||||
{
|
||||
var actualItem = PartProgramQueue[item.ProcessId][QueueRunningIndexes[item.ProcessId]];
|
||||
// Check if there are remaining reps before change part program
|
||||
if (actualItem.RemainingReps > 1)
|
||||
actualItem.RemainingReps -= 1;
|
||||
else
|
||||
{
|
||||
// Set as finished
|
||||
actualItem.RemainingReps = 0;
|
||||
actualItem.Status = QUEUE_ITEM_STATUS.FINISHED;
|
||||
if (PartProgramQueue[item.ProcessId].ElementAtOrDefault(QueueRunningIndexes[item.ProcessId] + 1) != null)
|
||||
// if next part program exists, set next pp as current pp
|
||||
QueueRunningIndexes[item.ProcessId] += 1;
|
||||
|
||||
// Change part program
|
||||
cmsError = numericalControl
|
||||
.FILES_WLoadNextPartProgram(
|
||||
PartProgramQueue[item.ProcessId][QueueRunningIndexes[item.ProcessId]].AbsolutePath,
|
||||
QUEUE_FILE_NAME
|
||||
);
|
||||
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check if queue exists for the process
|
||||
if (PartProgramQueue.ContainsKey(item.ProcessId) && PartProgramQueue[item.ProcessId].ElementAtOrDefault(QueueRunningIndexes[item.ProcessId]) != null)
|
||||
{
|
||||
// Set status based on queue status
|
||||
if (item.Status == QUEUE_STATUS.RUNNING || item.Status == QUEUE_STATUS.CLOSING)
|
||||
PartProgramQueue[item.ProcessId][QueueRunningIndexes[item.ProcessId]].Status = QUEUE_ITEM_STATUS.RUNNING;
|
||||
|
||||
if (item.Status == QUEUE_STATUS.NOT_ACTIVE)
|
||||
PartProgramQueue[item.ProcessId][QueueRunningIndexes[item.ProcessId]].Status = QUEUE_ITEM_STATUS.NOT_ACTIVE;
|
||||
|
||||
if (item.Status == QUEUE_STATUS.WAITING_OPERATOR)
|
||||
PartProgramQueue[item.ProcessId][QueueRunningIndexes[item.ProcessId]].Status = QUEUE_ITEM_STATUS.WAITING_OPERATOR;
|
||||
}
|
||||
}
|
||||
// Update data
|
||||
using (QueueController queueController = new QueueController())
|
||||
{
|
||||
queueController.UpdateQueue();
|
||||
}
|
||||
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
public CmsError GetSelectedProcessQueue(out List<DTOQueueModel> queueList)
|
||||
{
|
||||
queueList = new List<DTOQueueModel>();
|
||||
// Get selectedProcess id
|
||||
// Get selected process
|
||||
ushort selectedProcess = 0;
|
||||
CmsError cmsError = numericalControl.PROC_RSelectedProcess(ref selectedProcess);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
QueueStatusModel queueData = new QueueStatusModel();
|
||||
|
||||
cmsError = numericalControl.FILES_RQueueData(ref queueData);
|
||||
|
||||
if (queueData.LoadNextProgram)
|
||||
{
|
||||
// Check if there is already a pp queue for the selected process
|
||||
if (PartProgramQueue.ContainsKey(selectedProcess))
|
||||
{
|
||||
// Check if runnig exist
|
||||
if (PartProgramQueue[selectedProcess].ElementAtOrDefault(QueueRunningIndex) != null)
|
||||
{
|
||||
var actualItem = PartProgramQueue[selectedProcess][QueueRunningIndex];
|
||||
// Check if there are remaining reps before change part program
|
||||
if (actualItem.RemainingReps > 1)
|
||||
actualItem.RemainingReps -= 1;
|
||||
else
|
||||
{
|
||||
// Set as finished
|
||||
actualItem.RemainingReps = 0;
|
||||
actualItem.Status = QUEUE_ITEM_STATUS.FINISHED;
|
||||
if (PartProgramQueue[selectedProcess].ElementAtOrDefault(QueueRunningIndex + 1) != null)
|
||||
// if next part program exists, set next pp as current pp
|
||||
QueueRunningIndex += 1;
|
||||
|
||||
// Change part program
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Set status
|
||||
if (PartProgramQueue.ContainsKey(selectedProcess) && PartProgramQueue[selectedProcess].ElementAtOrDefault(QueueRunningIndex) != null)
|
||||
{
|
||||
if (queueData.Status == QUEUE_STATUS.RUNNING || queueData.Status == QUEUE_STATUS.CLOSING)
|
||||
PartProgramQueue[selectedProcess][QueueRunningIndex].Status = QUEUE_ITEM_STATUS.RUNNING;
|
||||
|
||||
if (queueData.Status == QUEUE_STATUS.NOT_ACTIVE)
|
||||
PartProgramQueue[selectedProcess][QueueRunningIndex].Status = QUEUE_ITEM_STATUS.NOT_ACTIVE;
|
||||
|
||||
if (queueData.Status == QUEUE_STATUS.WAITING_OPERATOR)
|
||||
PartProgramQueue[selectedProcess][QueueRunningIndex].Status = QUEUE_ITEM_STATUS.WAITING_OPERATOR;
|
||||
|
||||
}
|
||||
|
||||
return GetProcessQueue(selectedProcess, out queueList);
|
||||
}
|
||||
|
||||
public CmsError GetProcessQueue(int processId, out List<DTOQueueModel> queueList)
|
||||
{
|
||||
queueList = new List<DTOQueueModel>();
|
||||
// Check if there is already a pp queue
|
||||
if (!PartProgramQueue.ContainsKey(processId))
|
||||
if (!PartProgramQueue.ContainsKey(selectedProcess))
|
||||
return INCORRECT_PARAMETERS_ERROR;
|
||||
|
||||
// Add new process to
|
||||
queueList = PartProgramQueue[processId];
|
||||
queueList = PartProgramQueue[selectedProcess];
|
||||
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
public CmsError SwapQueueItems(int processId, int item1Index, int item2Index)
|
||||
//public CmsError SwapQueueItems(int processId, int item1Index, int item2Index)
|
||||
//{
|
||||
// item1Index = item1Index - 1;
|
||||
// item2Index = item2Index - 1;
|
||||
|
||||
// // Check if there is a queue
|
||||
// if (!PartProgramQueue.ContainsKey(processId))
|
||||
// return INCORRECT_PARAMETERS_ERROR;
|
||||
// // Check if items exists
|
||||
// if (PartProgramQueue[processId].ElementAtOrDefault(item1Index) == null || PartProgramQueue[processId].ElementAtOrDefault(item2Index) == null)
|
||||
// return INCORRECT_PARAMETERS_ERROR;
|
||||
|
||||
// // Create a item
|
||||
// DTOQueueModel tmp = PartProgramQueue[processId][item1Index];
|
||||
|
||||
// // Swap item 1 with 2
|
||||
// PartProgramQueue[processId][item1Index] = PartProgramQueue[processId][item2Index];
|
||||
// // Swap 2 with tmp
|
||||
// PartProgramQueue[processId][item2Index] = tmp;
|
||||
|
||||
// // Swap ids
|
||||
// PartProgramQueue[processId][item2Index].Id = item2Index + 1;
|
||||
// // Swap 2 with tmp
|
||||
// PartProgramQueue[processId][item1Index].Id = item1Index + 1;
|
||||
|
||||
// return NO_ERROR;
|
||||
//}
|
||||
|
||||
public CmsError MoveQueueItems(int processId, int itemId, int newIndex, out List<DTOQueueModel> queue)
|
||||
{
|
||||
item1Index = item1Index - 1;
|
||||
item2Index = item2Index - 1;
|
||||
itemId = itemId - 1;
|
||||
|
||||
// Check if there is a queue
|
||||
if (!PartProgramQueue.ContainsKey(processId))
|
||||
return INCORRECT_PARAMETERS_ERROR;
|
||||
// Check if items exists
|
||||
if (PartProgramQueue[processId].ElementAtOrDefault(item1Index) == null || PartProgramQueue[processId].ElementAtOrDefault(item2Index) == null)
|
||||
return INCORRECT_PARAMETERS_ERROR;
|
||||
|
||||
// Create a item
|
||||
DTOQueueModel tmp = PartProgramQueue[processId][item1Index];
|
||||
|
||||
// Swap item 1 with 2
|
||||
PartProgramQueue[processId][item1Index] = PartProgramQueue[processId][item2Index];
|
||||
// Swap 2 with tmp
|
||||
PartProgramQueue[processId][item2Index] = tmp;
|
||||
|
||||
// Swap ids
|
||||
PartProgramQueue[processId][item2Index].Id = item2Index + 1;
|
||||
// Swap 2 with tmp
|
||||
PartProgramQueue[processId][item1Index].Id = item1Index + 1;
|
||||
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
public CmsError MoveQueueItems(int processId, int oldIndex, int newIndex, out List<DTOQueueModel> queue)
|
||||
{
|
||||
oldIndex = oldIndex - 1;
|
||||
newIndex = newIndex - 1;
|
||||
// Update queue running index
|
||||
if (itemId < QueueRunningIndexes[processId] && newIndex >= QueueRunningIndexes[processId])
|
||||
QueueRunningIndexes[processId] -= 1;
|
||||
if (newIndex <= QueueRunningIndexes[processId] && itemId > QueueRunningIndexes[processId])
|
||||
QueueRunningIndexes[processId] += 1;
|
||||
|
||||
queue = new List<DTOQueueModel>();
|
||||
|
||||
@@ -324,18 +391,21 @@ namespace Step.NC
|
||||
if (!PartProgramQueue.ContainsKey(processId))
|
||||
return INCORRECT_PARAMETERS_ERROR;
|
||||
// Check if items exists
|
||||
if (PartProgramQueue[processId].ElementAtOrDefault(oldIndex) == null)
|
||||
if (PartProgramQueue[processId].ElementAtOrDefault(itemId) == null)
|
||||
return INCORRECT_PARAMETERS_ERROR;
|
||||
|
||||
var item = PartProgramQueue[processId][oldIndex];
|
||||
var item = PartProgramQueue[processId][itemId];
|
||||
// Remove item in the old positions
|
||||
PartProgramQueue[processId].RemoveAt(oldIndex);
|
||||
PartProgramQueue[processId].RemoveAt(itemId);
|
||||
// Add in the new position
|
||||
PartProgramQueue[processId].Insert(newIndex, item);
|
||||
|
||||
// Insert new ids
|
||||
// Fix new ids
|
||||
for (int i = 0; i < PartProgramQueue[processId].Count(); i++)
|
||||
PartProgramQueue[processId][i].Id = i + 1;
|
||||
|
||||
using (QueueController queueController = new QueueController())
|
||||
queueController.UpdateQueueIdsAndSave(processId);
|
||||
|
||||
queue = PartProgramQueue[processId];
|
||||
|
||||
@@ -361,10 +431,14 @@ namespace Step.NC
|
||||
|
||||
model = PartProgramQueue[processId][itemIndex];
|
||||
|
||||
// Update database
|
||||
using (QueueController queueController = new QueueController())
|
||||
queueController.UpdateReps(processId, itemIndex, reps);
|
||||
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
public CmsError RemoveFromQueue(int id, int processId)
|
||||
public CmsError RemoveFromQueue(int processId, int id)
|
||||
{
|
||||
// Check if there is a queue
|
||||
if (PartProgramQueue.ContainsKey(processId))
|
||||
@@ -378,6 +452,11 @@ namespace Step.NC
|
||||
PartProgramQueue[processId].Remove(tmpQueueItem);
|
||||
}
|
||||
|
||||
// Update database data
|
||||
using (QueueController queueController = new QueueController())
|
||||
queueController.UpdateQueueIdsAndSave(processId);
|
||||
|
||||
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
@@ -385,22 +464,23 @@ namespace Step.NC
|
||||
{
|
||||
// Check if there is a queue
|
||||
if (PartProgramQueue.ContainsKey(processId))
|
||||
{
|
||||
PartProgramQueue[processId] = new List<DTOQueueModel>();
|
||||
}
|
||||
|
||||
// Update db
|
||||
using (QueueController queueController = new QueueController())
|
||||
queueController.UpdateQueue();
|
||||
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
public CmsError StartWorkingQueue(int processId)
|
||||
{
|
||||
|
||||
return NO_ERROR;
|
||||
return numericalControl.FILES_WStartQueue();
|
||||
}
|
||||
|
||||
public CmsError StopWorkingQueue(int processId)
|
||||
{
|
||||
return NO_ERROR;
|
||||
return numericalControl.FILES_WStopQueue();
|
||||
}
|
||||
|
||||
#endregion File manager
|
||||
@@ -671,22 +751,34 @@ namespace Step.NC
|
||||
Visible = tmpProcPP.Visible
|
||||
});
|
||||
|
||||
if (tmpProcPP.IsSelected && processesData.selectedProcess == 0) // TODO remove with multi-process
|
||||
processesData.selectedProcess = (ushort)tmpProcPP.Id;
|
||||
if (tmpProcPP.IsSelected && processesData.SelectedProcess == 0) // TODO remove with multi-process
|
||||
processesData.SelectedProcess = (ushort)tmpProcPP.Id;
|
||||
|
||||
// Check if there are running process
|
||||
if (!processesData.isRunning)
|
||||
if (!processesData.IsRunning)
|
||||
{
|
||||
// Get process status
|
||||
cmsError = numericalControl.PROC_RStatus(i, ref status);
|
||||
if (status == PROC_STATUS.RUN || status == PROC_STATUS.HOLD)
|
||||
processesData.isRunning = true;
|
||||
processesData.IsRunning = true;
|
||||
else
|
||||
status = PROC_STATUS.IDLE;
|
||||
}
|
||||
}
|
||||
// Read selected axes
|
||||
cmsError = numericalControl.AXES_RSelectedAxis(ref processesData.selectedAxis);
|
||||
cmsError = numericalControl.AXES_RSelectedAxis(ref processesData.SelectedAxis);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
QueueStatusModel queueStatus = new QueueStatusModel();
|
||||
// Get queue data
|
||||
cmsError = numericalControl.FILES_RQueueDataByProcess(ref queueStatus, processesData.SelectedProcess);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
// Set data
|
||||
processesData.QueueStatus = queueStatus.Status;
|
||||
processesData.StartStopQueueEnabled = queueStatus.StartStopQueueEnabled;
|
||||
|
||||
return cmsError;
|
||||
}
|
||||
@@ -1171,7 +1263,7 @@ namespace Step.NC
|
||||
config = new ToolTableConfiguration();
|
||||
CmsError cmsError = numericalControl.TOOLS_RConfiguration(ref config);
|
||||
|
||||
if (NcConfig.NcVendor != NC_VENDOR.SIEMENS && NcConfig.NcVendor != NC_VENDOR.DEMO)
|
||||
if (NcConfig.NcVendor != NC_VENDOR.SIEMENS)
|
||||
{
|
||||
config.FamilyOptionActive = true;
|
||||
config.MultitoolOptionActive = true;
|
||||
@@ -1181,6 +1273,7 @@ namespace Step.NC
|
||||
{
|
||||
config.MultitoolOptionActive = false;
|
||||
categories.Add("shankType");
|
||||
config.ToolsConfiguration = config.ToolsConfiguration.Where(x => !(x.Name == "shankId")).ToList();
|
||||
}
|
||||
|
||||
if (!ToolManagerConfig.FamilyOpt)
|
||||
@@ -1340,6 +1433,12 @@ namespace Step.NC
|
||||
return numericalControl.NC_WLanguage(language);
|
||||
}
|
||||
|
||||
public CmsError SetActiveScreen(short screen)
|
||||
{
|
||||
// Set to true power on data by id
|
||||
return numericalControl.NC_SetScreenVisible((Nc.SCREEN_PAGE) screen);
|
||||
}
|
||||
|
||||
#endregion Write data
|
||||
|
||||
#region Siemens Tools
|
||||
@@ -1514,16 +1613,28 @@ namespace Step.NC
|
||||
return cmsError;
|
||||
}
|
||||
|
||||
public DTONcToolModel AddTool(DTONewNcToolModel tool)
|
||||
public CmsError AddTool(DTONewNcToolModel tool, out DTONcToolModel dtoTool)
|
||||
{
|
||||
dtoTool = new DTONcToolModel();
|
||||
|
||||
using (NcToolManagerController toolsManager = new NcToolManagerController())
|
||||
{
|
||||
DbNcToolModel ncTool = toolsManager.AddTool(tool);
|
||||
|
||||
DTONcToolModel dtoTool = new DTONcToolModel();
|
||||
|
||||
if (!ToolManagerConfig.OffsetOpt)
|
||||
{
|
||||
CmsError cmsError = UpdateToolOffsetId(ncTool.ToolId, 1, ncTool.ToolId, out DTONcToolModel toolWithOffset);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
ncTool.OffsetId1 = ncTool.ToolId;
|
||||
}
|
||||
|
||||
GetToolData(ncTool, ref dtoTool);
|
||||
|
||||
return dtoTool;
|
||||
|
||||
return NO_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1640,7 +1751,7 @@ namespace Step.NC
|
||||
return cmsError;
|
||||
}
|
||||
|
||||
// Update tool
|
||||
// R tool
|
||||
cmsError = UpdateNcTools(toolsManager);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,10 +52,10 @@
|
||||
<machineinfo_processes>Numero di processi Cn:</machineinfo_processes>
|
||||
<machineinfo_datetime>Time-Stamp Cn:</machineinfo_datetime>
|
||||
<machineinfo_umeas>Unità di misura Cn:</machineinfo_umeas>
|
||||
<machineinfo_server_cms_version>Versione Server Step:</machineinfo_server_cms_version>
|
||||
<machineinfo_core_cms_version>Versione Core Step:</machineinfo_core_cms_version>
|
||||
<machineinfo_client_version>Versione Client Step:</machineinfo_client_version>
|
||||
<machineinfo_dateformat>Formato delle date Step:</machineinfo_dateformat>
|
||||
<machineinfo_server_cms_version>Versione Server CMS-Active:</machineinfo_server_cms_version>
|
||||
<machineinfo_core_cms_version>Versione Core CMS-Active:</machineinfo_core_cms_version>
|
||||
<machineinfo_client_version>Versione Client CMS-Active:</machineinfo_client_version>
|
||||
<machineinfo_dateformat>Formato delle date CMS-Active:</machineinfo_dateformat>
|
||||
|
||||
<!-- Head Info -->
|
||||
<head_label_rpm>Rpm</head_label_rpm>
|
||||
@@ -340,6 +340,7 @@
|
||||
<tooling_equipment_cedgepar_preAlmLife>Limite di Pre-Allarme</tooling_equipment_cedgepar_preAlmLife>
|
||||
<tooling_equipment_cedgepar_cuttingEdge>Tipo Tagliente</tooling_equipment_cedgepar_cuttingEdge>
|
||||
<tooling_equipment_cedgepar_lenght>Lunghezza</tooling_equipment_cedgepar_lenght>
|
||||
<tooling_equipment_cedgepar_length>Lunghezza</tooling_equipment_cedgepar_length>
|
||||
<tooling_equipment_cedgepar_radius>Raggio</tooling_equipment_cedgepar_radius>
|
||||
<tooling_equipment_cedgepar_wearLenght>Usura Lunghezza</tooling_equipment_cedgepar_wearLenght>
|
||||
<tooling_equipment_cedgepar_wearLength>Usura Lunghezza</tooling_equipment_cedgepar_wearLength>
|
||||
|
||||
@@ -53,10 +53,10 @@
|
||||
<machineinfo_processes>Nc Configured Processes:</machineinfo_processes>
|
||||
<machineinfo_datetime>Nc Time-Stamp:</machineinfo_datetime>
|
||||
<machineinfo_umeas>Nc Unit measure:</machineinfo_umeas>
|
||||
<machineinfo_server_cms_version>Step Server Version:</machineinfo_server_cms_version>
|
||||
<machineinfo_core_cms_version>Step Core Version:</machineinfo_core_cms_version>
|
||||
<machineinfo_client_version>Step Client Version:</machineinfo_client_version>
|
||||
<machineinfo_dateformat>Step Data Format:</machineinfo_dateformat>
|
||||
<machineinfo_server_cms_version>CMS-Active Server Version:</machineinfo_server_cms_version>
|
||||
<machineinfo_core_cms_version>CMS-Active Core Version:</machineinfo_core_cms_version>
|
||||
<machineinfo_client_version>CMS-Active Client Version:</machineinfo_client_version>
|
||||
<machineinfo_dateformat>CMS-Active Data Format:</machineinfo_dateformat>
|
||||
|
||||
<!-- Head Info -->
|
||||
<head_label_rpm>Rpm</head_label_rpm>
|
||||
@@ -339,6 +339,7 @@
|
||||
<tooling_equipment_cedgepar_preAlmLife>Pre-Alarm Limit</tooling_equipment_cedgepar_preAlmLife>
|
||||
<tooling_equipment_cedgepar_cuttingEdge>Cutting-Edge Type</tooling_equipment_cedgepar_cuttingEdge>
|
||||
<tooling_equipment_cedgepar_lenght>Lenght</tooling_equipment_cedgepar_lenght>
|
||||
<tooling_equipment_cedgepar_length>Lenght</tooling_equipment_cedgepar_length>
|
||||
<tooling_equipment_cedgepar_radius>Radius</tooling_equipment_cedgepar_radius>
|
||||
<tooling_equipment_cedgepar_wearLenght>Δ Lenght</tooling_equipment_cedgepar_wearLenght>
|
||||
<tooling_equipment_cedgepar_wearLength>Δ Lenght</tooling_equipment_cedgepar_wearLength>
|
||||
|
||||
@@ -53,9 +53,9 @@
|
||||
<machineinfo_processes>數控配置的過程:</machineinfo_processes>
|
||||
<machineinfo_datetime>數控時間戳:</machineinfo_datetime>
|
||||
<machineinfo_umeas>數量單位測量:</machineinfo_umeas>
|
||||
<machineinfo_server_cms_version>Step 服務器版本:</machineinfo_server_cms_version>
|
||||
<machineinfo_core_cms_version>Step 核心版本:</machineinfo_core_cms_version>
|
||||
<machineinfo_client_version>Step 客戶端版本:</machineinfo_client_version>
|
||||
<machineinfo_server_cms_version>CMS-Active 服務器版本:</machineinfo_server_cms_version>
|
||||
<machineinfo_core_cms_version>CMS-Active 核心版本:</machineinfo_core_cms_version>
|
||||
<machineinfo_client_version>CMS-Active 客戶端版本:</machineinfo_client_version>
|
||||
|
||||
<!-- Head Info -->
|
||||
<head_label_rpm>轉</head_label_rpm>
|
||||
|
||||
@@ -1,48 +1,63 @@
|
||||
using Step.Model.DTOModels;
|
||||
using Step.NC;
|
||||
using System;
|
||||
using Step.Model.DTOModels;
|
||||
using Step.NC;
|
||||
using System.Globalization;
|
||||
using System.Web.Http;
|
||||
using static CMS_CORE_Library.DataStructures;
|
||||
using static Step.Model.Constants;
|
||||
|
||||
namespace Step.Controllers.WebApi
|
||||
{
|
||||
[RoutePrefix("api/nc")]
|
||||
public class NcApiController : ApiController
|
||||
{
|
||||
[Route("generic_data"), HttpGet]
|
||||
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.NC_DATA, Action = ACTIONS.READ)]
|
||||
public IHttpActionResult GetNcGenericData()
|
||||
{
|
||||
using (NcHandler ncHandler = new NcHandler())
|
||||
{
|
||||
ncHandler.Connect();
|
||||
CmsError libraryError = ncHandler.GetNcGenericData(out DTONcGenericDataModel genericData);
|
||||
if (libraryError.IsError())
|
||||
if (libraryError.errorCode == CMS_ERROR_CODES.NOT_CONNECTED)
|
||||
return Ok(genericData);
|
||||
else
|
||||
return BadRequest(libraryError.localizationKey);
|
||||
|
||||
return Ok(genericData);
|
||||
}
|
||||
}
|
||||
|
||||
[Route("active_language/{language}"), HttpPut]
|
||||
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.USER_FUNCTIONS, Action = ACTIONS.WRITE)]
|
||||
public IHttpActionResult SetActiveLanguage(string language)
|
||||
using System.Web.Http;
|
||||
using static CMS_CORE_Library.DataStructures;
|
||||
using static Step.Model.Constants;
|
||||
|
||||
namespace Step.Controllers.WebApi
|
||||
{
|
||||
[RoutePrefix("api/nc")]
|
||||
public class NcApiController : ApiController
|
||||
{
|
||||
[Route("generic_data"), HttpGet]
|
||||
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.NC_DATA, Action = ACTIONS.READ)]
|
||||
public IHttpActionResult GetNcGenericData()
|
||||
{
|
||||
using (NcHandler ncHandler = new NcHandler())
|
||||
{
|
||||
ncHandler.Connect();
|
||||
using (NcHandler ncHandler = new NcHandler())
|
||||
{
|
||||
ncHandler.Connect();
|
||||
CmsError libraryError = ncHandler.GetNcGenericData(out DTONcGenericDataModel genericData);
|
||||
if (libraryError.IsError())
|
||||
if (libraryError.errorCode == CMS_ERROR_CODES.NOT_CONNECTED)
|
||||
return Ok(genericData);
|
||||
else
|
||||
return BadRequest(libraryError.localizationKey);
|
||||
|
||||
return Ok(genericData);
|
||||
}
|
||||
}
|
||||
|
||||
[Route("active_language/{language}"), HttpPut]
|
||||
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.USER_FUNCTIONS, Action = ACTIONS.WRITE)]
|
||||
public IHttpActionResult SetActiveLanguage(string language)
|
||||
{
|
||||
using (NcHandler ncHandler = new NcHandler())
|
||||
{
|
||||
ncHandler.Connect();
|
||||
CmsError libraryError = ncHandler.SetActiveLanguage(CultureInfo.CreateSpecificCulture(language));
|
||||
|
||||
if (libraryError.errorCode == CMS_ERROR_CODES.NOT_CONNECTED)
|
||||
return BadRequest();
|
||||
else
|
||||
return Ok();
|
||||
return BadRequest();
|
||||
else
|
||||
return Ok();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[Route("active_screen/{screen:int}"), HttpPut]
|
||||
//[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.USER_FUNCTIONS, Action = ACTIONS.WRITE)]
|
||||
public IHttpActionResult SetActiveScreen(int screen)
|
||||
{
|
||||
using (NcHandler ncHandler = new NcHandler())
|
||||
{
|
||||
ncHandler.Connect();
|
||||
CmsError libraryError = ncHandler.SetActiveScreen((short)screen);
|
||||
|
||||
if (libraryError.errorCode == CMS_ERROR_CODES.NOT_CONNECTED)
|
||||
return BadRequest();
|
||||
else
|
||||
return Ok();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -181,7 +181,7 @@ namespace Step.Controllers.WebApi
|
||||
{
|
||||
ncHandler.Connect();
|
||||
|
||||
File.WriteAllBytes(TEMP_FILE + item.FileName, item.Data);
|
||||
File.WriteAllBytes(QUEUE_TMP_FILE + item.FileName, item.Data);
|
||||
|
||||
// Get reps
|
||||
var repsParam = formItems.Where(x => x.ParameterName == "reps").FirstOrDefault();
|
||||
@@ -189,7 +189,7 @@ namespace Step.Controllers.WebApi
|
||||
if (repsParam == null || !Int32.TryParse(repsParam.Value, out int reps))
|
||||
return BadRequest();
|
||||
|
||||
CmsError cmsError = ncHandler.UploadPartProgramAddToQueue(TEMP_FILE, item.FileName, reps, out queueItem);
|
||||
CmsError cmsError = ncHandler.UploadPartProgramAndAddToQueue(QUEUE_TMP_FILE, item.FileName, reps, out queueItem);
|
||||
if (cmsError.IsError())
|
||||
return BadRequest(cmsError.localizationKey);
|
||||
}
|
||||
@@ -224,21 +224,23 @@ namespace Step.Controllers.WebApi
|
||||
{
|
||||
using (NcHandler ncHandler = new NcHandler())
|
||||
{
|
||||
CmsError cmsError = ncHandler.MoveQueueItems(processId, itemsPositions.OldPosition, itemsPositions.NewPosition, out List<DTOQueueModel> queue);
|
||||
CmsError cmsError = ncHandler.MoveQueueItems(processId, itemsPositions.ObjectId, itemsPositions.NewPosition, out List<DTOQueueModel> queue);
|
||||
if (cmsError.IsError())
|
||||
return BadRequest(cmsError.localizationKey);
|
||||
|
||||
|
||||
return Ok(queue);
|
||||
}
|
||||
}
|
||||
|
||||
[Route("queue/{processId:int}/edit/{positionId:int}"), HttpPut]
|
||||
public IHttpActionResult EditQueueItem(int processId, int positionId, RepsModel reps)
|
||||
[Route("queue/{processId:int}/edit/{itemId:int}"), HttpPut]
|
||||
public IHttpActionResult EditQueueItem(int processId, int itemId, RepsModel reps)
|
||||
{
|
||||
using (NcHandler ncHandler = new NcHandler())
|
||||
{
|
||||
CmsError cmsError = ncHandler.EditQueueItemReps(processId, positionId, reps.Reps, out DTOQueueModel queueItem);
|
||||
if (reps.Reps < 1)
|
||||
return BadRequest(INCORRECT_PARAMETERS_ERROR.localizationKey);
|
||||
|
||||
CmsError cmsError = ncHandler.EditQueueItemReps(processId, itemId, reps.Reps, out DTOQueueModel queueItem);
|
||||
if (cmsError.IsError())
|
||||
return BadRequest(cmsError.localizationKey);
|
||||
|
||||
@@ -246,7 +248,7 @@ namespace Step.Controllers.WebApi
|
||||
}
|
||||
}
|
||||
|
||||
[Route("queue/{processId:int}/empty"), HttpPut]
|
||||
[Route("queue/{processId:int}/empty"), HttpDelete]
|
||||
public IHttpActionResult EmptyQueue(int processId)
|
||||
{
|
||||
using (NcHandler ncHandler = new NcHandler())
|
||||
@@ -264,9 +266,11 @@ namespace Step.Controllers.WebApi
|
||||
{
|
||||
using (NcHandler ncHandler = new NcHandler())
|
||||
{
|
||||
ncHandler.Connect();
|
||||
|
||||
CmsError cmsError = ncHandler.StartWorkingQueue(processId);
|
||||
if (cmsError.IsError())
|
||||
return BadRequest(cmsError.localizationKey);
|
||||
return BadRequest(cmsError.localizationKey);
|
||||
|
||||
return Ok();
|
||||
}
|
||||
@@ -277,6 +281,8 @@ namespace Step.Controllers.WebApi
|
||||
{
|
||||
using (NcHandler ncHandler = new NcHandler())
|
||||
{
|
||||
ncHandler.Connect();
|
||||
|
||||
CmsError cmsError = ncHandler.StopWorkingQueue(processId);
|
||||
if (cmsError.IsError())
|
||||
return BadRequest(cmsError.localizationKey);
|
||||
@@ -287,7 +293,7 @@ namespace Step.Controllers.WebApi
|
||||
|
||||
public class MoveItems
|
||||
{
|
||||
public int OldPosition;
|
||||
public int ObjectId;
|
||||
|
||||
public int NewPosition;
|
||||
}
|
||||
|
||||
@@ -116,7 +116,9 @@ namespace Step.Controllers.WebApi
|
||||
ncHandler.Connect();
|
||||
|
||||
// Add tool
|
||||
DTONcToolModel newTool = ncHandler.AddTool(dtoToolWithFamily);
|
||||
CmsError cmsError = ncHandler.AddTool(dtoToolWithFamily, out DTONcToolModel newTool);
|
||||
if (cmsError.IsError())
|
||||
return BadRequest(cmsError.localizationKey);
|
||||
|
||||
return Ok(CreateToolAndFamilyObj(newTool, dtoToolWithFamily));
|
||||
}
|
||||
|
||||
@@ -5,11 +5,11 @@ using System.Runtime.InteropServices;
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("Step")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyTitle("CMS Active")]
|
||||
[assembly: AssemblyDescription("CMS Active - Main HMI for CMS Machines")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("Step")]
|
||||
[assembly: AssemblyCompany("CMS S.P.A.")]
|
||||
[assembly: AssemblyProduct("CMS Active")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2017")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
+398
-398
@@ -1,404 +1,404 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props')" />
|
||||
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.8\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.8\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
|
||||
<Import Project="..\packages\Microsoft.Net.Compilers.2.4.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.2.4.0\build\Microsoft.Net.Compilers.props')" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>
|
||||
</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{AFED34E1-77DB-4D81-830A-A8D0A190573D}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Step</RootNamespace>
|
||||
<AssemblyName>Step</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
<TypeScriptToolsVersion>Latest</TypeScriptToolsVersion>
|
||||
<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="CMS_CORE_Library">
|
||||
<HintPath>..\Libs\CMS_CORE_Library.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.SqlServer.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MetroModernUI.1.4.0.0\lib\net\MetroFramework.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="MetroFramework.Design, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MetroModernUI.1.4.0.0\lib\net\MetroFramework.Design.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="MetroFramework.Fonts, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MetroModernUI.1.4.0.0\lib\net\MetroFramework.Fonts.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.AspNet.SignalR.Core, Version=2.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.SignalR.Core.2.2.2\lib\net45\Microsoft.AspNet.SignalR.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.AspNet.SignalR.SystemWeb, Version=2.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.SignalR.SystemWeb.2.2.2\lib\net45\Microsoft.AspNet.SignalR.SystemWeb.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.8.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.8\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="Microsoft.Owin, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Owin.3.1.0\lib\net45\Microsoft.Owin.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Owin.Cors, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Owin.Cors.3.1.0\lib\net45\Microsoft.Owin.Cors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Owin.FileSystems, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Owin.FileSystems.3.1.0\lib\net45\Microsoft.Owin.FileSystems.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Owin.Host.HttpListener, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Owin.Host.HttpListener.3.1.0\lib\net45\Microsoft.Owin.Host.HttpListener.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Owin.Host.SystemWeb, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Owin.Host.SystemWeb.3.1.0\lib\net45\Microsoft.Owin.Host.SystemWeb.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Owin.Hosting, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Owin.Hosting.3.1.0\lib\net45\Microsoft.Owin.Hosting.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Owin.Security, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Owin.Security.3.1.0\lib\net45\Microsoft.Owin.Security.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Owin.Security.OAuth, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Owin.Security.OAuth.3.1.0\lib\net45\Microsoft.Owin.Security.OAuth.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Owin.StaticFiles, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Owin.StaticFiles.3.1.0\lib\net45\Microsoft.Owin.StaticFiles.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Owin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0ebd12fd5e55cc5, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Swashbuckle.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cd1bb07a5ac7c7bc, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Swashbuckle.Core.5.6.0\lib\net40\Swashbuckle.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Web.Cors, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.Cors.5.2.3\lib\net45\System.Web.Cors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Entity" />
|
||||
<Reference Include="System.Web.ApplicationServices" />
|
||||
<Reference Include="System.ComponentModel.DataAnnotations" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="System.Web.Http.Cors, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebApi.Cors.5.2.3\lib\net45\System.Web.Http.Cors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Http.Owin, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebApi.Owin.5.2.3\lib\net45\System.Web.Http.Owin.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Mvc, Version=4.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.Web.Abstractions" />
|
||||
<Reference Include="System.Web.Routing" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Runtime.Serialization" />
|
||||
<Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<Private>True</Private>
|
||||
<HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Net.Http">
|
||||
</Reference>
|
||||
<Reference Include="System.Net.Http.Formatting, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Net.Http.WebRequest">
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Http, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Http.WebHost, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="TeamDev.SDK.6, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f22b83b6361d7d4f, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\Libs\TeamDev.SDK.6.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="TeamDev.SDK.WPF, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f22b83b6361d7d4f, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\Libs\TeamDev.SDK.WPF.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="WebActivatorEx, Version=2.0.0.0, Culture=neutral, PublicKeyToken=7b26dc2a43f6a0d4, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\WebActivatorEx.2.2.0\lib\net40\WebActivatorEx.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="App_Start\SignalRContractResolver.cs" />
|
||||
<Compile Include="App_Start\Startup.cs" />
|
||||
<Compile Include="App_Start\SwaggerConfig.cs" />
|
||||
<Compile Include="App_Start\WebApiConfig.cs" />
|
||||
<Compile Include="Attributes\PositiveNumberAttribute.cs" />
|
||||
<Compile Include="Attributes\WebApiAuthorizeAttribute.cs" />
|
||||
<Compile Include="Attributes\SignalRAuthorizeAttribute.cs" />
|
||||
<Compile Include="Controllers\SignalR\NcHub.cs" />
|
||||
<Compile Include="Controllers\WebApi\AuthorizationController.cs" />
|
||||
<Compile Include="Controllers\WebApi\ConfigurationController.cs" />
|
||||
<Compile Include="Controllers\WebApi\FavoriteUserSoftKeyController.cs" />
|
||||
<Compile Include="Controllers\WebApi\LanguageController.cs" />
|
||||
<Compile Include="Controllers\WebApi\MaintenanceController.cs" />
|
||||
<Compile Include="Controllers\WebApi\NcFileController.cs" />
|
||||
<Compile Include="Controllers\WebApi\NcToolManagerController.cs" />
|
||||
<Compile Include="Controllers\WebApi\SiemensToolManagerController.cs" />
|
||||
<Compile Include="Controllers\WebApi\UserController.cs" />
|
||||
<Compile Include="Controllers\WebApi\NcApiController.cs" />
|
||||
<Compile Include="Listeners\Database\SignalRDatabaseHandler.cs" />
|
||||
<Compile Include="Listeners\ListenersHandler.cs" />
|
||||
<Compile Include="Listeners\SignalR\SignalRListener.cs" />
|
||||
<Compile Include="MultipartHandler.cs" />
|
||||
<Compile Include="program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Provider\ApplicationOAuthProvider.cs" />
|
||||
<Compile Include="Provider\SignalROAuthBearerProvider.cs" />
|
||||
<Compile Include="WebApiUnhandledExceptionHandler.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="App.config" />
|
||||
<Content Include="App.Debug.config">
|
||||
<DependentUpon>App.config</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="App.Release.config">
|
||||
<DependentUpon>App.config</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="Step_Icon.ico" />
|
||||
<Content Include="wwwroot\.bowerrc">
|
||||
<DependentUpon>bower.json</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="wwwroot\assets\fonts\OFL.txt" />
|
||||
<Content Include="wwwroot\assets\images\persona.png" />
|
||||
<Content Include="wwwroot\assets\logo.png" />
|
||||
<Content Include="wwwroot\assets\styles\style.css" />
|
||||
<Content Include="wwwroot\assets\styles\style.min.css">
|
||||
<DependentUpon>style.css</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="wwwroot\compilerconfig.json.defaults">
|
||||
<DependentUpon>compilerconfig.json</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="wwwroot\dist\0.build.js" />
|
||||
<Content Include="wwwroot\dist\1.build.js" />
|
||||
<Content Include="wwwroot\dist\build.js" />
|
||||
<Content Include="wwwroot\libs\font-awesome\css\font-awesome.css" />
|
||||
<Content Include="wwwroot\libs\font-awesome\css\font-awesome.min.css" />
|
||||
<Content Include="wwwroot\libs\font-awesome\fonts\fontawesome-webfont.svg" />
|
||||
<Content Include="wwwroot\libs\font-awesome\HELP-US-OUT.txt" />
|
||||
<Content Include="wwwroot\libs\glyphicons\fonts\glyphicons-halflings-regular.svg" />
|
||||
<Content Include="wwwroot\libs\glyphicons\styles\glyphicons.css" />
|
||||
<Content Include="wwwroot\.babelrc" />
|
||||
<None Include="compilerconfig.json" />
|
||||
<None Include="compilerconfig.json.defaults">
|
||||
<DependentUpon>compilerconfig.json</DependentUpon>
|
||||
</None>
|
||||
<None Include="wwwroot\Scripts\jquery-3.2.1.intellisense.js" />
|
||||
<Content Include="wwwroot\Scripts\jquery-3.2.1.js" />
|
||||
<Content Include="wwwroot\Scripts\jquery-3.2.1.min.js" />
|
||||
<Content Include="wwwroot\Scripts\jquery-3.2.1.slim.js" />
|
||||
<Content Include="wwwroot\Scripts\jquery-3.2.1.slim.min.js" />
|
||||
<Content Include="wwwroot\Scripts\jquery.signalR-2.2.2.js" />
|
||||
<Content Include="wwwroot\Scripts\jquery.signalR-2.2.2.min.js" />
|
||||
<Content Include="wwwroot\src\app.modules.js" />
|
||||
<Content Include="wwwroot\src\app.routes.js" />
|
||||
<Content Include="wwwroot\src\main.js" />
|
||||
<Content Include="wwwroot\src\modules\base-components\index.js" />
|
||||
<Content Include="wwwroot\src\router\index.js" />
|
||||
<Content Include="wwwroot\index.html" />
|
||||
<Content Include="wwwroot\favicon.ico" />
|
||||
<Content Include="wwwroot\webpack.config.js" />
|
||||
<None Include="wwwroot\src\components\test-status.vue" />
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
<Content Include="wwwroot\.editorconfig" />
|
||||
<Content Include="wwwroot\bower.json" />
|
||||
<Content Include="wwwroot\compilerconfig.json" />
|
||||
<Content Include="wwwroot\package.json" />
|
||||
<Content Include="wwwroot\tsconfig.json" />
|
||||
<Content Include="wwwroot\assets\fonts\WorkSans-Black.ttf" />
|
||||
<Content Include="wwwroot\assets\fonts\WorkSans-Bold.ttf" />
|
||||
<Content Include="wwwroot\assets\fonts\WorkSans-ExtraBold.ttf" />
|
||||
<Content Include="wwwroot\assets\fonts\WorkSans-ExtraLight.ttf" />
|
||||
<Content Include="wwwroot\assets\fonts\WorkSans-Light.ttf" />
|
||||
<Content Include="wwwroot\assets\fonts\WorkSans-Medium.ttf" />
|
||||
<Content Include="wwwroot\assets\fonts\WorkSans-Regular.ttf" />
|
||||
<Content Include="wwwroot\assets\fonts\WorkSans-SemiBold.ttf" />
|
||||
<Content Include="wwwroot\assets\fonts\WorkSans-Thin.ttf" />
|
||||
<Content Include="wwwroot\assets\styles\base\buttons.less" />
|
||||
<Content Include="wwwroot\assets\styles\base\colors.less" />
|
||||
<Content Include="wwwroot\assets\styles\base\fonts.less" />
|
||||
<Content Include="wwwroot\assets\styles\base\grid-system.less" />
|
||||
<Content Include="wwwroot\assets\styles\base\input.less" />
|
||||
<Content Include="wwwroot\assets\styles\base\layout.less" />
|
||||
<Content Include="wwwroot\assets\styles\base\modals.less" />
|
||||
<Content Include="wwwroot\assets\styles\style.css.map" />
|
||||
<Content Include="wwwroot\assets\styles\style.less" />
|
||||
<Content Include="wwwroot\src\App.vue" />
|
||||
<Content Include="wwwroot\src\components\Home.vue" />
|
||||
<Content Include="wwwroot\src\modules\base-components\modal.vue" />
|
||||
<Content Include="wwwroot\src\modules\login.vue" />
|
||||
<Content Include="wwwroot\libs\font-awesome\.bower.json" />
|
||||
<Content Include="wwwroot\libs\font-awesome\.gitignore" />
|
||||
<Content Include="wwwroot\libs\font-awesome\.npmignore" />
|
||||
<Content Include="wwwroot\libs\font-awesome\bower.json" />
|
||||
<Content Include="wwwroot\libs\font-awesome\css\font-awesome.css.map" />
|
||||
<Content Include="wwwroot\libs\font-awesome\fonts\fontawesome-webfont.eot" />
|
||||
<Content Include="wwwroot\libs\font-awesome\fonts\fontawesome-webfont.ttf" />
|
||||
<Content Include="wwwroot\libs\font-awesome\fonts\fontawesome-webfont.woff" />
|
||||
<Content Include="wwwroot\libs\font-awesome\fonts\fontawesome-webfont.woff2" />
|
||||
<Content Include="wwwroot\libs\font-awesome\fonts\FontAwesome.otf" />
|
||||
<Content Include="wwwroot\libs\font-awesome\less\animated.less" />
|
||||
<Content Include="wwwroot\libs\font-awesome\less\bordered-pulled.less" />
|
||||
<Content Include="wwwroot\libs\font-awesome\less\core.less" />
|
||||
<Content Include="wwwroot\libs\font-awesome\less\fixed-width.less" />
|
||||
<Content Include="wwwroot\libs\font-awesome\less\font-awesome.less" />
|
||||
<Content Include="wwwroot\libs\font-awesome\less\icons.less" />
|
||||
<Content Include="wwwroot\libs\font-awesome\less\larger.less" />
|
||||
<Content Include="wwwroot\libs\font-awesome\less\list.less" />
|
||||
<Content Include="wwwroot\libs\font-awesome\less\mixins.less" />
|
||||
<Content Include="wwwroot\libs\font-awesome\less\path.less" />
|
||||
<Content Include="wwwroot\libs\font-awesome\less\rotated-flipped.less" />
|
||||
<Content Include="wwwroot\libs\font-awesome\less\screen-reader.less" />
|
||||
<Content Include="wwwroot\libs\font-awesome\less\stacked.less" />
|
||||
<Content Include="wwwroot\libs\font-awesome\less\variables.less" />
|
||||
<Content Include="wwwroot\libs\font-awesome\scss\font-awesome.scss" />
|
||||
<Content Include="wwwroot\libs\font-awesome\scss\_animated.scss" />
|
||||
<Content Include="wwwroot\libs\font-awesome\scss\_bordered-pulled.scss" />
|
||||
<Content Include="wwwroot\libs\font-awesome\scss\_core.scss" />
|
||||
<Content Include="wwwroot\libs\font-awesome\scss\_fixed-width.scss" />
|
||||
<Content Include="wwwroot\libs\font-awesome\scss\_icons.scss" />
|
||||
<Content Include="wwwroot\libs\font-awesome\scss\_larger.scss" />
|
||||
<Content Include="wwwroot\libs\font-awesome\scss\_list.scss" />
|
||||
<Content Include="wwwroot\libs\font-awesome\scss\_mixins.scss" />
|
||||
<Content Include="wwwroot\libs\font-awesome\scss\_path.scss" />
|
||||
<Content Include="wwwroot\libs\font-awesome\scss\_rotated-flipped.scss" />
|
||||
<Content Include="wwwroot\libs\font-awesome\scss\_screen-reader.scss" />
|
||||
<Content Include="wwwroot\libs\font-awesome\scss\_stacked.scss" />
|
||||
<Content Include="wwwroot\libs\font-awesome\scss\_variables.scss" />
|
||||
<Content Include="wwwroot\libs\glyphicons\.bower.json" />
|
||||
<Content Include="wwwroot\libs\glyphicons\.gitignore" />
|
||||
<Content Include="wwwroot\libs\glyphicons\bower.json" />
|
||||
<Content Include="wwwroot\libs\glyphicons\fonts\glyphicons-halflings-regular.eot" />
|
||||
<Content Include="wwwroot\libs\glyphicons\fonts\glyphicons-halflings-regular.ttf" />
|
||||
<Content Include="wwwroot\libs\glyphicons\fonts\glyphicons-halflings-regular.woff" />
|
||||
<Content Include="wwwroot\libs\glyphicons\fonts\glyphicons-halflings-regular.woff2" />
|
||||
<Content Include="wwwroot\libs\glyphicons\README.md" />
|
||||
<Content Include="wwwroot\Scripts\jquery-3.2.1.min.map" />
|
||||
<Content Include="wwwroot\Scripts\jquery-3.2.1.slim.min.map" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Step.Config\Step.Config.csproj">
|
||||
<Project>{3f5c2483-fc87-43ef-92a8-66ff7d0e440f}</Project>
|
||||
<Name>Step.Config</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Step.Core\Step.Core.csproj">
|
||||
<Project>{de54ff4c-8390-4489-882a-1bc7d99ef185}</Project>
|
||||
<Name>Step.Core</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Step.Database\Step.Database.csproj">
|
||||
<Project>{357d5ee1-ffc8-489b-9232-22cf474d9a6f}</Project>
|
||||
<Name>Step.Database</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Step.Model\Step.Model.csproj">
|
||||
<Project>{631375dd-06d3-49bb-8130-d9ddb34c429d}</Project>
|
||||
<Name>Step.Model</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Step.NC\Step.NC.csproj">
|
||||
<Project>{b2366b08-96bd-4f6b-b748-b45089b87a14}</Project>
|
||||
<Name>Step.NC</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Step.UI\Step.UI.csproj">
|
||||
<Project>{20fc0937-e7ca-4693-95f9-7a948efd173b}</Project>
|
||||
<Name>Step.UI</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Step.Utils\Step.Utils.csproj">
|
||||
<Project>{cbeb631b-abfa-4042-9779-c0060b0dfefe}</Project>
|
||||
<Name>Step.Utils</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Service Include="{4A0DDDB5-7A95-4FBF-97CC-616D07737A77}" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<TypeScriptCompile Include="wwwroot\src\%40types\LoginViewModel.cs.d.ts" />
|
||||
<TypeScriptCompile Include="wwwroot\src\%40types\TestModel.cs.d.ts" />
|
||||
<TypeScriptCompile Include="wwwroot\src\app.business-logic.ts" />
|
||||
<TypeScriptCompile Include="wwwroot\src\modules\base-components\modal.ts" />
|
||||
<TypeScriptCompile Include="wwwroot\src\modules\login.ts" />
|
||||
<TypeScriptCompile Include="wwwroot\src\services\dataService.ts" />
|
||||
<TypeScriptCompile Include="wwwroot\src\services\hub.ts" />
|
||||
<TypeScriptCompile Include="wwwroot\src\services\loginService.ts" />
|
||||
<TypeScriptCompile Include="wwwroot\src\_base\baseRestService.ts" />
|
||||
<TypeScriptCompile Include="wwwroot\src\_base\factoryService.ts" />
|
||||
<TypeScriptCompile Include="wwwroot\src\_base\filtersExtensions.ts" />
|
||||
<TypeScriptCompile Include="wwwroot\src\_base\messageService.ts" />
|
||||
<TypeScriptCompile Include="wwwroot\src\_base\utils.ts" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
|
||||
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<StartupObject>Step.Application</StartupObject>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ApplicationIcon>Step_Icon.ico</ApplicationIcon>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets')" />
|
||||
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
|
||||
<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
|
||||
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
|
||||
</Target>
|
||||
<ProjectExtensions />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.2.4.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.2.4.0\build\Microsoft.Net.Compilers.props'))" />
|
||||
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.8\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.8\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
|
||||
</Target>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props')" />
|
||||
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.8\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.8\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
|
||||
<Import Project="..\packages\Microsoft.Net.Compilers.2.4.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.2.4.0\build\Microsoft.Net.Compilers.props')" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>
|
||||
</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{AFED34E1-77DB-4D81-830A-A8D0A190573D}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Step</RootNamespace>
|
||||
<AssemblyName>CMS Active</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
<TypeScriptToolsVersion>Latest</TypeScriptToolsVersion>
|
||||
<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="CMS_CORE_Library">
|
||||
<HintPath>..\Libs\CMS_CORE_Library.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.SqlServer.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MetroModernUI.1.4.0.0\lib\net\MetroFramework.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="MetroFramework.Design, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MetroModernUI.1.4.0.0\lib\net\MetroFramework.Design.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="MetroFramework.Fonts, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MetroModernUI.1.4.0.0\lib\net\MetroFramework.Fonts.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.AspNet.SignalR.Core, Version=2.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.SignalR.Core.2.2.2\lib\net45\Microsoft.AspNet.SignalR.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.AspNet.SignalR.SystemWeb, Version=2.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.SignalR.SystemWeb.2.2.2\lib\net45\Microsoft.AspNet.SignalR.SystemWeb.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.8.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.8\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="Microsoft.Owin, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Owin.3.1.0\lib\net45\Microsoft.Owin.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Owin.Cors, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Owin.Cors.3.1.0\lib\net45\Microsoft.Owin.Cors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Owin.FileSystems, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Owin.FileSystems.3.1.0\lib\net45\Microsoft.Owin.FileSystems.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Owin.Host.HttpListener, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Owin.Host.HttpListener.3.1.0\lib\net45\Microsoft.Owin.Host.HttpListener.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Owin.Host.SystemWeb, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Owin.Host.SystemWeb.3.1.0\lib\net45\Microsoft.Owin.Host.SystemWeb.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Owin.Hosting, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Owin.Hosting.3.1.0\lib\net45\Microsoft.Owin.Hosting.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Owin.Security, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Owin.Security.3.1.0\lib\net45\Microsoft.Owin.Security.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Owin.Security.OAuth, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Owin.Security.OAuth.3.1.0\lib\net45\Microsoft.Owin.Security.OAuth.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Owin.StaticFiles, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Owin.StaticFiles.3.1.0\lib\net45\Microsoft.Owin.StaticFiles.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Owin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0ebd12fd5e55cc5, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Swashbuckle.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cd1bb07a5ac7c7bc, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Swashbuckle.Core.5.6.0\lib\net40\Swashbuckle.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Web.Cors, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.Cors.5.2.3\lib\net45\System.Web.Cors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Entity" />
|
||||
<Reference Include="System.Web.ApplicationServices" />
|
||||
<Reference Include="System.ComponentModel.DataAnnotations" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="System.Web.Http.Cors, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebApi.Cors.5.2.3\lib\net45\System.Web.Http.Cors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Http.Owin, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebApi.Owin.5.2.3\lib\net45\System.Web.Http.Owin.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Mvc, Version=4.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.Web.Abstractions" />
|
||||
<Reference Include="System.Web.Routing" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Runtime.Serialization" />
|
||||
<Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<Private>True</Private>
|
||||
<HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Net.Http">
|
||||
</Reference>
|
||||
<Reference Include="System.Net.Http.Formatting, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Net.Http.WebRequest">
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Http, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Http.WebHost, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="TeamDev.SDK.6, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f22b83b6361d7d4f, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\Libs\TeamDev.SDK.6.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="TeamDev.SDK.WPF, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f22b83b6361d7d4f, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\Libs\TeamDev.SDK.WPF.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="WebActivatorEx, Version=2.0.0.0, Culture=neutral, PublicKeyToken=7b26dc2a43f6a0d4, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\WebActivatorEx.2.2.0\lib\net40\WebActivatorEx.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="App_Start\SignalRContractResolver.cs" />
|
||||
<Compile Include="App_Start\Startup.cs" />
|
||||
<Compile Include="App_Start\SwaggerConfig.cs" />
|
||||
<Compile Include="App_Start\WebApiConfig.cs" />
|
||||
<Compile Include="Attributes\PositiveNumberAttribute.cs" />
|
||||
<Compile Include="Attributes\WebApiAuthorizeAttribute.cs" />
|
||||
<Compile Include="Attributes\SignalRAuthorizeAttribute.cs" />
|
||||
<Compile Include="Controllers\SignalR\NcHub.cs" />
|
||||
<Compile Include="Controllers\WebApi\AuthorizationController.cs" />
|
||||
<Compile Include="Controllers\WebApi\ConfigurationController.cs" />
|
||||
<Compile Include="Controllers\WebApi\FavoriteUserSoftKeyController.cs" />
|
||||
<Compile Include="Controllers\WebApi\LanguageController.cs" />
|
||||
<Compile Include="Controllers\WebApi\MaintenanceController.cs" />
|
||||
<Compile Include="Controllers\WebApi\NcFileController.cs" />
|
||||
<Compile Include="Controllers\WebApi\NcToolManagerController.cs" />
|
||||
<Compile Include="Controllers\WebApi\SiemensToolManagerController.cs" />
|
||||
<Compile Include="Controllers\WebApi\UserController.cs" />
|
||||
<Compile Include="Controllers\WebApi\NcApiController.cs" />
|
||||
<Compile Include="Listeners\Database\SignalRDatabaseHandler.cs" />
|
||||
<Compile Include="Listeners\ListenersHandler.cs" />
|
||||
<Compile Include="Listeners\SignalR\SignalRListener.cs" />
|
||||
<Compile Include="MultipartHandler.cs" />
|
||||
<Compile Include="program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Provider\ApplicationOAuthProvider.cs" />
|
||||
<Compile Include="Provider\SignalROAuthBearerProvider.cs" />
|
||||
<Compile Include="WebApiUnhandledExceptionHandler.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="App.config" />
|
||||
<Content Include="App.Debug.config">
|
||||
<DependentUpon>App.config</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="App.Release.config">
|
||||
<DependentUpon>App.config</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="Step_Icon.ico" />
|
||||
<Content Include="wwwroot\.bowerrc">
|
||||
<DependentUpon>bower.json</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="wwwroot\assets\fonts\OFL.txt" />
|
||||
<Content Include="wwwroot\assets\images\persona.png" />
|
||||
<Content Include="wwwroot\assets\logo.png" />
|
||||
<Content Include="wwwroot\assets\styles\style.css" />
|
||||
<Content Include="wwwroot\assets\styles\style.min.css">
|
||||
<DependentUpon>style.css</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="wwwroot\compilerconfig.json.defaults">
|
||||
<DependentUpon>compilerconfig.json</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="wwwroot\dist\0.build.js" />
|
||||
<Content Include="wwwroot\dist\1.build.js" />
|
||||
<Content Include="wwwroot\dist\build.js" />
|
||||
<Content Include="wwwroot\libs\font-awesome\css\font-awesome.css" />
|
||||
<Content Include="wwwroot\libs\font-awesome\css\font-awesome.min.css" />
|
||||
<Content Include="wwwroot\libs\font-awesome\fonts\fontawesome-webfont.svg" />
|
||||
<Content Include="wwwroot\libs\font-awesome\HELP-US-OUT.txt" />
|
||||
<Content Include="wwwroot\libs\glyphicons\fonts\glyphicons-halflings-regular.svg" />
|
||||
<Content Include="wwwroot\libs\glyphicons\styles\glyphicons.css" />
|
||||
<Content Include="wwwroot\.babelrc" />
|
||||
<None Include="compilerconfig.json" />
|
||||
<None Include="compilerconfig.json.defaults">
|
||||
<DependentUpon>compilerconfig.json</DependentUpon>
|
||||
</None>
|
||||
<None Include="wwwroot\Scripts\jquery-3.2.1.intellisense.js" />
|
||||
<Content Include="wwwroot\Scripts\jquery-3.2.1.js" />
|
||||
<Content Include="wwwroot\Scripts\jquery-3.2.1.min.js" />
|
||||
<Content Include="wwwroot\Scripts\jquery-3.2.1.slim.js" />
|
||||
<Content Include="wwwroot\Scripts\jquery-3.2.1.slim.min.js" />
|
||||
<Content Include="wwwroot\Scripts\jquery.signalR-2.2.2.js" />
|
||||
<Content Include="wwwroot\Scripts\jquery.signalR-2.2.2.min.js" />
|
||||
<Content Include="wwwroot\src\app.modules.js" />
|
||||
<Content Include="wwwroot\src\app.routes.js" />
|
||||
<Content Include="wwwroot\src\main.js" />
|
||||
<Content Include="wwwroot\src\modules\base-components\index.js" />
|
||||
<Content Include="wwwroot\src\router\index.js" />
|
||||
<Content Include="wwwroot\index.html" />
|
||||
<Content Include="wwwroot\favicon.ico" />
|
||||
<Content Include="wwwroot\webpack.config.js" />
|
||||
<None Include="wwwroot\src\components\test-status.vue" />
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
<Content Include="wwwroot\.editorconfig" />
|
||||
<Content Include="wwwroot\bower.json" />
|
||||
<Content Include="wwwroot\compilerconfig.json" />
|
||||
<Content Include="wwwroot\package.json" />
|
||||
<Content Include="wwwroot\tsconfig.json" />
|
||||
<Content Include="wwwroot\assets\fonts\WorkSans-Black.ttf" />
|
||||
<Content Include="wwwroot\assets\fonts\WorkSans-Bold.ttf" />
|
||||
<Content Include="wwwroot\assets\fonts\WorkSans-ExtraBold.ttf" />
|
||||
<Content Include="wwwroot\assets\fonts\WorkSans-ExtraLight.ttf" />
|
||||
<Content Include="wwwroot\assets\fonts\WorkSans-Light.ttf" />
|
||||
<Content Include="wwwroot\assets\fonts\WorkSans-Medium.ttf" />
|
||||
<Content Include="wwwroot\assets\fonts\WorkSans-Regular.ttf" />
|
||||
<Content Include="wwwroot\assets\fonts\WorkSans-SemiBold.ttf" />
|
||||
<Content Include="wwwroot\assets\fonts\WorkSans-Thin.ttf" />
|
||||
<Content Include="wwwroot\assets\styles\base\buttons.less" />
|
||||
<Content Include="wwwroot\assets\styles\base\colors.less" />
|
||||
<Content Include="wwwroot\assets\styles\base\fonts.less" />
|
||||
<Content Include="wwwroot\assets\styles\base\grid-system.less" />
|
||||
<Content Include="wwwroot\assets\styles\base\input.less" />
|
||||
<Content Include="wwwroot\assets\styles\base\layout.less" />
|
||||
<Content Include="wwwroot\assets\styles\base\modals.less" />
|
||||
<Content Include="wwwroot\assets\styles\style.css.map" />
|
||||
<Content Include="wwwroot\assets\styles\style.less" />
|
||||
<Content Include="wwwroot\src\App.vue" />
|
||||
<Content Include="wwwroot\src\components\Home.vue" />
|
||||
<Content Include="wwwroot\src\modules\base-components\modal.vue" />
|
||||
<Content Include="wwwroot\src\modules\login.vue" />
|
||||
<Content Include="wwwroot\libs\font-awesome\.bower.json" />
|
||||
<Content Include="wwwroot\libs\font-awesome\.gitignore" />
|
||||
<Content Include="wwwroot\libs\font-awesome\.npmignore" />
|
||||
<Content Include="wwwroot\libs\font-awesome\bower.json" />
|
||||
<Content Include="wwwroot\libs\font-awesome\css\font-awesome.css.map" />
|
||||
<Content Include="wwwroot\libs\font-awesome\fonts\fontawesome-webfont.eot" />
|
||||
<Content Include="wwwroot\libs\font-awesome\fonts\fontawesome-webfont.ttf" />
|
||||
<Content Include="wwwroot\libs\font-awesome\fonts\fontawesome-webfont.woff" />
|
||||
<Content Include="wwwroot\libs\font-awesome\fonts\fontawesome-webfont.woff2" />
|
||||
<Content Include="wwwroot\libs\font-awesome\fonts\FontAwesome.otf" />
|
||||
<Content Include="wwwroot\libs\font-awesome\less\animated.less" />
|
||||
<Content Include="wwwroot\libs\font-awesome\less\bordered-pulled.less" />
|
||||
<Content Include="wwwroot\libs\font-awesome\less\core.less" />
|
||||
<Content Include="wwwroot\libs\font-awesome\less\fixed-width.less" />
|
||||
<Content Include="wwwroot\libs\font-awesome\less\font-awesome.less" />
|
||||
<Content Include="wwwroot\libs\font-awesome\less\icons.less" />
|
||||
<Content Include="wwwroot\libs\font-awesome\less\larger.less" />
|
||||
<Content Include="wwwroot\libs\font-awesome\less\list.less" />
|
||||
<Content Include="wwwroot\libs\font-awesome\less\mixins.less" />
|
||||
<Content Include="wwwroot\libs\font-awesome\less\path.less" />
|
||||
<Content Include="wwwroot\libs\font-awesome\less\rotated-flipped.less" />
|
||||
<Content Include="wwwroot\libs\font-awesome\less\screen-reader.less" />
|
||||
<Content Include="wwwroot\libs\font-awesome\less\stacked.less" />
|
||||
<Content Include="wwwroot\libs\font-awesome\less\variables.less" />
|
||||
<Content Include="wwwroot\libs\font-awesome\scss\font-awesome.scss" />
|
||||
<Content Include="wwwroot\libs\font-awesome\scss\_animated.scss" />
|
||||
<Content Include="wwwroot\libs\font-awesome\scss\_bordered-pulled.scss" />
|
||||
<Content Include="wwwroot\libs\font-awesome\scss\_core.scss" />
|
||||
<Content Include="wwwroot\libs\font-awesome\scss\_fixed-width.scss" />
|
||||
<Content Include="wwwroot\libs\font-awesome\scss\_icons.scss" />
|
||||
<Content Include="wwwroot\libs\font-awesome\scss\_larger.scss" />
|
||||
<Content Include="wwwroot\libs\font-awesome\scss\_list.scss" />
|
||||
<Content Include="wwwroot\libs\font-awesome\scss\_mixins.scss" />
|
||||
<Content Include="wwwroot\libs\font-awesome\scss\_path.scss" />
|
||||
<Content Include="wwwroot\libs\font-awesome\scss\_rotated-flipped.scss" />
|
||||
<Content Include="wwwroot\libs\font-awesome\scss\_screen-reader.scss" />
|
||||
<Content Include="wwwroot\libs\font-awesome\scss\_stacked.scss" />
|
||||
<Content Include="wwwroot\libs\font-awesome\scss\_variables.scss" />
|
||||
<Content Include="wwwroot\libs\glyphicons\.bower.json" />
|
||||
<Content Include="wwwroot\libs\glyphicons\.gitignore" />
|
||||
<Content Include="wwwroot\libs\glyphicons\bower.json" />
|
||||
<Content Include="wwwroot\libs\glyphicons\fonts\glyphicons-halflings-regular.eot" />
|
||||
<Content Include="wwwroot\libs\glyphicons\fonts\glyphicons-halflings-regular.ttf" />
|
||||
<Content Include="wwwroot\libs\glyphicons\fonts\glyphicons-halflings-regular.woff" />
|
||||
<Content Include="wwwroot\libs\glyphicons\fonts\glyphicons-halflings-regular.woff2" />
|
||||
<Content Include="wwwroot\libs\glyphicons\README.md" />
|
||||
<Content Include="wwwroot\Scripts\jquery-3.2.1.min.map" />
|
||||
<Content Include="wwwroot\Scripts\jquery-3.2.1.slim.min.map" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Step.Config\Step.Config.csproj">
|
||||
<Project>{3f5c2483-fc87-43ef-92a8-66ff7d0e440f}</Project>
|
||||
<Name>Step.Config</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Step.Core\Step.Core.csproj">
|
||||
<Project>{de54ff4c-8390-4489-882a-1bc7d99ef185}</Project>
|
||||
<Name>Step.Core</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Step.Database\Step.Database.csproj">
|
||||
<Project>{357d5ee1-ffc8-489b-9232-22cf474d9a6f}</Project>
|
||||
<Name>Step.Database</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Step.Model\Step.Model.csproj">
|
||||
<Project>{631375dd-06d3-49bb-8130-d9ddb34c429d}</Project>
|
||||
<Name>Step.Model</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Step.NC\Step.NC.csproj">
|
||||
<Project>{b2366b08-96bd-4f6b-b748-b45089b87a14}</Project>
|
||||
<Name>Step.NC</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Step.UI\Step.UI.csproj">
|
||||
<Project>{20fc0937-e7ca-4693-95f9-7a948efd173b}</Project>
|
||||
<Name>Step.UI</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Step.Utils\Step.Utils.csproj">
|
||||
<Project>{cbeb631b-abfa-4042-9779-c0060b0dfefe}</Project>
|
||||
<Name>Step.Utils</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Service Include="{4A0DDDB5-7A95-4FBF-97CC-616D07737A77}" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<TypeScriptCompile Include="wwwroot\src\%40types\LoginViewModel.cs.d.ts" />
|
||||
<TypeScriptCompile Include="wwwroot\src\%40types\TestModel.cs.d.ts" />
|
||||
<TypeScriptCompile Include="wwwroot\src\app.business-logic.ts" />
|
||||
<TypeScriptCompile Include="wwwroot\src\modules\base-components\modal.ts" />
|
||||
<TypeScriptCompile Include="wwwroot\src\modules\login.ts" />
|
||||
<TypeScriptCompile Include="wwwroot\src\services\dataService.ts" />
|
||||
<TypeScriptCompile Include="wwwroot\src\services\hub.ts" />
|
||||
<TypeScriptCompile Include="wwwroot\src\services\loginService.ts" />
|
||||
<TypeScriptCompile Include="wwwroot\src\_base\baseRestService.ts" />
|
||||
<TypeScriptCompile Include="wwwroot\src\_base\factoryService.ts" />
|
||||
<TypeScriptCompile Include="wwwroot\src\_base\filtersExtensions.ts" />
|
||||
<TypeScriptCompile Include="wwwroot\src\_base\messageService.ts" />
|
||||
<TypeScriptCompile Include="wwwroot\src\_base\utils.ts" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
|
||||
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<StartupObject>Step.Application</StartupObject>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ApplicationIcon>Step_Icon.ico</ApplicationIcon>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets')" />
|
||||
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
|
||||
<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
|
||||
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
|
||||
</Target>
|
||||
<ProjectExtensions />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.2.4.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.2.4.0\build\Microsoft.Net.Compilers.props'))" />
|
||||
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.8\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.8\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
|
||||
</Target>
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target> -->
|
||||
</Target> -->
|
||||
</Project>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 396 B |
Binary file not shown.
|
After Width: | Height: | Size: 297 B |
@@ -834,13 +834,43 @@
|
||||
}
|
||||
|
||||
.card-element-queue{
|
||||
width: 352px;
|
||||
width: 408px;
|
||||
height: 64px;
|
||||
display: flex;
|
||||
flex-flow: row;
|
||||
border-radius: 2px;
|
||||
background-color: @color-background-white;
|
||||
box-shadow: 0 1px 2px 0 @color-black-40;
|
||||
&.border-green{
|
||||
border: solid 2px @color-apple-green;
|
||||
.card-element-queue-right{
|
||||
.square-number{
|
||||
width: 112px;
|
||||
}
|
||||
}
|
||||
}
|
||||
&.border-blue{
|
||||
border: solid 2px @color-clear-blue;
|
||||
}
|
||||
&.border-orange{
|
||||
border: solid 2px @color-squash;
|
||||
}
|
||||
&.finished{
|
||||
border: none;
|
||||
font-size: 18px;
|
||||
.card-element-queue-name{
|
||||
color: @color-label-grey;
|
||||
}
|
||||
.card-element-queue-right{
|
||||
.square-number{
|
||||
width: 112px;
|
||||
label{
|
||||
font-size: 25px;
|
||||
color: @color-clear-blue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.card-element-queue-name{
|
||||
width: 100%;
|
||||
display: flex;
|
||||
@@ -854,6 +884,7 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
position: relative;
|
||||
.square-number{
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
@@ -874,6 +905,9 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
.smooth-dnd-draggable-wrapper .element-queue:first-child{
|
||||
margin-top: 3px;
|
||||
}
|
||||
|
||||
.card-production-cms{
|
||||
width: 1024px;
|
||||
@@ -989,6 +1023,75 @@
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-flow: column;
|
||||
.queue-header{
|
||||
height: 64px;
|
||||
width: 100%;
|
||||
.tab-box {
|
||||
height: 64px;
|
||||
width: 100%;
|
||||
background-color: @color-whitethree;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
border: none !important;
|
||||
.tab {
|
||||
flex-grow: 0;
|
||||
flex-shrink: 0;
|
||||
float: left !important;
|
||||
width: 256px !important;
|
||||
height: 100% !important;
|
||||
margin: 0 !important;
|
||||
padding: 0;
|
||||
border: none !important;
|
||||
border-right: solid 1px @color-label-grey !important;
|
||||
background-color: @color-whitethree;
|
||||
font-size: 18px !important;
|
||||
line-height: 1 !important;
|
||||
color: @color-greyish-brown !important;
|
||||
position: relative;
|
||||
&.plus {
|
||||
border-right: none !important;
|
||||
.btn {
|
||||
float: left !important;
|
||||
margin: 0;
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
position: absolute;
|
||||
top: calc(~"50% - 24px");
|
||||
margin-left: 20px;
|
||||
padding: 0;
|
||||
.fa {
|
||||
vertical-align: middle;
|
||||
font-size: 21px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.tab:last-child {
|
||||
border-right: none !important;
|
||||
}
|
||||
.active {
|
||||
background-color: @color-white;
|
||||
border-top: solid 2px @color-clear-blue !important;
|
||||
}
|
||||
.tab-box-scroll {
|
||||
width: 100%;
|
||||
overflow-y: hidden;
|
||||
overflow-x: auto;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-basis: auto;
|
||||
&::-webkit-scrollbar {
|
||||
width: 5px;
|
||||
height: 5px;
|
||||
}
|
||||
&::-webkit-scrollbar-thumb {
|
||||
border-radius: 5px;
|
||||
height: 1px;
|
||||
background-color: rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.queue-body{
|
||||
height: calc(~'100% - 63px');
|
||||
width: calc(~'100% - 16px');
|
||||
@@ -996,13 +1099,14 @@
|
||||
flex-flow: column;
|
||||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
margin: 16px 0 0 8px;
|
||||
margin: 16px 0 0 4px;
|
||||
.element-queue{
|
||||
display: flex;
|
||||
flex-flow: row;
|
||||
align-items: center;
|
||||
margin-bottom: 16px;
|
||||
width: 400px;
|
||||
width: 432px;
|
||||
margin-right: 8px;
|
||||
label.number{
|
||||
display: flex;
|
||||
height: 100%;
|
||||
@@ -1011,6 +1115,40 @@
|
||||
color: @color-greyish-brown;
|
||||
}
|
||||
}
|
||||
& .popup{
|
||||
position: absolute;
|
||||
display: flex;
|
||||
padding: 4px;
|
||||
.edit-reps{
|
||||
width: 100%;
|
||||
height: calc(~'100% - 26px');;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-around;
|
||||
}
|
||||
// &:before {
|
||||
// content: "\f0d8";
|
||||
// color: @color-silver;
|
||||
// position: absolute;
|
||||
// top: -26px;
|
||||
// left: calc(~'50% - 10px');
|
||||
// font-family: 'fontawesome';
|
||||
// font-size: 38px;
|
||||
// }
|
||||
.group-button{
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
.btn.btn-success.btn-small{
|
||||
height: 26px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
input{
|
||||
width: 50px;
|
||||
height: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
.queue-footer{
|
||||
@@ -1058,6 +1196,7 @@
|
||||
width: 502px;
|
||||
height: 768px;
|
||||
background-color: @color-background-white;
|
||||
position: relative;
|
||||
.card-job-production-header{
|
||||
height: 63px;
|
||||
width: 100%;
|
||||
@@ -1222,6 +1361,18 @@
|
||||
|
||||
}
|
||||
|
||||
.card-job-production-box-start{
|
||||
position: absolute;
|
||||
z-index: 100;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0;
|
||||
background-color: rgba(255, 255, 255, 0.95);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
|
||||
.card-production-section-file{
|
||||
width: 400px;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
// out: false, sourceMap: false, main: ../style.less
|
||||
@import "colors.less";
|
||||
@import "modals.less";
|
||||
@import "popups.less";
|
||||
@import "grid-system.less";
|
||||
@import "input.less";
|
||||
@import "buttons.less";
|
||||
|
||||
@@ -798,7 +798,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
.@{modal}.modal-load-program {
|
||||
.@{modal}.modal-load-program, .@{modal}.modal-add-element-queue {
|
||||
width: @modal-load-program-width;
|
||||
height: @modal-load-program-height;
|
||||
top: calc(~"50%" - @modal-load-program-height / 2);
|
||||
@@ -830,7 +830,7 @@
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
.modal-load-program-header {
|
||||
.modal-load-program-header, .modal-add-element-queue-header {
|
||||
height: 80px;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
@@ -878,7 +878,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
.modal-load-program-body {
|
||||
.modal-load-program-body, .modal-add-element-queue-body {
|
||||
height: 631px;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
@@ -1134,7 +1134,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
.modal-load-program-footer {
|
||||
.modal-load-program-footer, .modal-add-element-queue-footer {
|
||||
height: 79px;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
// out: false, sourceMap: false, main: ../style.less
|
||||
|
||||
@import "colors.less";
|
||||
@import "fonts.less";
|
||||
|
||||
@popup: popup;
|
||||
|
||||
.@{popup}{
|
||||
width: 288px;
|
||||
height: 218px;
|
||||
display: flex;
|
||||
flex-flow: column;
|
||||
background-color: @color-background-white;
|
||||
z-index: 100;
|
||||
header{
|
||||
height: 64px;
|
||||
border-bottom: solid 2px @color-silver;
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 16px;
|
||||
color: @color-darkish-blue;
|
||||
padding-left: 16px;
|
||||
button.close {
|
||||
position: absolute;
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
border-radius: 50%;
|
||||
border: none;
|
||||
background-color: @color-background-white;
|
||||
color: @color-darkish-blue;
|
||||
top: calc(50% - 20px);
|
||||
right: 14px;
|
||||
font-size: 16px;
|
||||
cursor: pointer;
|
||||
}
|
||||
button.close:active {
|
||||
background-color: @color-clear-blue;
|
||||
color: @color-white;
|
||||
}
|
||||
}
|
||||
section.body{
|
||||
width: 100%;
|
||||
height: calc(~'100% - 64px');
|
||||
}
|
||||
}
|
||||
|
||||
// .@{popup}.arrow-bottom::after, .@{popup}.arrow-top::after, .@{popup}.arrow-right::after, .@{popup}.arrow-left::after{
|
||||
// content: "";
|
||||
// position: absolute;
|
||||
// border-width: 15px;
|
||||
// border-style: solid;
|
||||
// }
|
||||
|
||||
// .@{popup}.arrow-bottom::after, .@{popup}.arrow-top::after{
|
||||
// left: 50%;
|
||||
// margin-left: -15px;
|
||||
// }
|
||||
|
||||
// .@{popup}.arrow-right::after, .@{popup}.arrow-left::after{
|
||||
// top: 50%;
|
||||
// margin-top: -15px;
|
||||
// }
|
||||
|
||||
// .@{popup}.arrow-bottom::after{
|
||||
// top: 100%;
|
||||
// border-color: @color-silver transparent transparent transparent;
|
||||
// }
|
||||
|
||||
// .@{popup}.arrow-top::after{
|
||||
// bottom: 100%;
|
||||
// border-color: transparent transparent @color-silver transparent;
|
||||
// }
|
||||
|
||||
// .@{popup}.arrow-right::after{
|
||||
// left: 100%;
|
||||
// border-color: transparent transparent transparent @color-silver;
|
||||
// }
|
||||
|
||||
// .@{popup}.arrow-left::after{
|
||||
// right: 100%;
|
||||
// border-color: transparent @color-silver transparent transparent;
|
||||
// }
|
||||
|
||||
.@{popup}.arrow-top {
|
||||
border: 2px solid @color-clear-blue;
|
||||
}
|
||||
|
||||
.@{popup}.arrow-top::before {
|
||||
content: '';
|
||||
display: block;
|
||||
position: absolute;
|
||||
left: 128px;
|
||||
bottom: 100%;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border: 18px solid transparent;
|
||||
border-bottom-color: @color-clear-blue;
|
||||
}
|
||||
|
||||
.@{popup}.arrow-top::after {
|
||||
content: '';
|
||||
display: block;
|
||||
position: absolute;
|
||||
left: 130px;
|
||||
bottom: 100%;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border: 16px solid transparent;
|
||||
border-bottom-color: @color-background-white;
|
||||
}
|
||||
@@ -733,14 +733,16 @@
|
||||
width: 100%;
|
||||
border: none;
|
||||
}
|
||||
.modal.modal-load-program {
|
||||
.modal.modal-load-program,
|
||||
.modal.modal-add-element-queue {
|
||||
width: 1808px;
|
||||
height: 873px;
|
||||
top: calc(50% - 436.5px);
|
||||
left: calc(50% - 904px);
|
||||
background-color: #fff;
|
||||
}
|
||||
.modal.modal-load-program header {
|
||||
.modal.modal-load-program header,
|
||||
.modal.modal-add-element-queue header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding-left: 24px;
|
||||
@@ -748,7 +750,8 @@
|
||||
font-size: 20px;
|
||||
color: #002680;
|
||||
}
|
||||
.modal.modal-load-program header button.close {
|
||||
.modal.modal-load-program header button.close,
|
||||
.modal.modal-add-element-queue header button.close {
|
||||
position: absolute;
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
@@ -761,17 +764,24 @@
|
||||
font-size: 16px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.modal.modal-load-program header button.close:active {
|
||||
.modal.modal-load-program header button.close:active,
|
||||
.modal.modal-add-element-queue header button.close:active {
|
||||
background-color: #1791ff;
|
||||
color: #fff;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-header {
|
||||
.modal.modal-load-program .modal-load-program-header,
|
||||
.modal.modal-add-element-queue .modal-load-program-header,
|
||||
.modal.modal-load-program .modal-add-element-queue-header,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-header {
|
||||
height: 80px;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-flow: column;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-header .box-search {
|
||||
.modal.modal-load-program .modal-load-program-header .box-search,
|
||||
.modal.modal-add-element-queue .modal-load-program-header .box-search,
|
||||
.modal.modal-load-program .modal-add-element-queue-header .box-search,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-header .box-search {
|
||||
width: 100%;
|
||||
height: 80px;
|
||||
display: flex;
|
||||
@@ -779,28 +789,46 @@
|
||||
align-items: center;
|
||||
background-color: #979797;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-header .box-search .path {
|
||||
.modal.modal-load-program .modal-load-program-header .box-search .path,
|
||||
.modal.modal-add-element-queue .modal-load-program-header .box-search .path,
|
||||
.modal.modal-load-program .modal-add-element-queue-header .box-search .path,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-header .box-search .path {
|
||||
display: flex;
|
||||
flex-flow: row;
|
||||
color: #fff;
|
||||
margin-left: 20px;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-header .box-search .path .child {
|
||||
.modal.modal-load-program .modal-load-program-header .box-search .path .child,
|
||||
.modal.modal-add-element-queue .modal-load-program-header .box-search .path .child,
|
||||
.modal.modal-load-program .modal-add-element-queue-header .box-search .path .child,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-header .box-search .path .child {
|
||||
display: flex;
|
||||
flex-flow: row;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-header .box-search .path .child div + .fa.fa-chevron-right:first-child {
|
||||
.modal.modal-load-program .modal-load-program-header .box-search .path .child div + .fa.fa-chevron-right:first-child,
|
||||
.modal.modal-add-element-queue .modal-load-program-header .box-search .path .child div + .fa.fa-chevron-right:first-child,
|
||||
.modal.modal-load-program .modal-add-element-queue-header .box-search .path .child div + .fa.fa-chevron-right:first-child,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-header .box-search .path .child div + .fa.fa-chevron-right:first-child {
|
||||
display: none;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-header .box-search .path .child .fa {
|
||||
.modal.modal-load-program .modal-load-program-header .box-search .path .child .fa,
|
||||
.modal.modal-add-element-queue .modal-load-program-header .box-search .path .child .fa,
|
||||
.modal.modal-load-program .modal-add-element-queue-header .box-search .path .child .fa,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-header .box-search .path .child .fa {
|
||||
margin: 0px 22px;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-header .box-search .search {
|
||||
.modal.modal-load-program .modal-load-program-header .box-search .search,
|
||||
.modal.modal-add-element-queue .modal-load-program-header .box-search .search,
|
||||
.modal.modal-load-program .modal-add-element-queue-header .box-search .search,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-header .box-search .search {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-header .box-search .search input {
|
||||
.modal.modal-load-program .modal-load-program-header .box-search .search input,
|
||||
.modal.modal-add-element-queue .modal-load-program-header .box-search .search input,
|
||||
.modal.modal-load-program .modal-add-element-queue-header .box-search .search input,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-header .box-search .search input {
|
||||
width: 688px;
|
||||
height: 48px;
|
||||
border-radius: 2px;
|
||||
@@ -808,28 +836,43 @@
|
||||
border: solid 1px #dfdfdf;
|
||||
background-color: #f8f8f8;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body {
|
||||
.modal.modal-load-program .modal-load-program-body,
|
||||
.modal.modal-add-element-queue .modal-load-program-body,
|
||||
.modal.modal-load-program .modal-add-element-queue-body,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body {
|
||||
height: 631px;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-flow: row;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body hr {
|
||||
.modal.modal-load-program .modal-load-program-body hr,
|
||||
.modal.modal-add-element-queue .modal-load-program-body hr,
|
||||
.modal.modal-load-program .modal-add-element-queue-body hr,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body hr {
|
||||
width: 5%;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .first-column {
|
||||
.modal.modal-load-program .modal-load-program-body .first-column,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .first-column,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .first-column,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .first-column {
|
||||
min-width: 215px;
|
||||
border-right: solid 2px #e7e7e7;
|
||||
display: flex;
|
||||
flex-flow: column;
|
||||
padding-top: 19px;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .first-column .card-folder-path {
|
||||
.modal.modal-load-program .modal-load-program-body .first-column .card-folder-path,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .first-column .card-folder-path,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .first-column .card-folder-path,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .first-column .card-folder-path {
|
||||
width: 200px;
|
||||
display: flex;
|
||||
margin-top: 8px 0 8px 5px;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .second-column {
|
||||
.modal.modal-load-program .modal-load-program-body .second-column,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .second-column,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .second-column,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .second-column {
|
||||
height: calc(100% - 19px);
|
||||
min-width: 445px;
|
||||
border-right: solid 2px #e7e7e7;
|
||||
@@ -837,22 +880,34 @@
|
||||
flex-flow: column;
|
||||
padding-top: 19px;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .second-column .content {
|
||||
.modal.modal-load-program .modal-load-program-body .second-column .content,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .second-column .content,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .second-column .content,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .second-column .content {
|
||||
width: 94%;
|
||||
height: 100%;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .second-column .content .card-folder-path {
|
||||
.modal.modal-load-program .modal-load-program-body .second-column .content .card-folder-path,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .second-column .content .card-folder-path,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .second-column .content .card-folder-path,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .second-column .content .card-folder-path {
|
||||
width: 371px;
|
||||
display: flex;
|
||||
margin-top: 8px 0 8px 8px;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .second-column .group-btn {
|
||||
.modal.modal-load-program .modal-load-program-body .second-column .group-btn,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .second-column .group-btn,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .second-column .group-btn,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .second-column .group-btn {
|
||||
display: flex;
|
||||
flex-flow: row;
|
||||
justify-content: center;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .second-column .group-btn input {
|
||||
.modal.modal-load-program .modal-load-program-body .second-column .group-btn input,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .second-column .group-btn input,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .second-column .group-btn input,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .second-column .group-btn input {
|
||||
width: 360px;
|
||||
height: 48px;
|
||||
padding: 0;
|
||||
@@ -861,22 +916,34 @@
|
||||
border: none;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .second-column .group-btn input[type="text"] {
|
||||
.modal.modal-load-program .modal-load-program-body .second-column .group-btn input[type="text"],
|
||||
.modal.modal-add-element-queue .modal-load-program-body .second-column .group-btn input[type="text"],
|
||||
.modal.modal-load-program .modal-add-element-queue-body .second-column .group-btn input[type="text"],
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .second-column .group-btn input[type="text"] {
|
||||
padding-left: 5px;
|
||||
outline: none ;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .second-column .group-btn input:focus {
|
||||
.modal.modal-load-program .modal-load-program-body .second-column .group-btn input:focus,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .second-column .group-btn input:focus,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .second-column .group-btn input:focus,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .second-column .group-btn input:focus {
|
||||
border-bottom: 1px solid #1791ff;
|
||||
box-shadow: none;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .second-column .group-btn i {
|
||||
.modal.modal-load-program .modal-load-program-body .second-column .group-btn i,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .second-column .group-btn i,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .second-column .group-btn i,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .second-column .group-btn i {
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
padding: 0;
|
||||
margin-top: 4px;
|
||||
color: #002680;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .third-column {
|
||||
.modal.modal-load-program .modal-load-program-body .third-column,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .third-column,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .third-column,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .third-column {
|
||||
height: calc(100% - 19px);
|
||||
min-width: 447px;
|
||||
border-right: solid 2px #e7e7e7;
|
||||
@@ -884,16 +951,25 @@
|
||||
flex-flow: column;
|
||||
padding-top: 19px;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .third-column .content {
|
||||
.modal.modal-load-program .modal-load-program-body .third-column .content,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .third-column .content,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .third-column .content,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .third-column .content {
|
||||
width: 94%;
|
||||
height: 100%;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .third-column .content .card-folder-path {
|
||||
.modal.modal-load-program .modal-load-program-body .third-column .content .card-folder-path,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .third-column .content .card-folder-path,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .third-column .content .card-folder-path,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .third-column .content .card-folder-path {
|
||||
width: 371px;
|
||||
display: flex;
|
||||
margin-top: 8px 0 8px 8px;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .third-column .label-folder-empty {
|
||||
.modal.modal-load-program .modal-load-program-body .third-column .label-folder-empty,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .third-column .label-folder-empty,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .third-column .label-folder-empty,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .third-column .label-folder-empty {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
@@ -902,13 +978,19 @@
|
||||
color: #4b4b4b;
|
||||
font-size: 20px;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .third-column .group-btn {
|
||||
.modal.modal-load-program .modal-load-program-body .third-column .group-btn,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .third-column .group-btn,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .third-column .group-btn,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .third-column .group-btn {
|
||||
display: flex;
|
||||
flex-flow: row;
|
||||
justify-content: center;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .third-column .group-btn input {
|
||||
.modal.modal-load-program .modal-load-program-body .third-column .group-btn input,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .third-column .group-btn input,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .third-column .group-btn input,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .third-column .group-btn input {
|
||||
width: 360px;
|
||||
height: 48px;
|
||||
padding: 0;
|
||||
@@ -917,22 +999,34 @@
|
||||
border: none;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .third-column .group-btn input[type="text"] {
|
||||
.modal.modal-load-program .modal-load-program-body .third-column .group-btn input[type="text"],
|
||||
.modal.modal-add-element-queue .modal-load-program-body .third-column .group-btn input[type="text"],
|
||||
.modal.modal-load-program .modal-add-element-queue-body .third-column .group-btn input[type="text"],
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .third-column .group-btn input[type="text"] {
|
||||
padding-left: 5px;
|
||||
outline: none ;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .third-column .group-btn input:focus {
|
||||
.modal.modal-load-program .modal-load-program-body .third-column .group-btn input:focus,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .third-column .group-btn input:focus,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .third-column .group-btn input:focus,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .third-column .group-btn input:focus {
|
||||
border-bottom: 1px solid #1791ff;
|
||||
box-shadow: none;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .third-column .group-btn i {
|
||||
.modal.modal-load-program .modal-load-program-body .third-column .group-btn i,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .third-column .group-btn i,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .third-column .group-btn i,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .third-column .group-btn i {
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
padding: 0;
|
||||
margin-top: 4px;
|
||||
color: #002680;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item {
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .selected-item,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .selected-item,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .selected-item {
|
||||
width: 660px;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
@@ -940,30 +1034,45 @@
|
||||
justify-content: flex-end;
|
||||
padding: 0 16px 0 22px;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-header {
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-header,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .selected-item .selected-item-header,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .selected-item .selected-item-header,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .selected-item .selected-item-header {
|
||||
height: 78px;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-flow: row;
|
||||
align-items: center;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-header .subtitle {
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-header .subtitle,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .selected-item .selected-item-header .subtitle,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .selected-item .selected-item-header .subtitle,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .selected-item .selected-item-header .subtitle {
|
||||
display: flex;
|
||||
flex-flow: row;
|
||||
font-size: 13px;
|
||||
line-height: 4px;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-header .subtitle .title {
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-header .subtitle .title,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .selected-item .selected-item-header .subtitle .title,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .selected-item .selected-item-header .subtitle .title,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .selected-item .selected-item-header .subtitle .title {
|
||||
width: 110px;
|
||||
text-align: right;
|
||||
color: #002680;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-header .subtitle .text {
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-header .subtitle .text,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .selected-item .selected-item-header .subtitle .text,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .selected-item .selected-item-header .subtitle .text,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .selected-item .selected-item-header .subtitle .text {
|
||||
margin-right: 40px;
|
||||
color: #4b4b4b;
|
||||
margin-left: 5px;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-header .selected-item-title {
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-header .selected-item-title,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .selected-item .selected-item-header .selected-item-title,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .selected-item .selected-item-header .selected-item-title,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .selected-item .selected-item-header .selected-item-title {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
@@ -973,17 +1082,26 @@
|
||||
font-size: 26px;
|
||||
line-height: 55px;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-header .group-button {
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-header .group-button,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .selected-item .selected-item-header .group-button,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .selected-item .selected-item-header .group-button,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .selected-item .selected-item-header .group-button {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-header .group-button i {
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-header .group-button i,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .selected-item .selected-item-header .group-button i,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .selected-item .selected-item-header .group-button i,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .selected-item .selected-item-header .group-button i {
|
||||
font-size: 24px;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-body {
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-body,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .selected-item .selected-item-body,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .selected-item .selected-item-body,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .selected-item .selected-item-body {
|
||||
width: 100%;
|
||||
height: calc(100% - 78px);
|
||||
position: relative;
|
||||
@@ -991,20 +1109,29 @@
|
||||
display: flex;
|
||||
flex-flow: column;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-body .selected-item-body-image {
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-body .selected-item-body-image,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .selected-item .selected-item-body .selected-item-body-image,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .selected-item .selected-item-body .selected-item-body-image,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .selected-item .selected-item-body .selected-item-body-image {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
margin-top: 10px;
|
||||
height: 336px;
|
||||
align-items: center;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-body .selected-item-body-image img {
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-body .selected-item-body-image img,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .selected-item .selected-item-body .selected-item-body-image img,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .selected-item .selected-item-body .selected-item-body-image img,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .selected-item .selected-item-body .selected-item-body-image img {
|
||||
display: block;
|
||||
margin: auto;
|
||||
max-height: 336px;
|
||||
box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-body .selected-item-body-image .noimage {
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-body .selected-item-body-image .noimage,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .selected-item .selected-item-body .selected-item-body-image .noimage,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .selected-item .selected-item-body .selected-item-body-image .noimage,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .selected-item .selected-item-body .selected-item-body-image .noimage {
|
||||
display: block;
|
||||
margin: auto;
|
||||
height: 290px;
|
||||
@@ -1016,7 +1143,10 @@
|
||||
box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.4);
|
||||
border: 1px solid rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-body .selected-item-body-description {
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-body .selected-item-body-description,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .selected-item .selected-item-body .selected-item-body-description,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .selected-item .selected-item-body .selected-item-body-description,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .selected-item .selected-item-body .selected-item-body-description {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
margin-top: 10px;
|
||||
@@ -1024,7 +1154,10 @@
|
||||
height: calc(100% - 380px);
|
||||
flex-flow: column;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-body .selected-item-body-description .row {
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-body .selected-item-body-description .row,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .selected-item .selected-item-body .selected-item-body-description .row,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .selected-item .selected-item-body .selected-item-body-description .row,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .selected-item .selected-item-body .selected-item-body-description .row {
|
||||
height: 32px;
|
||||
min-height: 32px;
|
||||
display: flex;
|
||||
@@ -1034,18 +1167,30 @@
|
||||
text-align: justify;
|
||||
overflow: hidden;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-body .selected-item-body-description .row label {
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-body .selected-item-body-description .row label,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .selected-item .selected-item-body .selected-item-body-description .row label,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .selected-item .selected-item-body .selected-item-body-description .row label,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .selected-item .selected-item-body .selected-item-body-description .row label {
|
||||
font-size: 18px;
|
||||
margin-left: 5px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-body .selected-item-body-description .row:nth-child(odd) {
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-body .selected-item-body-description .row:nth-child(odd),
|
||||
.modal.modal-add-element-queue .modal-load-program-body .selected-item .selected-item-body .selected-item-body-description .row:nth-child(odd),
|
||||
.modal.modal-load-program .modal-add-element-queue-body .selected-item .selected-item-body .selected-item-body-description .row:nth-child(odd),
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .selected-item .selected-item-body .selected-item-body-description .row:nth-child(odd) {
|
||||
background-color: rgba(23, 145, 255, 0.3);
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-body .selected-item-body-description .row:nth-child(even) {
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .selected-item-body .selected-item-body-description .row:nth-child(even),
|
||||
.modal.modal-add-element-queue .modal-load-program-body .selected-item .selected-item-body .selected-item-body-description .row:nth-child(even),
|
||||
.modal.modal-load-program .modal-add-element-queue-body .selected-item .selected-item-body .selected-item-body-description .row:nth-child(even),
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .selected-item .selected-item-body .selected-item-body-description .row:nth-child(even) {
|
||||
background-color: #f3f3f3;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .notselecteditem {
|
||||
.modal.modal-load-program .modal-load-program-body .selected-item .notselecteditem,
|
||||
.modal.modal-add-element-queue .modal-load-program-body .selected-item .notselecteditem,
|
||||
.modal.modal-load-program .modal-add-element-queue-body .selected-item .notselecteditem,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-body .selected-item .notselecteditem {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
width: 695px;
|
||||
@@ -1058,7 +1203,10 @@
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.modal.modal-load-program .modal-load-program-footer {
|
||||
.modal.modal-load-program .modal-load-program-footer,
|
||||
.modal.modal-add-element-queue .modal-load-program-footer,
|
||||
.modal.modal-load-program .modal-add-element-queue-footer,
|
||||
.modal.modal-add-element-queue .modal-add-element-queue-footer {
|
||||
height: 79px;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
@@ -1695,6 +1843,70 @@
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
.popup {
|
||||
width: 288px;
|
||||
height: 218px;
|
||||
display: flex;
|
||||
flex-flow: column;
|
||||
background-color: #fff;
|
||||
z-index: 100;
|
||||
}
|
||||
.popup header {
|
||||
height: 64px;
|
||||
border-bottom: solid 2px #bbbcbc;
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 16px;
|
||||
color: #002680;
|
||||
padding-left: 16px;
|
||||
}
|
||||
.popup header button.close {
|
||||
position: absolute;
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
border-radius: 50%;
|
||||
border: none;
|
||||
background-color: #fff;
|
||||
color: #002680;
|
||||
top: calc(30%);
|
||||
right: 14px;
|
||||
font-size: 16px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.popup header button.close:active {
|
||||
background-color: #1791ff;
|
||||
color: #fff;
|
||||
}
|
||||
.popup section.body {
|
||||
width: 100%;
|
||||
height: calc(100% - 64px);
|
||||
}
|
||||
.popup.arrow-top {
|
||||
border: 2px solid #1791ff;
|
||||
}
|
||||
.popup.arrow-top::before {
|
||||
content: '';
|
||||
display: block;
|
||||
position: absolute;
|
||||
left: 128px;
|
||||
bottom: 100%;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border: 18px solid transparent;
|
||||
border-bottom-color: #1791ff;
|
||||
}
|
||||
.popup.arrow-top::after {
|
||||
content: '';
|
||||
display: block;
|
||||
position: absolute;
|
||||
left: 130px;
|
||||
bottom: 100%;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border: 16px solid transparent;
|
||||
border-bottom-color: #fff;
|
||||
}
|
||||
.row {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
@@ -5686,7 +5898,7 @@ footer .container button.big:before {
|
||||
cursor: not-allowed;
|
||||
}
|
||||
.card-element-queue {
|
||||
width: 352px;
|
||||
width: 408px;
|
||||
height: 64px;
|
||||
display: flex;
|
||||
flex-flow: row;
|
||||
@@ -5694,6 +5906,32 @@ footer .container button.big:before {
|
||||
background-color: #fff;
|
||||
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
.card-element-queue.border-green {
|
||||
border: solid 2px #7ed321;
|
||||
}
|
||||
.card-element-queue.border-green .card-element-queue-right .square-number {
|
||||
width: 112px;
|
||||
}
|
||||
.card-element-queue.border-blue {
|
||||
border: solid 2px #1791ff;
|
||||
}
|
||||
.card-element-queue.border-orange {
|
||||
border: solid 2px #f5a623;
|
||||
}
|
||||
.card-element-queue.finished {
|
||||
border: none;
|
||||
font-size: 18px;
|
||||
}
|
||||
.card-element-queue.finished .card-element-queue-name {
|
||||
color: #979797;
|
||||
}
|
||||
.card-element-queue.finished .card-element-queue-right .square-number {
|
||||
width: 112px;
|
||||
}
|
||||
.card-element-queue.finished .card-element-queue-right .square-number label {
|
||||
font-size: 25px;
|
||||
color: #1791ff;
|
||||
}
|
||||
.card-element-queue .card-element-queue-name {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
@@ -5707,6 +5945,7 @@ footer .container button.big:before {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
position: relative;
|
||||
}
|
||||
.card-element-queue .card-element-queue-right .square-number {
|
||||
width: 48px;
|
||||
@@ -5726,6 +5965,9 @@ footer .container button.big:before {
|
||||
.card-element-queue .card-element-queue-right button.btn i.fa.fa-trash {
|
||||
font-size: 24px;
|
||||
}
|
||||
.smooth-dnd-draggable-wrapper .element-queue:first-child {
|
||||
margin-top: 3px;
|
||||
}
|
||||
.card-production-cms {
|
||||
width: 1024px;
|
||||
height: 768px;
|
||||
@@ -5835,6 +6077,75 @@ footer .container button.big:before {
|
||||
display: flex;
|
||||
flex-flow: column;
|
||||
}
|
||||
.card-queue-production .card-queue-production-body .queue-header {
|
||||
height: 64px;
|
||||
width: 100%;
|
||||
}
|
||||
.card-queue-production .card-queue-production-body .queue-header .tab-box {
|
||||
height: 64px;
|
||||
width: 100%;
|
||||
background-color: #e7e7e7;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
border: none !important;
|
||||
}
|
||||
.card-queue-production .card-queue-production-body .queue-header .tab-box .tab {
|
||||
flex-grow: 0;
|
||||
flex-shrink: 0;
|
||||
float: left !important;
|
||||
width: 256px !important;
|
||||
height: 100% !important;
|
||||
margin: 0 !important;
|
||||
padding: 0;
|
||||
border: none !important;
|
||||
border-right: solid 1px #979797 !important;
|
||||
background-color: #e7e7e7;
|
||||
font-size: 18px !important;
|
||||
line-height: 1 !important;
|
||||
color: #4b4b4b !important;
|
||||
position: relative;
|
||||
}
|
||||
.card-queue-production .card-queue-production-body .queue-header .tab-box .tab.plus {
|
||||
border-right: none !important;
|
||||
}
|
||||
.card-queue-production .card-queue-production-body .queue-header .tab-box .tab.plus .btn {
|
||||
float: left !important;
|
||||
margin: 0;
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
position: absolute;
|
||||
top: calc(50% - 24px);
|
||||
margin-left: 20px;
|
||||
padding: 0;
|
||||
}
|
||||
.card-queue-production .card-queue-production-body .queue-header .tab-box .tab.plus .btn .fa {
|
||||
vertical-align: middle;
|
||||
font-size: 21px;
|
||||
}
|
||||
.card-queue-production .card-queue-production-body .queue-header .tab-box .tab:last-child {
|
||||
border-right: none !important;
|
||||
}
|
||||
.card-queue-production .card-queue-production-body .queue-header .tab-box .active {
|
||||
background-color: #fff;
|
||||
border-top: solid 2px #1791ff !important;
|
||||
}
|
||||
.card-queue-production .card-queue-production-body .queue-header .tab-box .tab-box-scroll {
|
||||
width: 100%;
|
||||
overflow-y: hidden;
|
||||
overflow-x: auto;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-basis: auto;
|
||||
}
|
||||
.card-queue-production .card-queue-production-body .queue-header .tab-box .tab-box-scroll::-webkit-scrollbar {
|
||||
width: 5px;
|
||||
height: 5px;
|
||||
}
|
||||
.card-queue-production .card-queue-production-body .queue-header .tab-box .tab-box-scroll::-webkit-scrollbar-thumb {
|
||||
border-radius: 5px;
|
||||
height: 1px;
|
||||
background-color: rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
.card-queue-production .card-queue-production-body .queue-body {
|
||||
height: calc(100% - 63px);
|
||||
width: calc(100% - 16px);
|
||||
@@ -5842,14 +6153,15 @@ footer .container button.big:before {
|
||||
flex-flow: column;
|
||||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
margin: 16px 0 0 8px;
|
||||
margin: 16px 0 0 4px;
|
||||
}
|
||||
.card-queue-production .card-queue-production-body .queue-body .element-queue {
|
||||
display: flex;
|
||||
flex-flow: row;
|
||||
align-items: center;
|
||||
margin-bottom: 16px;
|
||||
width: 400px;
|
||||
width: 432px;
|
||||
margin-right: 8px;
|
||||
}
|
||||
.card-queue-production .card-queue-production-body .queue-body .element-queue label.number {
|
||||
display: flex;
|
||||
@@ -5858,6 +6170,31 @@ footer .container button.big:before {
|
||||
font-size: 20px;
|
||||
color: #4b4b4b;
|
||||
}
|
||||
.card-queue-production .card-queue-production-body .queue-body .popup {
|
||||
position: absolute;
|
||||
display: flex;
|
||||
padding: 4px;
|
||||
}
|
||||
.card-queue-production .card-queue-production-body .queue-body .popup .edit-reps {
|
||||
width: 100%;
|
||||
height: calc(100% - 26px);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-around;
|
||||
}
|
||||
.card-queue-production .card-queue-production-body .queue-body .popup .group-button {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
.card-queue-production .card-queue-production-body .queue-body .popup .group-button .btn.btn-success.btn-small {
|
||||
height: 26px;
|
||||
font-size: 12px;
|
||||
}
|
||||
.card-queue-production .card-queue-production-body .queue-body .popup input {
|
||||
width: 50px;
|
||||
height: 30px;
|
||||
}
|
||||
.card-queue-production .card-queue-production-body .queue-footer {
|
||||
display: flex;
|
||||
margin: 20px 0 0 8px;
|
||||
@@ -5900,6 +6237,7 @@ footer .container button.big:before {
|
||||
width: 502px;
|
||||
height: 768px;
|
||||
background-color: #fff;
|
||||
position: relative;
|
||||
}
|
||||
.card-job-production .card-job-production-header {
|
||||
height: 63px;
|
||||
@@ -6061,6 +6399,17 @@ footer .container button.big:before {
|
||||
.card-job-production .card-job-production-body .card-job-production-body-bottom .content-box.scrollable {
|
||||
width: 97%;
|
||||
}
|
||||
.card-job-production-box-start {
|
||||
position: absolute;
|
||||
z-index: 100;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0;
|
||||
background-color: rgba(255, 255, 255, 0.95);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.card-production-section-file {
|
||||
width: 400px;
|
||||
height: 48px;
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
<!-- <base href="/"> -->
|
||||
<title>Step</title>
|
||||
<title>CMS Active</title>
|
||||
|
||||
<script src="Scripts/jquery-3.2.1.min.js"></script>
|
||||
<script src="Scripts/jquery.mousewheel.js"></script>
|
||||
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
declare module server {
|
||||
export interface PartProgramModel {
|
||||
absolutePath: string,
|
||||
id: number,
|
||||
partProgramName: string,
|
||||
remainingReps: number,
|
||||
reps: number,
|
||||
status: number
|
||||
}
|
||||
}
|
||||
@@ -55,51 +55,51 @@ import {
|
||||
} from "./app.modules";
|
||||
|
||||
export let routes = [
|
||||
{ path: "", component: Home, name: "home", meta: { title: "Step - Dashboard" } },
|
||||
{ path: "/production", component: Production, meta: { title: "Step - Production", area: "production" } },
|
||||
{ path: "", component: Home, name: "home", meta: { title: "Dashboard" } },
|
||||
{ path: "/production", component: Production, meta: { title: "Production", area: "production" } },
|
||||
|
||||
{ path: "/tooling", component: Tooling, meta: { title: "Step - Tools", area: "tooling" } },
|
||||
{ name: "tooling-depot", path: "/tooling-depot/:id", component: Depot, meta: { title: "Step - Depot", area: "depot" } },
|
||||
{ path: "/tooling", component: Tooling, meta: { title: "Tools", area: "tooling" } },
|
||||
{ name: "tooling-depot", path: "/tooling-depot/:id", component: Depot, meta: { title: "Depot", area: "depot" } },
|
||||
|
||||
{ path: "/summary-depot", component: SummaryDepot, meta: { title: "Step - Summary-Depot", area: "summary-depot" } },
|
||||
{ path: "/tooling-equipment/:id?", component: ToolingEquipment, meta: { title: "Step - Tooling-Equipment", area: "tooling-equipment" } },
|
||||
{ path: "/tooling-families", component: ToolingFamilies, meta: { title: "Step - Tooling-Families", area: "tooling-families" } },
|
||||
{ path: "/tooling-shanks", component: ToolingShanks, meta: { title: "Step - Tooling-Shanks", area: "tooling-shanks" } },
|
||||
{ path: "/tooling-magpos", component: ToolingMagPos, meta: { title: "Step - Tooling-MagPos", area: "tooling-magpos" } },
|
||||
{ path: "/info-equipment", component: InfoEquipment, meta: { title: "Step - Info-Equipment", area: "info-equipment" } },
|
||||
{ path: "/utilities", component: Utilities, meta: { title: "Step - Utilities", area: "utilities" } },
|
||||
{ path: "/card-utilities", component: CardUtilities, meta: { title: "Step - Card-Utilities", area: "card-utilities" } },
|
||||
{ path: "/card-tool-depot", component: CardToolDepot, meta: { title: "Step - Card-Tool-Depot", area: "card-tool-depot" } },
|
||||
{ path: "/load-depot", component: LoadDepot, meta: { title: "Step - Load-Depot", area: "loaddepot" } },
|
||||
{ path: "/summary-depot", component: SummaryDepot, meta: { title: "Summary-Depot", area: "summary-depot" } },
|
||||
{ path: "/tooling-equipment/:id?", component: ToolingEquipment, meta: { title: "Tooling-Equipment", area: "tooling-equipment" } },
|
||||
{ path: "/tooling-families", component: ToolingFamilies, meta: { title: "Tooling-Families", area: "tooling-families" } },
|
||||
{ path: "/tooling-shanks", component: ToolingShanks, meta: { title: "Tooling-Shanks", area: "tooling-shanks" } },
|
||||
{ path: "/tooling-magpos", component: ToolingMagPos, meta: { title: "Tooling-MagPos", area: "tooling-magpos" } },
|
||||
{ path: "/info-equipment", component: InfoEquipment, meta: { title: "Info-Equipment", area: "info-equipment" } },
|
||||
{ path: "/utilities", component: Utilities, meta: { title: "Utilities", area: "utilities" } },
|
||||
{ path: "/card-utilities", component: CardUtilities, meta: { title: "Card-Utilities", area: "card-utilities" } },
|
||||
{ path: "/card-tool-depot", component: CardToolDepot, meta: { title: "Card-Tool-Depot", area: "card-tool-depot" } },
|
||||
{ path: "/load-depot", component: LoadDepot, meta: { title: "Load-Depot", area: "loaddepot" } },
|
||||
|
||||
{ path: "/softkeys-prefered", component: SoftKeysPrefered, meta: { title: "Step - Softkeys-Prefered", area: "softkeys-prefered" } },
|
||||
{ path: "/create-queue", component: CreateQueue, meta: { title: "Step - Create-Queue", area: "create-queue" } },
|
||||
{ path: "/softkeys-prefered", component: SoftKeysPrefered, meta: { title: "Softkeys-Prefered", area: "softkeys-prefered" } },
|
||||
{ path: "/create-queue", component: CreateQueue, meta: { title: "Create-Queue", area: "create-queue" } },
|
||||
|
||||
{ path: "/head-spindle", component: HeadSpindle, meta: { title: "Step - Head-Spindle", area: "head-spindle" } },
|
||||
{ path: "/head-production", component: HeadProduction, meta: { title: "Step - Head-Production", area: "head-production" } },
|
||||
{ path: "/card-axes-production", component: CardAxesProduction, meta: { title: "Step - Card-Axes-Production", area: "card-axes-production" } },
|
||||
{ path: "/card-production-cms", component: CardProductionCms, meta: { title: "Step - Card-Production-Cms", area: "card-production-cms" } },
|
||||
{ path: "/card-queue-production", component: CardQueueProduction, meta: { title: "Step - Card-Queue-Production", area: "card-queue-production" } },
|
||||
{ path: "/card-job-production", component: CardJobProduction, meta: { title: "Step - Card-Job-Production", area: "card-job-production" } },
|
||||
{ path: "/card-production-section-file", component: CardProductionSectionFile, meta: { title: "Step - Card-Production-Section-File", area: "card-production-section-file" } },
|
||||
{ path: "/modal-load-program", component: ModalLoadProgram, meta: { title: "Step - Modal-Load-Program", area: "modal-load-program" } },
|
||||
{ path: "/head-spindle", component: HeadSpindle, meta: { title: "Head-Spindle", area: "head-spindle" } },
|
||||
{ path: "/head-production", component: HeadProduction, meta: { title: "Head-Production", area: "head-production" } },
|
||||
{ path: "/card-axes-production", component: CardAxesProduction, meta: { title: "Card-Axes-Production", area: "card-axes-production" } },
|
||||
{ path: "/card-production-cms", component: CardProductionCms, meta: { title: "Card-Production-Cms", area: "card-production-cms" } },
|
||||
{ path: "/card-queue-production", component: CardQueueProduction, meta: { title: "Card-Queue-Production", area: "card-queue-production" } },
|
||||
{ path: "/card-job-production", component: CardJobProduction, meta: { title: "Card-Job-Production", area: "card-job-production" } },
|
||||
{ path: "/card-production-section-file", component: CardProductionSectionFile, meta: { title: "Card-Production-Section-File", area: "card-production-section-file" } },
|
||||
{ path: "/modal-load-program", component: ModalLoadProgram, meta: { title: "Modal-Load-Program", area: "modal-load-program" } },
|
||||
|
||||
{ path: "/modal-job-add-parameter", component: ModalJobAddParameter, meta: { title: "Step - Modal-Job-Add-Parameter", area: "modal-job-add-parameter" } },
|
||||
{ path: "/modal-edit-job", component: ModalEditJob, meta: { title: "Step - Modal-Edit-Job", area: "modal-edit-job" } },
|
||||
{ path: "/modal-job-add-parameter", component: ModalJobAddParameter, meta: { title: "Modal-Job-Add-Parameter", area: "modal-job-add-parameter" } },
|
||||
{ path: "/modal-edit-job", component: ModalEditJob, meta: { title: "Modal-Edit-Job", area: "modal-edit-job" } },
|
||||
|
||||
{ path: "/modal-add-offset-tool", component: ModalAddOffsetTool, meta: { title: "Step - Modal-Add-Offset-Tool", area: "modal-add-offset-tool" } },
|
||||
{ path: "/modal-add-offset-tool", component: ModalAddOffsetTool, meta: { title: "Modal-Add-Offset-Tool", area: "modal-add-offset-tool" } },
|
||||
|
||||
{ path: "/card-folder-path", component: CardFolderPath, meta: { title: "Step - Card-Folder-Path", area: "card-folder-path" } },
|
||||
{ path: "/card-element-queue", component: CardElementQueue, meta: { title: "Step - Card-Element-Queue", area: "card-element-queue" } },
|
||||
{ path: "/card-folder-path", component: CardFolderPath, meta: { title: "Card-Folder-Path", area: "card-folder-path" } },
|
||||
{ path: "/card-element-queue", component: CardElementQueue, meta: { title: "Card-Element-Queue", area: "card-element-queue" } },
|
||||
|
||||
{ path: "/card-assisted-tooling", component: CardAssistedTooling, meta: { title: "Step - Card-Assisted-Tooling", area: "card-assisted-tooling" } },
|
||||
{ path: "/card-assisted-tooling", component: CardAssistedTooling, meta: { title: "Card-Assisted-Tooling", area: "card-assisted-tooling" } },
|
||||
|
||||
{ path: "/depot-action-loading", component: DepotActionLoading, meta: { title: "Step - Depot-Action-Loading", area: "depot-action-loading" } },
|
||||
{ path: "/depot-action-transfer", component: DepotActionTransfer, meta: { title: "Step - Depot-Action-Transfer", area: "depot-action-transfer" } },
|
||||
{ path: "/depot-action-unloading", component: DepotActionUnloading, meta: { title: "Step - Depot-Action-Unloading", area: "depot-action-unloading" } },
|
||||
{ path: "/depot-action-generic", component: DepotActionGeneric, meta: { title: "Step - Depot-Action-Generic", area: "depot-action-generic" } },
|
||||
{ path: "/depot-action-loading", component: DepotActionLoading, meta: { title: "Depot-Action-Loading", area: "depot-action-loading" } },
|
||||
{ path: "/depot-action-transfer", component: DepotActionTransfer, meta: { title: "Depot-Action-Transfer", area: "depot-action-transfer" } },
|
||||
{ path: "/depot-action-unloading", component: DepotActionUnloading, meta: { title: "Depot-Action-Unloading", area: "depot-action-unloading" } },
|
||||
{ path: "/depot-action-generic", component: DepotActionGeneric, meta: { title: "Depot-Action-Generic", area: "depot-action-generic" } },
|
||||
|
||||
{ path: "/alarm-history", component: AlarmHistory, meta: { title: "Step - Alarm-History", area: "alarm-history" } },
|
||||
{ path: "/alarm-history", component: AlarmHistory, meta: { title: "Alarm-History", area: "alarm-history" } },
|
||||
|
||||
{ path: "/job-editor", component: JobEditor, meta: { title: "Job-Editor", area: "job-editor" } },
|
||||
|
||||
@@ -109,19 +109,19 @@ export let routes = [
|
||||
|
||||
{ path: "/modal-missing-tools", component: ModalMissingTools, meta: { title: "Modal Missing Tools", area: "modal-missing-tools" } },
|
||||
|
||||
{ path: "/program-management", component: ProgramManagement, meta: { title: "Step - Program-Management", area: "program-management" } },
|
||||
{ path: "/program-management", component: ProgramManagement, meta: { title: "Program-Management", area: "program-management" } },
|
||||
|
||||
{ path: "/maintenance-progress", component: MaintenanceProgress, meta: { title: "Step - Maintenance-Progress", area: "maintenance-progress" } },
|
||||
{ path: "/maintenance-card", component: MaintenanceCard, meta: { title: "Step - Maintenance-Card", area: "maintenance-card" } },
|
||||
{ path: "/card-maintenance-wizard", component: MaintenanceWizard, meta: { title: "Step - Maintenance-Wizard", area: "card-maintenance-wizard" } },
|
||||
{ path: "/create-maintenance", component: CreateMaintenance, meta: { title: "Step - Create-Maintenance", area: "create-maintenance" } },
|
||||
{ path: "/create-maintenance", component: CreateMaintenance, meta: { title: "Step - Create-Maintenance", area: "create-maintenance" } },
|
||||
{ path: "/modal-iframe", component: ModalIframe, meta: { title: "Step - Modal-Iframe", area: "modal-iframe" } },
|
||||
{ path: "/report", meta: { title: "Step - Reports", area: "report" } },
|
||||
{ path: "/alarms", meta: { title: "Step - Alarms", area: "alarms" } },
|
||||
{ path: "/maintenance/:id?", name: "maintenance", component: Maintenance, meta: { title: "Step - Maintenance", area: "maintenance" } },
|
||||
{ path: "/maintenance-progress", component: MaintenanceProgress, meta: { title: "Maintenance-Progress", area: "maintenance-progress" } },
|
||||
{ path: "/maintenance-card", component: MaintenanceCard, meta: { title: "Maintenance-Card", area: "maintenance-card" } },
|
||||
{ path: "/card-maintenance-wizard", component: MaintenanceWizard, meta: { title: "Maintenance-Wizard", area: "card-maintenance-wizard" } },
|
||||
{ path: "/create-maintenance", component: CreateMaintenance, meta: { title: "Create-Maintenance", area: "create-maintenance" } },
|
||||
{ path: "/create-maintenance", component: CreateMaintenance, meta: { title: "Create-Maintenance", area: "create-maintenance" } },
|
||||
{ path: "/modal-iframe", component: ModalIframe, meta: { title: "Modal-Iframe", area: "modal-iframe" } },
|
||||
{ path: "/report", meta: { title: "Reports", area: "report" } },
|
||||
{ path: "/alarms", meta: { title: "Alarms", area: "alarms" } },
|
||||
{ path: "/maintenance/:id?", name: "maintenance", component: Maintenance, meta: { title: "Maintenance", area: "maintenance" } },
|
||||
/* path precedente cosa fare? Non ha il component */
|
||||
// { path: "/utilities", meta: { title: "Step - Utility", area: "utilities" } },
|
||||
// { path: "/utilities", meta: { title: "Utility", area: "utilities" } },
|
||||
{ path: "/scada", component: Scada, meta: { title: "", area: "scada" } },
|
||||
{ path: "/test/loader", component: TestLoader, name: "testloader" },
|
||||
{ path: "/test/empty", component: TestEmpty, name: "testloader" },
|
||||
|
||||
@@ -21,6 +21,10 @@ export default class toolingEquipment extends Vue {
|
||||
public get magazineStatusModel(): server.MagazineStatus {
|
||||
return (this.$store.state as AppModel).depot.magazineStatusModel;
|
||||
}
|
||||
|
||||
public get familyOptionActive(): boolean {
|
||||
return (this.$store.state as AppModel).tooling.familyOptionActive;
|
||||
}
|
||||
|
||||
public get tools(): server.Tool[] { return (this.$store.state as AppModel).tooling.tools; }
|
||||
public get ncTools(): server.ToolNc[] { return (this.$store.state as AppModel).tooling.ncTools; }
|
||||
@@ -88,12 +92,20 @@ export default class toolingEquipment extends Vue {
|
||||
return (this.$store.state as AppModel).tooling.ncFamilies;
|
||||
}
|
||||
|
||||
public familyNameFromId(id): any{
|
||||
if (((this.$store.state as AppModel).tooling.ncFamilies)[id])
|
||||
return ((this.$store.state as AppModel).tooling.ncFamilies)[id].name;
|
||||
public familyNameFromId(id): any{
|
||||
var found = (this.$store.state as AppModel).tooling.ncFamilies.find(k => k.id == id);
|
||||
if(found)
|
||||
return found.name;
|
||||
return '';
|
||||
}
|
||||
|
||||
public calcFamilyName(id): any{
|
||||
if(this.familyOptionActive)
|
||||
return this.$options.filters.localize("tooling_family_abbreviation", 'F%d',id) + ' - ' + this.familyNameFromId(id);
|
||||
else
|
||||
return this.familyNameFromId(id);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public get categoriesEdge(): string[] {
|
||||
@@ -181,8 +193,6 @@ export default class toolingEquipment extends Vue {
|
||||
this.$nextTick(() => this.scrollList(this.ncTools.indexOf(ncTool)));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
this.modalBlockMagazine();
|
||||
}
|
||||
@@ -531,15 +541,18 @@ export default class toolingEquipment extends Vue {
|
||||
}));
|
||||
}
|
||||
else{
|
||||
awaiter(new ToolingService().SetNcTool(item).then(response => {
|
||||
this.selectedTool = response;
|
||||
let htmlelement = this.$refs.toolList as any;
|
||||
htmlelement.scrollTop = htmlelement.scrollHeight;
|
||||
|
||||
this.toolsConfiguration = (this.$store.state as AppModel).tooling.toolsConfiguration;
|
||||
this.edgeConfiguration = (this.$store.state as AppModel).tooling.edgesConfiguration;
|
||||
this.disableList = false;
|
||||
this.enableModify = false;
|
||||
await awaiter(new ToolingService().SetNcTool(item).then(response => {
|
||||
new ToolingService().GetNcFamilies().then(response => {
|
||||
this.selectedTool = response;
|
||||
let htmlelement = this.$refs.toolList as any;
|
||||
htmlelement.scrollTop = htmlelement.scrollHeight;
|
||||
|
||||
this.toolsConfiguration = (this.$store.state as AppModel).tooling.toolsConfiguration;
|
||||
this.edgeConfiguration = (this.$store.state as AppModel).tooling.edgesConfiguration;
|
||||
this.disableList = false;
|
||||
this.enableModify = false;
|
||||
});
|
||||
|
||||
}));
|
||||
}
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
<div class="list-vertical scrollable" ref="toolList" v-if="!isSiemens">
|
||||
<equipment v-for="t in ncTools.filter(t => String(t.familyId).indexOf(currentFilter) >=0)"
|
||||
:key="t.id" :code="'tooling_tool_abbreviation' | localize('T%d',t.id)"
|
||||
:title="'tooling_family_abbreviation' | localize('F%d',t.familyId) + ' - ' + familyNameFromId(t.familyId)"
|
||||
:title="calcFamilyName(t.familyId)"
|
||||
:img-source="getToolIcon(t.toolType)"
|
||||
:class="{selected: selectedTool == t}"
|
||||
@click="selectTool(t)"></equipment>
|
||||
|
||||
@@ -9,4 +9,4 @@ export const DEBUG_CONFIGURATION = CONFIGURATION_OSAI;
|
||||
|
||||
// stabilisce se leggere la configurazione dal server o
|
||||
// se utilizzare la configurazione locale
|
||||
export const USE_RUNTIME_CONFIGURATION = false;
|
||||
export const USE_RUNTIME_CONFIGURATION = true;
|
||||
@@ -39,7 +39,11 @@ router.beforeEach((to, from, next) => {
|
||||
}
|
||||
}
|
||||
if (to.meta && to.meta.title) {
|
||||
window.document.title = to.meta.title;
|
||||
|
||||
if (typeof cmsClient == "undefined")
|
||||
window.document.title = "CMS Active - " + to.meta.title;
|
||||
else
|
||||
window.document.title = to.meta.title;
|
||||
}
|
||||
next();
|
||||
});
|
||||
|
||||
@@ -52,9 +52,9 @@ export default class AppFooter extends Vue {
|
||||
return new Array<Object>();
|
||||
}
|
||||
|
||||
public startUtility(id) {
|
||||
if (typeof cmsClient != "undefined")
|
||||
cmsClient.openOrStartProcess(id);
|
||||
public startUtility(id) {
|
||||
if (typeof cmsClient != "undefined")
|
||||
cmsClient.openOrStartProcess(id);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,23 +1,59 @@
|
||||
<template>
|
||||
<!-- <div class="test-container"> -->
|
||||
<div class="card-element-queue">
|
||||
<div class="card-element-queue" :class="{'border-blue': status != 1 && status != 2 && status != 3, 'border-green': status == 1, 'border-orange' : status == 2, 'finished' : status == 3}">
|
||||
<div class="card-element-queue-name">
|
||||
<label>{{name}}</label>
|
||||
</div>
|
||||
<div class="card-element-queue-right">
|
||||
<div class="card-element-queue-right" v-if="status == 1 || status == 3">
|
||||
<div class="square-number">
|
||||
<label v-if="status == 1">{{remainingReps}}/{{number}}</label>
|
||||
<label v-if="status == 3"><i class="fa fa-check" aria-hidden="true"></i></label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-element-queue-right" v-if="status != 1 && status != 3">
|
||||
<div @click="clickReps()" class="square-number">
|
||||
<label>x{{number}}</label>
|
||||
</div>
|
||||
<button class="btn"><i class="fa fa-trash"></i></button>
|
||||
<button class="btn" @click="onClick()"><img src="assets/icons/_png/trash.png"></button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- </div> -->
|
||||
</template>
|
||||
<script>
|
||||
import Popup from "src/modules/base-components/popup.vue";
|
||||
import { FileService } from '../../../services/fileService';
|
||||
export default {
|
||||
components: { popup: Popup},
|
||||
props:{
|
||||
name: {default: "Part program 01"},
|
||||
number: { default: 2}
|
||||
number: { default: 2},
|
||||
remainingReps: {default: 0},
|
||||
status: { default: 0},
|
||||
selectedProcess: { default: 0}
|
||||
},
|
||||
data: function(){
|
||||
return{
|
||||
enablePopup: false
|
||||
}
|
||||
},
|
||||
// watch: {
|
||||
// numberReps: function(test){
|
||||
// debugger
|
||||
// this.numberReps = test;
|
||||
// console.log("number reps: " +this.numberReps);
|
||||
// console.log("number reps: " +this.number);
|
||||
// }
|
||||
// },
|
||||
methods:{
|
||||
onClick: function(){
|
||||
this.$emit("click");
|
||||
},
|
||||
clickReps: function(){
|
||||
this.$emit("position", this.$el, true);
|
||||
}
|
||||
// close(){
|
||||
// this.enablePopup = false;
|
||||
// }
|
||||
}
|
||||
};
|
||||
</script>
|
||||
@@ -6,7 +6,8 @@
|
||||
<label v-if="currentProgram">{{currentProgramName}}</label>
|
||||
</div>
|
||||
<div class="box-right">
|
||||
<button class="btn" @click="deactivateProgram()"><i class="fa fa-trash" aria-hidden="true"></i></button>
|
||||
<button class="btn" v-if="noQueue" @click="deactivateProgram()"><i class="fa fa-trash" aria-hidden="true"></i></button>
|
||||
<button class="btn" v-if="!noQueue" @click="stopQueue()" :disabled="!startStopQueueEnabled"><i class="fa fa-stop" aria-hidden="true"></i></button>
|
||||
|
||||
<div class="rectangle">
|
||||
<label>- {{timeleft}}</label>
|
||||
@@ -37,6 +38,11 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-job-production-box-start" v-if="startStopQueue">
|
||||
<div>
|
||||
<button class="btn btn-success" @click="startQueue()" :disabled="!startStopQueueEnabled">Start Queue</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- </div> -->
|
||||
</template>
|
||||
@@ -45,6 +51,7 @@ import Vue from "vue";
|
||||
import cardProductionSectionFile from "./card-production-section-file.vue";
|
||||
import moment from "moment";
|
||||
import { fileService } from "../../../services/fileService";
|
||||
import { FileService } from '../../../services/fileService';
|
||||
export default {
|
||||
components: {
|
||||
cardProductionSectionFile
|
||||
@@ -56,11 +63,36 @@ export default {
|
||||
return {
|
||||
enableIsoLines: true,
|
||||
enableFileSections: false,
|
||||
rowSelected: ""
|
||||
rowSelected: "",
|
||||
startStopQueue: false,
|
||||
};
|
||||
},
|
||||
mounted: function(){
|
||||
if(this.queueStatus == 0){
|
||||
this.startStopQueue = true;
|
||||
}
|
||||
else{
|
||||
this.startStopQueue = false;
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
queueStatus: function(n,o){
|
||||
if(n){
|
||||
if(n == 0){
|
||||
this.startStopQueue = true;
|
||||
}
|
||||
else{
|
||||
this.startStopQueue = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
selectedProcess: function() {
|
||||
return this.$store.state.process.selectedProcess;
|
||||
},
|
||||
currentProgram: function() {
|
||||
console.log(this.$store.state.process.currentProgram);
|
||||
return this.$store.state.process.currentProgram;
|
||||
},
|
||||
indexofActiveLine: function() {
|
||||
@@ -79,6 +111,12 @@ export default {
|
||||
if(this.currentProgram)
|
||||
return new moment(this.currentProgram.timeLeft).format("HH : mm : SS");
|
||||
return "00 : 00 : 00";
|
||||
},
|
||||
queueStatus: function(){
|
||||
return this.$store.state.process.queueStatus;
|
||||
},
|
||||
startStopQueueEnabled: function(){
|
||||
return this.$store.state.process.startStopQueueEnabled;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -99,6 +137,25 @@ export default {
|
||||
},
|
||||
async deactivateProgram(){
|
||||
await fileService.deactivateProgram();
|
||||
},
|
||||
async startQueue(){
|
||||
await new FileService().startQueue(this.selectedProcess);
|
||||
if(this.queueStatus == 0){
|
||||
this.startStopQueue = false;
|
||||
}
|
||||
else{
|
||||
this.startStopQueue = true;
|
||||
}
|
||||
|
||||
},
|
||||
async stopQueue(){
|
||||
await new FileService().stopQueue(this.selectedProcess);
|
||||
if(this.queueStatus == 0){
|
||||
this.startStopQueue = true;
|
||||
}
|
||||
else{
|
||||
this.startStopQueue = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -35,7 +35,7 @@ export default {
|
||||
return {};
|
||||
},
|
||||
props: {
|
||||
queue: { default: false }
|
||||
queue: { default: true }
|
||||
},
|
||||
components: {
|
||||
cardQueueProduction,
|
||||
|
||||
@@ -8,23 +8,43 @@
|
||||
<div class="group-button">
|
||||
<button class="btn"><i class="fa fa-floppy-o"></i></button>
|
||||
<button class="btn"></button>
|
||||
<button class="btn"></button>
|
||||
<button class="btn" @click="deleteQueue(selectedProcess)"><img src="/assets/icons/_png/square-list-trash.png" /></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-queue-production-body">
|
||||
<div class="queue-body scrollable">
|
||||
<div class="element-queue">
|
||||
<label class="number">1</label><card-element-queue></card-element-queue>
|
||||
</div>
|
||||
<div class="element-queue">
|
||||
<label class="number">2</label><card-element-queue></card-element-queue>
|
||||
</div>
|
||||
<div class="element-queue">
|
||||
<label class="number">3</label><card-element-queue></card-element-queue>
|
||||
<!-- <div class="queue-header">
|
||||
<div class="tab-box">
|
||||
<div class="tab-box-scroll">
|
||||
<button class="tab" :class="{'active': selectedTab == 'Sinistra'}" @click="selectTab('Sinistra')">
|
||||
<span>Sinistra</span>
|
||||
</button>
|
||||
<button class="tab" :class="{'active': selectedTab == 'Destra'}" @click="selectTab('Destra')">
|
||||
<span>Destra</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="queue-body scrollable" v-if="selectedTab == 'Sinistra'">
|
||||
<Container @drag-start="onDrag" @drag-end="onDragEnd" @drop="changePosition($event)" :get-child-payload="getPayloadForItemQueue">
|
||||
<Draggable v-for="pp in partPrograms" :key="pp.id">
|
||||
<div class="element-queue">
|
||||
<label class="number">{{pp.id}}</label><card-element-queue @click="deleteItemQueue(selectedProcess, pp)" :selected-process="selectedProcess" :id-part-program="pp.id" :name="pp.partProgramName" :number="pp.reps" :remaining-reps="pp.remainingReps" :status="pp.status" @position="positionBoxReps($event,pp)"></card-element-queue>
|
||||
</div>
|
||||
</Draggable>
|
||||
<popup v-if="enablePopup" :style="{top: selectedPositionTop + 'px'}" :arrow="'arrow-top'" :title="'Modifica ripetizioni'">
|
||||
<button class="close" slot="header-buttons" @click="close()"><i class="fa fa-remove"></i></button>
|
||||
<div class="edit-reps">
|
||||
<label>Ripetizioni</label>
|
||||
<input type="number" v-model.number="numberReps">
|
||||
</div>
|
||||
<div class="group-button">
|
||||
<button class="btn btn-success btn-small" @click="changeReps(numberReps)">Salva</button>
|
||||
</div>
|
||||
</popup>
|
||||
</Container>
|
||||
</div>
|
||||
<div class="queue-footer">
|
||||
<label>6 elementi in coda</label>
|
||||
<label>{{partPrograms.length}} elementi in coda</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-queue-production-footer">
|
||||
@@ -37,17 +57,119 @@
|
||||
<!-- </div> -->
|
||||
</template>
|
||||
<script>
|
||||
import Popup from "src/modules/base-components/popup.vue";
|
||||
import cardElementQueue from "./card-element-queue.vue";
|
||||
import {ModalHelper} from "src/modules/base-components";
|
||||
import modalLoadProgram from "src/modules/base-components/modal-load-program.vue"
|
||||
import modalAddElementQueue from "src/modules/base-components/modal-add-element-queue.vue"
|
||||
import { FileService } from '../../../services/fileService';
|
||||
import { productionActions } from "src/store/production.store";
|
||||
import { store, AppModel } from "src/store";
|
||||
import { Container, Draggable, } from "vue-smooth-dnd";
|
||||
export default {
|
||||
components:{
|
||||
cardElementQueue
|
||||
cardElementQueue, Container, Draggable, popup: Popup
|
||||
},
|
||||
mounted: function(){
|
||||
|
||||
},
|
||||
data: function() {
|
||||
return {
|
||||
draggingIn: false,
|
||||
draggingItem: null,
|
||||
draggingPosition: null,
|
||||
itemStatusRunning: null,
|
||||
selectedPositionTop: 0,
|
||||
selectedTab: "Sinistra",
|
||||
enablePopup: false,
|
||||
numberReps: 0,
|
||||
modelPartProgram: null
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
// partPrograms: function() {
|
||||
// let listPartPrograms = this.$store.state.production.partProgram;
|
||||
// for(var key in listPartPrograms){
|
||||
// if(listPartPrograms[key].status == 1){
|
||||
// this.itemStatusRunning = listPartPrograms[key];
|
||||
// listPartPrograms.splice(key,1);
|
||||
// }
|
||||
// }
|
||||
// return listPartPrograms;
|
||||
// },
|
||||
partPrograms: function(){
|
||||
return this.$store.state.production.partProgram;
|
||||
},
|
||||
selectedProcess: function() {
|
||||
return this.$store.state.process.selectedProcess;
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
openModal(){
|
||||
ModalHelper.ShowModal(modalLoadProgram);
|
||||
}
|
||||
ModalHelper.ShowModal(modalAddElementQueue);
|
||||
},
|
||||
async deleteQueue(id){
|
||||
await new FileService().deleteQueue(id);
|
||||
},
|
||||
async deleteItemQueue(processId, item){
|
||||
debugger
|
||||
await new FileService().deleteItemQueue(processId, item);
|
||||
},
|
||||
onDrag({ isSource, payload, willAcceptDrop }) {
|
||||
this.enablePopup = false;
|
||||
this.draggingIn = true;
|
||||
this.draggingItem = payload;
|
||||
},
|
||||
|
||||
onDragEnd() {
|
||||
this.draggingIn = false;
|
||||
// this.draggingTool = null;
|
||||
},
|
||||
|
||||
onDragEnter(position) {
|
||||
this.draggingPosition = position;
|
||||
},
|
||||
onDragLeave() {
|
||||
this.draggingPosition = null;
|
||||
},
|
||||
async changePosition(event){
|
||||
var response = false;
|
||||
if(event.payload && event.payload.status != 1 && event.payload.status != 3 && event.addedIndex != event.removedIndex){
|
||||
this.draggingIn = false;
|
||||
this.draggingItem = null;
|
||||
var itemsPositions = {objectId: event.payload.id, newPosition: event.addedIndex};
|
||||
await new FileService().moveItemsQueue(this.selectedProcess,itemsPositions,this.partPrograms).then(function(){
|
||||
response = true;
|
||||
});
|
||||
if(response && event.addedIndex && event.removeIndex){
|
||||
this.partPrograms.splice(event.addedIndex, 0, this.partPrograms.splice(event.removedIndex,1)[0]);
|
||||
}
|
||||
}
|
||||
else{
|
||||
event = null;
|
||||
}
|
||||
},
|
||||
getPayloadForItemQueue(index){
|
||||
return this.partPrograms[index];
|
||||
},
|
||||
positionBoxReps(arg1, model){
|
||||
this.numberReps = model.reps;
|
||||
this.modelPartProgram = model;
|
||||
this.selectedPositionTop = (arg1.offsetTop + 78);
|
||||
this.enablePopup = true;
|
||||
},
|
||||
selectTab(value){
|
||||
this.selectedTab = value;
|
||||
},
|
||||
close(){
|
||||
this.enablePopup = false;
|
||||
},
|
||||
async changeReps(value){
|
||||
console.log(value);
|
||||
this.modelPartProgram.reps = value;
|
||||
await new FileService().changeReps(this.selectedProcess, this.modelPartProgram)
|
||||
this.enablePopup = false;
|
||||
},
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -99,7 +99,7 @@
|
||||
<div class="footer">
|
||||
<div class="title-footer"> </div>
|
||||
<div class="right-footer">
|
||||
<button class="btn" @click="onClickRunMaintenance(selectedMaintenance)">{{'maintenance_card_label_btn_footer' | localize("Esegui manutenzione")}}</button>
|
||||
<button class="btn" :disabled="!canPerform" @click="onClickRunMaintenance(selectedMaintenance)">{{'maintenance_card_label_btn_footer' | localize("Esegui manutenzione")}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import Modal from "./modal.vue";
|
||||
import Popup from "./popup.vue";
|
||||
import Loader from "./loader.vue";
|
||||
import AppRibbon from "./ribbons/app-ribbon.vue";
|
||||
import UserInfo from "./user-info.vue";
|
||||
@@ -21,6 +22,7 @@ import ModalAddOffsetTool from "./modal-add-offset-tool.vue";
|
||||
export {
|
||||
Loader,
|
||||
Modal,
|
||||
Popup,
|
||||
AppRibbon,
|
||||
UserInfo,
|
||||
ModalContainer,
|
||||
|
||||
@@ -0,0 +1,230 @@
|
||||
import Vue from "vue";
|
||||
import Component from "vue-class-component";
|
||||
import Modal from "src/modules/base-components/modal.vue";
|
||||
import { ModalHelper } from "src/modules/base-components/ModalHelper";
|
||||
import { Factory, MessageService,awaiter } from "../../_base";
|
||||
// import { MaintenanceService } from "../services/maintenanceService";
|
||||
// import { store } from "src/store";
|
||||
// import { maintenanceActions } from "../store/maintenance.store";
|
||||
import moment from "moment";
|
||||
import cardFolderPath from "./cards/card-folder-path.vue";
|
||||
import cardElementQueue from "./cards/card-element-queue.vue";
|
||||
import * as iziToast from "izitoast";
|
||||
import { fileService } from "../../services/fileService";
|
||||
|
||||
declare var cmsClient: any;
|
||||
|
||||
|
||||
|
||||
|
||||
interface PathInfo {
|
||||
Name: string;
|
||||
AbsolutePath: string;
|
||||
Path: string;
|
||||
IsDirectory: boolean;
|
||||
}
|
||||
|
||||
interface FileInfo {
|
||||
Name: string;
|
||||
AbsolutePath: string;
|
||||
CreationDate: string;
|
||||
LastModDate: string;
|
||||
Content: Array<any>;
|
||||
PreviewBase64: any;
|
||||
}
|
||||
|
||||
@Component({
|
||||
components: {
|
||||
modal: Modal,
|
||||
cardFolderPath,
|
||||
cardElementQueue
|
||||
}
|
||||
})
|
||||
export default class ModalAddElementQueue extends Vue {
|
||||
driveList: Array<PathInfo> = [];
|
||||
currentPath: string = "";
|
||||
currentDrive: string = null;
|
||||
lastClickPath: string = "";
|
||||
|
||||
breadcrumbs: Array<any> = [];
|
||||
|
||||
firstColumnData: Array<PathInfo> = [];
|
||||
secondColumnData: Array<PathInfo> = [];
|
||||
|
||||
isLocalNavigation: boolean = true;
|
||||
selectedFile: FileInfo = null;
|
||||
|
||||
currentFilterFirst: string = "";
|
||||
currentFilterSecond: string = "";
|
||||
|
||||
navigationDepth: number = 0;
|
||||
|
||||
mounted() {
|
||||
if (typeof cmsClient != "undefined") {
|
||||
this.driveList = JSON.parse(cmsClient.getOSdriveList());
|
||||
}
|
||||
}
|
||||
|
||||
async navigateTo(
|
||||
path: string,
|
||||
absolutePath: string,
|
||||
local: boolean,
|
||||
todepth: number,
|
||||
fromdepth: number
|
||||
) {
|
||||
this.currentPath = absolutePath;
|
||||
this.lastClickPath = absolutePath;
|
||||
this.checkChangeNavigationType(local);
|
||||
var files = await this.getFilesForPath(absolutePath, path, local);
|
||||
|
||||
// controlla se impostare il currentDrive
|
||||
if (fromdepth == 0) this.currentDrive = absolutePath;
|
||||
|
||||
// controlla come organizzare le colonne.
|
||||
if (this.navigationDepth == 2 && todepth == 2 && fromdepth == 2) {
|
||||
this.fillArray(this.firstColumnData, this.secondColumnData);
|
||||
}
|
||||
|
||||
this.navigationDepth = todepth;
|
||||
if (todepth == 1) {
|
||||
this.fillArray(this.firstColumnData, files);
|
||||
this.secondColumnData.splice(0, this.secondColumnData.length);
|
||||
this.currentFilterFirst = "";
|
||||
this.selectedFile = null;
|
||||
}
|
||||
|
||||
if (todepth == 2) {
|
||||
this.fillArray(this.secondColumnData, files);
|
||||
this.currentFilterSecond = "";
|
||||
}
|
||||
this.calcBreadCrumb(absolutePath);
|
||||
}
|
||||
|
||||
fillArray(destinationArray: Array<any>, sourceArray: Array<any>) {
|
||||
destinationArray.splice(0, destinationArray.length);
|
||||
for (const key in sourceArray) {
|
||||
if (sourceArray.hasOwnProperty(key)) {
|
||||
const element = sourceArray[key];
|
||||
destinationArray.push(element);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
checkChangeNavigationType(local: boolean) {
|
||||
if (this.isLocalNavigation != local) {
|
||||
this.navigationDepth = 0;
|
||||
this.firstColumnData.splice(0, this.firstColumnData.length);
|
||||
this.secondColumnData.splice(0, this.secondColumnData.length);
|
||||
}
|
||||
}
|
||||
|
||||
async getFilesForPath(absolutePath: string, path: string, local: boolean): Promise<Array<any>> {
|
||||
this.isLocalNavigation = local;
|
||||
var result = null;
|
||||
console.log(path);
|
||||
if (local) result = JSON.parse(cmsClient.getFileList(absolutePath));
|
||||
else result = await awaiter(fileService.getFiles(path));
|
||||
return this.toUpperCaseModel(result).sort(this.compareDirectoriesFirst);
|
||||
}
|
||||
|
||||
private compareDirectoriesFirst(x,y){
|
||||
return (x.IsDirectory === y.IsDirectory)? 0 : x.IsDirectory? -1 : 1;
|
||||
}
|
||||
|
||||
toUpperCaseModel(data: Array<any>): Array<PathInfo> {
|
||||
console.log(data)
|
||||
return data.map(i => {
|
||||
return {
|
||||
Name: i.name || i.Name,
|
||||
AbsolutePath: i.absolutePath || i.AbsolutePath,
|
||||
Path: i.path || i.Path,
|
||||
IsDirectory: (i.isDirectory != null && i.isDirectory) || (i.IsDirectory != null && i.IsDirectory)
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
calcBreadCrumb(path: string) {
|
||||
this.breadcrumbs.splice(0, this.breadcrumbs.length);
|
||||
if (path.startsWith("\\\\")) {
|
||||
this.breadcrumbs.push({
|
||||
name: "CN",
|
||||
path: "\\\\"
|
||||
});}
|
||||
if (path) {
|
||||
var fragments = path.split("\\");
|
||||
var __p = "";
|
||||
fragments.forEach(element => {
|
||||
__p = __p + element + "\\";
|
||||
this.breadcrumbs.push({
|
||||
name: element,
|
||||
path: __p
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
isInPath(path) {
|
||||
if (this.currentPath) return this.currentPath.startsWith(path);
|
||||
return false;
|
||||
}
|
||||
|
||||
toUpperCaseFileModel(data: any): FileInfo {
|
||||
return {
|
||||
AbsolutePath: data.absolutePath || data.AbsolutePath,
|
||||
Path: data.path || data.Path,
|
||||
Content: data.content || data.Content,
|
||||
CreationDate: data.creationDate || data.CreationDate,
|
||||
LastModDate: data.lastModDate || data.LastModDate,
|
||||
Name: data.name || data.Name,
|
||||
PreviewBase64: data.previewBase64 || data.PreviewBase64
|
||||
} as FileInfo;
|
||||
}
|
||||
|
||||
async fileInfo(str, fromdepth: number) {
|
||||
this.lastClickPath = str;
|
||||
if (fromdepth == 1)
|
||||
this.secondColumnData.splice(0, this.secondColumnData.length);
|
||||
|
||||
if (this.isLocalNavigation && typeof cmsClient != "undefined")
|
||||
this.selectedFile = this.toUpperCaseFileModel(
|
||||
JSON.parse(cmsClient.getProgramInfo(str))
|
||||
);
|
||||
|
||||
if (!this.isLocalNavigation)
|
||||
this.selectedFile = this.toUpperCaseFileModel(
|
||||
await awaiter(fileService.getFileInfo(str)));
|
||||
}
|
||||
close() {
|
||||
Factory.Get(MessageService).deleteChannel("esc_pressed");
|
||||
ModalHelper.HideModal();
|
||||
}
|
||||
reload() {
|
||||
this.driveList = JSON.parse(cmsClient.getOSdriveList());
|
||||
}
|
||||
|
||||
getDate(date) {
|
||||
return moment(date).format("L");
|
||||
}
|
||||
|
||||
async loadProgram(path: string) {
|
||||
if (this.isLocalNavigation && typeof cmsClient != "undefined") {
|
||||
var resp = cmsClient.uploadAndAddToQueue(path, 1);
|
||||
if(resp != "")
|
||||
(iziToast as any).error({
|
||||
title: resp.split(";")[0],
|
||||
message: resp.split(";")[1],
|
||||
theme: "dark",
|
||||
timeout: 10000,
|
||||
class: "t-error",
|
||||
transitionOut: "fadeOut",
|
||||
})
|
||||
else
|
||||
this.close();
|
||||
}
|
||||
|
||||
// if (!this.isLocalNavigation) {
|
||||
// await awaiter(fileService.activateProgram(path));
|
||||
// this.close();
|
||||
// }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,123 @@
|
||||
<template>
|
||||
<modal type="modal-add-element-queue" :title="'modal_add_element_queue_lbl_title_window' | localize('Aggiungere elemento in coda')">
|
||||
<button class="close" slot="header-buttons" @click="close()"><i class="fa fa-remove"></i></button>
|
||||
<div class="modal-add-element-queue-header">
|
||||
<!-- <div class="title">
|
||||
<i class="fa fa-chevron-left"></i>
|
||||
Selezione programma da aggiungere in coda
|
||||
</div> -->
|
||||
<div class="box-search">
|
||||
<div class="path">
|
||||
|
||||
<div class="child" v-for="(bread,key) in this.breadcrumbs" :key="key">
|
||||
<div v-if="bread.name && key!=0"><i class="fa fa-chevron-right"></i></div>
|
||||
<a href="#" @click="navigateTo(bread.path,bread.absolutePath,isLocalNavigation, 1,1)">{{bread.name}}</a>
|
||||
</div>
|
||||
<!-- <div class="root">PC</div>
|
||||
<div v-if="true"><i class="fa fa-chevron-right"></i></div>
|
||||
<div class="child">Cliente A</div>
|
||||
<div v-if="true"><i class="fa fa-chevron-right"></i></div>
|
||||
<div class="child">Part Program 01</div> -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-add-element-queue-body">
|
||||
<div class="first-column">
|
||||
<card-folder-path v-for="(val, key) in this.driveList" :key="key" :name="val.Name" :iconType="val.Type"
|
||||
:selected="val.Path == currentDrive" @click="navigateTo(val.Path,val.Path, true, 1,0)" ></card-folder-path>
|
||||
</div>
|
||||
<div class="second-column" v-if="navigationDepth <1"></div>
|
||||
<div class="second-column" v-if="navigationDepth >=1">
|
||||
<div class="group-btn">
|
||||
<input type="text" v-model="currentFilterFirst" :placeholder="'modal_add_element_queue_search_placeholder' | localize('Cerca un programma per nome')">
|
||||
<i class="fa fa-2x fa-search"></i>
|
||||
</div>
|
||||
<div class="content scrollable">
|
||||
<card-folder-path v-for="(val,key) in this.firstColumnData.filter(t => t.Name.toLowerCase().indexOf(currentFilterFirst.toLowerCase()) >=0)"
|
||||
:key="key"
|
||||
:name="val.Name"
|
||||
:disabled="!isCnReady() && !isLocalNavigation"
|
||||
:class="{dark: val.AbsolutePath == lastClickPath}"
|
||||
:selected="isInPath(val.AbsolutePath) || val.AbsolutePath == lastClickPath"
|
||||
:withArrow="val.IsDirectory == true"
|
||||
:iconType="val.IsDirectory? 'FOLDER':'FILE'"
|
||||
@click="val.IsDirectory ? navigateTo(val.Path, val.AbsolutePath, isLocalNavigation, 2,1): fileInfo(val.AbsolutePath,1)"></card-folder-path>
|
||||
</div>
|
||||
</div>
|
||||
<div class="third-column" v-if="navigationDepth <2"></div>
|
||||
<div class="third-column" v-if="navigationDepth >=2">
|
||||
<!-- !(this.arrayViewList[1] ? this.arrayViewList[1].length < 1 : false) -->
|
||||
<div class="group-btn">
|
||||
<input type="text" v-model="currentFilterSecond" :placeholder="'modal_add_element_queue_search_placeholder' | localize('Cerca un programma per nome')">
|
||||
<i class="fa fa-2x fa-search"></i>
|
||||
</div>
|
||||
<div class="label-folder-empty" v-if="secondColumnData.length ==0">
|
||||
<label>Cartella vuota</label>
|
||||
</div>
|
||||
<div class="content scrollable" v-if="secondColumnData.length >0">
|
||||
<card-folder-path v-for="val in (this.secondColumnData.filter(t => t.Name.toLowerCase().indexOf(currentFilterSecond.toLowerCase()) >=0))"
|
||||
:key="val.Name"
|
||||
:name="val.Name"
|
||||
:disabled="!isCnReady() && !isLocalNavigation"
|
||||
:class="{dark: val.AbsolutePath == lastClickPath}"
|
||||
:selected="isInPath(val.AbsolutePath) || val.AbsolutePath == lastClickPath"
|
||||
:withArrow="val.IsDirectory == true"
|
||||
:iconType="val.IsDirectory? 'FOLDER':'FILE'"
|
||||
@click="val.IsDirectory? navigateTo(val.Path, val.AbsolutePath, isLocalNavigation, 2,2):fileInfo(val.AbsolutePath,2) "></card-folder-path>
|
||||
<!-- <card-folder-path name="Cliente A" @click="selectItem()" :with-arrow="false"></card-folder-path>-->
|
||||
</div>
|
||||
</div>
|
||||
<div class="selected-item" v-if="selectedFile">
|
||||
<div class="selected-item-header">
|
||||
<div>
|
||||
<label class="selected-item-title">{{selectedFile.Name}}</label>
|
||||
|
||||
<div class="subtitle">
|
||||
<label class="title">{{'modal_add_element_queue_creation_date' | localize("Creation Date:")}}</label>
|
||||
<label class="text">{{getDate(selectedFile.CreationDate)}}</label>
|
||||
<label class="title">{{'modal_add_element_queue_last_change_date' | localize("Last Change Date:")}}</label>
|
||||
<label class="text">{{getDate(selectedFile.LastModDate)}}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="group-button">
|
||||
<button class="btn" v-if="false"><i class="fa fa-clone"></i></button>
|
||||
<button class="btn" disabled><i class="fa fa-pencil-square-o"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="selected-item-body">
|
||||
<div class="selected-item-body-image">
|
||||
<img v-if="selectedFile.PreviewBase64" :src="selectedFile.PreviewBase64">
|
||||
<div v-if="!selectedFile.PreviewBase64" class="noimage">
|
||||
{{'modal_add_element_queue_lbl_img_not_found' | localize('Preview non disponibile')}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="selected-item-body-description scrollable">
|
||||
<div class="row" v-for="(item,index) in selectedFile.Content" :key="'line' + index">
|
||||
<label>{{item}}</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="selected-item" v-if="!selectedFile">
|
||||
<div class="notselecteditem">
|
||||
<label>{{'modal_add_element_queue_lbl_box_select_program' | localize('Seleziona programma')}}</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-add-element-queue-footer">
|
||||
<!-- <button class="btn btn-success"
|
||||
:disabled="!selectedFile || !isCnReady()"
|
||||
v-if="!this.isLocalNavigation"
|
||||
@click="loadProgram(selectedFile.AbsolutePath)">
|
||||
{{'modal_add_element_queue_btn_load_program' | localize('Attiva programma')}}
|
||||
</button> -->
|
||||
<button class="btn btn-success"
|
||||
:disabled="!selectedFile || !isCnReady()"
|
||||
v-if="this.isLocalNavigation"
|
||||
@click="loadProgram(selectedFile.AbsolutePath)">
|
||||
{{'modal_add_element_queue_btn_upload_program' | localize('Aggiungi elemento')}}
|
||||
</button>
|
||||
</div>
|
||||
</modal>
|
||||
</template>
|
||||
<script src="./modal-add-element-queue.ts" lang="ts"></script>
|
||||
@@ -0,0 +1,15 @@
|
||||
import Vue from "vue";
|
||||
import { Component } from "vue-property-decorator";
|
||||
|
||||
@Component({
|
||||
name: "popup",
|
||||
props: {
|
||||
title: String,
|
||||
type: String,
|
||||
arrow: String
|
||||
}
|
||||
})
|
||||
export default class Popup extends Vue {
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
<template>
|
||||
|
||||
<div class="popup" :class="[type,arrow]" v-on:click.stop>
|
||||
<header>
|
||||
{{title}}
|
||||
<slot name="header-buttons"></slot>
|
||||
</header>
|
||||
<section class="body">
|
||||
<slot></slot>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
<script src="./popup.ts" lang="ts"></script>
|
||||
@@ -24,10 +24,10 @@
|
||||
<hr/>
|
||||
</div>
|
||||
<div class="details">
|
||||
<label>{{'machineinfo_server_cms_version' | localize('Versione Server Step:')}} <strong>{{machineInfo.cmsServerVersion}}</strong></label>
|
||||
<label>{{'machineinfo_core_cms_version' | localize('Versions Core Step:')}} <strong>{{machineInfo.cmsCoreVersion}}</strong></label>
|
||||
<label>{{'machineinfo_client_version' | localize('Versione Client Step:')}} <strong>{{clientVersion}}</strong></label>
|
||||
<label>{{'machineinfo_dateformat' | localize('Formato delle date Step:')}} <strong>{{getDateFormat}}</strong></label>
|
||||
<label>{{'machineinfo_server_cms_version' | localize('Versione Server Active:')}} <strong>{{machineInfo.cmsServerVersion}}</strong></label>
|
||||
<label>{{'machineinfo_core_cms_version' | localize('Versions Core Active:')}} <strong>{{machineInfo.cmsCoreVersion}}</strong></label>
|
||||
<label>{{'machineinfo_client_version' | localize('Versione Client Active:')}} <strong>{{clientVersion}}</strong></label>
|
||||
<label>{{'machineinfo_dateformat' | localize('Formato delle date Active:')}} <strong>{{getDateFormat}}</strong></label>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -2,7 +2,9 @@
|
||||
<span id="nc-buttons-container" v-if="getNumofCommands()">
|
||||
<span class="container">
|
||||
<header>
|
||||
<button @click="sendCommands(command)" v-for="command in getNumofCommands()" :key="command" :title="'hmi_cmd_'+ getNcName() +'_' + command | localize('hmi_cmd_'+ getNcName() +'_' + command)">
|
||||
<button @click="sendCommands(command)" v-for="command in getNumofCommands()"
|
||||
:key="command"
|
||||
:title="'hmi_cmd_'+ getNcName() +'_' + command | localize('hmi_cmd_'+ getNcName() +'_' + command)">
|
||||
{{'hmi_cmd_'+ getNcName() +'_' + command | localize('cmd hmi' +' ' + command)}}
|
||||
</button>
|
||||
</header>
|
||||
@@ -12,6 +14,9 @@
|
||||
<script>
|
||||
|
||||
|
||||
import { DataService } from "src/services/dataService";
|
||||
import { awaiter } from "src/_base";
|
||||
|
||||
export default {
|
||||
data: function() {
|
||||
return {
|
||||
@@ -20,16 +25,22 @@ export default {
|
||||
mounted: function() {
|
||||
},
|
||||
methods: {
|
||||
sendCommands: function(id){
|
||||
if (typeof cmsClient != "undefined")
|
||||
cmsClient.sendHMICommand(id);
|
||||
sendCommands: async function(id){
|
||||
id--;
|
||||
if (this.$store.state.machineInfo.isSiemens)
|
||||
id = id + 100;
|
||||
else if (this.$store.state.machineInfo.isFanuc)
|
||||
id = id + 200;
|
||||
|
||||
await awaiter(new DataService().setActiveScreenOnHMI(id));
|
||||
},
|
||||
getNumofCommands: function(){
|
||||
//get Number of Commands
|
||||
if (typeof cmsClient != "undefined")
|
||||
return cmsClient.getHMICommandCount();
|
||||
else
|
||||
return 0;
|
||||
if (this.$store.state.machineInfo.isSiemens)
|
||||
return 6;
|
||||
else if (this.$store.state.machineInfo.isFanuc)
|
||||
return 5;
|
||||
return 0;
|
||||
},
|
||||
getNcName: function(){
|
||||
//get Nc Name
|
||||
|
||||
@@ -35,6 +35,10 @@ export class DataService extends baseRestService {
|
||||
return await this.Put("/api/nc/active_language/"+ language,null,true);
|
||||
}
|
||||
|
||||
public async setActiveScreenOnHMI(screen) {
|
||||
return await this.put("/api/nc/active_screen/"+ screen,null, true);
|
||||
}
|
||||
|
||||
//async GetAlarmsResetConfiguration(){
|
||||
// let result = await this.Get<Array<any>>("api/configuration/alarms");
|
||||
// machineInfoActions.updateMachineInfo(store, { alarmsReset: result });
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import { baseRestService } from "src/_base/baseRestService";
|
||||
import { productionActions } from "../store/production.store";
|
||||
import { store } from "../store";
|
||||
|
||||
export class FileService extends baseRestService {
|
||||
BASE_URL = "api/file_manager/";
|
||||
@@ -26,6 +28,43 @@ export class FileService extends baseRestService {
|
||||
async deactivateProgram() {
|
||||
return await this.Put<any>(this.BASE_URL + "file/deactivate", null);
|
||||
}
|
||||
|
||||
async deleteQueue(processId){
|
||||
var result = await this.Delete<any>(this.BASE_URL + "queue/" + processId + "/empty", true);
|
||||
productionActions.deletePartPrograms(store);
|
||||
return result;
|
||||
}
|
||||
|
||||
async deleteItemQueue(processId, model){
|
||||
debugger
|
||||
var result = await this.Delete<any>(this.BASE_URL + "queue/" + processId + "/remove/" + model.id, true);
|
||||
productionActions.deletePartProgram(store,model);
|
||||
return result;
|
||||
}
|
||||
|
||||
async moveItemsQueue(processId, itemsPositions, model){
|
||||
var result = await this.Put<any>(this.BASE_URL + "queue/" + processId + "/move", itemsPositions, true);
|
||||
productionActions.movePartPrograms(store,result);
|
||||
return result;
|
||||
}
|
||||
|
||||
async startQueue(processId){
|
||||
var result = await this.Post<any>(this.BASE_URL + "queue/start?processId=" + processId, null);
|
||||
return result;
|
||||
}
|
||||
|
||||
async stopQueue(processId){
|
||||
var result = await this.Post<any>(this.BASE_URL + "queue/stop?processId=" + processId, null);
|
||||
return result;
|
||||
}
|
||||
|
||||
async changeReps(processId,model){
|
||||
debugger
|
||||
var result = await this.Put<any>(this.BASE_URL + "queue/" + processId + "/edit/" + model.id, {reps: model.reps});
|
||||
productionActions.updatePartProgram(store, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export const fileService = new FileService();
|
||||
|
||||
@@ -13,6 +13,7 @@ import { SoftKeyModel } from "../store/machineStatus.store";
|
||||
import { depotActions } from "../store/depot.store";
|
||||
import { fileService } from "./fileService";
|
||||
import { toolingActions } from "../store/tooling.store";
|
||||
import { productionActions } from "../store/production.store";
|
||||
|
||||
declare let $: any;
|
||||
declare let cmsClient: any;
|
||||
@@ -70,6 +71,8 @@ export class Hub {
|
||||
this._hub.client.activeProgramData = Hub.activeProgramData;
|
||||
this._hub.client.magazineIsActive = Hub.magazineIsActive;
|
||||
|
||||
this._hub.client.partProgramQueue = Hub.partProgramQueue;
|
||||
|
||||
this._hub.client.logout = this.logout;
|
||||
|
||||
// Token per signalr agganciato in modo esplicito
|
||||
@@ -134,6 +137,11 @@ export class Hub {
|
||||
processModelActions.setValueAxisSelected(store, data);
|
||||
}
|
||||
|
||||
private static partProgramQueue(data){
|
||||
console.log(data);
|
||||
productionActions.updatePartPrograms(store, data);
|
||||
}
|
||||
|
||||
private static magazineIsActive(data){
|
||||
let newArrayMagazine = [];
|
||||
let magazines = (store.state as AppModel).tooling.magazines;
|
||||
@@ -160,13 +168,15 @@ export class Hub {
|
||||
}
|
||||
|
||||
private static processDataChanged(data) {
|
||||
console.log(data);
|
||||
let processes = data.processes;
|
||||
console.log(data.processes);
|
||||
for (const key in processes) {
|
||||
let process = processes[key];
|
||||
processModelActions.addProcess(store, process);
|
||||
}
|
||||
|
||||
processModelActions.setStartStopQueueEnabled(store, data.startStopQueueEnabled);
|
||||
processModelActions.setQueueStatus(store, data.queueStatus);
|
||||
processModelActions.isRunning(store, data.isRunning);
|
||||
processModelActions.selectProcess(store, data.selectedProcess);
|
||||
processModelActions.selectAxis(store, data.selectedAxis);
|
||||
@@ -256,7 +266,6 @@ export class Hub {
|
||||
}
|
||||
|
||||
private static manageNcStatus(status) {
|
||||
|
||||
if (Hub._ncConnectionNotificationVisible && status.connected) {
|
||||
machineStatusActions.setNcConnectionStatus(store, status.connected);
|
||||
var toast = document.querySelector('#ncConnection') as any;
|
||||
|
||||
@@ -11,6 +11,7 @@ import { depotStore, DepotStoreModel} from "./depot.store";
|
||||
import { maintenanceStore, MaintenanceStoreModel} from "./maintenance.store";
|
||||
|
||||
import { LocalizationService, localizationService } from "src/services/localizationService";
|
||||
import { ProductionStoreModel, productionStore } from "./production.store";
|
||||
|
||||
|
||||
Vue.use(Vuex);
|
||||
@@ -28,6 +29,7 @@ export interface AppModel {
|
||||
process: RunningProcessModel;
|
||||
tooling: ToolingStoreModel;
|
||||
depot: DepotStoreModel;
|
||||
production: ProductionStoreModel;
|
||||
maintenance: MaintenanceStoreModel;
|
||||
}
|
||||
|
||||
@@ -62,6 +64,7 @@ const _store = {
|
||||
localization: localizationStore,
|
||||
tooling: toolingStore,
|
||||
depot: depotStore,
|
||||
production: productionStore,
|
||||
maintenance: maintenanceStore
|
||||
},
|
||||
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
export interface ProductionStoreModel {
|
||||
partProgram:Array < server.PartProgramModel >
|
||||
}
|
||||
|
||||
export interface ProductionGetters {
|
||||
|
||||
}
|
||||
|
||||
export interface ProductionActions {
|
||||
updatePartProgram(context, model: server.PartProgramModel);
|
||||
updatePartPrograms(context, model:server.PartProgramModel[]);
|
||||
deletePartPrograms(context);
|
||||
deletePartProgram(context, model:server.PartProgramModel);
|
||||
movePartPrograms(context, model:server.PartProgramModel[]);
|
||||
}
|
||||
|
||||
export const productionStore = {
|
||||
state: {
|
||||
_partProgram:new Map < number, server.PartProgramModel > (),
|
||||
partProgram:[],
|
||||
}as ProductionStoreModel,
|
||||
getters: {
|
||||
},
|
||||
mutations: {
|
||||
UpdatePartProgram(store, model: server.PartProgramModel) {
|
||||
debugger
|
||||
store._partProgram.set(model.id, model);
|
||||
store.partProgram = Array.from(store._partProgram.values());
|
||||
},
|
||||
DeletePartPrograms(store) {
|
||||
store.partProgram = [];
|
||||
},
|
||||
DeletePartProgram(store, model:server.PartProgramModel) {
|
||||
debugger
|
||||
let idx = store.partProgram.indexOf(model);
|
||||
if(store.partProgram[idx] && model && store.partProgram[idx].id == model.id){
|
||||
store.partProgram.splice(idx,1);
|
||||
}
|
||||
// store._partProgram.delete(model.id);
|
||||
// store.partProgram = Array.from(store._partProgram.values());
|
||||
},
|
||||
MovePartPrograms(store, model:server.PartProgramModel[]) {
|
||||
store.partProgram = model;
|
||||
}
|
||||
},
|
||||
actions: {
|
||||
updatePartProgram(context, model: server.PartProgramModel){
|
||||
context.commit("UpdatePartProgram", model);
|
||||
},
|
||||
updatePartPrograms(context, model:server.PartProgramModel[]) {
|
||||
context.commit("MovePartPrograms", model);
|
||||
},
|
||||
movePartPrograms(context, model:server.PartProgramModel[]) {
|
||||
context.commit("MovePartPrograms", model);
|
||||
},
|
||||
deletePartProgram(context, model:server.PartProgramModel) {
|
||||
context.commit("DeletePartProgram", model);
|
||||
},
|
||||
deletePartPrograms(context) {
|
||||
context.commit("DeletePartPrograms");
|
||||
}
|
||||
|
||||
}as ProductionActions
|
||||
}
|
||||
|
||||
export const productionActions = productionStore.actions as ProductionActions;
|
||||
@@ -21,6 +21,8 @@ export interface ProcessModelActionsInterface {
|
||||
setCurrentProgram(context,data);
|
||||
setCurrentProgramImage(context, image);
|
||||
setCurrentProgramName(context, name);
|
||||
setQueueStatus(context, status);
|
||||
setStartStopQueueEnabled(context, queueEnabled);
|
||||
}
|
||||
|
||||
|
||||
@@ -35,10 +37,18 @@ export const processStore = {
|
||||
axes: [],
|
||||
running: false,
|
||||
selectedProcess: 0,
|
||||
queueStatus: 0,
|
||||
startStopQueueEnabled: false,
|
||||
selectedAxis: 0,
|
||||
valueAxisSelected: { interpolated: Object, machine: Object, programmePos: Object, toGo: Object }
|
||||
} as RunningProcessModel,
|
||||
mutations: {
|
||||
SetStartStopQueueEnabled(store, queueEnabled){
|
||||
store.startStopQueueEnabled = queueEnabled;
|
||||
},
|
||||
SetQueueStatus(store, status){
|
||||
store.queueStatus = status;
|
||||
},
|
||||
SetCurrentProgram(store, data){
|
||||
store.currentProgram = data;
|
||||
},
|
||||
@@ -91,6 +101,12 @@ export const processStore = {
|
||||
}
|
||||
},
|
||||
actions: {
|
||||
setStartStopQueueEnabled(context, queueEnabled){
|
||||
context.commit("SetStartStopQueueEnabled", queueEnabled);
|
||||
},
|
||||
setQueueStatus(context, status){
|
||||
context.commit("SetQueueStatus", status);
|
||||
},
|
||||
setCurrentProgram(context,data){
|
||||
context.commit("SetCurrentProgram", data);
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user