git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Fri, 8 Dec 2017 16:10:27 +0000 (16:10 +0000)
committerVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Fri, 8 Dec 2017 16:10:27 +0000 (16:10 +0000)
27 files changed:
client/MCTool/App.config [new file with mode: 0644]
client/MCTool/MCTool.csproj [new file with mode: 0644]
client/MCTool/Program.cs [new file with mode: 0644]
client/MCTool/Properties/AssemblyInfo.cs [new file with mode: 0644]
client/Maestro/Configuration/-configuration-editor.json
client/Maestro/Configuration/-configuration-studio.json [moved from client/Maestro/Configuration/configuration-studio.json with 100% similarity]
client/Maestro/Configuration/configuration-nle.json [moved from client/Maestro/Configuration/-configuration-nle.json with 100% similarity]
client/Maestro/Maestro.csproj
client/Maestro/MaestroForm.Source.cs
client/MediaCube.sln
client/OctopusClient/OctopusIDSelector.cs
server/-configuration/run-mediacube-server-bsh.launch
server/-product/log4j2.xml
server/user.jobengine.executors/config/scheduledjobs.json
server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveListBuilderStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/CleanupMountedLocationStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/CopyForArchiveNEXIOMaterialsStep.java
server/user.jobengine.osgi.commons/src/user/commons/nexio/NexioClipEventDispatcher.java
server/user.jobengine.osgi.commons/src/user/commons/octopus/IOctopusAPI.java
server/user.jobengine.osgi.commons/src/user/commons/octopus/OctopusAPI.java
server/user.jobengine.osgi.commons/src/user/commons/octopus/OctopusDataMiner.java
server/user.jobengine.osgi.db/sql/cleanup.sql [new file with mode: 0644]
server/user.jobengine.osgi.server/pages/joblist.zul
server/user.jobengine.osgi.server/pages/search_items.zul
server/user.jobengine.osgi.server/src/user/jobengine/server/JobEngine.java
server/user.jobengine.osgi.server/src/user/jobengine/zk/model/JobListModel.java
server/user.jobengine.osgi.server/src/user/jobengine/zk/model/StatisticsComposer.java

