Salad
authorelgekko <vasary@elgekko.net>
Thu, 19 Jan 2023 08:10:59 +0000 (09:10 +0100)
committerelgekko <vasary@elgekko.net>
Thu, 19 Jan 2023 08:10:59 +0000 (09:10 +0100)
44 files changed:
server/-configuration/run-mediacube-server-hirtv.launch
server/-configuration/run-mediacube-server-local.launch
server/-dependencies/jobengine.target
server/-dependencies/pom.xml
server/-product/mediacube.product
server/-product/production/HIRTV/jobs/schedules.json
server/-product/production/HIRTV/settings/mediacube.yaml
server/hu.user.mediacube.executors.tests/src/hu/user/mediacube/executors/tests/SmallTests.java
server/user.commons.zk/.classpath
server/user.commons.zk/META-INF/MANIFEST.MF
server/user.commons.zk/build.properties
server/user.commons.zk/lib/userdark-8.0.3.jar [deleted file]
server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveRecursive.java
server/user.jobengine.executors/src/user/jobengine/server/steps/DirMXFValidatorStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/EscortFileUpdaterStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/FileValidatorStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/MVCancelableStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/SafeDeleteRecursiveStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/shared/FFMpeg.java
server/user.jobengine.executors/src/user/jobengine/server/steps/shared/OctopusDataMiner.java
server/user.jobengine.osgi.commons/META-INF/MANIFEST.MF
server/user.jobengine.osgi.commons/src/user/commons/mediaarea/MediaArea.java
server/user.jobengine.osgi.commons/src/user/commons/mediatool/MediaInfo.java [deleted file]
server/user.jobengine.osgi.db/src/user/jobengine/db/IItemManager.java
server/user.jobengine.osgi.db/src/user/jobengine/db/ItemManager.java
server/user.jobengine.osgi.db/src/user/jobengine/search/MediaFinder.java
server/user.jobengine.osgi.server/src/user/jobengine/server/ast/JSONEncoder.java
server/user.jobengine.osgi.server/test/user/jobengine/server/IT/Support.java
server/user.jobengine.osgi.services/META-INF/MANIFEST.MF
server/user.jobengine.osgi.services/build-services-module.launch
server/user.jobengine.osgi.services/src/user/jobengine/osgi/mediacube/MediaCubeService.java
server/user.mediacube.gui/META-INF/MANIFEST.MF
server/user.mediacube.gui/WEB-INF/zk.xml
server/user.mediacube.gui/css/tabulator.css
server/user.mediacube.gui/css/tagify.css
server/user.mediacube.gui/pages/menu.zul
server/user.mediacube.gui/pages/searchitems.zul
server/user.mediacube.gui/pages/searchitems/details.zul
server/user.mediacube.gui/pages/searchitems/filters.zul
server/user.mediacube.gui/pages/searchitems/tabulatorresults.zul
server/user.mediacube.gui/src/user/jobengine/zk/model/GridSearchModel.java
server/user.mediacube.gui/src/user/jobengine/zk/model/MediaCubeConfig.java
server/user.mediacube.gui/src/user/jobengine/zk/model/MenuModel.java
server/user.mediacube.gui/src/user/jobengine/zk/util/AuthInitiator.java

index 17c87c6d385767cfd93fd0fb33d4c9362f3f07cd..05730822fa32b05b03a6ab86d6b3b77e7f1b4209 100644 (file)
@@ -38,6 +38,7 @@
         <setEntry value="com.microsoft.sqlserver.sqljdbc@default:default"/>\r
         <setEntry value="com.sun.jna@default:default"/>\r
         <setEntry value="groovy@default:default"/>\r
+        <setEntry value="hu.user.zk.theme.userdark@default:default"/>\r
         <setEntry value="io.humble.video-arch-x86_64-pc-linux-gnu6@default:default"/>\r
         <setEntry value="io.humble.video-arch-x86_64-w64-mingw32@default:default"/>\r
         <setEntry value="io.humble.video-noarch@default:default"/>\r
index 492823008be518cf42c99e40cdc006cae52be1fc..7e57147d4c9ad08e80ef4a82f554f02fd1764983 100644 (file)
@@ -49,6 +49,7 @@
         <setEntry value="com.sun.jna.platform@default:default"/>\r
         <setEntry value="com.sun.jna@default:default"/>\r
         <setEntry value="groovy@default:default"/>\r
+        <setEntry value="hu.user.zk.theme.userdark@default:default"/>\r
         <setEntry value="io.humble.video-arch-x86_64-pc-linux-gnu6@default:default"/>\r
         <setEntry value="io.humble.video-arch-x86_64-w64-mingw32@default:default"/>\r
         <setEntry value="io.humble.video-noarch@default:default"/>\r
index 1802f6f9a152725dde857f17e8155baf1f05f858..46a32c903c80284bfa425d9c29f4148d24dd62e6 100644 (file)
@@ -19,9 +19,6 @@
 <plugin id="com.microsoft.sqlserver.sqljdbc"/>\r
 <plugin id="com.sun.jna"/>\r
 <plugin id="groovy"/>\r
-<plugin id="io.humble.video-arch-x86_64-pc-linux-gnu6"/>\r
-<plugin id="io.humble.video-arch-x86_64-w64-mingw32"/>\r
-<plugin id="io.humble.video-noarch"/>\r
 <plugin id="javax.annotation-api"/>\r
 <plugin id="javax.mail"/>\r
 <plugin id="javax.servlet-api"/>\r
@@ -89,6 +86,7 @@
        <plugin id="org.objectweb.asm.tree"/>\r
        <plugin id="org.objectweb.asm.commons"/>\r
        <plugin id="com.sun.jna.platform"/>\r
+       <plugin id="hu.user.zk.theme.userdark"/>\r
 </includeBundles>\r
 <environment>\r
        <os>win32</os>\r
index 5fe2be4474b729983a550da5766af3db692be3b3..40e0e60f71dd9951eb96d5d6a4de8df281dddcb6 100644 (file)
                                                        <packaging>jar</packaging>\r
                                                </configuration>\r
                                        </execution>\r
+                                       <execution>\r
+                                               <id>install3</id>\r
+                                               <phase>package</phase>\r
+                                               <goals>\r
+                                                       <goal>install-file</goal>\r
+                                               </goals>\r
+                                               <configuration>\r
+                                                       <file>libs/userdark-1.0.0.jar</file>\r
+                                                       <groupId>hu.user.zk.theme</groupId>\r
+                                                       <artifactId>userdark</artifactId>\r
+                                                       <version>1.0.0</version>\r
+                                                       <packaging>jar</packaging>\r
+                                               </configuration>\r
+                                       </execution>\r
                                </executions>\r
                        </plugin>\r
                        <plugin>\r
@@ -77,6 +91,9 @@
                                                <id>default-cli</id>\r
                                                <configuration>\r
                                                        <artifacts>\r
+                                                               <artifact>\r
+                                                                       <id>hu.user.zk.theme:userdark:1.0.0</id>\r
+                                                               </artifact>\r
                                                                <artifact>\r
                                                                        <id>org.apache.felix:org.apache.felix.gogo.command:0.12.0</id>\r
                                                                </artifact>\r
                                                                <artifact>\r
                                                                        <id>org.apache.felix:org.apache.felix.gogo.runtime:0.12.0</id>\r
                                                                </artifact>\r
-<!--                                                           <artifact> -->\r
-<!--                                                                   <id>org.apache.felix:org.apache.felix.gogo.command:0.10.0.v201209301215</id> -->\r
-<!--                                                           </artifact> -->\r
-<!--                                                           <artifact> -->\r
-<!--                                                                   <id>org.apache.felix:org.apache.felix.gogo.shell:0.10.0</id> -->\r
-<!--                                                           </artifact> -->\r
-<!--                                                           <artifact> -->\r
-<!--                                                                   <id>org.apache.felix:org.apache.felix.gogo.runtime:0.10.0</id> -->\r
-<!--                                                           </artifact> -->\r
                                                                <artifact>\r
                                                                        <id>org.eclipse.platform:org.eclipse.equinox.launcher:1.3.201</id>\r
                                                                </artifact>\r
                                                                <artifact>\r
                                                                        <id>net.java.dev.jna:jna-platform:5.8.0</id>\r
                                                                </artifact>\r
+<!-- \r
                                                                <artifact>\r
                                                                        <id>io.humble:humble-video-all:0.2.1</id>\r
                                                                </artifact>\r
                                                                <artifact>\r
                                                                        <id>io.humble:humble-video-arch-x86_64-w64-mingw32:0.2.1</id>\r
                                                                </artifact>\r
+-->\r
                                                                <artifact>\r
                                                                        <id>org.ow2.asm:asm:5.0.1</id>\r
                                                                </artifact>\r
index dc22eee7280d6b9825748fad179769442d0e9116..9f64903838584d6be29ffb3de821797268c8bc4e 100644 (file)
@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <?pde version="3.5"?>\r
-<!DOCTYPE xml>\r
 \r
 <product name="MediaCube" uid="MediaCube" version="1.0.0" useFeatures="false" includeLaunchers="false">\r
 \r
@@ -39,6 +38,7 @@
       <plugin id="com.sun.jna"/>\r
       <plugin id="com.sun.jna.platform"/>\r
       <plugin id="groovy"/>\r
+      <plugin id="hu.user.zk.theme.userdark"/>\r
       <plugin id="io.humble.video-arch-x86_64-pc-linux-gnu6"/>\r
       <plugin id="io.humble.video-arch-x86_64-w64-mingw32"/>\r
       <plugin id="io.humble.video-noarch"/>\r
