}\r
\r
private void MaestroForm_FormClosing(object sender, FormClosingEventArgs e) {\r
- //if (ModifierKeys.HasFlag()\r
if (TrayApplicationContext.GlobalConfig.MinimizeToTray)\r
Visible = false;\r
else\r
// You can specify all the values or you can default the Build and Revision Numbers\r
// by using the '*' as shown below:\r
// [assembly: AssemblyVersion("1.0.*")]\r
-[assembly: AssemblyVersion("2.0.6.0")]\r
-[assembly: AssemblyFileVersion("2.0.6.0")]\r
+[assembly: AssemblyVersion("2.0.6.1")]\r
+[assembly: AssemblyFileVersion("2.0.6.1")]\r
// picWorld\r
// \r
this.picWorld.BackColor = System.Drawing.Color.Transparent;\r
+ this.picWorld.Dock = System.Windows.Forms.DockStyle.Fill;\r
this.picWorld.Image = ((System.Drawing.Image)(resources.GetObject("picWorld.Image")));\r
- this.picWorld.Location = new System.Drawing.Point(16, 0);\r
+ this.picWorld.Location = new System.Drawing.Point(0, 0);\r
+ this.picWorld.Margin = new System.Windows.Forms.Padding(0);\r
this.picWorld.Name = "picWorld";\r
- this.picWorld.Size = new System.Drawing.Size(320, 349);\r
+ this.picWorld.Size = new System.Drawing.Size(350, 361);\r
this.picWorld.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;\r
this.picWorld.TabIndex = 0;\r
this.picWorld.TabStop = false;\r
using MaestroShared.Target;\r
using MaestroShared.Targets;\r
using System.IO;\r
+using System.Text.RegularExpressions;\r
\r
namespace TrafficClient {\r
public delegate void OnSelectedIDChanged(string ID, int variantID, string text);\r
return;\r
ClearSelection();\r
Cursor.Current = Cursors.WaitCursor;\r
- string searchText = txtFilter.Text;\r
DateTime? scheduledDate = null;\r
if (this.dtScheduled.Checked)\r
scheduledDate = this.dtScheduled.Value.Date;\r
dgTraffic.Columns.Clear();\r
if (rbMaterial.Checked) {\r
dgTraffic.Columns.AddRange(GetMaterialColumns());\r
+ string searchText = Regex.Replace(txtFilter.Text, "[^0-9]", "");\r
items = trafficAPI.GetMaterials(searchText, chkProblematic.Checked, scheduledDate, scheduledDate);\r
} else if (rbAD.Checked) {\r
dgTraffic.Columns.AddRange(GetADColumns());\r
- items = trafficAPI.GetADs(searchText, chkProblematic.Checked, scheduledDate, scheduledDate);\r
+ items = trafficAPI.GetADs(txtFilter.Text, chkProblematic.Checked, scheduledDate, scheduledDate);\r
} else if (rbPromo.Checked) {\r
dgTraffic.Columns.AddRange(GetPromoColumns());\r
- items = trafficAPI.GetPromos(searchText, chkProblematic.Checked, scheduledDate, scheduledDate);\r
+ items = trafficAPI.GetPromos(txtFilter.Text, chkProblematic.Checked, scheduledDate, scheduledDate);\r
}\r
\r
if (items == null || items.Count == 0)\r
if (e.RowIndex < 0 || e.ColumnIndex != 0)\r
return;\r
DataGridView gridView = sender as DataGridView;\r
- if (gridView == null)\r
+ if (gridView == null || dgTraffic.SelectedRows.Count == 0)\r
return;\r
OnSelectionChanged(dgTraffic.SelectedRows[0]);\r
}\r
}\r
\r
private void OnDataGridKeyDown(object sender, KeyEventArgs e) {\r
+ if (dgTraffic.SelectedRows.Count == 0)\r
+ return;\r
+\r
if (e.KeyCode == Keys.Space && dgTraffic.CurrentCell.ColumnIndex != 0)\r
OnSelectionChanged(dgTraffic.SelectedRows[0]);\r
if (e.KeyCode == Keys.F5)\r
\r
private void SelectResult() {\r
List<TrafficItem> result = trafficAPIBindingSource.DataSource as List<TrafficItem>;\r
- OnSelectionChanged(dgTraffic.Rows[0]);\r
- if (result == null || result.Count == 0)\r
+ if (result == null || result.Count == 0) {\r
MsgBox.Info("Nincs találat.");\r
- else\r
+ } else {\r
+ OnSelectionChanged(dgTraffic.Rows[0]);\r
result[0].Selected = true;\r
+ }\r
}\r
\r
public void LookupByMaterialID(string id) {\r
]\r
}, \r
{\r
- "active": false,\r
+ "active": true,\r
"name" : "OCTOPUS adatok teljes szinkronizálása",\r
"template": "sync-octopus.xml",\r
- "executeimmediate": false,\r
+ "executeimmediate": true,\r
"cronexpression": "0/30 * * * * ?",\r
"parameters": [\r
{"name": "forceFull", "value": true, "type": "java.lang.Boolean"}\r
import org.jboss.resteasy.client.jaxrs.ResteasyClient;\r
import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;\r
import org.jboss.resteasy.client.jaxrs.ResteasyWebTarget;\r
-import org.jboss.resteasy.spi.ResteasyDeployment;\r
import org.joda.time.DateTime;\r
\r
-import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;\r
import com.ibm.nosql.json.JSONUtil;\r
import com.ibm.nosql.json.api.BasicDBList;\r
import com.ibm.nosql.json.api.BasicDBObject;\r
apiUser = System.getProperty("jobengine.octopus.api.user");\r
apiPwd = System.getProperty("jobengine.octopus.api.password");\r
\r
- ResteasyClient client = new ResteasyClientBuilder().register(JacksonJsonProvider.class).build();\r
+ // ResteasyClient client = new ResteasyClientBuilder().register(JacksonJsonProvider.class).build();\r
+ ResteasyClient client = new ResteasyClientBuilder().build();\r
webTarget = client.target(apiAddress).register(new BasicAuthentication(apiUser, apiPwd));\r
}\r
\r
\r
logger.info("Fetch rundowns");\r
\r
- // ResteasyWebTarget target = webTarget.path(RUNDOWN);\r
- // Builder result = target.request().header(OCTOPUS_DEVICE_ID, apiUser).header(OCTOPUS_DEVICE_NAME, apiPwd);\r
- // Response r = result.get();\r
- // String x = r.readEntity(String.class);\r
- // return;\r
- BasicDBList rundowns = queryRundowns();\r
- logger.info("Fetch rundown story references");\r
- storyRundowns = buildRundownReferences(rundowns);\r
- logger.info("Fetch story folders");\r
- BasicDBList storyFolders = queryStoryFolders();\r
- logger.info("Fetch folder story references");\r
- storyStoryFolders = buildFolderReferences(storyFolders);\r
-\r
- if (rundowns == null || rundowns.size() == 0) {\r
- progressEvent.setProgress(50);\r
- fireProgressEvent(progressEvent);\r
- } else {\r
- logger.info("Process rundowns");\r
- storeRundowns(rundowns, null);\r
- }\r
-\r
- if (storyFolders == null || storyFolders.size() == 0) {\r
- progressEvent.setProgress(100);\r
- fireProgressEvent(progressEvent);\r
- } else {\r
- logger.info("Process story folders");\r
- storeStoryFolders(storyFolders, null);\r
- }\r
- setLastUpdateTime(new Date());\r
- logger.info("Activate");\r
- db.getCollection(RUNDOWN_COLLECTION).rename(IOctopusAPI.RUNDOWN_COLLECTION, true);\r
- db.getCollection(FOLDER_COLLECTION).rename(IOctopusAPI.FOLDER_COLLECTION, true);\r
- db.getCollection(STORY_COLLECTION).rename(IOctopusAPI.STORY_COLLECTION, true);\r
+ ResteasyWebTarget target = webTarget.path(RUNDOWN);\r
+ Builder result = target.request().header(OCTOPUS_DEVICE_ID, apiUser).header(OCTOPUS_DEVICE_NAME, apiPwd);\r
+ Response r = result.get();\r
+ String x = r.readEntity(String.class);\r
+ logger.info(x);\r
+ return;\r
+ // BasicDBList rundowns = queryRundowns();\r
+ // logger.info("Fetch rundown story references");\r
+ // storyRundowns = buildRundownReferences(rundowns);\r
+ // logger.info("Fetch story folders");\r
+ // BasicDBList storyFolders = queryStoryFolders();\r
+ // logger.info("Fetch folder story references");\r
+ // storyStoryFolders = buildFolderReferences(storyFolders);\r
+ //\r
+ // if (rundowns == null || rundowns.size() == 0) {\r
+ // progressEvent.setProgress(50);\r
+ // fireProgressEvent(progressEvent);\r
+ // } else {\r
+ // logger.info("Process rundowns");\r
+ // storeRundowns(rundowns, null);\r
+ // }\r
+ //\r
+ // if (storyFolders == null || storyFolders.size() == 0) {\r
+ // progressEvent.setProgress(100);\r
+ // fireProgressEvent(progressEvent);\r
+ // } else {\r
+ // logger.info("Process story folders");\r
+ // storeStoryFolders(storyFolders, null);\r
+ // }\r
+ // setLastUpdateTime(new Date());\r
+ // logger.info("Activate");\r
+ // db.getCollection(RUNDOWN_COLLECTION).rename(IOctopusAPI.RUNDOWN_COLLECTION, true);\r
+ // db.getCollection(FOLDER_COLLECTION).rename(IOctopusAPI.FOLDER_COLLECTION, true);\r
+ // db.getCollection(STORY_COLLECTION).rename(IOctopusAPI.STORY_COLLECTION, true);\r
\r
} catch (Exception e) {\r
logger.catching(e);\r
}\r
\r
private Builder query(String path, String fields) {\r
- logger.info("Class loader {}", getClass().getClassLoader());\r
- try {\r
- ResteasyDeployment deployment = new ResteasyDeployment();\r
- deployment.start();\r
- } catch (Exception e) {\r
- logger.catching(e);\r
- }\r
+ //logger.info("Class loader {}", getClass().getClassLoader());\r
+ // try {\r
+ // //TODO kell e?\r
+ // ResteasyDeployment deployment = new ResteasyDeployment();\r
+ // deployment.start();\r
+ // } catch (Exception e) {\r
+ // logger.catching(e);\r
+ // }\r
ResteasyWebTarget target = webTarget.path(path).queryParam(FIELDS, fields);\r
Builder result = target.request().header(OCTOPUS_DEVICE_ID, apiUser).header(OCTOPUS_DEVICE_NAME, apiPwd);\r
return result;\r
<image src="/img/mediacube_logo_v2_50x50.png">\r
<!-- <custom-attributes org.zkoss.zul.image.preload="true" /> -->\r
</image>\r
- <label style="color:#e3e3e3;font-size:20px;font-weight:bold">MediaCube v2.1.5</label>\r
+ <label style="color:#e3e3e3;font-size:20px;font-weight:bold">MediaCube v2.1.5.2</label>\r
</div>\r
</west>\r
<center border="0">\r
onSelect="@command('selectJob')" style="border: none; background: #e3e3e3 !important;" oddRowSclass="listbox-odd-style" sclass="listbox-normal-style" >\r
<listhead sizable="true">\r
<listheader label="Id" hflex="min" align="left"/>\r
- <listheader label="Indításs" hflex="min" align="left"/>\r
+ <listheader label="Indítás" hflex="min" align="left"/>\r
<listheader label="Kész" hflex="min" align="left"/>\r
<listheader label="Név" hflex="min" align="left"/>\r
<listheader label="Prioritás" hflex="min" align="left"/>\r
var obj = eval("(" + value.name + ')');\r
return String\r
.format(\r
- 'Befejezve . {0} <br/> Azonosító . {1} <br/> Forrás . {2} <br/> Cél . {3} <br/> Cimke . <span style="background:{4}">{5}</span> <br/> Sikeres . {6}',\r
+ 'Befejezve . {0} <br/> Azonosító . {1} <br/> Forrás . {2} <br/> Cél . {3} <br/> Cimke . <span style="background:{4}">{5}</span> <br/> Sikeres . {6} <br/> Felhasználó . {7}',\r
obj.Finished, obj.HouseId, obj.Source, obj.Destination,\r
- "red", obj.Tag, obj.Successful);\r
+ obj.Tag, obj.Tag, obj.Successful, obj.UserName);\r
}\r
</script> <charts id="chart" type="spline" /> </window>\r
</div>\r
\r
<div width="100%" height="95%">\r
- <charts id="chart" type="arearange" height="800" title="Octopus lista"/>\r
+ <charts id="chart" type="arearange" height="1000" title="Octopus lista"/>\r
</div>\r
\r
</window>\r
\r
public ScheduledJob createScheduledJob(BasicDBObject jobJSON) {\r
ScheduledJob sj = new ScheduledJob();\r
- sj.setJobId(String.valueOf(++schedulerJobId));\r
- sj.setJobName(jobJSON.getString("name"));\r
- sj.setTemplateName(jobJSON.getString("template"));\r
+ // sj.setJobId(String.valueOf(++schedulerJobId));\r
+ String name = jobJSON.getString("name");\r
+ String template = jobJSON.getString("template");\r
+ sj.setJobId(String.format("%s.%s", template, name));\r
+ sj.setJobName(name);\r
+ sj.setTemplateName(template);\r
sj.setCronExpressions(jobJSON.getString("cronexpression"));\r
sj.setExecuteOnStartup(jobJSON.getBoolean("executeimmediate"));\r
sj.setActive(jobJSON.getBoolean("active"));\r
}\r
\r
private void scheduleImmediate(String jobID) {\r
+\r
Trigger trigger = TriggerBuilder.newTrigger().forJob(jobID).startNow().build();\r
try {\r
scheduler.scheduleJob(trigger);\r
public class StatisticsComposer extends SelectorComposer<Window> {\r
private static final Logger logger = LogManager.getLogger();\r
private static final int XCOUNT = 60 * 24;\r
- private IItemManager itemManager = null;\r
private static Map<String, Color> colors = new HashMap<>();\r
-\r
static {\r
colors.put("INGEST", new Color("red"));\r
- colors.put("ARCHIVE", new Color("green"));\r
- colors.put("TRANSCODE", new Color("blue"));\r
+ colors.put("Betöltés", new Color("green"));\r
+ colors.put("Adáskész", new Color("blue"));\r
}\r
\r
+ private IItemManager itemManager = null;\r
+\r
@Wire\r
private Datebox chartDateSelector;\r
\r
this.itemManager = JobEngine.getStaticItemManager();\r
}\r
\r
- @Listen("onChange = #chartDateSelector")\r
- public void changeDate() {\r
- //ha elhgynánk a gombot\r
- }\r
-\r
- @Override\r
- public void doAfterCompose(Window comp) throws Exception {\r
- super.doAfterCompose(comp);\r
- chartDateSelector.setValue(new Date());\r
- showChart();\r
+ private void addPoint(Series series, int x, int y, String data, Color color) {\r
+ Point p = new Point(x, y);\r
+ p.setName(data);\r
+ if (color != null)\r
+ p.getMarker().setFillColor(color);\r
+ series.addPoint(p);\r
}\r
\r
- @Listen("onClick = #btnShowChart")\r
- public void showChart() {\r
- clearChart();\r
- configureChart();\r
- setupXAxis();\r
- List<WorkflowAction> actions = itemManager.getWorkflowActions(chartDateSelector.getValue());\r
- if (actions == null || actions.size() == 0) {\r
- setupYAxis(0);\r
+ private void addPoint(Series series, WorkflowAction action, int y) {\r
+ if (action.getFinished() == null)\r
return;\r
- }\r
-\r
- // logger.info("Item count {}", actions.size());\r
- int distinctCount = fillData(actions);\r
- setupYAxis(distinctCount);\r
-\r
- int height = 100 + distinctCount * 20;\r
-\r
- // logger.info("Height {}", height);\r
- chart.setHeight(height);\r
+ Calendar cal = Calendar.getInstance();\r
+ cal.setTime(new Date(action.getFinished().getTime()));\r
+ int x = cal.get(Calendar.HOUR_OF_DAY) * 60 + cal.get(Calendar.MINUTE);\r
+ Color color = colors.get(action.getTag());\r
+ BasicDBObject data = new BasicDBObject();\r
+ data.put("Finished", action.getFinished().toString());\r
+ data.put("HouseId", action.getHouseId());\r
+ data.put("Touched", action.getTouched());\r
+ data.put("Started", action.getStarted());\r
+ data.put("Source", action.getSource());\r
+ data.put("Destination", action.getDestination());\r
+ data.put("Tag", color == null ? "lightgray" : color.toString());\r
+ data.put("Successful", action.isSuccessful());\r
+ data.put("UserName", action.getUserName());\r
+ addPoint(series, x, y, data.toString(), color);\r
}\r
\r
- private void setupYAxis(int distinctCount) {\r
- YAxis yAxis = chart.getYAxis();\r
- yAxis.setTitle("Anyagok");\r
- yAxis.setMin(0);\r
- yAxis.setMax(distinctCount);\r
- yAxis.setTickInterval(1);\r
- if (distinctCount == 0) {\r
- yAxis.setGridLineWidth(0);\r
- } else {\r
- yAxis.setGridLineWidth(1);\r
- //Solid, ShortDash, ShortDot, ShortDashDot, ShortDashDotDot, Dot , Dash, LongDash, DashDot, LongDashDot, and LongDashDotDot\r
- yAxis.setGridLineDashStyle("LongDashDot");\r
- yAxis.setGridLineColor(new Color("lightgray"));\r
- }\r
-\r
- yAxis.getLabels().addExtraAttr("formatter",\r
- new JavaScriptValue("function () { return statisticsYValue(this.value, this.chart.series); }"));\r
+ @Listen("onChange = #chartDateSelector")\r
+ public void changeDate() {\r
+ //ha elhgynánk a gombot\r
}\r
\r
- private void setupXAxis() {\r
- XAxis xAxis = chart.getXAxis();\r
- xAxis.setTickInterval(20);\r
- xAxis.setMin(0);\r
- xAxis.setMax(XCOUNT);\r
- AxisLabels xLabels = xAxis.getLabels();\r
- xLabels.setRotation(-45);\r
- xAxis.getLabels().addExtraAttr("formatter",\r
- new JavaScriptValue("function () { return statisticsXValue(this.value); }"));\r
+ private void clearChart() {\r
+ int size = chart.getSeriesSize();\r
+ for (int i = 0; i < size; i++)\r
+ chart.getSeries(i).setData(new ArrayList<Integer>());\r
}\r
\r
private void configureChart() {\r
- chart.setTitle("Híranyagok élettörténete");\r
- chart.setSubtitle(CalendarUtils.toDateWithDayString(CalendarUtils.createCalendar(chartDateSelector.getValue()),\r
- new Locale("hu")));\r
+ chart.setTitle("Anyagok élettörténete");\r
+ chart.setSubtitle(CalendarUtils.toDateWithDayString(CalendarUtils.createCalendar(chartDateSelector.getValue()), new Locale("hu")));\r
chart.getLegend().setEnabled(false);\r
chart.setWidth(2048);\r
SplinePlotOptions options = chart.getPlotOptions().getSpline();\r
tooltip.setFormat("");\r
tooltip.setPointFormat("");\r
tooltip.setUseHTML(true);\r
+ tooltip.setBorderWidth(0);\r
//tooltip.setFormat(format);\r
\r
tooltip.addExtraAttr("formatter", new JavaScriptValue("function () { return statistics(this.point); }"));\r
\r
}\r
\r
- private void clearChart() {\r
- int size = chart.getSeriesSize();\r
- for (int i = 0; i < size; i++)\r
- chart.getSeries(i).setData(new ArrayList<Integer>());\r
+ @Override\r
+ public void doAfterCompose(Window comp) throws Exception {\r
+ super.doAfterCompose(comp);\r
+ chartDateSelector.setValue(new Date());\r
+ showChart();\r
}\r
\r
private int fillData(List<WorkflowAction> actions) {\r
return result;\r
}\r
\r
- private void addPoint(Series series, WorkflowAction action, int y) {\r
- if (action.getFinished() == null)\r
- return;\r
- Calendar cal = Calendar.getInstance();\r
- cal.setTime(new Date(action.getFinished().getTime()));\r
- int x = cal.get(Calendar.HOUR_OF_DAY) * 60 + cal.get(Calendar.MINUTE);\r
- Color color = colors.get(action.getTag());\r
- BasicDBObject data = new BasicDBObject();\r
- data.put("Finished", action.getFinished().toString());\r
- data.put("HouseId", action.getHouseId());\r
- data.put("Touched", action.getTouched());\r
- data.put("Started", action.getStarted());\r
- data.put("Source", action.getSource());\r
- data.put("Destination", action.getDestination());\r
- data.put("Tag", action.getTag());\r
- data.put("Successful", action.isSuccessful());\r
- addPoint(series, x, y, data.toString(), color);\r
+ private void setupXAxis() {\r
+ XAxis xAxis = chart.getXAxis();\r
+ xAxis.setTickInterval(20);\r
+ xAxis.setMin(0);\r
+ xAxis.setMax(XCOUNT);\r
+ AxisLabels xLabels = xAxis.getLabels();\r
+ xLabels.setRotation(-45);\r
+ xAxis.getLabels().addExtraAttr("formatter", new JavaScriptValue("function () { return statisticsXValue(this.value); }"));\r
}\r
\r
- private void addPoint(Series series, int x, int y, String data, Color color) {\r
- Point p = new Point(x, y);\r
- p.setName(data);\r
- if (color != null)\r
- p.getMarker().setFillColor(color);\r
- series.addPoint(p);\r
+ private void setupYAxis(int distinctCount) {\r
+ YAxis yAxis = chart.getYAxis();\r
+ yAxis.setTitle("Anyagok");\r
+ yAxis.setMin(0);\r
+ yAxis.setMax(distinctCount);\r
+ yAxis.setTickInterval(1);\r
+ if (distinctCount == 0) {\r
+ yAxis.setGridLineWidth(0);\r
+ } else {\r
+ yAxis.setGridLineWidth(1);\r
+ //Solid, ShortDash, ShortDot, ShortDashDot, ShortDashDotDot, Dot , Dash, LongDash, DashDot, LongDashDot, and LongDashDotDot\r
+ yAxis.setGridLineDashStyle("LongDashDot");\r
+ yAxis.setGridLineColor(new Color("lightgray"));\r
+ }\r
+\r
+ yAxis.getLabels().addExtraAttr("formatter", new JavaScriptValue("function () { return statisticsYValue(this.value, this.chart.series); }"));\r
+ }\r
+\r
+ @Listen("onClick = #btnShowChart")\r
+ public void showChart() {\r
+ clearChart();\r
+ configureChart();\r
+ setupXAxis();\r
+ List<WorkflowAction> actions = itemManager.getWorkflowActions(chartDateSelector.getValue());\r
+ if (actions == null || actions.size() == 0) {\r
+ setupYAxis(0);\r
+ return;\r
+ }\r
+\r
+ // logger.info("Item count {}", actions.size());\r
+ int distinctCount = fillData(actions);\r
+ setupYAxis(distinctCount);\r
+\r
+ int height = 100 + distinctCount * 20;\r
+\r
+ // logger.info("Height {}", height);\r
+ chart.setHeight(height);\r
}\r
\r
}
\ No newline at end of file