diff --git a/client/MCTool/App.config b/client/MCTool/App.config
new file mode 100644 (file)
index 0000000..00bfd11
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>\r
+<configuration>\r
+    <startup> \r
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />\r
+    </startup>\r
+</configuration>
\ No newline at end of file
diff --git a/client/MCTool/MCTool.csproj b/client/MCTool/MCTool.csproj
new file mode 100644 (file)
index 0000000..4c76c7e
--- /dev/null
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />\r
+  <PropertyGroup>\r
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>\r
+    <ProjectGuid>{A64ADB88-2CC4-4E46-BC53-643E2C49E179}</ProjectGuid>\r
+    <OutputType>Exe</OutputType>\r
+    <RootNamespace>MCTool</RootNamespace>\r
+    <AssemblyName>MCTool</AssemblyName>\r
+    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>\r
+    <FileAlignment>512</FileAlignment>\r
+    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>\r
+    <SccProjectName>SAK</SccProjectName>\r
+    <SccLocalPath>SAK</SccLocalPath>\r
+    <SccAuxPath>SAK</SccAuxPath>\r
+    <SccProvider>SAK</SccProvider>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
+    <PlatformTarget>AnyCPU</PlatformTarget>\r
+    <DebugSymbols>true</DebugSymbols>\r
+    <DebugType>full</DebugType>\r
+    <Optimize>false</Optimize>\r
+    <OutputPath>bin\Debug\</OutputPath>\r
+    <DefineConstants>DEBUG;TRACE</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>4</WarningLevel>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
+    <PlatformTarget>AnyCPU</PlatformTarget>\r
+    <DebugType>pdbonly</DebugType>\r
+    <Optimize>true</Optimize>\r
+    <OutputPath>bin\Release\</OutputPath>\r
+    <DefineConstants>TRACE</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>4</WarningLevel>\r
+  </PropertyGroup>\r
+  <ItemGroup>\r
+    <Reference Include="System" />\r
+    <Reference Include="System.Core" />\r
+    <Reference Include="System.Xml.Linq" />\r
+    <Reference Include="System.Data.DataSetExtensions" />\r
+    <Reference Include="Microsoft.CSharp" />\r
+    <Reference Include="System.Data" />\r
+    <Reference Include="System.Net.Http" />\r
+    <Reference Include="System.Xml" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Compile Include="Program.cs" />\r
+    <Compile Include="Properties\AssemblyInfo.cs" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <None Include="App.config" />\r
+  </ItemGroup>\r
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />\r
+</Project>
\ No newline at end of file
diff --git a/client/MCTool/Program.cs b/client/MCTool/Program.cs
new file mode 100644 (file)
index 0000000..f359f5c
--- /dev/null
@@ -0,0 +1,27 @@
+using System;\r
+using System.Diagnostics;\r
+using System.IO;\r
+using System.Linq;\r
+\r
+namespace MCTool {\r
+    class Program {\r
+        static void Main(string[] args) {\r
+            string source = "file://10.10.1.27/mclowres/www/video";\r
+            string destination = "file://10.10.1.100/BRAAVOS/ARCHIVE";\r
+            var sFiles = Directory.EnumerateFiles(new Uri(source).LocalPath, "*.mp4");\r
+            var dFiles = Directory.EnumerateFiles(new Uri(destination).LocalPath, "*.MXF");\r
+\r
+            var diff = dFiles.Where(s => {\r
+                string name = Path.GetFileNameWithoutExtension(s) + ".mp4";\r
+                string lookup = new Uri(Path.Combine(source, name)).LocalPath;\r
+                bool result = !source.Contains(lookup);\r
+                if (result)\r
+                    Debug.WriteLine(name);\r
+                return result;\r
+            });\r
+\r
+            Console.WriteLine("Diff " + diff.Count());\r
+            Console.ReadLine();\r
+        }\r
+    }\r
+}\r
diff --git a/client/MCTool/Properties/AssemblyInfo.cs b/client/MCTool/Properties/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..76a6a44
--- /dev/null
@@ -0,0 +1,36 @@
+using System.Reflection;\r
+using System.Runtime.CompilerServices;\r
+using System.Runtime.InteropServices;\r
+\r
+// General Information about an assembly is controlled through the following\r
+// set of attributes. Change these attribute values to modify the information\r
+// associated with an assembly.\r
+[assembly: AssemblyTitle("MCTool")]\r
+[assembly: AssemblyDescription("")]\r
+[assembly: AssemblyConfiguration("")]\r
+[assembly: AssemblyCompany("")]\r
+[assembly: AssemblyProduct("MCTool")]\r
+[assembly: AssemblyCopyright("Copyright ©  2017")]\r
+[assembly: AssemblyTrademark("")]\r
+[assembly: AssemblyCulture("")]\r
+\r
+// Setting ComVisible to false makes the types in this assembly not visible\r
+// to COM components.  If you need to access a type in this assembly from\r
+// COM, set the ComVisible attribute to true on that type.\r
+[assembly: ComVisible(false)]\r
+\r
+// The following GUID is for the ID of the typelib if this project is exposed to COM\r
+[assembly: Guid("a64adb88-2cc4-4e46-bc53-643e2c49e179")]\r
+\r
+// Version information for an assembly consists of the following four values:\r
+//\r
+//      Major Version\r
+//      Minor Version\r
+//      Build Number\r
+//      Revision\r
+//\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("1.0.0.0")]\r
+[assembly: AssemblyFileVersion("1.0.0.0")]\r
index 1ea79085d1c144227dfc9ce60fb677cf5a0f4558..34015f5519c088d2a8a0eff6da8f936d8c9f02d4 100644 (file)
@@ -1,6 +1,6 @@
 {\r
   "title": "Szerkesztő",\r
-  "active": false,\r
+  "active": true,\r
   "startInTray": false,\r
   "enableCustomMetadataId": true,\r
   "player": {\r
@@ -12,7 +12,7 @@
     "$type": "UNCSource",\r
     "filter": "avi,wav,mxf",\r
     "local": {\r
-      "address": "file://c:/x"\r
+      "address": "file://10.10.1.100/BRAAVOS/OCTOPUS"\r
     }\r
   },\r
   "metadatas": [\r
index c21783fcfe7ed02723d9d80da4b3890297b676c9..0f5f0ecd19c533f77afcf714a2818a21b75ef82a 100644 (file)
     <None Include="Configuration\-configuration-editor.json">\r
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>\r
     </None>\r
-    <None Include="Configuration\-configuration-nle.json">\r
+    <None Include="Configuration\configuration-nle.json">\r
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>\r
     </None>\r
     <None Include="Configuration\-configuration-playout-ingest.json">\r
     <None Include="Configuration\-configuration-sxs.json">\r
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>\r
     </None>\r
-    <None Include="Configuration\configuration-studio.json">\r
+    <None Include="Configuration\-configuration-studio.json">\r
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>\r
     </None>\r
   </ItemGroup>\r
index 42eb5ef948c46b97327a4b9b1716362d8b79ef9e..96e9d7c87c62cd59a9e32f399738c7bbdcd34a93 100644 (file)
@@ -189,6 +189,7 @@ namespace Maestro {
                 HideFolders();\r
                 btnShowFolders.CheckState = CheckState.Unchecked;\r
             } else {\r
+                ResetSourceSearch();\r
                 ShowFolders();\r
                 btnShowFolders.CheckState = CheckState.Checked;\r
             }\r
@@ -426,6 +427,10 @@ namespace Maestro {
         }\r
 \r
         private void picClearFilter_Click(object sender, EventArgs e) {\r
+            ResetSourceSearch();\r
+        }\r
+\r
+        private void ResetSourceSearch() {\r
             txtSourceFilter.Text = null;\r
             bindingSource.Filter = null;\r
             SelectedSource = null;\r
@@ -434,8 +439,17 @@ namespace Maestro {
         private void txtSourceFilter_KeyDown(object sender, KeyEventArgs e) {\r
             if (e.KeyCode != Keys.Return)\r
                 return;\r
-            bindingSource.Filter = txtSourceFilter.Text;\r
-            SelectedSource = null;\r
+\r
+            if (btnShowFolders.CheckState == CheckState.Checked) {\r
+                SearchFolders();\r
+            } else {\r
+                bindingSource.Filter = txtSourceFilter.Text;\r
+                SelectedSource = null;\r
+            }\r
+        }\r
+\r
+        private void SearchFolders() {\r
+            throw new NotImplementedException();\r
         }\r
 \r
         private void textSelectedSource_KeyDown(object sender, KeyEventArgs e) {\r
index 806f4aaf40a88cc73cfa39201230b608319218fb..4698632c7561f50118beb5d5b8b884ad65c5b044 100644 (file)
@@ -24,6 +24,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaestroShared", "MaestroSha
 EndProject\r
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MetadataSelector", "MetadataSelector\MetadataSelector.csproj", "{8CB8266D-2229-47E2-B06D-54FDE82CBDC4}"\r
 EndProject\r
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MCTool", "MCTool\MCTool.csproj", "{A64ADB88-2CC4-4E46-BC53-643E2C49E179}"\r
+EndProject\r
 Global\r
        GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
                Debug|Any CPU = Debug|Any CPU\r
@@ -166,6 +168,18 @@ Global
                {8CB8266D-2229-47E2-B06D-54FDE82CBDC4}.Release|x64.Build.0 = Release|Any CPU\r
                {8CB8266D-2229-47E2-B06D-54FDE82CBDC4}.Release|x86.ActiveCfg = Release|Any CPU\r
                {8CB8266D-2229-47E2-B06D-54FDE82CBDC4}.Release|x86.Build.0 = Release|Any CPU\r
+               {A64ADB88-2CC4-4E46-BC53-643E2C49E179}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+               {A64ADB88-2CC4-4E46-BC53-643E2C49E179}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
+               {A64ADB88-2CC4-4E46-BC53-643E2C49E179}.Debug|x64.ActiveCfg = Debug|Any CPU\r
+               {A64ADB88-2CC4-4E46-BC53-643E2C49E179}.Debug|x64.Build.0 = Debug|Any CPU\r
+               {A64ADB88-2CC4-4E46-BC53-643E2C49E179}.Debug|x86.ActiveCfg = Debug|Any CPU\r
+               {A64ADB88-2CC4-4E46-BC53-643E2C49E179}.Debug|x86.Build.0 = Debug|Any CPU\r
+               {A64ADB88-2CC4-4E46-BC53-643E2C49E179}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+               {A64ADB88-2CC4-4E46-BC53-643E2C49E179}.Release|Any CPU.Build.0 = Release|Any CPU\r
+               {A64ADB88-2CC4-4E46-BC53-643E2C49E179}.Release|x64.ActiveCfg = Release|Any CPU\r
+               {A64ADB88-2CC4-4E46-BC53-643E2C49E179}.Release|x64.Build.0 = Release|Any CPU\r
+               {A64ADB88-2CC4-4E46-BC53-643E2C49E179}.Release|x86.ActiveCfg = Release|Any CPU\r
+               {A64ADB88-2CC4-4E46-BC53-643E2C49E179}.Release|x86.Build.0 = Release|Any CPU\r
        EndGlobalSection\r
        GlobalSection(SolutionProperties) = preSolution\r
                HideSolutionNode = FALSE\r
@@ -174,7 +188,7 @@ Global
                SolutionGuid = {8F7E7365-1678-4775-B9E4-B3993FC028E2}\r
        EndGlobalSection\r
        GlobalSection(TeamFoundationVersionControl) = preSolution\r
-               SccNumberOfProjects = 12\r
+               SccNumberOfProjects = 13\r
                SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}\r
                SccTeamFoundationServer = https://tfs.userrendszerhaz.hu/tfs/defaultcollection\r
                SccLocalPath0 = .\r
@@ -211,5 +225,8 @@ Global
                SccProjectUniqueName11 = MetadataSelector\\MetadataSelector.csproj\r
                SccProjectName11 = MetadataSelector\r
                SccLocalPath11 = MetadataSelector\r
+               SccProjectUniqueName12 = MCTool\\MCTool.csproj\r
+               SccProjectName12 = MCTool\r
+               SccLocalPath12 = MCTool\r
        EndGlobalSection\r
 EndGlobal\r
index b2b6917a022bc473071e98d5270f7630d449d75f..819574e96b68bd2e123e4b98ada2f87089725aa9 100644 (file)
@@ -103,6 +103,10 @@ namespace OctopusClient {
                 } else\r
                     label = String.Format($"{parentStoryID} {story.Name}");\r
 \r
+                logger.Debug("Adding story {0} {1}", parentStoryID, label);\r
+                if ("21519676".Equals(parentStoryID)) {\r
+                    logger.Debug(":");\r
+                }\r
                 TreeNode storyNode = treeOctopus.Nodes.Add(parentStoryID, label);\r
                 storyNode.Tag = story;\r
 \r
index d0240306aea67a41d5e3a0ce5a4bdd2cf38cc942..f957593d008b3d20ebf4c01eb927d5eefa9fa181 100644 (file)
@@ -19,7 +19,7 @@
 <stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>\r
 <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console"/>\r
 <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>\r
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Djavax.ws.rs.ext.RuntimeDelegate=org.jboss.resteasy.spi.ResteasyProviderFactory&#13;&#10;-Dorg.eclipse.equinox.http.jetty.http.port=8080&#13;&#10;-Dorg.eclipse.epp.logging.aeri.skipReports=true &#13;&#10;-Declipse.ignoreApp=true &#13;&#10;-Dosgi.noShutdown=true&#13;&#10;-Djobengine.jobsteps.root=&quot;${workspace_loc}/user.jobengine.executors/config&quot;&#13;&#10;-Djobengine.jobtemplates.root=&quot;${workspace_loc}/user.jobengine.executors/jobtemplates&quot;&#13;&#10;-Djobengine.db.url=jdbc:db2://10.10.1.27:50000/mc:retrieveMessagesFromServerOnGetMessage=true;&#13;&#10;-Djobengine.db.user=db2admin&#13;&#10;-Djobengine.db.password=password&#13;&#10;-Djobengine.loglevel=INFO&#13;&#10;-Dlog4j.configurationFile=&quot;${workspace_loc}/-configuration/log4j2.xml&quot;&#13;&#10;-Djobengine.jobsteps.alternate.root=&quot;${workspace_loc}/user.jobengine.executors/bin/user/jobengine/server/steps&quot;&#13;&#10;-Djetty.home=&quot;${workspace_loc:}/-configuration/jetty&quot;&#13;&#10;-Djetty.etc.config.urls=etc/user-jetty.xml,etc/user-jetty-ssl.xml,etc/user-jetty-ssl-context.xml,,etc/user-jetty-http.xml,etc/user-jetty-https.xml&#13;&#10;-Djobengine.octopus.api.address=http://10.10.1.11/api/v1&#13;&#10;-Djobengine.octopus.api.user=mam&#13;&#10;-Djobengine.octopus.api.password=napocska&#13;&#10;-Djobengine.nosql.db.url=jdbc:db2://10.10.1.27:50000/mc:retrieveMessagesFromServerOnGetMessage=true;&#13;&#10;-Djobengine.nosql.db.user=db2admin&#13;&#10;-Djobengine.nosql.db.password=password&#13;&#10;-Djobengine.nosql.db.schema=test&#13;&#10;-Djobengine.selenio.address=http://10.10.1.71:44000/TranscodeMgrWS?wsdl&#13;&#10;-Djobengine.selenio.projectfilepath=\\10.10.1.71\Data\Blueprints\MP4_H264_AAC_v4.zenium&#13;&#10;-Djobengine.jobscheduling.config=&quot;${workspace_loc}/-configuration/scheduledjobs.json&quot;&#13;&#10;-Dnexio.host=10.10.1.55"/>\r
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Djavax.ws.rs.ext.RuntimeDelegate=org.jboss.resteasy.spi.ResteasyProviderFactory&#13;&#10;-Dorg.eclipse.equinox.http.jetty.http.port=8080&#13;&#10;-Dorg.eclipse.epp.logging.aeri.skipReports=true &#13;&#10;-Declipse.ignoreApp=true &#13;&#10;-Dosgi.noShutdown=true&#13;&#10;-Djobengine.jobsteps.root=&quot;${workspace_loc}/user.jobengine.executors/config&quot;&#13;&#10;-Djobengine.jobtemplates.root=&quot;${workspace_loc}/user.jobengine.executors/jobtemplates&quot;&#13;&#10;-Djobengine.db.url=jdbc:db2://10.10.1.27:50000/mc:retrieveMessagesFromServerOnGetMessage=true;&#13;&#10;-Djobengine.db.user=db2admin&#13;&#10;-Djobengine.db.password=password&#13;&#10;-Djobengine.loglevel=INFO&#13;&#10;-Dlog4j.configurationFile=&quot;${workspace_loc}/-configuration/log4j2.xml&quot;&#13;&#10;-Djobengine.jobsteps.alternate.root=&quot;${workspace_loc}/user.jobengine.executors/bin/user/jobengine/server/steps&quot;&#13;&#10;-Djetty.home=&quot;${workspace_loc:}/-configuration/jetty&quot;&#13;&#10;-Djetty.etc.config.urls=etc/user-jetty.xml,etc/user-jetty-ssl.xml,etc/user-jetty-ssl-context.xml,,etc/user-jetty-http.xml,etc/user-jetty-https.xml&#13;&#10;-Djobengine.octopus.api.address=http://10.10.1.11/api/v1&#13;&#10;-Djobengine.octopus.api.user=mam&#13;&#10;-Djobengine.octopus.api.password=napocska&#13;&#10;-Djobengine.nosql.db.url=jdbc:db2://10.10.1.27:50000/mc:retrieveMessagesFromServerOnGetMessage=true;&#13;&#10;-Djobengine.nosql.db.user=db2admin&#13;&#10;-Djobengine.nosql.db.password=password&#13;&#10;-Djobengine.nosql.db.schema=test&#13;&#10;-Djobengine.selenio.address=http://10.10.1.71:44000/TranscodeMgrWS?wsdl&#13;&#10;-Djobengine.selenio.projectfilepath=\\10.10.1.71\Data\Blueprints\MP4_H264_AAC_v4.zenium&#13;&#10;-Djobengine.jobscheduling.config=&quot;${workspace_loc}/-configuration/scheduledjobs.json&quot;&#13;&#10;-Dnexio.host=10.10.1.555"/>\r
 <stringAttribute key="pde.version" value="3.3"/>\r
 <booleanAttribute key="show_selected_only" value="false"/>\r
 <stringAttribute key="target_bundles" value="cglib@default:default,com.auth0.java-jwt@default:default,com.fasterxml.jackson.core.jackson-annotations@default:default,com.fasterxml.jackson.core.jackson-core@default:default,com.fasterxml.jackson.core.jackson-databind@default:default,com.fasterxml.jackson.datatype.jackson-datatype-joda@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-base@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider@default:default,com.fasterxml.jackson.module.jackson-module-jaxb-annotations@default:default,com.google.guava@default:default,com.ibm.db2jcc4@default:default,com.ibm.nosql@default:default,com.microsoft.sqlserver.sqljdbc@default:default,com.sun.el.javax.el@default:default,commons-logging@default:default,javassist@default:default,javax.annotation-api@default:default,javax.inject@default:default,javax.mail@default:default,javax.servlet-api@default:default,javax.servlet.jsp-api@default:default,javax.validation.api@default:default,javax.ws.rs-api@default:default,jcifs@default:default,joda-time@default:default,org.apache.aries.spifly.dynamic.bundle@default:default,org.apache.aries.util@default:default,org.apache.commons.beanutils@default:default,org.apache.commons.codec@default:default,org.apache.commons.collections@default:default,org.apache.commons.digester@default:default,org.apache.commons.io@default:default,org.apache.commons.lang3@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging@default:default,org.apache.commons.net@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.apache.jasper.glassfish@default:default,org.apache.logging.log4j.api@1:true,org.apache.logging.log4j.core@default:default,org.apache.logging.log4j.slf4j-impl@default:default,org.apache.servicemix.bundles.quartz@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.util@default:default,org.eclipse.jdt.core.compiler.batch@default:default,org.eclipse.jetty.client@default:default,org.eclipse.jetty.deploy@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.jsp@default:default,org.eclipse.jetty.osgi.boot.jsp@default:false,org.eclipse.jetty.osgi.boot@default:true,org.eclipse.jetty.schemas@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.jetty.webapp@default:default,org.eclipse.jetty.websocket.api@default:default,org.eclipse.jetty.websocket.client@default:default,org.eclipse.jetty.websocket.common@default:default,org.eclipse.jetty.websocket.server@default:default,org.eclipse.jetty.websocket.servlet@default:default,org.eclipse.jetty.xml@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.hamcrest.core@default:default,org.jboss.resteasy.client@default:default,org.jboss.resteasy.jaxrs@default:default,org.jmock.junit4@default:default,org.jmock@default:default,org.junit@default:default,org.jvnet.mimepull@default:default,org.objectweb.asm.commons@default:default,org.objectweb.asm.tree@default:default,org.objectweb.asm@default:default,org.reflections@default:default,slf4j.api@default:default,slf4j.simple@default:false"/>\r
index f81b90af8674ea4fb442c265ce46a36aeb5e9764..91345a081d93930fb0124a285b60b81455e794ab 100644 (file)
@@ -47,7 +47,7 @@
                        </Policies>\r
                </RollingFile>\r
                <RollingFile name="RollingFileExceptions" fileName="${fileName.err}" filePattern="${filePattern.err}">\r
-                       <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{1}.%M - %markerSimpleName - %msg (%F:%L)%n %throwable" />\r
+                       <PatternLayout pattern="%d{HH:mm:ss.SSS} %logger{1}.%M %msg (%F:%L)%n %throwable" />\r
                        <Filters>\r
                                <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY" />\r
                        </Filters>\r
index df57e52632881c35f208dababc37c0b3c079b09c..f12581bd57911a087f70c633d17d0bdd24ef6baf 100644 (file)
       ]\r
        },      \r
        {\r
+      "active": false,\r
+         "name" : "Lejárt ISISLON/ARCHIVE_TEMP anyagok törlése",\r
+      "template": "delete-materials.xml",\r
+      "executeimmediate": true,\r
+      "cronexpression": "0 0 0/1 1/1 * ? *",\r
+      "parameters": [ \r
+       {"name": "sourcePath", "value": "/mnt/ISILON/ARCHIVE_TEMP", "type": "java.lang.String"}\r
+      ]\r
+       },      \r
+       {\r
       "active": false,\r
          "name" : "NEXIO anyagok törlése",\r
       "template": "delete-nexio-materials.xml",\r
index 7b78de792eb5a5130064aa1274e62ab1409b2de3..0f5e7f11ed4d0ca64585ad59877ee1daae56b07f 100644 (file)
@@ -55,7 +55,6 @@ public class ArchiveListBuilderStep extends JobStep {
                        result.setMediaHouseId(getMetadata(dbObject, MEDIA_HOUSEID));\r
                        result.setMediaTitle(getMetadata(dbObject, MEDIA_TITLE));\r
                        result.setMediaDescription(getMetadata(dbObject, MEDIA_DESCRIPTION));\r
-\r
                        result.setMediaFile(mediaFilePath.toString());\r
                        result.setCatchedFile(catchedFilePath.toString());\r
 \r
@@ -63,6 +62,7 @@ public class ArchiveListBuilderStep extends JobStep {
                        logger.catching(e);\r
                        return null;\r
                }\r
+\r
                return result;\r
        }\r
 \r
@@ -92,6 +92,8 @@ public class ArchiveListBuilderStep extends JobStep {
                                }\r
                        }\r
                }\r
+               logger.info(getMarker(), "Az archiváló folyamat {} új anyagot érzékelt.", archiveList == null ? 0 : archiveList.size());\r
+\r
                return new Object[] { archiveList };\r
        }\r
 \r