index 48954e2a7e2aefac2572fbaa36d497dfd6d439d2..1697c76c1649ecb5665d4cdf9d5f75929f68cbf9 100644 (file)
@@ -1,5 +1,8 @@
 {\r
        "joblist": [\r
+               {\r
+                       "template": "backup-file.xml"\r
+               },\r
                {\r
                        "active": false,\r
                        "cronexpression": "0/2 * * * * ?",\r
index 356014aae782fbf89e4c078354b5ee8f8c55368c..8b36bf99f4092d2e8343a1077b29a2508f8cc399 100644 (file)
@@ -1,3 +1,4 @@
+theme: userdark\r
 jobQueuePollInterval: 1000\r
 disableHelp: true\r
 maestroDisabled: false\r
@@ -24,8 +25,8 @@ bottomTypeFilters:
 - name: Reklám nyers\r
 authentication:\r
   authEnabled: true\r
-#  defaultUser: root\r
-#  defaultPassword: password\r
+  defaultUser: root\r
+  defaultPassword: password\r
   adHost: 10.10.254.11\r
   adNonSecurePort: 3268\r
   adBaseDn: DC=intra,DC=echotv,DC=hu\r
index 70089a5c54b2cdde2614b04ea16f439b9e423ad6..c1c3a5ff820d57a6f82b3411e42220caf23a6e73 100644 (file)
@@ -1223,16 +1223,6 @@ public class SmallTests {
                System.out.println(formatatted + " " + formatatted.length());\r
        }\r
 \r
-       @Test\r
-       public void test99996() throws Exception {\r
-               System.out.println(System.getProperty("user.home"));\r
-               System.setProperty("java.library.path", "/users/elgekko");\r
-               Path filePath = Paths.get("/opt/AMC/2021/ISSUES/#203/IFL000000071_43.mxf");\r
-               user.commons.mediatool.MediaInfo mi = new user.commons.mediatool.MediaInfo(filePath);\r
-               mi.process();\r
-               System.out.println(String.format("%s %d %s", mi.getCodecProfileName(), mi.getHeight(), mi.getDisplayAspect()));\r
-       }\r
-\r
        @Test\r
        public void test99997() throws Exception {\r
 \r
index 50934149e8fabdfd37a4f872b5c322f0952dc204..9c8687fbe7cce7c9b51362e40305924447c2c8c8 100644 (file)
@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <classpath>\r
-       <classpathentry exported="true" kind="lib" path="lib/userdark-8.0.3.jar"/>\r
        <classpathentry exported="true" kind="lib" path="lib/datahandler-syntax-highlight-1.0.0.jar"/>\r
        <classpathentry exported="true" kind="lib" path="lib/commons-codec-1.10.jar"/>\r
        <classpathentry exported="true" kind="lib" path="lib/commons-fileupload-1.2.1.jar"/>\r
index 32f6ee7a2d520edfb12d14e9836a507c549c7f11..18905611c5a2979f0307f0b33b26a64c2205a9a7 100644 (file)
@@ -47,8 +47,7 @@ Bundle-ClassPath: .,
  lib/zul.jar,
  lib/zuti.jar,
  lib/zweb.jar,
- lib/datahandler-syntax-highlight-1.0.0.jar,
- lib/userdark-8.0.3.jar
+ lib/datahandler-syntax-highlight-1.0.0.jar
 Export-Package: bsh,
  bsh.classpath,
  bsh.collection,
@@ -375,7 +374,6 @@ Export-Package: bsh,
  org.zkoss.theme.___THEME_NAME___,
  org.zkoss.theme.sapphire,
  org.zkoss.theme.silvertail,
- org.zkoss.theme.userdark,
  org.zkoss.util,
  org.zkoss.util.logging,
  org.zkoss.util.media,
@@ -830,5 +828,6 @@ Export-Package: bsh,
  web.zul.img.wnd,
  web.zul.less,
  web.zul.less.font
-Require-Bundle: javax.servlet-api;bundle-version="3.1.0"
+Require-Bundle: javax.servlet-api;bundle-version="3.1.0",
+ hu.user.zk.theme.userdark;bundle-version="1.0.0"
 Import-Package: org.slf4j;version="1.7.2"
index 7796f6998072023a7bb362fd4f9dd9578a3abb46..4faffaf1cd7440c604b9ffc7a46c01589389a40c 100644 (file)
@@ -43,5 +43,4 @@ bin.includes = META-INF/,\
                lib/zul.jar,\\r
                lib/zuti.jar,\\r
                lib/zweb.jar,\\r
-               lib/datahandler-syntax-highlight-1.0.0.jar,\\r
-               lib/userdark-8.0.3.jar\r
+               lib/datahandler-syntax-highlight-1.0.0.jar\r
diff --git a/server/user.commons.zk/lib/userdark-8.0.3.jar b/server/user.commons.zk/lib/userdark-8.0.3.jar
deleted file mode 100644 (file)
index 0e1464b..0000000
Binary files a/server/user.commons.zk/lib/userdark-8.0.3.jar and /dev/null differ
index 119f941e546b99f454dc524a75efd23d20981c18..0acb47ece68e7f2e1423919769571297ca6b3fad 100644 (file)
@@ -24,7 +24,7 @@ import com.ibm.nosql.json.api.BasicDBObject;
 \r
 import user.commons.JobStatus;\r
 import user.commons.ListUtils;\r
-import user.commons.mediatool.MediaInfo;\r
+import user.commons.mediaarea.MediaArea;\r
 import user.jobengine.server.IJobEngine;\r
 import user.jobengine.server.IJobRuntime;\r
 import user.jobengine.server.steps.shared.EscortFiles;\r
@@ -52,7 +52,7 @@ public class ArchiveRecursive extends JobStep implements FileVisitor<Path> {
        private boolean canReadMediaInfo(Path mediaFilePath) {\r
                boolean result = false;\r
                try {\r
-                       MediaInfo mi = new MediaInfo(mediaFilePath);\r
+                       MediaArea mi = new MediaArea(mediaFilePath);\r
                        mi.process();\r
                        result = true;\r
                } catch (Exception e) {\r
index f26d679b9b79d7f213ea7eb39e8059be3e30357d..9da89e33314554ddf85384caa1d396ba49458361 100644 (file)
@@ -8,7 +8,7 @@ import java.nio.file.Paths;
 import org.apache.logging.log4j.LogManager;\r
 import org.apache.logging.log4j.Logger;\r
 \r
-import user.commons.mediatool.MediaInfo;\r
+import user.commons.mediaarea.MediaArea;\r
 import user.jobengine.db.Media;\r
 \r
 public class DirMXFValidatorStep extends JobStep {\r
@@ -43,17 +43,17 @@ public class DirMXFValidatorStep extends JobStep {
                        } else\r
                                frames = media.getLength();\r
 \r
-                       MediaInfo mi = null;\r
+                       MediaArea mi = null;\r
 \r
                        try {\r
-                               mi = new MediaInfo(file);\r
+                               mi = new MediaArea(file);\r
                                mi.process();\r
                        } catch (Exception e) {\r
                                logger.error(getSessionMarker(), e.getMessage());\r
                                logger.error("Unreadable: {}", fileName);\r
                        }\r
 \r
-                       logger.info("Valid: {}  MC farmes {}  FF frames {}", fileName, frames, mi.getFrames());\r
+                       logger.info("Valid: {}  MC farmes {}  FF frames {}", fileName, frames, mi.getFrameCount());\r
                }\r
 \r
                return null;\r
index b180292943cd28e5c43efdc8e4aac58f1a6d54ed..f6eb9c58dcb299ba7df39ca9e255998ea5295caa 100644 (file)
@@ -10,7 +10,7 @@ import org.apache.logging.log4j.Logger;
 \r
 import user.commons.DownloadableMedia;\r
 import user.commons.StoreUri;\r
-import user.commons.mediatool.MediaInfo;\r
+import user.commons.mediaarea.MediaArea;\r
 import user.commons.remotestore.RemoteStoreProtocol;\r
 import user.jobengine.server.steps.shared.EscortFiles;\r
 \r
@@ -40,15 +40,14 @@ public class EscortFileUpdaterStep extends JobStep {
        }\r
 \r
        private void storeCurrentFrames(Path filePath, DownloadableMedia downloadable, Path escortFilePath) {\r
-               MediaInfo mi = null;\r
+               MediaArea mi = null;\r
                try {\r
-                       mi = new MediaInfo(filePath);\r
+                       mi = new MediaArea(filePath);\r
                        mi.process();\r
-                       long frames = mi.getFrames();\r
+                       long frames = mi.getFrameCount();\r
                        downloadable.put("frames", frames);\r
                        Files.write(escortFilePath, downloadable.toPrettyString("").getBytes());\r
-                       logger.info(getMarker(), "{} length {} is saved to escort file", filePath, frames,\r
-                                       escortFilePath.getFileName().toString());\r
+                       logger.info(getMarker(), "{} length {} is saved to escort file", filePath, frames, escortFilePath.getFileName().toString());\r
                } catch (Exception e) {\r
                        logger.error(getSessionMarker(), e.getMessage());\r
                }\r
index 62fa66ea50dcb146e8b08c9d7a903aae14aea044..2e021ea5ef63551a9dad9bf59b41d18d256693bd 100644 (file)
@@ -12,7 +12,7 @@ import org.apache.logging.log4j.message.ParameterizedMessage;
 \r
 import user.commons.DownloadableMedia;\r
 import user.commons.StoreUri;\r
-import user.commons.mediatool.MediaInfo;\r
+import user.commons.mediaarea.MediaArea;\r
 import user.commons.remotestore.RemoteStoreProtocol;\r
 import user.jobengine.db.Media;\r
 import user.jobengine.server.steps.shared.EscortFiles;\r
@@ -22,8 +22,8 @@ public class FileValidatorStep extends JobStep {
        private static final Logger logger = LogManager.getLogger();\r
 \r
        @StepEntry\r
-       public Object[] execute(StoreUri sourceStoreUri, String fileName, long expectedFrameNumber, long expectedSize,\r
-                       String exceptedColorSpace, String escortFile) throws Exception {\r
+       public Object[] execute(StoreUri sourceStoreUri, String fileName, long expectedFrameNumber, long expectedSize, String exceptedColorSpace, String escortFile)\r
+                       throws Exception {\r
                if (!RemoteStoreProtocol.LOCAL.equals(sourceStoreUri.getProtocol()))\r
                        throw new Exception("Store URI protocol must be local.");\r
                Path filePath = Paths.get(sourceStoreUri.toString(true), fileName);\r
@@ -39,8 +39,7 @@ public class FileValidatorStep extends JobStep {
                        // EscortFiles.remove(escortFilePath);\r
                        EscortFiles.remove(Paths.get(escortFile + EscortFiles.DOT_CATCHED));\r
 \r
-                       Message msg = new ParameterizedMessage("A {} fájl visszatöltése kezelői beavatkozás miatt megszakadt.",\r
-                                       fileName);\r
+                       Message msg = new ParameterizedMessage("A {} fájl visszatöltése kezelői beavatkozás miatt megszakadt.", fileName);\r
                        EscortFiles.notifyRecipient(escortFilePath, logger, msg);\r
 \r
                        cancel();\r
@@ -57,8 +56,7 @@ public class FileValidatorStep extends JobStep {
                if (downloadable != null && expectedFrameNumber == 0)\r
                        storeCurrentFrames(filePath, downloadable);\r
 \r
-               if (downloadable != null && downloadable.containsKey("skipValidation")\r
-                               && downloadable.getBoolean("skipValidation")) {\r
+               if (downloadable != null && downloadable.containsKey("skipValidation") && downloadable.getBoolean("skipValidation")) {\r
                        logger.info(getMarker(), "Validation skipped for {}", fileName);\r
                        return null;\r
                }\r
@@ -82,11 +80,11 @@ public class FileValidatorStep extends JobStep {
        }\r
 \r
        private void storeCurrentFrames(Path filePath, DownloadableMedia downloadable) {\r
-               MediaInfo mi = null;\r
+               MediaArea mi = null;\r
                try {\r
-                       mi = new MediaInfo(filePath);\r
+                       mi = new MediaArea(filePath);\r
                        mi.process();\r
-                       long frames = mi.getFrames();\r
+                       long frames = mi.getFrameCount();\r
 \r
                        if (downloadable.containsKey("mediaId")) {\r
                                Media media = getManager().getMedia(downloadable.getLong("mediaId"));\r
@@ -102,22 +100,19 @@ public class FileValidatorStep extends JobStep {
                }\r
        }\r
 \r
-       private void validateMedia(Path filePath, long expectedFrameNumber, String exceptedColorSpace, String escortFile)\r
-                       throws Exception {\r
-               MediaInfo mi = null;\r
+       private void validateMedia(Path filePath, long expectedFrameNumber, String exceptedColorSpace, String escortFile) throws Exception {\r
+               MediaArea mi = null;\r
                try {\r
-                       mi = new MediaInfo(filePath);\r
+                       mi = new MediaArea(filePath);\r
                        mi.process();\r
 \r
                        if (expectedFrameNumber > 0) {\r
-                               long frames = mi.getFrames();\r
+                               long frames = mi.getFrameCount();\r
                                if (Math.abs(frames - expectedFrameNumber) > 3) {\r
-                                       Message msg = new ParameterizedMessage("Validációs hiba miatt a {} fájl másolása nem lehetséges.",\r
-                                                       filePath.getFileName());\r
+                                       Message msg = new ParameterizedMessage("Validációs hiba miatt a {} fájl másolása nem lehetséges.", filePath.getFileName());\r
                                        EscortFiles.notifyRecipient(Paths.get(escortFile), logger, msg);\r
                                        getJobRuntime().setDisableRetry(true);\r
-                                       throw new Exception("Length mismatch in " + filePath + ". Expected: " + expectedFrameNumber\r
-                                                       + ", found: " + frames);\r
+                                       throw new Exception("Length mismatch in " + filePath + ". Expected: " + expectedFrameNumber + ", found: " + frames);\r
                                }\r
                        }\r
 \r
index 45e57c5d7cdd67fb88c6a64699c0db7ad0077907..0f20859919e3ee3d347ca9663860f0fc9d9365bb 100644 (file)
@@ -11,7 +11,7 @@ import org.apache.logging.log4j.MarkerManager;
 \r
 import user.commons.RemoteFile;\r
 import user.commons.StoreUri;\r
-import user.commons.mediatool.MediaInfo;\r
+import user.commons.mediaarea.MediaArea;\r
 import user.commons.remotestore.FtpDirectoryLister;\r
 import user.commons.remotestore.IProgressEventListener;\r
 import user.commons.remotestore.IStatusEventListener;\r
@@ -26,9 +26,9 @@ public class MVCancelableStep extends JobStep {
        @StepEntry\r
        public Object[] execute(int z) throws Exception {\r
                try {\r
-                       //                      retrieveTest();\r
-                       //                      ftpTest();\r
-                       //((MediaCubeMarker) getJobRuntime().getFinishMarker()).setTo("hering.tamas70@gmail.com");\r
+                       // retrieveTest();\r
+                       // ftpTest();\r
+                       // ((MediaCubeMarker) getJobRuntime().getFinishMarker()).setTo("hering.tamas70@gmail.com");\r
 \r
                        for (int i = 0; i < count; i++) {\r
                                if (getJobRuntime().isWaitingCancel())\r
@@ -92,7 +92,7 @@ public class MVCancelableStep extends JobStep {
                                sourceUri.addProgressListener(new IProgressEventListener() {\r
                                        @Override\r
                                        public void progressChanged(ProgressEvent evt) {\r
-                                               //logger.info(evt.getProgress());\r
+                                               // logger.info(evt.getProgress());\r
                                        }\r
                                });\r
                                sourceUri.addStatusListener(new IStatusEventListener() {\r
@@ -104,9 +104,9 @@ public class MVCancelableStep extends JobStep {
                                fn = fileName.substring(9);\r
                                RemoteFile result = sourceUri.transferFrom(targetUri, fileName, fn);\r
 \r
-                               MediaInfo mi = new MediaInfo(Paths.get(targetUri.toString(true), fn));\r
+                               MediaArea mi = new MediaArea(Paths.get(targetUri.toString(true), fn));\r
                                mi.process();\r
-                               logger.info(MarkerManager.getMarker("MOVTEST"), "Az {} állomány viszatöltve, hossz {}, audio {}", fn, mi.getFrames(), mi.getAudioStreams());\r
+                               logger.info(MarkerManager.getMarker("MOVTEST"), "Az {} állomány viszatöltve, hossz {}, audio {}", fn, mi.getFrameCount(), mi.getAudioCount());\r
                        }\r
                } catch (Exception e) {\r
                        logger.info(MarkerManager.getMarker("MOVTEST"), "Az {} állomány viszatöltése sikertelen. {}", fn, e.getMessage());\r
index 596a05a6fe6a7e63f5f5ed946e4f4dfc249bf39f..d4556521dd602e86ae58d99df919a15a0bcd8d09 100644 (file)
@@ -30,7 +30,7 @@ import com.ibm.nosql.json.api.BasicDBObject;
 import user.commons.IEntityBase;\r
 import user.commons.RemoteFile;\r
 import user.commons.StoreUri;\r
-import user.commons.mediatool.MediaInfo;\r
+import user.commons.mediaarea.MediaArea;\r
 import user.commons.remotestore.RemoteStoreProtocol;\r
 import user.jobengine.db.Item;\r
 import user.jobengine.db.Media;\r
@@ -257,7 +257,7 @@ public class SafeDeleteRecursiveStep extends JobStep implements FileVisitor<Path
        private boolean canReadMediaInfo(Path mediaFilePath) {\r
                boolean result = false;\r
                try {\r
-                       MediaInfo mi = new MediaInfo(mediaFilePath);\r
+                       MediaArea mi = new MediaArea(mediaFilePath);\r
                        mi.process();\r
                        result = true;\r
                } catch (Exception e) {\r
index b1f2855d669e825542d9e61b04f5bf2913fe2cf8..e4c433bde83beb3ef621ecdfb3ad75b9afe60b45 100644 (file)
@@ -10,7 +10,7 @@ import org.apache.commons.lang.StringUtils;
 import org.apache.logging.log4j.LogManager;\r
 import org.apache.logging.log4j.Logger;\r
 \r
-import user.commons.mediatool.MediaInfo;\r
+import user.commons.mediaarea.MediaArea;\r
 \r
 public class FFMpeg {\r
 \r
@@ -74,9 +74,9 @@ public class FFMpeg {
         long[] allFrames = new long[]{0};\r
 \r
         try {\r
-               MediaInfo mi = new MediaInfo(Paths.get(input));\r
+               MediaArea mi = new MediaArea(Paths.get(input));\r
                mi.process();\r
-               allFrames[0] = mi.getFrames();\r
+               allFrames[0] = mi.getFrameCount();\r
         } catch (Exception e ){\r
                System.err.println(e);\r
 \r
@@ -161,9 +161,9 @@ public class FFMpeg {
         long[] allFrames = new long[]{0};\r
 \r
         try {\r
-               MediaInfo mi = new MediaInfo(Paths.get(input));\r
+               MediaArea mi = new MediaArea(Paths.get(input));\r
                mi.process();\r
-               allFrames[0] = mi.getFrames();\r
+               allFrames[0] = mi.getFrameCount();\r
         } catch (Exception e ){\r
                System.err.println(e);\r
 \r
index a49e4e7f81efa354d1a12c131139e135ccf158df..368fff6918acfc8d1dc6b7402117e210b667a629 100644 (file)
@@ -454,8 +454,9 @@ public class OctopusDataMiner {
 \r
                if (result.containsKey("exception")) {\r
                        BasicDBObject e = (BasicDBObject) result.get("exception");\r
-                       throw new RuntimeException(e.getString("message"));\r
-\r
+                       // throw new RuntimeException(e.getString("message"));\r
+                       logger.error("Query error: {}", e.getString("message"));\r
+                       return null;\r
                }\r
                return result;\r
        }\r
index b33352c6e0061e2a9310dd33336ee4cc168b4b88..6640ed5c6afd3f7d578a23f501e8c9835ba01bb4 100644 (file)
@@ -12,8 +12,6 @@ Import-Package: com.fasterxml.jackson.annotation;version="2.4.5",
  com.fasterxml.jackson.datatype.joda;version="2.4.5",
  com.fasterxml.jackson.jaxrs.json;version="2.4.5",
  com.sun.jna,
- io.humble.video,
- io.humble.video.awt,
  junit.framework,
  org.apache.logging.log4j,
  org.apache.logging.log4j.message,
index ee6cb3cdd12836e3aef7cab7ffc3f2b81e974d56..d04f0f02d40830089449f7574b8ade8a2f2fd46b 100644 (file)
@@ -17,6 +17,8 @@ public class MediaArea {
        private double frameRate;\r
        private String format = "";\r
        private BasicDBObject inform = null;\r
+       private String colorSpace;\r
+       private int audioCount;\r
 \r
        public MediaArea(Path filePath) {\r
                this.filePath = filePath;\r
@@ -72,10 +74,11 @@ public class MediaArea {
                        width = Integer.parseInt(mi.get(StreamKind.Video, 0, "Width"));\r
                        displayAspect = mi.get(StreamKind.Video, 0, "DisplayAspectRatio/String");\r
                        formatProfile = mi.get(StreamKind.Video, 0, "Format_Profile").toUpperCase();\r
+                       colorSpace = mi.get(StreamKind.Video, 0, "ColorSpace").toUpperCase();\r
                        format = mi.get(StreamKind.Video, 0, "Format").toUpperCase();\r
                        frameRate = Double.parseDouble(mi.get(StreamKind.Video, 0, "FrameRate"));\r
                        frameCount = Integer.parseInt(mi.get(StreamKind.Video, 0, "FrameCount"));\r
-\r
+                       audioCount = Integer.parseInt(mi.get(StreamKind.General, 0, "AudioCount"));\r
                        inform = new BasicDBObject();\r
 \r
                        getInform().put("fileName", filePath.getFileName().toString());\r
@@ -89,8 +92,7 @@ public class MediaArea {
 \r
                        Map<String, MediaMetadata> data = InformParser.parse(mi.inform());\r
                        for (MediaMetadata md : data.values()) {\r
-                               getInform().append(md.getType(),\r
-                                               new BasicDBObject(Collections.<String, Object>unmodifiableMap(md.getMetaData())));\r
+                               getInform().append(md.getType(), new BasicDBObject(Collections.<String, Object>unmodifiableMap(md.getMetaData())));\r
                        }\r
                } catch (Exception ex) {\r
                        throw new Exception(ex);\r
@@ -100,4 +102,12 @@ public class MediaArea {
        public BasicDBObject getInform() {\r
                return inform;\r
        }\r
+\r
+       public String getColorSpace() {\r
+               return colorSpace;\r
+       }\r
+\r
+       public int getAudioCount() {\r
+               return audioCount;\r
+       }\r
 }\r
diff --git a/server/user.jobengine.osgi.commons/src/user/commons/mediatool/MediaInfo.java b/server/user.jobengine.osgi.commons/src/user/commons/mediatool/MediaInfo.java
deleted file mode 100644 (file)
index 071a6e9..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-package user.commons.mediatool;\r
-\r
-import java.io.IOException;\r
-import java.nio.file.Path;\r
-\r
-import org.apache.logging.log4j.LogManager;\r
-import org.apache.logging.log4j.Logger;\r
-\r
-import io.humble.video.Codec;\r
-import io.humble.video.CodecProfile;\r
-import io.humble.video.Decoder;\r
-import io.humble.video.Demuxer;\r
-import io.humble.video.DemuxerStream;\r
-import io.humble.video.MediaDescriptor;\r
-import io.humble.video.Rational;\r
-\r
-public class MediaInfo {\r
-       private static final Logger logger = LogManager.getLogger();\r
-       private long frames;\r
-       private Path filePath;\r
-       private int bitRate;\r
-       private String colorSpace;\r
-       private int audioStreams;\r
-       private int videoStreams;\r
-       private int height;\r
-       private int width;\r
-       private String codecProfileName;\r
-       private String displayAspect;\r
-\r
-       public MediaInfo(Path filePath) {\r
-               this.filePath = filePath;\r
-       }\r
-\r
-       public int getAudioStreams() {\r
-               return audioStreams;\r
-       }\r
-\r
-       public int getBitRate() {\r
-               return bitRate;\r
-       }\r
-\r
-       /***\r
-        * Uppercase codec profile name\r
-        *\r
-        * @return Name or empty String, never NULL\r
-        */\r
-       public String getCodecProfileName() {\r
-               return codecProfileName;\r
-       }\r
-\r
-       public String getColorSpace() {\r
-               return colorSpace;\r
-       }\r
-\r
-       public String getDisplayAspect() {\r
-               return displayAspect;\r
-       }\r
-\r
-       public long getFrames() {\r
-               return frames;\r
-       }\r
-\r
-       public int getHeight() {\r
-               return height;\r
-       }\r
-\r
-       public int getVideoStreams() {\r
-               return videoStreams;\r
-       }\r
-\r
-       public int getWidth() {\r
-               return width;\r
-       }\r
-\r
-       public void process() throws InterruptedException, IOException {\r
-               Demuxer demuxer = null;\r
-               try {\r
-                       demuxer = Demuxer.make();\r
-                       demuxer.open(filePath.toString(), null, false, true, null, null);\r
-\r
-                       bitRate = demuxer.getBitRate();\r
-\r
-                       int numStreams = demuxer.getNumStreams();\r
-                       frames = 0;\r
-                       int videoStreamId = -1;\r
-                       for (int i = 0; i < numStreams; i++) {\r
-                               final DemuxerStream stream = demuxer.getStream(i);\r
-                               final Decoder decoder = stream.getDecoder();\r
-\r
-                               if (decoder != null) {\r
-                                       if (decoder.getCodecType() == MediaDescriptor.Type.MEDIA_VIDEO) {\r
-                                               videoStreams++;\r
-                                               videoStreamId = i;\r
-                                               frames = stream.getNumFrames();\r
-\r
-                                               if (frames == 0)\r
-                                                       frames = stream.getDuration();\r
-                                               colorSpace = decoder.getPixelFormat().toString();\r
-\r
-                                               height = decoder.getHeight();\r
-                                               width = decoder.getWidth();\r
-\r
-                                               codecProfileName = "";\r
-\r
-                                               Codec codec = decoder.getCodec();\r
-                                               CodecProfile profile = codec.getSupportedProfile(decoder.getPropertyAsInt("profile"));\r
-                                               if (profile != null && profile.getName() != null)\r
-                                                       codecProfileName = profile.getName().toUpperCase();\r
-\r
-                                               Rational sampleAspectRatio = stream.getSampleAspectRatio();\r
-                                               float dasp = (float) (sampleAspectRatio.getNumerator() * width) / (sampleAspectRatio.getDenominator() * height);\r
-                                               if (dasp == 4f / 3f)\r
-                                                       displayAspect = "4:3";\r
-\r
-                                               if (dasp == 16f / 9f)\r
-                                                       displayAspect = "16:9";\r
-\r
-                                       }\r
-                                       if (decoder.getCodecType() == MediaDescriptor.Type.MEDIA_AUDIO) {\r
-                                               audioStreams++;\r
-                                       }\r
-                               }\r
-                       }\r
-                       if (videoStreamId == -1)\r
-                               throw new RuntimeException("Could not find video stream in " + filePath);\r
-               } catch (UnsatisfiedLinkError e) {\r
-                       logger.catching(e);\r
-               } catch (Exception e) {\r
-                       logger.catching(e);\r
-                       throw e;\r
-               } finally {\r
-                       try {\r
-                               if (demuxer != null)\r
-                                       demuxer.close();\r
-                       } catch (Exception e) {\r
-                               logger.catching(e);\r
-                               throw e;\r
-                       }\r
-               }\r
-       }\r
-\r
-}\r
index d32e41eedd898ecc04037d9e32278744db809d6a..9ecb34e354ed432c44fd2028ee89c3e9605d952c 100644 (file)
@@ -465,4 +465,6 @@ public interface IItemManager extends IEntityPersister {
        void truncate(Class<? extends IEntityBase> classInfo);\r
 \r
        List<ArchivedMedia> getGroupChildren(ArchivedMedia master, String criteria);\r
+\r
+       BasicDBObject simpleSearch(BasicDBObject searchParameters);\r
 }
\ No newline at end of file
index 4ca0eb2a8b850bd2fb8747de67383f663edf46ed..dd7f285aa4c764c676ef29743205574cc6d6a438 100644 (file)
@@ -1492,4 +1492,10 @@ public class ItemManager extends MemoryCache implements IItemManager {
                }\r
        }\r
 \r
+       @Override\r
+       public BasicDBObject simpleSearch(BasicDBObject searchParameters) {\r
+               MediaFinder finder = new MediaFinder(this);\r
+               return finder.simpleSearch(searchParameters);\r
+       }\r
+\r
 }\r
index 6caa1006a076a3b4bef95f2a30efe4478318f6b5..39a465a7a79d60bfb1857816b4c43107443ec016 100644 (file)
@@ -12,6 +12,9 @@ import org.apache.ibatis.jdbc.SQL;
 import org.apache.logging.log4j.LogManager;\r
 import org.apache.logging.log4j.Logger;\r
 \r
+import com.ibm.nosql.json.api.BasicDBList;\r
+import com.ibm.nosql.json.api.BasicDBObject;\r
+\r
 import sqlj.runtime.ref.DefaultContext;\r
 import user.jobengine.db.ArchivedMedia;\r
 import user.jobengine.db.Item;\r
@@ -499,4 +502,76 @@ public class MediaFinder implements IMediaFinder {
                return resultList;\r
        }\r
 \r
+       public BasicDBObject simpleSearch(BasicDBObject searchParameters) {\r
+               BasicDBObject result = new BasicDBObject();\r
+               BasicDBList items = new BasicDBList();\r
+               result.put("data", items);\r
+\r
+               String criteria = searchParameters.getString("criteria");\r
+               String criteriasPattern = getCriteriasRegexPattern(criteria);\r
+               String textCriteria = formatSearchValue(criteria);\r
+\r
+               int paginationSize = searchParameters.getInt("size");\r
+               int page = searchParameters.getInt("page");\r
+               if (page == 1) {\r
+                       SQL sql = new SQL();\r
+                       sql.SELECT("COUNT(*) resultcount");\r
+                       sql.FROM("VW_ITEMS_WITH_PATH vi", "MEDIADESCRIPTION md");\r
+                       sql.WHERE("vi.mediafileid = md.mediafileid");\r
+                       if (textCriteria != null && textCriteria.trim().length() > 0) {\r
+                               sql.AND();\r
+                               sql.WHERE(String.format("CONTAINS(md.description, '%s') >= 1", textCriteria));\r
+                       }\r
+\r
+                       String query = sql.toString();\r
+                       manager.executeQuery(query, rs -> {\r
+                               int resultCount = rs.getInt("resultcount");\r
+                               int pageCount = (int) Math.floor(resultCount / paginationSize);\r
+                               logger.info("Result count {}, pagecount {}", resultCount, pageCount);\r
+                               result.put("last_page", pageCount);\r
+                               return false;\r
+                       }, st -> {\r
+\r
+                       });\r
+               }\r
+               SQL sql = new SQL();\r
+               String relevantField = String.format("HIGHLIGHT(md.description, '<span class=''rhl''>', '</span>', '%s') AS relevant", criteriasPattern);\r
+               sql.SELECT("vi.itemid", "vi.itemtitle", "vi.mediaid", "vi.mediatitle", "vi.mediacreation", "vi.medialength", "vi.mediaitemtypename", "vi.mediahouseid",\r
+                               "vi.mediarelativepath", relevantField);\r
+               sql.FROM("VW_ITEMS_WITH_PATH vi", "MEDIADESCRIPTION md");\r
+               sql.WHERE("vi.mediafileid = md.mediafileid");\r
+               if (textCriteria != null && textCriteria.trim().length() > 0) {\r
+                       sql.AND();\r
+                       sql.WHERE(String.format("CONTAINS(md.description, '%s') >= 1", textCriteria));\r
+               }\r
+               sql.LIMIT(paginationSize);\r
+               int offset = (page - 1) * paginationSize;\r
+               sql.OFFSET(offset);\r
+               sql.ORDER_BY("vi.mediacreation DESC");\r
+               String query = sql.toString();\r
+               logger.info(query);\r
+\r
+               result.put("last_row", offset);\r
+\r
+               manager.executeQuery(query, rs -> {\r
+                       BasicDBObject item = new BasicDBObject();\r
+                       item.put("itemId", rs.getString("itemid"));\r
+                       item.put("itemTitle", rs.getString("itemtitle"));\r
+                       item.put("mediaId", rs.getString("mediaid"));\r
+                       item.put("mediaTitle", rs.getString("mediatitle"));\r
+                       item.put("creation", rs.getString("mediacreation"));\r
+                       item.put("length", rs.getInt("medialength"));\r
+                       item.put("typeName", rs.getString("mediaitemtypename"));\r
+                       item.put("houseId", rs.getString("mediahouseid"));\r
+                       item.put("fileName", rs.getString("mediarelativepath"));\r
+                       item.put("relevant", rs.getString("relevant"));\r
+                       items.add(item);\r
+                       result.put("last_row", result.getInt("last_row") + 1);\r
+                       return true;\r
+               }, st -> {\r
+\r
+               });\r
+               return result;\r
+       }\r
+\r
 }\r
index 5e6549cfa34751019420d6e8ec02003cd20dc7c8..6fbbad7d7fc9107e3a453b3cbcf73430edb3aa9c 100644 (file)
@@ -15,18 +15,20 @@ public class JSONEncoder implements Visitor {
                BasicDBList outputs = null;\r
                // az inputs és az outputs elemei egyenként vannak hozzáadva, mert csak\r
                // String-gé konvertálva tudja a JS oldal feldolgozni (az addAll() nem működne)\r
-               List<Parameter> inputParameters = command.getInputParameterSequence().getParameters();\r
-               for (int i = 0; i < inputParameters.size(); i++) {\r
-                       BasicDBObject input = new BasicDBObject();\r
-                       Expression expression = ((InputParameter) inputParameters.get(i)).getExpression();\r
-                       input.append("name", expression.getName());\r
-\r
-                       if (expression instanceof ParameterExpression) {\r
-                               input.append("type", "param");\r
-                       } else {\r
-                               input.append("type", "variable");\r
+               if (command.getInputParameterSequence() != null) {\r
+                       List<Parameter> inputParameters = command.getInputParameterSequence().getParameters();\r
+                       for (int i = 0; i < inputParameters.size(); i++) {\r
+                               BasicDBObject input = new BasicDBObject();\r
+                               Expression expression = ((InputParameter) inputParameters.get(i)).getExpression();\r
+                               input.append("name", expression.getName());\r
+\r
+                               if (expression instanceof ParameterExpression) {\r
+                                       input.append("type", "param");\r
+                               } else {\r
+                                       input.append("type", "variable");\r
+                               }\r
+                               inputs.add(input);\r
                        }\r
-                       inputs.add(input);\r
                }\r
                if (command.getOutputParameterSequence() != null) {\r
                        outputs = new BasicDBList();\r
@@ -37,9 +39,8 @@ public class JSONEncoder implements Visitor {
                }\r
 \r
                newNode.append("name", command.getType().replace(".java", "")).append("y", 75).append("w", 100).append("h", 100)\r
-                               .append("connectors", "connectorsForStep").append("text", command.getType().replace(".java", ""))\r
-                               .append("fillStyle", "green").append("figure", "RectangleWithGradient").append("inputs", inputs)\r
-                               .append("weight", command.getWeight());\r
+                               .append("connectors", "connectorsForStep").append("text", command.getType().replace(".java", "")).append("fillStyle", "green")\r
+                               .append("figure", "RectangleWithGradient").append("inputs", inputs).append("weight", command.getWeight());\r
                if (outputs != null) {\r
                        newNode.append("outputs", outputs);\r
                }\r
@@ -48,8 +49,8 @@ public class JSONEncoder implements Visitor {
 \r
                BasicDBList links = (BasicDBList) dbo.get("links");\r
                BasicDBObject newLink = new BasicDBObject();\r
-               newLink.append("from", nodes.size()).append("to", nodes.size() + 1).append("anchorFrom", 0)\r
-                               .append("anchorTo", 1).append("text", "").append("mode", "straight");\r
+               newLink.append("from", nodes.size()).append("to", nodes.size() + 1).append("anchorFrom", 0).append("anchorTo", 1).append("text", "").append("mode",\r
+                               "straight");\r
                links.add(newLink);\r
                return null;\r
        }\r
index 4b4fdd2700b0550c726004095db392b991dca5e4..2456b80743f1bbc130e7d1c2bc5ac5ba682ae469 100644 (file)
@@ -43,7 +43,6 @@ import user.commons.CalendarUtils;
 import user.commons.IEntityBase;\r
 import user.commons.ListUtils;\r
 import user.commons.StoreUri;\r
-import user.commons.mediatool.MediaInfo;\r
 import user.commons.nosql.NoSQLUtils;\r
 import user.commons.octopus.IOctopusAPI;\r
 import user.commons.octopus.OctopusAPI;\r
@@ -75,19 +74,19 @@ public class Support {
 \r
        @BeforeClass\r
        static public void setUpConnection() {\r
-               //              //              System.setProperty("jobengine.octopus.rundowns.name", "test_rundowns");\r
-               //              //              System.setProperty("jobengine.octopus.stories.name", "test_stories");\r
-               //              //              System.setProperty("jobengine.octopus.storyfolders.name", "test_storyfolders");\r
-               //              System.setProperty("jobengine.octopus.rundowns.name", "rundowns180620");\r
-               //              System.setProperty("jobengine.octopus.stories.name", "stories180620");\r
-               //              System.setProperty("jobengine.octopus.storyfolders.name", "storyfolders180620");\r
+               // // System.setProperty("jobengine.octopus.rundowns.name", "test_rundowns");\r
+               // // System.setProperty("jobengine.octopus.stories.name", "test_stories");\r
+               // // System.setProperty("jobengine.octopus.storyfolders.name", "test_storyfolders");\r
+               // System.setProperty("jobengine.octopus.rundowns.name", "rundowns180620");\r
+               // System.setProperty("jobengine.octopus.stories.name", "stories180620");\r
+               // System.setProperty("jobengine.octopus.storyfolders.name", "storyfolders180620");\r
                //\r
-               //              System.setProperty("jobengine.nosql.db.url", "jdbc:db2://10.10.1.29:50000/mc:retrieveMessagesFromServerOnGetMessage=true;");\r
-               //              System.setProperty("jobengine.nosql.db.user", "db2admin");\r
-               //              System.setProperty("jobengine.nosql.db.password", "password");\r
-               //              System.setProperty(ItemManager.DBURL, "jdbc:db2://10.10.1.29:50000/mc:retrieveMessagesFromServerOnGetMessage=true;");\r
-               //              System.setProperty(ItemManager.DBUSERNAME, "db2admin");\r
-               //              System.setProperty(ItemManager.DBPASSWORD, "password");\r
+               // System.setProperty("jobengine.nosql.db.url", "jdbc:db2://10.10.1.29:50000/mc:retrieveMessagesFromServerOnGetMessage=true;");\r
+               // System.setProperty("jobengine.nosql.db.user", "db2admin");\r
+               // System.setProperty("jobengine.nosql.db.password", "password");\r
+               // System.setProperty(ItemManager.DBURL, "jdbc:db2://10.10.1.29:50000/mc:retrieveMessagesFromServerOnGetMessage=true;");\r
+               // System.setProperty(ItemManager.DBUSERNAME, "db2admin");\r
+               // System.setProperty(ItemManager.DBPASSWORD, "password");\r
 \r
                manager = new ItemManager();\r
                manager.connect();\r
@@ -141,7 +140,8 @@ public class Support {
 \r
        @Test\r
        public void generateMissingRecordingsList() throws Exception {\r
-               //              select itemtitle, mediafilehouseid from vw_items where itemtitle like '%Echo TV%' and itemtitle like '2%' and mediatitle like '%PGM%' order by itemtitle, mediafilehouseid\r
+               // select itemtitle, mediafilehouseid from vw_items where itemtitle like '%Echo TV%' and itemtitle like '2%' and mediatitle like '%PGM%' order by\r
+               // itemtitle, mediafilehouseid\r
                String[] hours = { "07:00", "08:00", "09:00", "10:00", "11:00", "12:00", "13:00", "14:00", "15:00", "16:00", "17:00", "18:00", "19:00", "20:00",\r
                                "22:00" };\r
 \r
@@ -152,7 +152,7 @@ public class Support {
                        for (String hour : hours) {\r
                                String key = String.format("%s %s", df.format(cal.getTime()), hour);\r
                                recordings.put(key, "");\r
-                               //                              System.out.println(key);\r
+                               // System.out.println(key);\r
                        }\r
                        cal.add(Calendar.DAY_OF_MONTH, 1);\r
                }\r
@@ -339,7 +339,8 @@ public class Support {
        public List<DBObject> getRundownsByPlaceHolderID(String id) {\r
                DB db = NoSQLUtils.getNoSQLDB();\r
                DBCollection collection = db.getCollection(IOctopusAPI.STORY_COLLECTION);\r
-               BasicDBObject criteria = new BasicDBObject(IOctopusAPI.MOS_OBJECTS, new BasicDBObject(IOctopusAPI.$ELEMMATCH, new BasicDBObject(IOctopusAPI.OBJ_ID, id)));\r
+               BasicDBObject criteria = new BasicDBObject(IOctopusAPI.MOS_OBJECTS,\r
+                               new BasicDBObject(IOctopusAPI.$ELEMMATCH, new BasicDBObject(IOctopusAPI.OBJ_ID, id)));\r
                DBCursor find = collection.find(criteria, new BasicDBObject(IOctopusAPI.REF_RUNDOWN, 1));\r
                List<DBObject> rundowns = NoSQLUtils.asList(find);\r
                db.cancelBatch();\r
@@ -361,8 +362,8 @@ public class Support {
        @Test\r
        public void processRecordingsSummertime() throws Exception {\r
 \r
-               //              Item item1 = manager.createItem("Generic", "2018.03.25 19:00 xxx", "", "56607293");\r
-               //              manager.merge(item1);\r
+               // Item item1 = manager.createItem("Generic", "2018.03.25 19:00 xxx", "", "56607293");\r
+               // manager.merge(item1);\r
 \r
                SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd-HHmm");\r
                OctopusAPI octopusAPI = new OctopusAPI();\r
@@ -377,7 +378,7 @@ public class Support {
                                String x1 = rs.getString("x1");\r
                                String x2 = rs.getString("x2");\r
                                String time = mediaFileHouseID.substring(9, 13);\r
-                               //Date scheduleDate = df.parse(mediaFileHouseID.substring(0, 13));\r
+                               // Date scheduleDate = df.parse(mediaFileHouseID.substring(0, 13));\r
                                Date scheduleDate = df.parse("20180308-1900");\r
 \r
                                RundownArchive rundownArchive = RundownHelper.processRundow(octopusAPI, scheduleDate);\r
@@ -409,14 +410,14 @@ public class Support {
                };\r
 \r
                manager.executeQuery(query, consumer, null);\r
-               //System.out.println("Available will " + duplicateLength[0]);\r
+               // System.out.println("Available will " + duplicateLength[0]);\r
        }\r
 \r
        private List<String> query(Connection con) throws Exception {\r
                List<String> result = new ArrayList<>();\r
 \r
-               //              [clIFsp_EC_MAM] @Operation int, @@@Options int, @@ItemID int, @@IntParam1 int=Null, @@IntParam2 int=Null, @@IntParam3 int=Null,\r
-               //              @@StrParam1 varchar(200)=Null, @@StrParam2 varchar(max)=Null, @@DateParam1 datetime=Null, @@DateParam2 datetime=Null\r
+               // [clIFsp_EC_MAM] @Operation int, @@@Options int, @@ItemID int, @@IntParam1 int=Null, @@IntParam2 int=Null, @@IntParam3 int=Null,\r
+               // @@StrParam1 varchar(200)=Null, @@StrParam2 varchar(max)=Null, @@DateParam1 datetime=Null, @@DateParam2 datetime=Null\r
                try (PreparedStatement stmt = con.prepareStatement("{call dbo.clIFsp_EC_MAM(5001, Null, Null)}")) {\r
                        try (ResultSet rs = stmt.executeQuery()) {\r
                                while (rs.next()) {\r
@@ -452,7 +453,7 @@ public class Support {
                                                                continue;\r
                                                        names.add(splittedLine[1]);\r
 \r
-                                                       //lenyeli a duplikalt hozzadast, lekezelni. addig nem futtathato!!!!!!!\r
+                                                       // lenyeli a duplikalt hozzadast, lekezelni. addig nem futtathato!!!!!!!\r
                                                        Map<Media, List<String>> existing = getExistingItemHouseIDs(splittedLine[1]);\r
 \r
                                                        Media media = (Media) existing.keySet().toArray()[0];\r
@@ -507,7 +508,7 @@ public class Support {
                List<String> archivedFiles = getRundownMedias("2018-03-03", "2018-06-07");\r
                int i = 1;\r
                for (String file : archivedFiles) {\r
-                       //lenyeli a duplikalt hozzadast, lekezelni. addig nem futtathato!!!!!!!\r
+                       // lenyeli a duplikalt hozzadast, lekezelni. addig nem futtathato!!!!!!!\r
                        Map<Media, List<String>> existing = getExistingItemHouseIDs(file);\r
 \r
                        Media media = (Media) existing.keySet().toArray()[0];\r
@@ -516,35 +517,35 @@ public class Support {
                        System.out.println(String.format("%d - %s %d: ", i, file, media.getId()));\r
                        i++;\r
 \r
-                       //                      if (rundowns == null)\r
-                       //                              continue;\r
-                       //                      for (BasicDBObject rd : rundowns) {\r
-                       //                              String rundownTitle = getRundownTitle(rd);\r
-                       //                              if (itemTitles.contains(rundownTitle) || rundownTitle.contains("00:00"))\r
-                       //                                      continue;\r
+                       // if (rundowns == null)\r
+                       // continue;\r
+                       // for (BasicDBObject rd : rundowns) {\r
+                       // String rundownTitle = getRundownTitle(rd);\r
+                       // if (itemTitles.contains(rundownTitle) || rundownTitle.contains("00:00"))\r
+                       // continue;\r
                        //\r
-                       //                              Item item = getRundownItem(rd);\r
-                       //                              if (item == null) {\r
-                       //                                      item = manager.createItem("Generic", rundownTitle, null, NoSQLUtils.asString(rd, IOctopusAPI.ID));\r
-                       //                                      item.add();\r
-                       //                                      System.out.print(String.format("* %s,", rundownTitle));\r
-                       //                              } else {\r
-                       //                                      System.out.print(String.format("%s (%d),", rundownTitle, item.getId()));\r
-                       //                              }\r
+                       // Item item = getRundownItem(rd);\r
+                       // if (item == null) {\r
+                       // item = manager.createItem("Generic", rundownTitle, null, NoSQLUtils.asString(rd, IOctopusAPI.ID));\r
+                       // item.add();\r
+                       // System.out.print(String.format("* %s,", rundownTitle));\r
+                       // } else {\r
+                       // System.out.print(String.format("%s (%d),", rundownTitle, item.getId()));\r
+                       // }\r
                        //\r
-                       //                              List<MediaFile> mediaFiles = media.getMediaFiles();\r
-                       //                              if (mediaFiles != null) {\r
-                       //                                      for (MediaFile mf : mediaFiles) {\r
-                       //                                              mf.setId(0);\r
-                       //                                              mf.setMediaId(0);\r
-                       //                                      }\r
-                       //                              }\r
-                       //                              media.setId(0);\r
-                       //                              media.setItemId(item.getId());\r
-                       //                              media.setPersister(manager);\r
-                       //                              media.add();\r
+                       // List<MediaFile> mediaFiles = media.getMediaFiles();\r
+                       // if (mediaFiles != null) {\r
+                       // for (MediaFile mf : mediaFiles) {\r
+                       // mf.setId(0);\r
+                       // mf.setMediaId(0);\r
+                       // }\r
+                       // }\r
+                       // media.setId(0);\r
+                       // media.setItemId(item.getId());\r
+                       // media.setPersister(manager);\r
+                       // media.add();\r
                        //\r
-                       //                      }\r
+                       // }\r
                }\r
        }\r
 \r
@@ -576,13 +577,6 @@ public class Support {
                manager.add(m);\r
        }\r
 \r
-       @Test\r
-       public void test3() throws Exception {\r
-               MediaInfo mediaInfo = new MediaInfo(Paths.get("\\\\10.10.1.27\\mclowres\\www\\video\\170911TEL_PAKS_IP.mp4"));\r
-               mediaInfo.process();\r
-               System.out.println("Bitrate: " + mediaInfo.getBitRate());\r
-       }\r
-\r
        @Test\r
        public void test4() throws Exception {\r
                String houseid = "133519696_1-001-132654584";\r
@@ -640,10 +634,10 @@ public class Support {
                        String name = c.getString("longnameid");\r
                        Date recorddate = c.getDate("recorddate");\r
                        if (name != null && name.toLowerCase().contains("_nodelete")) {\r
-                               //                              recorddate.setMonth(2);\r
-                               //                              recorddate.setDate(31);\r
+                               // recorddate.setMonth(2);\r
+                               // recorddate.setDate(31);\r
                                System.out.println(name + " " + recorddate);\r
-                               //                              collection.save(c);\r
+                               // collection.save(c);\r
                        }\r
 \r
                }\r
index 9e513b252d6410ab09be0a397d793d6e95a9fd1f..17f1eb8e4c1b7bfc841a1b5919c848eeb76c0140 100644 (file)
@@ -1,13 +1,11 @@
 Manifest-Version: 1.0
 Automatic-Module-Name: user.jobengine.osgi.services
-Bundle-ManifestVersion: 2
-Bundle-Name: Services
 Bundle-SymbolicName: user.jobengine.osgi.services;singleton:=true
-Bundle-Version: 1.0.0
+Require-Bundle: org.jboss.resteasy.jaxrs;bundle-version="3.0.11",
+ org.omnifaces;bundle-version="3.4.1"
+Bundle-ManifestVersion: 2
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Service-Component: OSGI-INF/*.xml
 Bundle-ActivationPolicy: lazy
-Web-ContextPath: /services
 Import-Package: com.fasterxml.jackson.annotation;version="2.4.5",
  com.fasterxml.jackson.core;version="2.4.5",
  com.fasterxml.jackson.databind;version="2.4.5",
@@ -44,9 +42,14 @@ Import-Package: com.fasterxml.jackson.annotation;version="2.4.5",
  user.commons.rest,
  user.jobengine.db,
  user.jobengine.server
+Service-Component: OSGI-INF/*.xml
 Export-Package: user.jobengine.osgi.rest,
  user.jobengine.osgi.rest.octopus,
  user.jobengine.osgi.ws.mediacube,
  user.jobengine.osgi.ws.nexio
-Require-Bundle: org.jboss.resteasy.jaxrs;bundle-version="3.0.11",
- org.omnifaces;bundle-version="3.4.1"
+Bundle-Name: Services
+Bundle-Version: 1.0.0
+Web-ContextPath: /services
+Build-Jdk-Spec: 1.8
+Created-By: Maven Archiver 3.5.0
+
index 94e5a916df45b18aca5cfcf567c5fcb1124ea49b..b7d4e22d32dd2c5525edb28881ad584a96b0f89a 100644 (file)
@@ -1,17 +1,16 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
 <launchConfiguration type="org.eclipse.m2e.Maven2LaunchConfigurationType">\r
-<booleanAttribute key="M2_DEBUG_OUTPUT" value="true"/>\r
-<stringAttribute key="M2_GOALS" value="clean install"/>\r
-<booleanAttribute key="M2_NON_RECURSIVE" value="false"/>\r
-<booleanAttribute key="M2_OFFLINE" value="true"/>\r
-<stringAttribute key="M2_PROFILES" value=""/>\r
-<listAttribute key="M2_PROPERTIES"/>\r
-<stringAttribute key="M2_RUNTIME" value="EMBEDDED"/>\r
-<booleanAttribute key="M2_SKIP_TESTS" value="true"/>\r
-<intAttribute key="M2_THREADS" value="1"/>\r
-<booleanAttribute key="M2_UPDATE_SNAPSHOTS" value="false"/>\r
-<stringAttribute key="M2_USER_SETTINGS" value=""/>\r
-<booleanAttribute key="M2_WORKSPACE_RESOLUTION" value="false"/>\r
-<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk"/>\r
-<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:/user.jobengine.osgi.services}"/>\r
+    <booleanAttribute key="M2_DEBUG_OUTPUT" value="false"/>\r
+    <stringAttribute key="M2_GOALS" value="clean install"/>\r
+    <booleanAttribute key="M2_NON_RECURSIVE" value="false"/>\r
+    <booleanAttribute key="M2_OFFLINE" value="false"/>\r
+    <stringAttribute key="M2_PROFILES" value=""/>\r
+    <listAttribute key="M2_PROPERTIES"/>\r
+    <stringAttribute key="M2_RUNTIME" value="EMBEDDED"/>\r
+    <booleanAttribute key="M2_SKIP_TESTS" value="true"/>\r
+    <intAttribute key="M2_THREADS" value="1"/>\r
+    <booleanAttribute key="M2_UPDATE_SNAPSHOTS" value="false"/>\r
+    <stringAttribute key="M2_USER_SETTINGS" value=""/>\r
+    <booleanAttribute key="M2_WORKSPACE_RESOLUTION" value="false"/>\r
+    <stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:/user.jobengine.osgi.services}"/>\r
 </launchConfiguration>\r
index c2040d8fdd754ff3a40ca4acf00b49e818c1b7e3..d9690125ffa66d9150f7b48ad82e80738e001edd 100644 (file)
@@ -65,8 +65,7 @@ public class MediaCubeService {
        @Path("/checkmediafile")\r
        @Consumes({ MediaType.APPLICATION_JSON })\r
        @Produces({ MediaType.APPLICATION_JSON })\r
-       public Response checkMediaFile(@QueryParam("mediaFileHouseId") String mediaFileHouseId,\r
-                       @QueryParam("store") String store) {\r
+       public Response checkMediaFile(@QueryParam("mediaFileHouseId") String mediaFileHouseId, @QueryParam("store") String store) {\r
                Response result = null;\r
                try {\r
                        IItemManager itemManager = ComponentBinder.getItemManager();\r
@@ -274,8 +273,7 @@ public class MediaCubeService {
        @GET\r
        @Path("/notify")\r
        @Consumes({ MediaType.APPLICATION_JSON })\r
-       public Response notify(@QueryParam("to") String to, @QueryParam("subject") String subject,\r
-                       @QueryParam("content") String content) {\r
+       public Response notify(@QueryParam("to") String to, @QueryParam("subject") String subject, @QueryParam("content") String content) {\r
                Response result = null;\r
                try {\r
                        logger.info(new MediaCubeMarker(to, subject), content);\r
@@ -308,8 +306,7 @@ public class MediaCubeService {
        @Path("/startjob")\r
        @Consumes({ MediaType.APPLICATION_JSON })\r
        @Produces({ MediaType.APPLICATION_JSON })\r
-       public Response startJob(@QueryParam("template") String template, @QueryParam("name") String name,\r
-                       @Context HttpServletRequest request) {\r
+       public Response startJob(@QueryParam("template") String template, @QueryParam("name") String name, @Context HttpServletRequest request) {\r
 \r
                Response result = null;\r
                try {\r
@@ -334,4 +331,20 @@ public class MediaCubeService {
                return result;\r
        }\r
 \r
+       @POST\r
+       @Path("/search")\r
+       @Consumes({ MediaType.APPLICATION_JSON })\r
+       @Produces({ MediaType.APPLICATION_JSON })\r
+       public Response search(BasicDBObject searchParameters) {\r
+               Response result = null;\r
+               logger.info("Request: {}", searchParameters.toPrettyString(""));\r
+               try {\r
+                       IItemManager manager = ComponentBinder.getItemManager();\r
+                       BasicDBObject searchResult = manager.simpleSearch(searchParameters);\r
+                       result = Response.ok(searchResult).build();\r
+               } catch (Exception e) {\r
+                       result = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();\r
+               }\r
+               return result;\r
+       }\r
 }\r
index 9d7555f08544acc955d42d0b8b5773eff24fd918..aecc8865e5ee5e24b4f2ae1c4f9f0ed882334b8d 100644 (file)
@@ -10,7 +10,8 @@ Require-Bundle: user.jobengine.osgi.db;bundle-version="1.0.0",
  org.apache.commons.lang;bundle-version="2.4.0";visibility:=reexport,
  user.commons.zk;bundle-version="1.0.0",
  org.apache.servicemix.bundles.quartz;bundle-version="2.3.0",
- user.jobengine.osgi.server
+ user.jobengine.osgi.server,
+ hu.user.zk.theme.userdark;bundle-version="1.0.0"
 Export-Package: user.jobengine.gui
 DynamicImport-Package: *
 Bundle-ClassPath: .
index 054d39f7ee3bfe9d25ee829a412ce7375747fe14..14c7bb4d081b2e279129cd30c3bb44f5d9ae8697 100644 (file)
@@ -8,11 +8,11 @@ https://www.zkoss.org/wiki/ZK_Configuration_Reference/zk.xml
 \r
 <zk>\r
 <!-- \r
--->\r
        <library-property>\r
            <name>org.zkoss.theme.preferred</name>\r
            <value>userdark</value>\r
        </library-property>\r
+-->\r
        \r
        <library-property>\r
            <name>org.zkoss.web.preferred.locale</name>\r
index 3dde4a7d8b76d23e9b1170cd1b03421c7eca54e0..cd70ccfd4823a5298290ef8a851ce60684fea539 100644 (file)
@@ -30,7 +30,8 @@
   width: 100%;
   border-bottom: 1px solid #999;
   background-color: #e6e6e6;
-  color: #555;
+  color: red;
+/*  color: #555;*/
   font-weight: bold;
   white-space: nowrap;
   overflow: hidden;
index 3c2c01abb73e12b096089de335384219741ad799..c603236e474cd3c7b1d7c341feadbabc021fce5f 100644 (file)
@@ -6,15 +6,22 @@
 }\r
 \r
 .tagify{\r
-       --tags-border-color:#DDD;\r
+/*     --tags-border-color:#DDD;*/\r
+       --tags-border-color: #1d1d1d;\r
        --tags-disabled-bg:#F1F1F1;\r
-       --tags-hover-border-color:#CCC;\r
-       --tags-focus-border-color:#3595f6;\r
-       --tag-bg:#E5E5E5;\r
+/*     --tags-hover-border-color:#CCC;*/\r
+       --tags-hover-border-color: #1d1d1d;\r
+/*     --tags-focus-border-color:#3595f6;*/\r
+       --tags-focus-border-color: #1d1d1d;\r
+       --tag-bg:#1d1d1d;\r
        --tag-hover:#D3E2E2;\r
+/*\r
        --tag-text-color:black;\r
        --tag-text-color--edit:black;\r
-       --tag-pad:0.3em 0.5em;\r
+*/     \r
+       --tag-text-color: white;\r
+       --tag-text-color--edit: white;\r
+/*     --tag-pad:0.3em 0.5em;*/\r
        --tag-inset-shadow-size:1.1em;\r
        --tag-invalid-color:#D39494;\r
        --tag-invalid-bg:rgba(211, 148, 148, 0.5);\r
        display:flex;\r
        align-items:flex-start;\r
        flex-wrap:wrap;\r
-       border:1px solid #ddd;\r
+       border:1px solid lightgray;\r
        border:1px solid var(--tags-border-color);\r
+       border-radius: 3px 3px 3px 3px;\r
+       background: white;\r
        padding:0;\r
        line-height:0;\r
        cursor:text;\r
        outline:0;position:relative;\r
        box-sizing:border-box;\r
-       transition:.1s\r
+       transition:.1s;\r
+       font: 12px Verdana;\r
+       margin: 3px;\r
 }\r
 \r
 @keyframes tags--bump{\r
@@ -62,7 +73,9 @@
 \r
 .tagify.tagify--focus{\r
        transition:0s;\r
-       border-color:#3595f6;\r
+       border: 1px solid ;\r
+/*     border-color:#3595f6; */\r
+       border-color: #1d1d1d;\r
        border-color:var(--tags-focus-border-color)\r
 }\r
 \r
@@ -84,7 +97,7 @@
 .tagify[readonly]:not(.tagify--mix):not(.tagify--select)>.tagify__input{\r
        visibility:hidden;\r
        width:0;\r
-       margin:5px 0\r
+       margin:5px 0;\r
 }\r
 \r
 .tagify[readonly]:not(.tagify--mix):not(.tagify--select) \r
        pointer-events:none;\r
        transition:120ms ease;\r
        animation:tags--bump .3s ease-out 1;\r
-       box-shadow:0 0 0 1.1em #e5e5e5 inset;\r
-       box-shadow:0 0 0 var(--tag-inset-shadow-size,1.1em) var(--tag-bg,#e5e5e5) inset\r
+       box-shadow:0 0 0 1.1em #1d1d1d inset;\r
+       box-shadow:0 0 0 var(--tag-inset-shadow-size,1.1em) var(--tag-bg,#1d1d1d) inset\r
 }\r
 \r
 .tagify__tag:focus div::before,.tagify__tag:hover:not([readonly]) div::before{\r
        justify-content:center;\r
        border-radius:50px;\r
        cursor:pointer;\r
-       font:14px/1 Arial;\r
-       background:0 0;\r
-       background:var(--tag-remove-btn-bg,none);\r
+       font:14px/1 Verdana;\r
+       background: #FFFFFF;\r
+/*     background:0 0;*/\r
+/*     background:var(--tag-remove-btn-bg,none);*/\r
        color:#000;\r
        color:var(--tag-remove-btn-color,#000);\r
        width:14px;\r
        flex-grow:1;\r
        display:inline-block;\r
        min-width:110px;\r
-       margin:5px;\r
+/*     margin:5px;*/\r
        padding:.3em .5em;\r
        padding:var(--tag-pad,.3em .5em);\r
        line-height:normal;\r
index ce97a3bc11598b98f9eafbcf49bcc4f49d905d32..6a2bffd3f543544d4a7c03bc89d587b1c173c784 100644 (file)
                                </menupopup>\r
                        </menu>\r
                        <menuitem label="Mini monitor" onClick="@command('createFloatingJobMonitor')" />\r
+                       <menu label="Megjelenés">\r
+                               <menupopup>\r
+                                       <menuitem label="Világos" onClick="@command('applyTheme', name='silvertail')" />\r
+                                       <menuitem label="Sötét" onClick="@command('applyTheme', action='userdark')" />\r
+                               </menupopup>\r
+                       </menu>\r
 \r
                        <menuitem id="basketIMenuItem" label="@load(lm.basketMenuLabel)" iconSclass="z-icon-shopping-cart" \r
                                style="float: right" onClick="@command('showBasket')" disabled="false" />\r
index a570cf6d09666ac6233fccf5966c7cacd529f78c..57b3f4a91b742ebb3995e9f9f5a1e27a229689b4 100644 (file)
@@ -5,6 +5,7 @@
 <?component name="search-filters" inline="true" macroURI="searchitems/filters.zul"?>\r
 <?component name="search-results" if inline="true" macroURI="searchitems/gridresults.zul"?>\r
 <?component name="grouped-search-results" if inline="true" macroURI="searchitems/groupedgridresults.zul"?>\r
+<?component name="tabulator-search-results" if inline="true" macroURI="searchitems/tabulatorresults.zul"?>\r
 <?component name="item-details" inline="true" macroURI="searchitems/details.zul"?>\r
 \r
 <!DOCTYPE xml>\r
@@ -52,7 +53,8 @@
                                                <tabbox id="resultsTab" vflex="true" hflex="true" orient="top">\r
                                                        <tabs visible="true">\r
                                                                <tab id="tab0" label="Lista"  />\r
-                                                               <tab id="tab1" label="Fa" selected="true" />\r
+                                                               <tab id="tab1" label="Fa" />\r
+                                                               <tab id="tab2" label="Villám" selected="true" />\r
                                                        </tabs>\r
                                                        <tabpanels>\r
                                                                <tabpanel>\r
@@ -61,6 +63,9 @@
                                                                <tabpanel>\r
                                                                        <grouped-search-results />\r
                                                                </tabpanel>                                     \r
+                                                               <tabpanel>\r
+                                                                       <tabulator-search-results />\r
+                                                               </tabpanel>                                     \r
                                                        </tabpanels>\r
                                                </tabbox>                                       \r
                                        \r
index d4a4ccc0636a3f1110e3b24ae20a0561c6594548..1ee917fee75224d27cadcd331615ed1b7bfbab95 100644 (file)
@@ -1,5 +1,12 @@
 <zk xmlns:w="http://www.zkoss.org/2005/zk/client" xmlns:h="xhtml" xmlns:c="client">\r
        <div height="100%" width="100%">\r
+               <style>\r
+               #detail-tagify-chdex > tags {\r
+                       border: 1px solid lightgray;\r
+                       background: #303030;\r
+                       color: #e3e3e3;\r
+               }\r
+               </style>\r
                <toolbar width="100%" style="min-height:40px; border-bottom:1px solid darkgray">\r
                        <toolbarbutton iconSclass="z-icon-reply" autodisable="self" onClick="@command('showInResults')"\r
                                disabled="@load(vm.selectedObject eq null)" label="Szinkronizálás" />\r
@@ -14,6 +21,9 @@
                </toolbar>\r
 \r
                <vlayout id="mediaDetails" width="100%" vflex="true" style="padding: 4px; overflow:auto">\r
+                       <vlayout>\r
+                               <h:textarea id="detail-tagify" name='mediaTags'></h:textarea>\r
+                       </vlayout>\r
                        <hlayout style="border-bottom: 1px solid lightgray">\r
                                <vlayout style="width: 120px; border-right: 1px solid lightgray; padding-right: 10px">\r
                                        <label style="font-size:8pt; color: gray" value="Gyűjtő azonosító" />\r
@@ -42,9 +52,6 @@
                                <label style="font-size:8pt; color: gray" value="Média leírása" />\r
                                <label multiline="true" value="@load(vm.selectedObject.media.description)" />\r
                        </vlayout>\r
-                       <vlayout>\r
-                               <h:textarea name='mediaTags' placeholder='Címkék'></h:textarea>\r
-                       </vlayout>\r
                </vlayout>\r
 \r
        </div>\r
index 315f1cc6a7f2dd34e5901116ad23d76cc7875f7a..8e93cdf850da8a5275372f13f9446ffcfdde7d0b 100644 (file)
                <menuitem label="Törlés" value="300" onClick="@command('setCalendar', source=self)" />\r
        </menupopup>\r
 \r
-       <toolbar id="tagsToolbar" width="100%" >\r
+       <vlayout>\r
+       \r
                <h:textarea name='filterTags' placeholder='Címkék'/>\r
-       </toolbar>\r
+       </vlayout>\r
        <toolbar id="filterToolbar" width="100%">\r
                <toolbarbutton id="toggleShowTypeFilters" iconSclass="z-icon-caret-down" mode="toggle" onCheck="@command('toggleTypeFiltersCheck')"/>       \r
         <toolbarbutton iconSclass="z-icon-th" popup="searchSettings, after_start" />\r
index 4ee48d0aaea1acd9ddb0566815e5c08dcdf77e27..966130c9462c7e49b5d90e8dc9ef3ddb9ef1a837 100644 (file)
@@ -4,13 +4,12 @@
        height="100%" width="100%">\r
        <style src="/css/tabulator.css" />\r
        <script src="/js/tabulator.js" />\r
-\r
-       <paging totalSize="100" pageSize="20"/>\r
+       <div id="tabulatorListener" onChange="@command('onTabulatorChanged')" />\r
        <h:div id="result_table" onTableBuilt="@command('onTableBuilt')" onRowSelectionChanged="@command('onRowSelectionChanged')"></h:div>\r
        <h:script>\r
        \r
        try {\r
-               var table = initTable();\r
+               var resultTable = initTable();\r
        } catch(error){\r
                console.error(error);\r
        }\r
        \r
        function initTable() {\r
                var table = new Tabulator("#result_table", {\r
+//                     ajaxURL:"/services/rest/jobengine/search",\r
+                   ajaxConfig:{\r
+                       method:"POST",\r
+                       headers: {\r
+                           "Content-type": 'application/json; charset=utf-8'\r
+                       }\r
+                   },\r
+               //ajaxParams:{limit:"200", offset:"0"},\r
+//             pagination: true,\r
+               paginationCounter:"rows",\r
+               paginationAddRow: "table",\r
+               paginationMode: "remote",\r
+               paginationSize: 100,\r
+<!--                   paginationCounter:function(pageSize, currentRow, currentPage, totalRows, totalPages) { -->\r
+<!--                   return "Showing " pageSize +  " rows of " + totalRows + " total"; -->\r
+<!--                   }, -->\r
+               ajaxContentType:"json",\r
+               progressiveLoad:"scroll",\r
                        layout:"fitDataStretch",\r
                        height: "100%",\r
-                   //data:tabledata,\r
-               <!--     autoColumns:true, -->\r
+                       selectable:1,\r
                        columns:[\r
-                       {title:"ID", field:"id", headerSortTristate:true, headerClick:function(e, column){ onSort(column); }},\r
-                       {title:"Cím", field:"name", headerSortTristate:true, headerClick:function(e, column){ onSort(column); }},\r
+                       {title:"Cím", field:"mediaTitle", headerSortTristate:true, headerClick:function(e, column){ onSort(column); }},\r
                        {title:"Fájlnév", field:"fileName", headerSortTristate:true, headerClick:function(e, column){ onSort(column); }},\r
-                       {title:"Archiválva", field:"archiveDate", headerSortTristate:true, headerClick:function(e, column){ onSort(column); }},\r
+                       {title:"Archiválva", field:"creation", headerSortTristate:true, headerClick:function(e, column){ onSort(column); }},\r
                        {title:"Hossz", field:"length", headerSortTristate:true, headerClick:function(e, column){ onSort(column); }}\r
                    ],\r
                initialSort:[\r
                        {column:"fileName", dir:"asc"}\r
                ],\r
                    sortMode:"remote",\r
-                   selectable: true,\r
                        columnDefaults:{\r
                        resizable:true,\r
                    },  \r
                    rowFormatter:function(row){\r
-                               console.log("Formatting", row);\r
+                               //console.log("Formatting", row);\r
                \r
                                var holderEl = document.createElement("div");\r
                                var tableEl = document.createElement("div");\r
                                var relevant = row.getData().relevant;\r
                                if (relevant)\r
                                        tableEl.innerHTML = relevant; \r
-                   },  \r
+                   },\r
+                   keybindings:{\r
+                       "navUp" : false,\r
+                       "navDown" : false,\r
+               },  \r
                });\r
                \r
                function onSort(column){\r
-                       //console.log("onSort", column);\r
+                       console.log("onSort", column);\r
                }\r
 \r
                table.on("headerClick", function(e, column){\r
                    //row - row component\r
                        console.log("rowClick", e, row);\r
                });\r
+\r
+               table.on("rowSelected", function(row){\r
+                       console.log("rowSelected", row.getData().fileName);\r
+                       \r
+                       zk.Widget.$('$tabulatorListener').fire('onChange',{\r
+                               event: 'rowSelected',\r
+                               data: row.getData()\r
+                       },{\r
+                               toServer : true\r
+                       });\r
+               });\r
                \r
                table.on("rowSelectionChanged", function(data, rows){\r
                        console.log("rowSelectionChanged", data, rows);\r
-                       zk.Widget.$('$result_table').fire('onRowSelectionChanged', {\r
-                               meta : data\r
-                       }, {\r
-                               toServer : true\r
-                       });\r
+                       \r
                });\r
                \r
                table.on("tableBuilt", function(){\r
                        console.log("tableBuilt");\r
-                       zk.Widget.$('$result_table').fire('onTableBuilt', {\r
-                               meta : null\r
-                       }, {\r
-                               toServer : true\r
-                       });\r
+<!--                   zk.Widget.$('$result_table').fire('onTableBuilt', { -->\r
+<!--                           meta : null -->\r
+<!--                   }, { -->\r
+<!--                           toServer : true -->\r
+<!--                   }); -->\r
                });\r
                \r
                return table;\r
index f71849be064541c8ae16983df67442ab1a4bceb6..9ee875291c9550bb2c5635e8b3cfc4e94d43bd9a 100644 (file)
@@ -337,11 +337,17 @@ public class GridSearchModel extends AsyncBaseModel {
                        itemsGrid.setActivePage(0);\r
                        setSelectedObject(null);\r
 \r
-                       if (resultsTab.getSelectedIndex() == 0)\r
+                       switch (resultsTab.getSelectedIndex()) {\r
+                       case 0:\r
                                showExpandedSearchResult();\r
-                       else\r
+                               break;\r
+                       case 1:\r
                                showGroupedSearchResult();\r
-\r
+                               break;\r
+                       case 2:\r
+                               showSimpleSearchResult();\r
+                               break;\r
+                       }\r
                } catch (Exception e) {\r
                        handleSearchError(e);\r
                }\r
@@ -386,6 +392,12 @@ public class GridSearchModel extends AsyncBaseModel {
 \r
        }\r
 \r
+       private void showSimpleSearchResult() throws Exception {\r
+               String searchValue = search.getText();\r
+               String script = String.format("resultTable.setData('/services/rest/jobengine/search', {criteria:'%s'});", searchValue);\r
+               Clients.evalJavaScript(script);\r
+       }\r
+\r
        private void showGroupedSearchResult() throws Exception {\r
                String searchValue = search.getText();\r
 \r
@@ -770,6 +782,12 @@ public class GridSearchModel extends AsyncBaseModel {
                logger.info(event);\r
        }\r
 \r
+       @Command\r
+       public void onTabulatorChanged(@ContextParam(ContextType.TRIGGER_EVENT) Event event) {\r
+               JSONObject jsObject = (JSONObject) event.getData();\r
+               logger.info("onTabulatorChanged {}", jsObject.toJSONString());\r
+       }\r
+\r
        @Command\r
        public void onTcIn(@ContextParam(ContextType.TRIGGER_EVENT) Event event) throws Exception {\r
                JSONObject jsObject = (JSONObject) event.getData();\r
index c89c4dcd4be82d3025a20f43acdd02194ee9a99f..f8fe1db365826aae9f8aa3734b8ceef7a602e3fb 100644 (file)
@@ -14,6 +14,7 @@ public class MediaCubeConfig {
        private boolean disableStatistics;\r
        private boolean disableHelp;\r
        private boolean disableEditor;\r
+       private String theme;\r
 \r
        public MediaCubeAuthentication getAuthentication() {\r
                return authentication;\r
@@ -95,4 +96,12 @@ public class MediaCubeConfig {
                this.topTypeFilters = topTypeFilters;\r
        }\r
 \r
+       public String getTheme() {\r
+               return theme;\r
+       }\r
+\r
+       public void setTheme(String theme) {\r
+               this.theme = theme;\r
+       }\r
+\r
 }\r
index 3d6d9ad0c9dfa2d96903d1c21eb8b6e0256b9fe6..fdb2a7b8b34949a5d1bade5f88463cea2632b725 100644 (file)
@@ -20,6 +20,7 @@ import org.zkoss.zk.ui.select.annotation.Wire;
 import org.zkoss.zk.ui.util.Clients;\r
 import org.zkoss.zul.Menuitem;\r
 import org.zkoss.zul.Window;\r
+import org.zkoss.zul.theme.Themes;\r
 \r
 import user.jobengine.db.ArchivedMedia;\r
 import user.jobengine.zk.util.SessionUtil;\r
@@ -123,6 +124,12 @@ public class MenuModel extends BaseModel {
                window.doModal();\r
        }\r
 \r
+       @Command\r
+       public void applyTheme(@BindingParam("name") String name) {\r
+               Themes.setTheme(Executions.getCurrent(), name);\r
+               Executions.sendRedirect("");\r
+       }\r
+\r
        private void updateBasketLabel() {\r
                basketMenuLabel = String.format("(%d)", basketItems.size());\r
                BindUtils.postNotifyChange(null, null, this, "basketMenuLabel");\r
index 7d4f3f045556dbff1b8e2da97ff8d14aa09dd7d3..4842411fa97b07799b63f38da41953cf085a4521 100644 (file)
@@ -2,17 +2,27 @@ package user.jobengine.zk.util;
 \r
 import java.util.Map;\r
 \r
+import org.zkoss.zk.ui.Executions;\r
 import org.zkoss.zk.ui.Page;\r
 import org.zkoss.zk.ui.util.Initiator;\r
+import org.zkoss.zul.theme.Themes;\r
 \r
 /**\r
- * Ellenorzi, hogy van e beloginelt user, ha nincs, akkor -> login.zul Minden oldal belinkeli ezt az ellenorzest.\r
+ * Ellenorzi, hogy van e beloginelt user, ha nincs, akkor -> login.zul Minden\r
+ * oldal belinkeli ezt az ellenorzest.\r
  */\r
 public class AuthInitiator implements Initiator {\r
        @Override\r
        public void doInit(Page page, Map<String, Object> args) throws Exception {\r
-               if (!SessionUtil.isAuthenticated())\r
+               if (!SessionUtil.isAuthenticated()) {\r
+                       String theme = SessionUtil.getMediaCubeConfig().getTheme();\r
+                       if (theme == null)\r
+                               Themes.setTheme(Executions.getCurrent(), "silvertail");\r
+                       else\r
+                               Themes.setTheme(Executions.getCurrent(), theme);\r
+\r
                        SessionUtil.redirect("/pages/login.zul");\r
+               }\r
        }\r
 \r
 }
\ No newline at end of file