index 88f20501a54923c634f151205509030357dce07f..a0c63645710cda685f256731e54d211b1bd55683 100644 (file)
@@ -43,8 +43,8 @@ public class CleanupMountedLocationStep extends JobStep implements FileVisitor<P
                        final int[] specialCount = { 0 };\r
                        dirStream.forEach(p -> {\r
                                count[0]++;\r
-                               if (p.getFileName().toString().toLowerCase().equals(PROJECTFOLDER.toLowerCase()))\r
-                                       specialCount[0]++;\r
+                               //                              if (p.getFileName().toString().toLowerCase().equals(PROJECTFOLDER.toLowerCase()))\r
+                               //                                      specialCount[0]++;\r
                                if (p.getFileName().toString().toLowerCase().equals(STATUSFOLDER.toLowerCase()))\r
                                        specialCount[0]++;\r
 \r
index 17c1a65522d76b46f4ceffb872df0a93ea9a94a2..115accfd49e21bf67560634b1332358da5c72963 100644 (file)
@@ -3,6 +3,7 @@ package user.jobengine.server.steps;
 import java.io.IOException;\r
 import java.net.URI;\r
 import java.net.URISyntaxException;\r
+import java.util.ArrayList;\r
 import java.util.Calendar;\r
 import java.util.List;\r
 \r
@@ -28,6 +29,19 @@ import user.jobengine.server.JobEngineException;
 import user.jobengine.server.steps.MetadataTypeDetector.MetadataType;\r
 \r
 public class CopyForArchiveNEXIOMaterialsStep extends JobStep {\r
+       private class StoryArchive {\r
+               private String mediaHouseId;\r
+               private String mediaTitle;\r
+               private String mediaDesc;\r
+               private List<String> fileNames;\r
+\r
+               public void addFile(String fileName) {\r
+                       if (fileNames == null)\r
+                               fileNames = new ArrayList<>();\r
+                       fileNames.add(fileName);\r
+               }\r
+       }\r
+\r
        private static final String MXFEXT = ".MXF";\r
        private static final Logger logger = LogManager.getLogger();\r
        private static final String NEXIOCLIPS = "nexioclips";\r
@@ -38,6 +52,7 @@ public class CopyForArchiveNEXIOMaterialsStep extends JobStep {
        private StoreUri targetUri;\r
        private OctopusAPI octopusAPI;\r
        private IItemManager manager;\r
+\r
        private DB db;\r
 \r
        private int check(int value, String name) {\r
@@ -67,66 +82,92 @@ public class CopyForArchiveNEXIOMaterialsStep extends JobStep {
                setAndCheck(nexioPort, nexioUserName, nexioPassword, archiveFtp, archiveUserName, archivePassword, jobEngine);\r
                octopusAPI = new OctopusAPI();\r
                Calendar scheduledDate = Calendar.getInstance();\r
-               scheduledDate.add(Calendar.DAY_OF_YEAR, -1 * daysBeforeNow);\r
+               //              scheduledDate.add(Calendar.DAY_OF_YEAR, -1 * daysBeforeNow);\r
                List<DBObject> rundowns = octopusAPI.getRundowns(scheduledDate.getTime());\r
                if (rundowns == null) {\r
                        logger.warn(getMarker(), "Nem található adástükör a {} napra.", CalendarUtils.toDateString(scheduledDate));\r
                        return null;\r
                }\r
-               try {\r
-                       int index = 1;\r
-                       for (DBObject r : rundowns) {\r
-                               setProgress(index * 100 / rundowns.size());\r
-                               processRundow(r);\r
-                               index++;\r
+               int index = 1;\r
+\r
+               List<List<StoryArchive>> rundownArchives = null;\r
+               for (DBObject r : rundowns) {\r
+                       setProgress(index * 100 / rundowns.size());\r
+                       try {\r
+                               List<StoryArchive> storyArchive = processRundow(r);\r
+                               if (storyArchive.size() > 0) {\r
+                                       if (rundownArchives == null)\r
+                                               rundownArchives = new ArrayList<>();\r
+                                       rundownArchives.add(storyArchive);\r
+                               }\r
+                       } catch (Exception e) {\r
+                               logger.catching(e);\r
+                               logger.error(getMarker(),\r
+                                               "A {} tükör archiválása nem lehetséges, mert a annak ellenőrzése hibát jelzett. A rendszer üzenete: " + e.getMessage());\r
                        }\r
-               } catch (Exception e) {\r
-                       logger.catching(e);\r
-                       logger.error(getMarker(), e.getMessage());\r
-                       throw e;\r
+                       index++;\r
                }\r
                return null;\r
        }\r
 \r
-       private void processMosObject(BasicDBObject rundown, BasicDBObject story, BasicDBObject mosObject) throws Exception {\r
+       private String processMosObject(BasicDBObject rundown, BasicDBObject story, BasicDBObject mosObject) throws Exception {\r
                String mosID = mosObject.getString(IOctopusAPI.OBJ_ID);\r
                if (MetadataTypeDetector.GuessMetadataType(mosID) != MetadataType.OCTOPUSPLACEHOLDER) {\r
                        logger.warn("Skipping MOS object {}", mosID);\r
-                       return;\r
+                       return null;\r
                }\r
-\r
                DBCollection clips = db.getCollection(NEXIOCLIPS);\r
                DBObject clip = clips.findOne(new BasicDBObject(LONGNAMEID, mosID));\r
                if (clip == null) {\r
                        logger.info("File NOT exists {}", mosID);\r
-                       throw new Exception("Not exists");\r
+                       throw new Exception(String.format("File NOT exists %s"));\r
                } else {\r
                        logger.info("File exists {}", mosID);\r
                }\r
-\r
-               BasicDBObject metadata = createMetadata(rundown, story, mosObject);\r
+               return mosID + MXFEXT;\r
        }\r
 \r
-       private void processRundow(DBObject r) throws Exception {\r
+       private List<StoryArchive> processRundow(DBObject r) throws Exception {\r
+               //storyArchive = new ArrayList<>();\r
                BasicDBObject rundown = (BasicDBObject) r;\r
                long rundownID = rundown.getLong(ID);\r
-               logger.info("Processing rundown {}", rundownID);\r
-               List<DBObject> stories = octopusAPI.getRundownStories(rundownID);\r
+               logger.info("Processing rundown {} {}", rundownID, rundown.getString(IOctopusAPI.NAME));\r
+               List<DBObject> stories = octopusAPI.getRundownFullStories(rundownID);\r
                if (stories == null)\r
-                       return;\r
-               for (DBObject s : stories)\r
-                       processStory(rundown, s);\r
+                       return null;\r
+               List<StoryArchive> storyArchives = null;\r
+               for (DBObject s : stories) {\r
+                       StoryArchive storyArchive = processStory(rundown, s);\r
+                       if (storyArchive == null)\r
+                               continue;\r
+                       if (storyArchives == null)\r
+                               storyArchives = new ArrayList<>();\r
+                       storyArchives.add(storyArchive);\r
+               }\r
+               return storyArchives;\r
        }\r
 \r
-       private void processStory(BasicDBObject rundown, DBObject s) throws Exception {\r
+       private StoryArchive processStory(BasicDBObject rundown, DBObject s) throws Exception {\r
                BasicDBObject story = (BasicDBObject) s;\r
                String parentStoryID = story.getString(IOctopusAPI.PARENT_STORY_ID);\r
-               logger.info("Processing story {}", parentStoryID);\r
+               if (StringUtils.isBlank(parentStoryID)) {\r
+                       logger.warn("Story parentStoryID is null: {}", story.toPrettyString(null));\r
+                       return null;\r
+               } else\r
+                       logger.info("Processing story {}", parentStoryID);\r
                List<BasicDBObject> mosObjects = NoSQLUtils.asList(story, IOctopusAPI.MOS_OBJECTS);\r
                if (mosObjects == null)\r
-                       return;\r
-               for (BasicDBObject mosObject : mosObjects)\r
-                       processMosObject(rundown, story, mosObject);\r
+                       return null;\r
+               StoryArchive storyArchive = null;\r
+               for (BasicDBObject mosObject : mosObjects) {\r
+                       String fileName = processMosObject(rundown, story, mosObject);\r
+                       if (fileName == null)\r
+                               continue;\r
+                       if (storyArchive == null)\r
+                               storyArchive = new StoryArchive();\r
+                       storyArchive.addFile(fileName);\r
+               }\r
+               return null;\r
 \r
        }\r
 \r
index 007b6f6eac56140fce5703d4f50c2f84983c9413..05063f397b19859a08bfe3c2856392ef62e88d21 100644 (file)
@@ -287,14 +287,14 @@ public class NexioClipEventDispatcher implements ClipEventListener {
                }\r
 \r
                /*\r
-\r
+               \r
                                int c = connection.read(buffer, 0, 2);\r
                                //2 bytes hosszan az idokozben hozzaadott id-k szamossaga\r
                                if (c < 2) {\r
                                        throw new ProtocolException("c, 2, 2");\r
                                }\r
                                //MSB, LSB\r
-\r
+               \r
                                return nofIds;\r
                        */\r
                return ret;\r
@@ -365,9 +365,14 @@ public class NexioClipEventDispatcher implements ClipEventListener {
                                        collection.save(clip);\r
                                        onUpdate(clip);\r
                                }\r
-                       } else {\r
-                               logger.error("Not found {}, XID based clip is {}", id, clipForName.toPrettyString(null));\r
-                       }\r
+                       } else if (clipForName != null) {\r
+                               clip.put("_id", clipForName.get("_id"));\r
+                               if (!clip.equals(clipForName)) {\r
+                                       collection.save(clip);\r
+                                       onUpdate(clip);\r
+                               }\r
+                       } else\r
+                               logger.error("Clip not found {} {}", id, xid);\r
                }\r
        }\r
 \r
index 69d3e8d4afbfde6487f8d62835cededcc355fad0..e995117946fe5430ba3b6b02b1b05fed21f9d9b9 100644 (file)
@@ -40,6 +40,8 @@ public interface IOctopusAPI {
        static final String STORYID = "storyId";\r
        static final String FORMAT = "format";\r
 \r
+       List<DBObject> getRundownFullStories(long id);\r
+\r
        List<DBObject> getRundowns(Date scheduledDate);\r
 \r
        List<DBObject> getRundownsByParentStoryID(String storyID);\r
index 595fd76218ea9a690f3db1762768e6cfa6ab4831..3ed09ab8bbe35b25502cadcabacae5f0fad2627e 100644 (file)
@@ -71,6 +71,17 @@ public class OctopusAPI implements IOctopusAPI {
                return result;\r
        }\r
 \r
+       @Override\r
+       public List<DBObject> getRundownFullStories(long id) {\r
+               List<DBObject> result = null;\r
+               DBCollection collection = db.getCollection(STORY_COLLECTION);\r
+               DBCursor find = collection.find(new BasicDBObject(REF_RUNDOWN, new BasicDBObject($ELEMMATCH, new BasicDBObject(ID, id))))\r
+                               .sort(new BasicDBObject("name", 1));\r
+               if (find.hasNext())\r
+                       result = find.toArray();\r
+               return result;\r
+       }\r
+\r
        @Override\r
        public List<DBObject> getRundowns(Date scheduledDate) {\r
                List<DBObject> result = null;\r
index 3f57fb48e91b20cb828012f54b4490d478567444..1d92376d5bc650a2c2cac97d8b47077866b41403 100644 (file)
@@ -46,7 +46,8 @@ public class OctopusDataMiner implements Runnable {
        private static final String FIELDS_STORIES = "stories,Story.modified,Story.name,Story.id,Story.mosObjects,Story.script,Story.type,Story.format,Story.customColumns,CustomColumn.label,CustomColumn.value";\r
        private static final String FIELDS_SLUGS = "slugs,Slug.story,Slug.position,Story.name,Story.id,Story.modified,Story.mosObjects,Story.script,Story.type,Story.format,Story.customColumns,CustomColumn.label,CustomColumn.value";\r
        private static final String FIELDS_RUNDOWN_LIST = "id,name,modified,scheduledStart,rundownType,RundownType.name,slugs,Slug.storyId,Slug.position";\r
-       private static final String FIELDS_STORY_FOLDER_LIST = "id,name,modified,stories,Story.id";\r
+       //      private static final String FIELDS_STORY_FOLDER_LIST = "id,name,modified,stories,Story.id";\r
+       private static final String FIELDS_STORY_FOLDER_LIST = "id,name,modified";\r
        private static final String RUNDOWN = "Rundown";\r
        private static final String OCTOPUS_DEVICE_NAME = "Octopus-Device-Name";\r
        private static final String OCTOPUS_DEVICE_ID = "Octopus-Device-Id";\r
@@ -538,7 +539,9 @@ public class OctopusDataMiner implements Runnable {
                Response response = query(String.format("%s/", RUNDOWN) + id, fields).get();\r
                String json = response.readEntity(String.class);\r
                BasicDBObject resultObject = (BasicDBObject) JSONUtil.jsonToDbObject(json);\r
-               if (resultObject != null)\r
+               if (resultObject == null)\r
+                       logger.error("Rundown {} is not available", id);\r
+               else\r
                        result = NoSQLUtils.asDBObject(resultObject, RESULT);\r
                logger.trace(EXIT);\r
                return result;\r
@@ -667,15 +670,17 @@ public class OctopusDataMiner implements Runnable {
                String name = rundown.containsKey(IOctopusAPI.NAME) ? rundown.getString(IOctopusAPI.NAME) : null;\r
                logger.debug("Storing rundown {} {}", name, rundown.get(IOctopusAPI.SCHEDULED_START));\r
                BasicDBObject rundownWithStories = queryRundown(rundownID);\r
-               BasicDBList stories = NoSQLUtils.asDBList(rundownWithStories, IOctopusAPI.SLUGS);\r
-               if (stories != null)\r
-                       storeRundownStories(stories, lastUpdateTime);\r
-               rundown.put(IOctopusAPI.SCHEDULED_START, toDate(rundown, IOctopusAPI.SCHEDULED_START));\r
-               rundown.put(IOctopusAPI.MODIFIED, toDate(rundown, IOctopusAPI.MODIFIED));\r
-               DBCollection collection = db.getCollection(RUNDOWN_COLLECTION);\r
-               if (lastUpdateTime == null || (lastUpdateTime != null && isModified(lastUpdateTime, rundown))) {\r
-                       logger.debug(SAVING_RUNDOWN, rundownID, name);\r
-                       collection.save(rundown);\r
+               if (rundownWithStories != null) {\r
+                       BasicDBList stories = NoSQLUtils.asDBList(rundownWithStories, IOctopusAPI.SLUGS);\r
+                       if (stories != null)\r
+                               storeRundownStories(stories, lastUpdateTime);\r
+                       rundown.put(IOctopusAPI.SCHEDULED_START, toDate(rundown, IOctopusAPI.SCHEDULED_START));\r
+                       rundown.put(IOctopusAPI.MODIFIED, toDate(rundown, IOctopusAPI.MODIFIED));\r
+                       DBCollection collection = db.getCollection(RUNDOWN_COLLECTION);\r
+                       if (lastUpdateTime == null || (lastUpdateTime != null && isModified(lastUpdateTime, rundown))) {\r
+                               logger.debug(SAVING_RUNDOWN, rundownID, name);\r
+                               collection.save(rundown);\r
+                       }\r
                }\r
                logger.trace(EXIT);\r
        }\r
diff --git a/server/user.jobengine.osgi.db/sql/cleanup.sql b/server/user.jobengine.osgi.db/sql/cleanup.sql
new file mode 100644 (file)
index 0000000..0352c35
--- /dev/null
@@ -0,0 +1,38 @@
+--MEDIAFILE\r
+select * from mediafile f where f.mediaid in (select mediaid from vw_mediafiles where mediafilecount = 1)\r
+delete from mediafile f where f.mediaid in (select mediaid from vw_mediafiles where mediafilecount = 1)\r
+select * from mediafile f where f.mediaid in (select id from media where created > '2017-12-08')\r
+delete from mediafile f where f.mediaid in (select id from media where created > '2017-12-08')\r
+\r
+\r
+--MEDIA\r
+CREATE VIEW vw_mediafiles as select mediaid, count(*) as mediafilecount from mediafile group by (mediaid)\r
+select m.id, m.title, m.created,f.mediafilecount from media m right outer join vw_mediafiles f on (f.mediaid = m.id) where m.created > '2017-12-08'\r
+select m.itemid, m.id, m.itemtypeid, m.title, m.created,f.mediafilecount from media m left outer join vw_mediafiles f on (f.mediaid = m.id) where f.mediafilecount is null\r
+select m.itemid, m.id, m.itemtypeid, m.title, m.created,f.mediafilecount from media m left outer join vw_mediafiles f on (f.mediaid = m.id) where f.mediafilecount = 1\r
+delete from media where id in (select m.id from media m left outer join vw_mediafiles f on (f.mediaid = m.id) where f.mediafilecount is null)\r
+\r
+\r
+\r
+--ITEM\r
+CREATE VIEW vw_medias as select itemid, count(*) as mediacount from media group by (itemid)\r
+select i.id, i.title, i.created, m.mediacount from item i left outer join vw_medias m on (m.itemid = i.id) where m.mediacount is null\r
+delete from item where id in (select i.id from item i left outer join vw_medias m on (m.itemid = i.id) where m.mediacount is null)\r
+\r
+\r
+\r
+insert into media (id, itemid, title, ITEMTYPEID, houseid, length) values (13985, 13045, 'xxx', 2, 'xxx', 0)\r
+\r
+select * from media fetch first 10 rows only\r
+\r
+select id from item where created > '2017-12-08'\r
+\r
+SELECT C.TABSCHEMA, C.TABNAME,\r
+C.COLNAME\r
+FROM SYSCAT.TABLES AS T,\r
+SYSCAT.COLUMNS AS C\r
+WHERE T.TBSPACEID = 2\r
+AND T.TABLEID = 14\r
+AND C.COLNO = 0\r
+AND C.TABSCHEMA = T.TABSCHEMA\r
+AND C.TABNAME = T.TABNAME\r
index 9c5f39fea27179a9b73d5e3a404847deb35b5985..a9ff3cb5f01b56577455cb283b37e437407c20b8 100644 (file)
                <div height="100%" width="100%" style="background: #e3e3e3" align="left">\r
                        <groupbox height="94%" closable="false">\r
                                <caption sclass="boldfont" label="Aktív folyamatok" />\r
-                               <listbox id="lbJobList" sizedByContent="false" model="@load(jlm.jobList)" multiple="true" autopaging="true" mold="paging" vflex="true" checkmark="true" \r
-                                       onSelect="@command('selectJob')" style="border: none; background: #e3e3e3 !important;" oddRowSclass="listbox-odd-style" sclass="listbox-normal-style" >\r
+                               <listbox id="lbJobList" sizedByContent="false" model="@load(jlm.jobList)" multiple="true" autopaging="false" mold="paging" vflex="true" checkmark="true" \r
+                                       onSelect="@command('selectJob')" style="border: none; background: #e3e3e3 !important;" oddRowSclass="listbox-odd-style" sclass="listbox-normal-style" \r
+                                       emptyMessage="Nincs futó folyamat.">\r
                                       <listhead sizable="true">\r
-                                       <listheader label="Id" 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
-                                       <listheader label="Állapot" hflex="min" align="left"/>\r
-                                       <listheader label="Készültség" width="100px" align="left"/>\r
-                                       <listheader label="Üzenet" align="max"/>\r
+                                       <listheader label="Id" hflex="min" align="left" sort="auto"/>\r
+                                       <listheader label="Indítás" hflex="min" align="left" sort="auto"/>\r
+                                       <listheader label="Kész" hflex="min" align="left" sort="auto"/>\r
+                                       <listheader label="Név" hflex="min" align="left" sort="auto"/>\r
+                                       <listheader label="Prioritás" hflex="min" align="left" sort="auto"/>\r
+                                       <listheader label="Állapot" hflex="min" align="left" sort="auto"/>\r
+                                       <listheader label="Készültség" width="100px" align="left" sort="auto"/>\r
+                                       <listheader label="Üzenet" align="max" sort="auto"/>\r
                                       </listhead>\r
                                       \r
                                       <template name="model">\r
index a14f513affdc61692d042374e94e250ecb6c83df..c94b2347d7aeb3c4be74f0c84aa948f50929cdf0 100644 (file)
@@ -15,8 +15,8 @@
                        <west border="none" size="25%" splittable="true" minsize="250">\r
                                <div height="100%" width="100%">\r
                                        <groupbox vflex="min" closable="false">\r
-                                               <caption sclass="boldfont" label="Kereső" />\r
-                                               <textbox style="border:none" instant="true" value="@bind(svm.searchValue)" width="100%" tooltiptext="Keresőérték"\r
+<!--                                           <caption sclass="boldfont" label="Kereső" /> -->\r
+                                               <textbox style="border:none" instant="true" value="@bind(svm.searchValue)" width="100%" tooltiptext="Gépelje be a keresendő kifejezést és nyomja meg az Enter-t."\r
                                                        onOK="@command('doSearch')" />\r
                                                <!--                                            <button sclass="buttonboldfont" label="${labels.button_search}" onClick="@command('doSearch')" autodisable="self" /> -->\r
                                        </groupbox>\r
index e4052726bd505dcbbb94d1dd9b09e25e2f22d773..54163f921d2ebaabc31fd8878431715f43cd3078 100644 (file)
@@ -432,8 +432,10 @@ public class JobEngine implements IJobEngine {
                List<Job> runningJobs = itemManager.getRunningJobs(template.getFileName());
                if (runningJobs != null) {
                        for (Job job : runningJobs) {
-                               if (getJob(job.getId()) != null)
-                                       throw new JobEngineException(String.format("Can not submit job. Job with %s already running", template));
+                               Job runningJob = getJob(job.getId());
+                               if (runningJob != null && runningJob.getStatus() != JobStatus.SUSPENDED)
+                                       throw new JobEngineException(
+                                                       String.format("Can not submit job. Job with %s.%s already running", template.getFileName(), template.getName()));
                        }
                }
        }
index 5e7cd7ee79b34558f3e7df53ba9275ccac2ecbe2..010051c9246a46639fc29af58ad3b53965a03262 100644 (file)
@@ -1,7 +1,6 @@
 package user.jobengine.zk.model;\r
 \r
 import java.util.ArrayList;\r
-import java.util.Collections;\r
 import java.util.HashMap;\r
 import java.util.List;\r
 import java.util.Map;\r
@@ -106,7 +105,8 @@ public class JobListModel extends BaseModel implements IJobChangedListener {
                //                      for (IEntityBase entity : allItems) {\r
                //                              jobList.add(new JobRuntime((IJob) entity));\r
                //                      }\r
-               Collections.sort(jobList, (o1, o2) -> compare(o1, o2));\r
+\r
+               //Collections.sort(jobList, (o1, o2) -> compare(o1, o2));\r
        }\r
 \r
        public boolean isShutdownDisabled() {\r
index 80d493ca22451e1dfecfe6a52601f834dd3214f9..d1cc0dfee2cf942b2bc8ccf2e8fa283db68c3c19 100644 (file)
@@ -43,6 +43,8 @@ public class StatisticsComposer extends SelectorComposer<Window> {
                colors.put("INGEST", new Color("red"));\r
                colors.put("Betöltés", new Color("green"));\r
                colors.put("Adáskész", new Color("blue"));\r
+               colors.put("Archiválás", new Color("orange"));\r
+               colors.put("Újravágás", new Color("brown"));\r
        }\r
 \r
        private IItemManager itemManager = null;\r
@@ -79,7 +81,7 @@ public class StatisticsComposer extends SelectorComposer<Window> {
                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("Tag", action.getTag());\r
                data.put("Successful", action.isSuccessful());\r
                data.put("UserName", action.getUserName());\r
                addPoint(series, x, y, data.toString(), color);\r