Uzenetek egysegesitese
authorelgekko <vasary@elgekko.net>
Thu, 9 Mar 2023 09:08:30 +0000 (10:08 +0100)
committerelgekko <vasary@elgekko.net>
Thu, 9 Mar 2023 09:08:30 +0000 (10:08 +0100)
20 files changed:
.gitignore
server/-configuration/run-mediacube-server-local.launch
server/-dependencies/jobengine.target
server/-dependencies/pom.xml
server/-product/mediacube.product
server/-product/production/LOCAL/settings/mediacube.yaml
server/user.commons.zk/pom.xml
server/user.mediacube.gui/META-INF/MANIFEST.MF
server/user.mediacube.gui/css/toast.css
server/user.mediacube.gui/index.zul
server/user.mediacube.gui/pages/index.zul2 [deleted file]
server/user.mediacube.gui/pages/jobeditor.zul
server/user.mediacube.gui/pages/joblist.zul
server/user.mediacube.gui/pages/jobs.zul
server/user.mediacube.gui/pages/menu.zul
server/user.mediacube.gui/src/user/jobengine/zk/model/GridSearchModel.java
server/user.mediacube.gui/src/user/jobengine/zk/model/IndexModel.java
server/user.mediacube.gui/src/user/jobengine/zk/model/JobEditorModel.java
server/user.mediacube.gui/src/user/jobengine/zk/model/JobListModel.java
server/user.mediacube.gui/src/user/jobengine/zk/util/SessionUtil.java

index 6f073bf0a3053dd0a6aa69a2d882fd8caf279126..ca7490acc60b7203a3ce34578770e52005cf1b9d 100644 (file)
@@ -3,3 +3,4 @@
 ################################################################################\r
 \r
 /server\r
+/server - 230225/
index 0fd2f9a68a15c7f50ebb176f4b35bcdb1852f198..f5f6d7dd0dd4c214b641150364478e680c6cccaa 100644 (file)
@@ -50,7 +50,6 @@
         <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="javax.annotation-api@default:default"/>\r
         <setEntry value="javax.mail@default:default"/>\r
         <setEntry value="javax.servlet-api@default:default"/>\r
         <setEntry value="org.omnifaces@default:default"/>\r
         <setEntry value="slf4j.api@default:default"/>\r
         <setEntry value="slf4j.simple@default:false"/>\r
+        <setEntry value="user.theme.userdark@default:default"/>\r
     </setAttribute>\r
     <setAttribute key="selected_workspace_bundles">\r
-        <setEntry value="hu.user.theme.userdark@default:default"/>\r
         <setEntry value="user.commons.zk@default:default"/>\r
         <setEntry value="user.jobengine.log4j@1:true"/>\r
         <setEntry value="user.jobengine.osgi.commons@default:true"/>\r
index af41a7e8898998626615ba526fe01dd8d143b4f9..d5b74467f09b0b8123ce3da921e0618608022903 100644 (file)
@@ -86,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="user.theme.userdark"/>\r
 </includeBundles>\r
 <environment>\r
        <os>win32</os>\r
index 6fd60f0996b59b0d22ac3e65a691b3616a6e6b8b..72f7b90ad8469bcd28c5df1f7093677d38dce169 100644 (file)
@@ -66,7 +66,6 @@
                                                        <packaging>jar</packaging>\r
                                                </configuration>\r
                                        </execution>\r
-<!--                                   \r
                                        <execution>\r
                                                <id>install3</id>\r
                                                <phase>package</phase>\r
                                                </goals>\r
                                                <configuration>\r
                                                        <file>libs/userdark-1.0.0.jar</file>\r
-                                                       <groupId>hu.user.zk.theme</groupId>\r
+                                                       <groupId>user.theme</groupId>\r
                                                        <artifactId>userdark</artifactId>\r
                                                        <version>1.0.0</version>\r
                                                        <packaging>jar</packaging>\r
                                                </configuration>\r
                                        </execution>\r
--->                            \r
                                </executions>\r
                        </plugin>\r
                        <plugin>\r
                                                <id>default-cli</id>\r
                                                <configuration>\r
                                                        <artifacts>\r
-<!--                                                           <artifact>\r
-                                                                       <id>hu.user.zk.theme:userdark:1.0.0</id>\r
+                                                               <artifact>\r
+                                                                       <id>user.theme:userdark:1.0.0</id>\r
                                                                </artifact>\r
--->                                                            \r
                                                                <artifact>\r
                                                                        <id>org.apache.felix:org.apache.felix.gogo.command:0.12.0</id>\r
                                                                </artifact>\r
index 0dbfa50fcbe8d14c29c0d05715d1ba5f1a9c49f9..f73529bf47f99aab6f17e31b890a6f09d894a78f 100644 (file)
@@ -38,7 +38,6 @@
       <plugin id="com.sun.jna"/>\r
       <plugin id="com.sun.jna.platform"/>\r
       <plugin id="groovy"/>\r
-      <plugin id="hu.user.theme.userdark"/>\r
       <plugin id="javax.annotation-api"/>\r
       <plugin id="javax.mail"/>\r
       <plugin id="javax.servlet-api"/>\r
       <plugin id="user.jobengine.osgi.services"/>\r
       <plugin id="user.mediacube.gui"/>\r
       <plugin id="user.mediacube.metadata"/>\r
+      <plugin id="user.theme.userdark"/>\r
       <plugin id="user.tsm.client"/>\r
    </plugins>\r
 \r
index 3861350f6b87179f1f66c841bc24cfdf3317e625..58e1653d99700833d45bbc24619b2c97c5d8cf6c 100644 (file)
@@ -1,4 +1,4 @@
-theme: userdark\r
+#theme: userdark\r
 jobQueuePollInterval: 1000\r
 searchResultsListCacheSize: 200\r
 disableHelp: true\r
index 944ecb303313413a946387333f018b4298bc52b9..e6253a6863e1bac1a96d43f97e08b0ce6f3fce8c 100644 (file)
        <version>8.0.3</version>\r
        <build>\r
                <plugins>\r
+                       <plugin>\r
+                               <groupId>org.apache.maven.plugins</groupId>\r
+                               <artifactId>maven-install-plugin</artifactId>\r
+                               <version>2.4</version>\r
+                               <executions>\r
+                                       <execution>\r
+                                               <id>install_0</id>\r
+                                               <phase>package</phase>\r
+                                               <goals>\r
+                                                       <goal>install-file</goal>\r
+                                               </goals>\r
+                                               <configuration>\r
+                                                       <file>lib/zk.jar</file>\r
+                                                       <groupId>org.zkoss.zk</groupId>\r
+                                                       <artifactId>zk</artifactId>\r
+                                                       <version>${version}</version>\r
+                                                       <packaging>jar</packaging>\r
+                                               </configuration>\r
+                                       </execution>\r
+                                       <execution>\r
+                                               <id>install_1</id>\r
+                                               <phase>package</phase>\r
+                                               <goals>\r
+                                                       <goal>install-file</goal>\r
+                                               </goals>\r
+                                               <configuration>\r
+                                                       <file>lib/zul.jar</file>\r
+                                                       <groupId>org.zkoss.zk</groupId>\r
+                                                       <artifactId>zul</artifactId>\r
+                                                       <version>${version}</version>\r
+                                                       <packaging>jar</packaging>\r
+                                               </configuration>\r
+                                       </execution>\r
+                                       <execution>\r
+                                               <id>install_2</id>\r
+                                               <phase>package</phase>\r
+                                               <goals>\r
+                                                       <goal>install-file</goal>\r
+                                               </goals>\r
+                                               <configuration>\r
+                                                       <file>lib/zkmax.jar</file>\r
+                                                       <groupId>org.zkoss.zk</groupId>\r
+                                                       <artifactId>zkmax</artifactId>\r
+                                                       <version>${version}</version>\r
+                                                       <packaging>jar</packaging>\r
+                                               </configuration>\r
+                                       </execution>\r
+                                       \r
+                               </executions>\r
+                       </plugin>\r
+                       \r
                        <plugin>\r
                                <groupId>org.apache.maven.plugins</groupId>\r
                                <artifactId>maven-resources-plugin</artifactId>\r
@@ -41,4 +92,6 @@
                        </plugin>\r
                </plugins>\r
        </build>\r
-</project>
\ No newline at end of file
+</project>\r
+\r
+\r
index 42408eb0f6628d6910d9a8c730f2370a5a078871..77da9444632c6c51ec07be925d43303acb788aa3 100644 (file)
@@ -11,7 +11,7 @@ Require-Bundle: user.jobengine.osgi.db;bundle-version="1.0.0",
  user.commons.zk;bundle-version="1.0.0",
  org.apache.servicemix.bundles.quartz;bundle-version="2.3.0",
  user.jobengine.osgi.server,
hu.user.theme.userdark;bundle-version="1.0.0"
+ user.theme.userdark;bundle-version="1.0.0"
 Export-Package: user.jobengine.gui
 DynamicImport-Package: *
 Bundle-ClassPath: .
index b261831296057046f90d6c4271065abd275176af..b1cc2645031364e5400ba54ec632b6b01f5f4436 100644 (file)
@@ -1,8 +1,8 @@
 .toastjs-container {
        position: absolute; /* Fallback */
        position: fixed;
-       top: 200px;
-       left: 30px;
+       top: 5px;
+       left: 300px;
        width: calc(100% - 60px);
        max-width: 400px;
 
index f1bb3a304dea61489eaa33e442792c4b2f8166e0..f673566071dcbd7ec63202130dce5846512a392b 100644 (file)
@@ -7,6 +7,14 @@
 <!DOCTYPE xml>\r
 <zk xmlns:w="http://www.zkoss.org/2005/zk/client">\r
        <style src="/css/archivum.css" />\r
+       <style src="/css/toast.css" />\r
+       <script src="/js/toast.min.js" />\r
+       <script>\r
+               function showToast(m) {\r
+                       var toast = new Toast({message: m, type: 'danger' });\r
+                       setTimeout(function(){ toast._close(); }, 4000);\r
+               }\r
+       </script>\r
        <zscript>\r
                <![CDATA[\r
                // Chrome F5 bug workaround (miscalculates 100% width on second refresh)\r
        <window id="zkwindow" viewModel="@id('im') @init('user.jobengine.zk.model.IndexModel')" border="none" \r
                width="100%" height="100%" contentStyle="padding:0;" onClientInfo="@command('onClientInfo', evt=event)">\r
                <custom-attributes org.zkoss.zul.image.preload="true"/>\r
-<!--           <borderlayout width="${myWidth}" height="${myHeight}"> -->\r
                <borderlayout>\r
                        <north border="0">\r
                                <div id="divMenu" onPopHistory="@command('popHistory')">\r
                                        <borderlayout height="50px">\r
                                                <variables backcolor="#212121"/>\r
                                                <west border="0" style="background: ${backcolor}">\r
-                                                       <hbox height="100%" width="100%" align="center" pack="left">\r
+                                                       <hbox id="appTitle" height="100%" width="100%" align="center" pack="left">\r
                                                                <image src="/img/mediacube_logo_v2_50x50.png" />\r
                                                                <label style="color:#008AC8;font-size:26px;font-weight:bold" value="MediaCube" />\r
                                                                <label style="color:#e3e3e3;font-size:12px;font-weight:bold" value="v${labels.version}" /> \r
                        <center border="0">\r
                                <include id="includeContent" src="@load(im.page)" />\r
                        </center>\r
-<!--                   <east> -->\r
+                       <east>\r
 <!--                           <sidewindow /> -->\r
-<!--                   </east> -->\r
+                       </east>\r
                </borderlayout>\r
        </window>\r
 </zk>\r
diff --git a/server/user.mediacube.gui/pages/index.zul2 b/server/user.mediacube.gui/pages/index.zul2
deleted file mode 100644 (file)
index f709ed4..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-<?init class="user.jobengine.zk.util.AuthInitiator"?>\r
-\r
-<!DOCTYPE xml>\r
-<zk>\r
-       <style src="/css/archivum.css" />\r
-       <zscript><![CDATA[\r
-       // Chrome F5 bug workaround (miscalculates 100% width on second refresh)\r
-       void onClientInfo(ClientInfoEvent evt) {\r
-       int myHeight = evt.getScreenHeight();\r
-        int myWidth = evt.getScreenWidth();\r
-    }\r
-       \r
-       void resizeComp(org.zkoss.zk.ui.Component toResize){\r
-               org.zkoss.zk.ui.util.Clients.resize(toResize);\r
-       }\r
-       \r
-       public void clearErrorMsg(Component comp){\r
-               if(comp != null && comp.getErrorMessage() != null){\r
-               //comp.setErrorMessage(comp.getErrorMessage().replaceAll("aaaa.nn.jj","éééé.hh.nn"));\r
-               comp.setErrorMessage("Hibás érték! (ÉÉÉÉ.HH.NN)");\r
-               }\r
-       }\r
-       ]]></zscript>\r
-       <!-- ZKOSS chrome listbox scroll bug workaround: http://tracker.zkoss.org/browse/ZK-3263 -->\r
-       <script>\r
-               window.onpopstate = function(event) {\r
-                       //console.log("location: " + document.location + ", state: " + JSON.stringify(event.state));\r
-                       console.log("location: " + document.location);\r
-                       var param = {\r
-                               location: document.location,\r
-                               state: event.state\r
-                       };\r
-                       zk.Widget.$('$divMenu').fire('onPopHistory', param, {toServer:true});\r
-               }\r
-               \r
-               zk.afterLoad(function() {\r
-                       //pushHistory("Keresés", "");\r
-               });\r
-               zk.afterLoad('zul.grid,zkmax', function() {\r
-                       var xGrid = {};\r
-                       zk.override(zul.grid.Grid.prototype, xGrid, {\r
-                               _setPadSize : function() {\r
-                                       var scrollTopBefore = this.ebody.scrollTop;\r
-                                       var result = xGrid._setPadSize.apply(this, arguments);\r
-                                       this.ebody.scrollTop = scrollTopBefore;\r
-                                       return result;\r
-                               }\r
-                       });//zk.override\r
-                       \r
-               });//zk.afterLoad\r
-               zk.afterLoad('zul.sel,zkmax', function() {\r
-                       var xListbox = {};\r
-                       zk.override(zul.sel.Listbox.prototype, xListbox, {\r
-                               _setPadSize : function() {\r
-                                       var scrollTopBefore = this.ebody.scrollTop;\r
-                                       var result = xListbox._setPadSize.apply(this, arguments);\r
-                                       this.ebody.scrollTop = scrollTopBefore;\r
-                                       return result;\r
-                               }\r
-                       });//zk.override\r
-               });//zk.afterLoad\r
-       </script>\r
-       \r
-       <window id="zkwindow" border="none" width="100%" height="100%" contentStyle="padding:0;" onClientInfo="onClientInfo(event)" \r
-               viewModel="@id('vm') @init('user.jobengine.zk.model.IndexModel')">\r
-               <custom-attributes org.zkoss.zul.image.preload="true" />\r
-               <borderlayout width="${myWidth}" height="${myHeight}">\r
-                       <north border="0">\r
-                               <div id="divMenu" onPopHistory="@command('popHistory')">\r
-                                       <borderlayout height="50px">\r
-                                               <west border="0">\r
-                                                       <hbox height="100%" width="100%" align="center" pack="center" style="background: #008AC8;">\r
-                                                               <image src="/img/mediacube_logo_v2_50x50.png" />\r
-                                                               <label style="color:#e3e3e3;font-size:26px;font-weight:bold" value="MediaCube" />\r
-                                                               <label style="color:#e3e3e3;font-size:12px;font-weight:bold" value="v${labels.version}" /> \r
-                                                       </hbox>\r
-                                               </west>\r
-                                               <center border="0">\r
-                                                       <hbox height="100%" width="100%" align="bottom" pack="start" style="background: #008AC8;">\r
-                                                       </hbox>\r
-                                               </center>\r
-                                               <east border="0">\r
-                                                       <hbox height="100%" width="100%" align="bottom" pack="center" style="background: #008AC8;">\r
-                                                               <div style="margin-right: 10px">\r
-                                                                       <label style="color:#e3e3e3; font-size:12px; font-weight:bold; cursor: help;" \r
-                                                                               value="Bejelentkezve: ${sessionScope.userPrincipal.displayName}" /> \r
-                                                                       <attribute name="tooltip" if="${not empty sessionScope.userPrincipal.email}">\r
-                                                                               emailPopup, at_pointer\r
-                                                                       </attribute>                                                                                            \r
-                                                                       <popup id="emailPopup">\r
-                                                                       <vlayout>\r
-                                                                           <label value="${sessionScope.userPrincipal.email}"/>\r
-                                                                       </vlayout>\r
-                                                                   </popup>                                                                    \r
-                                                               </div>\r
-                                                       </hbox>\r
-                                               </east>\r
-                                       </borderlayout>\r
-                                       <include src="/pages/menu.zul" />\r
-                               </div>\r
-                       </north>\r
-                       <center border="0">\r
-                               <include style="background: #e3e3e3;" id="includeContent" src="@load(vm.page)" />\r
-                       </center>\r
-               </borderlayout>\r
-       </window>\r
-</zk>\r
index 7d12aeab5a39c47ef79ff2832a12bb24a5e40b19..bc47d1a586f58c88ed27f3da7df9cc3e346a672a 100644 (file)
@@ -1,14 +1,6 @@
 <!DOCTYPE xml>\r
 \r
 <zk xmlns:ca="client/attribute">\r
-       <style src="/css/toast.css" />\r
-       <script src="/js/toast.min.js" />\r
-       <script>\r
-               function showToast(m) {\r
-                       var toast = new Toast({message: m, type: 'danger' });\r
-                       setTimeout(function(){ toast._close(); }, 3000);\r
-               }\r
-       </script>\r
        <vlayout height="100%" viewModel="@id('jlm') @init('user.jobengine.zk.model.JobEditorModel')">\r
                <toolbar>\r
                        <toolbarbutton label="Futtatás" iconSclass="z-icon-play" onClick="@command('execute')" disabled="${not sessionScope.userPrincipal.admin}" autodisable="self" />\r
index c78c4947404f990ca8139d227bccd73308e7cecf..23c9f747a49a48067f89a0a4f80823a7035d8940 100644 (file)
@@ -23,8 +23,6 @@
                        <toolbarbutton label="Feladat leállítása" iconSclass="z-icon-times-circle" onClick="@command('cancelSelectedJobs')" \r
                                disabled="@load(jlm.updatePriorityDisabled)" autodisable="self"/>\r
                        <separator orient="vertical"/>\r
-<!--                   <toolbarbutton label="Futtatás" iconSclass="z-icon-play" onClick="@command('executeJob')"  -->\r
-<!--                           disabled="${not sessionScope.userPrincipal.admin}" autodisable="self" /> -->\r
                        <toolbarbutton label="Összes megszakítása" iconSclass="z-icon-stop" onClick="@command('cancelAllJobs')" \r
                                disabled="${not sessionScope.userPrincipal.admin}" autodisable="self" />\r
                          \r
@@ -80,9 +78,6 @@
                                                        <listcell label="@load(each.name)" tooltiptext="@load(each.name)" />\r
                                                        <listcell label="@load(each.priority)" />\r
                                                        <listcell label="@load(each.related)" tooltiptext="@load(each.related)" />\r
-<!--                                                   <listcell> -->\r
-<!--                                                           <a href="javascript:void(0);" label="@load(each.related)" onClick="@command('searchMedia', item=each)" /> -->\r
-<!--                                                   </listcell> -->\r
                                                        <listcell label="@load(each.status)" />\r
                                                        <listcell>\r
                                                                <progressmeter ca:data-animationspeed="-1" value="@load(each.progress)" width="100%" />\r
index 4dfe4b528152da65ac76285ab809c2daa8e7e61b..6c2bccd7088dfeecbdc8bae8565c3377c31c95a8 100644 (file)
@@ -1,23 +1,19 @@
-<?page id="jobs"?>\r
 <!DOCTYPE xml>\r
-\r
 <zk xmlns:w="http://www.zkoss.org/2005/zk/client" xmlns:ca="client/attribute" xmlns:x="xhtml">\r
-       <tabbox id="pagesTab" vflex="true" hflex="true" orient="top">\r
-               <tabs visible="true">\r
-                       <tab id="tab0" label="Futó folyamatok" selected="true" />\r
-                       <tab id="tab1" label="Folyamat szerkesztő" />\r
-<!--                   <tab id="tab2" label="Folyamat szerkesztő2" /> -->\r
-               </tabs>\r
-               <tabpanels>\r
-                       <tabpanel>\r
+\r
+       <borderlayout width="100%" height="100%">\r
+               <west title="Folyamat szerkesztő" border="none" flex="true" size="40%" splittable="true" collapsible="true" minsize="500"\r
+                       onSize="@command('onJobEditorOpen')">\r
+                       <groupbox vflex="true" closable="false">\r
+                               <include src="/pages/jobeditor.zul" />\r
+                               <!-- <include src="/pages/jobeditor2.zul" /> -->\r
+                       </groupbox>\r
+               </west>\r
+\r
+               <center title="Futó folyamatok" border="none">\r
+                       <groupbox vflex="true" closable="false">\r
                                <include src="/pages/joblist.zul" />\r
-                       </tabpanel>\r
-                       <tabpanel>\r
-                               <include src="/pages/jobeditor.zul"/>\r
-                       </tabpanel>\r
-<!--                   <tabpanel> -->\r
-<!--                           <include src="/pages/jobeditor2.zul" /> -->\r
-<!--                   </tabpanel> -->\r
-               </tabpanels>\r
-       </tabbox>\r
+                       </groupbox>\r
+               </center>\r
+       </borderlayout>\r
 </zk>
\ No newline at end of file
index f712d6db07380b81fd12656da6dc6a20141427e9..f24c03cc87ff83454633da2536e6bb911c10cbab 100644 (file)
@@ -35,7 +35,7 @@
                                </menupopup>\r
                        </menu>\r
                        <menuitem label="Mini monitor" onClick="@command('createFloatingJobMonitor')" />\r
-                       <menu label="Megjelenés" disabled="true">\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', name='userdark')" />\r
index b8032b8d5fa01d6aae09634ec20074c39549b706..f51ba2c112cd394d05c7fe9f0e50c1752d838310 100644 (file)
@@ -251,7 +251,7 @@ public class GridSearchModel extends AsyncBaseModel {
                        tags = itemManager.getAllTags();\r
                        // lekerdezesi hiba\r
                        if (tags == null)\r
-                               Clients.showNotification("A cimkék inicializálása sikertelen!", "error", tagsToolbar, "start_center", 3000);\r
+                               SessionUtil.showError("A cimkék inicializálása sikertelen.");\r
                        else\r
                                setSearchTags();\r
 \r
@@ -423,25 +423,26 @@ public class GridSearchModel extends AsyncBaseModel {
        }\r
 \r
        void ensureVisible(int pos) {\r
-               registerTask(() -> {\r
-                       logger.info("Scrolling to pos {} begin", pos);\r
-                       List<Component> children = itemsGrid.getRows().getChildren();\r
+               logger.info("Scrolling to pos {} begin", pos);\r
+               List<Component> children = itemsGrid.getRows().getChildren();\r
 \r
-                       if (children.size() > 0) {\r
-                               Component top = children.get(pos);\r
-                               Clients.scrollIntoView(top);\r
-                               logger.info("Scrolled into the {}. row on the page.", pos);\r
-                       }\r
+               if (children.size() > 0) {\r
+                       Component top = children.get(pos);\r
+                       Clients.scrollIntoView(top);\r
+                       logger.info("Scrolled into the {}. row on the page.", pos);\r
+               }\r
 \r
-                       if (positionToScroll > -1) {\r
-                               highlight(selectedObject, true);\r
-                               positionToScroll = -1;\r
-                       }\r
+               if (positionToScroll > -1) {\r
+                       highlight(selectedObject, true);\r
+                       positionToScroll = -1;\r
+               }\r
 \r
-                       logger.info("Scrolling to pos {} end", pos);\r
-                       preventAfterRender = false;\r
-               });\r
-               timer.start();\r
+               logger.info("Scrolling to pos {} end", pos);\r
+               preventAfterRender = false;\r
+\r
+//             registerTask(() -> {\r
+//             });\r
+//             timer.start();\r
        }\r
 \r
        public Validator getAllFilterCheckedValidator() {\r
@@ -510,7 +511,7 @@ public class GridSearchModel extends AsyncBaseModel {
                                                        ret = base + relative;\r
 \r
                                                } catch (Exception e) {\r
-                                                       Clients.showNotification(e.getMessage(), "error", btnSearch, "start_center", 3000);\r
+                                                       SessionUtil.showError("Rendszerhiba: " + e.getMessage());\r
                                                }\r
                                                logger.info("Found lowres on store {}, url is {}", store.getName(), ret);\r
                                                break;\r
@@ -602,9 +603,9 @@ public class GridSearchModel extends AsyncBaseModel {
 \r
        private void handleSearchError(Exception e) {\r
                if (e instanceof NullPointerException)\r
-                       Clients.showNotification("Database query error!", "error", btnSearch, "start_center", 3000);\r
+                       SessionUtil.showError("Adatbázis lekérdezési hiba: NULL objektum.");\r
                else\r
-                       Clients.showNotification(e.getMessage(), "error", btnSearch, "start_center", 3000);\r
+                       SessionUtil.showError("Adatbázis lekérdezési hiba: " + e.getMessage());\r
                logger.error(e);\r
        }\r
 \r
@@ -1187,9 +1188,7 @@ public class GridSearchModel extends AsyncBaseModel {
        }\r
 \r
        private void showSearchTypeWarning() {\r
-               Clients.showNotification(\r
-                               String.format("Figyelem!<br><br><span style='white-space:nowrap'> A keresés eredménye nem tartalmazza az összes típust.</span>"), "warning",\r
-                               toggleShowTypeFilters, "end_center", 3000);\r
+               SessionUtil.showWarning("A keresés eredménye nem tartalmazza az összes típust.");\r
        }\r
 \r
        @Command\r
index ab87dfc4d361c27e3be98cbac49bdf4b998b1758..7cd5f6e6b2b80aa208ccabccc78e0ceb5f11cea6 100644 (file)
@@ -7,15 +7,19 @@ import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;\r
 import org.zkoss.bind.BindUtils;\r
 import org.zkoss.bind.annotation.AfterCompose;\r
+import org.zkoss.bind.annotation.BindingParam;\r
 import org.zkoss.bind.annotation.Command;\r
 import org.zkoss.bind.annotation.ContextParam;\r
 import org.zkoss.bind.annotation.ContextType;\r
+import org.zkoss.bind.annotation.GlobalCommand;\r
 import org.zkoss.zk.ui.Component;\r
 import org.zkoss.zk.ui.Executions;\r
 import org.zkoss.zk.ui.event.ClientInfoEvent;\r
 import org.zkoss.zk.ui.event.Event;\r
 import org.zkoss.zk.ui.select.Selectors;\r
+import org.zkoss.zk.ui.select.annotation.Wire;\r
 import org.zkoss.zk.ui.util.Clients;\r
+import org.zkoss.zul.Hbox;\r
 \r
 import com.ibm.nosql.json.api.BasicDBObject;\r
 \r
@@ -28,6 +32,9 @@ public class IndexModel extends BaseModel {
        private Map<String, Object> pathMap = ListUtils.asMap("/", "searchitems", "jobs", "jobs", "missingmaterials", "missingmaterials", "newshistory",\r
                        "newshistory", "edithistory", "edithistory", "statistics", "statistics", "maestro", "maestro", "pwdgen", "pwdgen");\r
 \r
+       @Wire\r
+       Hbox appTitle;\r
+\r
        @AfterCompose\r
        public void afterCompose(@ContextParam(ContextType.VIEW) Component view) {\r
                Selectors.wireComponents(view, this, false);\r
@@ -84,4 +91,10 @@ public class IndexModel extends BaseModel {
                BindUtils.postNotifyChange(null, null, this, "page");\r
                logger.info("Page set to {}", getPage());\r
        }\r
+\r
+       @GlobalCommand()\r
+       public void showMessage(@BindingParam("msg") String msg, String type) {\r
+               Clients.showNotification(msg, type, appTitle, "end_center", 4000);\r
+               // Clients.evalJavaScript(String.format("showToast('%s')", "XXX"));\r
+       }\r
 }
\ No newline at end of file
index 6502e0852df64fbd922db145d9dc851b306b3e7a..e683c145e3ec17ce1e789040a9175c3bc666f300 100644 (file)
@@ -20,7 +20,6 @@ import org.zkoss.zk.ui.Component;
 import org.zkoss.zk.ui.Executions;\r
 import org.zkoss.zk.ui.select.Selectors;\r
 import org.zkoss.zk.ui.select.annotation.Wire;\r
-import org.zkoss.zk.ui.util.Clients;\r
 import org.zkoss.zul.Button;\r
 import org.zkoss.zul.Checkbox;\r
 import org.zkoss.zul.ListModelList;\r
@@ -46,6 +45,7 @@ import user.jobengine.server.ast.ParameterExpression;
 import user.jobengine.server.ast.VariableDeclaration;\r
 import user.jobengine.server.ast.VariableName;\r
 import user.jobengine.server.scheduler.ScheduledJob;\r
+import user.jobengine.zk.util.SessionUtil;\r
 \r
 public class JobEditorModel extends BaseModel {\r
        private static final String XML = "xml";\r
@@ -100,7 +100,7 @@ public class JobEditorModel extends BaseModel {
 \r
                try {\r
                        IJobRuntime runtime = scheduledJob.doManualJob();\r
-                       toast(runtime);\r
+                       SessionUtil.showInfo(String.format("A <b>'%s'</b> [%d] folyamat elindult.", runtime.getName(), runtime.getId()));\r
                } catch (Exception e) {\r
                        Messagebox.show(e.getMessage());\r
                }\r
@@ -163,10 +163,6 @@ public class JobEditorModel extends BaseModel {
                logger.info("onCronExpressionChangedChanged");\r
        }\r
 \r
-       private void toast(IJobRuntime runtime) {\r
-               Clients.evalJavaScript(String.format("showToast('<b>%s</b> elindítva.</br>ID %d')", runtime.getName(), runtime.getId()));\r
-       }\r
-\r
        public ListModelList<BasicDBObject> getJobs() {\r
                return jobs;\r
        }\r
index bb9fbb66163105978d739b8432b770569aae11ec..61d5c74990c32f26c2692f7cd4d5bcc2a37ca471 100644 (file)
@@ -60,15 +60,15 @@ public class JobListModel extends AsyncBaseModel implements IJobChangedListener
        private JobStatus searchStatus;\r
        private List<JobStatus> searchStatuses;\r
 \r
-       //      @Wire\r
-       //      Charts chart;\r
+       // @Wire\r
+       // Charts chart;\r
        @Wire\r
        Listbox jobsListBox;\r
 \r
        @Wire\r
        Timer timer;\r
 \r
-       //new LinkedBlockingQueue<IJobMessage>()\r
+       // new LinkedBlockingQueue<IJobMessage>()\r
 \r
        public JobListModel() {\r
                logger.info("Created");\r
@@ -77,7 +77,7 @@ public class JobListModel extends AsyncBaseModel implements IJobChangedListener
        @AfterCompose\r
        public void afterCompose(@ContextParam(ContextType.VIEW) Component view) {\r
                Selectors.wireComponents(view, this, false);\r
-               //configureJobsCountChart();\r
+               // configureJobsCountChart();\r
                jobsListBox.getPagingChild().setAutohide(false);\r
        }\r
 \r
@@ -130,44 +130,44 @@ public class JobListModel extends AsyncBaseModel implements IJobChangedListener
 \r
        }\r
 \r
-       //      private void configureJobsCountChart() {\r
-       //              Options options = new Options();\r
+       // private void configureJobsCountChart() {\r
+       // Options options = new Options();\r
        //\r
-       //              options.getGlobal().setUseUTC(false);\r
-       //              //chart.getPlotOptions().\r
+       // options.getGlobal().setUseUTC(false);\r
+       // //chart.getPlotOptions().\r
        //\r
-       //              chart.setHeight(100);\r
-       //              chart.setOptions(options);\r
-       //              chart.setAnimation(false);\r
+       // chart.setHeight(100);\r
+       // chart.setOptions(options);\r
+       // chart.setAnimation(false);\r
        //\r
-       //              chart.getXAxis().setType("datetime");\r
-       //              chart.getXAxis().setTickPixelInterval(80);\r
-       //              chart.getXAxis().getLabels().setStyle("fontSize: 8px;");\r
-       //              chart.getXAxis().getLabels().setFormat("{value: %H:%M}");\r
-       //              chart.getYAxis().setTitle("Darab");\r
-       //              PlotLine plotLine = new PlotLine();\r
-       //              plotLine.setValue(0);\r
-       //              plotLine.setWidth(1);\r
-       //              plotLine.setColor("#808080");\r
-       //              chart.getYAxis().setMin(0);\r
-       //              chart.getYAxis().addPlotLine(plotLine);\r
+       // chart.getXAxis().setType("datetime");\r
+       // chart.getXAxis().setTickPixelInterval(80);\r
+       // chart.getXAxis().getLabels().setStyle("fontSize: 8px;");\r
+       // chart.getXAxis().getLabels().setFormat("{value: %H:%M}");\r
+       // chart.getYAxis().setTitle("Darab");\r
+       // PlotLine plotLine = new PlotLine();\r
+       // plotLine.setValue(0);\r
+       // plotLine.setWidth(1);\r
+       // plotLine.setColor("#808080");\r
+       // chart.getYAxis().setMin(0);\r
+       // chart.getYAxis().addPlotLine(plotLine);\r
        //\r
-       //              chart.getTooltip().setHeaderFormat("<b>{series.name}</b><br/>");\r
-       //              chart.getTooltip().setPointFormat("{point.x:%Y-%m-%d %H:%M:%S}<br>{point.y}");\r
+       // chart.getTooltip().setHeaderFormat("<b>{series.name}</b><br/>");\r
+       // chart.getTooltip().setPointFormat("{point.x:%Y-%m-%d %H:%M:%S}<br>{point.y}");\r
        //\r
-       //              chart.getLegend().setEnabled(false);\r
-       //              chart.getExporting().setEnabled(false);\r
+       // chart.getLegend().setEnabled(false);\r
+       // chart.getExporting().setEnabled(false);\r
        //\r
-       //              Series series = chart.getSeries();\r
-       //              series.setName("Feladatok");\r
-       //              //updateJobsChart();\r
+       // Series series = chart.getSeries();\r
+       // series.setName("Feladatok");\r
+       // //updateJobsChart();\r
        //\r
-       //              int size = jobList.size();\r
-       //              for (int i = -19; i <= 0; i++) {\r
-       //                      Point point = new Point(Calendar.getInstance().getTimeInMillis() + i * 1000, size);\r
-       //                      series.addPoint(point);\r
-       //              }\r
-       //      }\r
+       // int size = jobList.size();\r
+       // for (int i = -19; i <= 0; i++) {\r
+       // Point point = new Point(Calendar.getInstance().getTimeInMillis() + i * 1000, size);\r
+       // series.addPoint(point);\r
+       // }\r
+       // }\r
 \r
        @Command\r
        public void copyRelated(@BindingParam("related") String related) {\r
@@ -176,17 +176,17 @@ public class JobListModel extends AsyncBaseModel implements IJobChangedListener
        @Override\r
        protected void doKeepAlive() {\r
                if (jobEngine.keepAliveJobChangedListener(this)) {\r
-                       //ujra hozzadadtuk, refresh\r
+                       // ujra hozzadadtuk, refresh\r
                        initializeList();\r
                }\r
        }\r
 \r
-       @Command\r
-       public void executeJob() {\r
-               String template = "/pages/jobselector.zul";\r
-               Window window = (Window) Executions.createComponents(template, null, ListUtils.asMap("jobEngine", jobEngine));\r
-               window.doModal();\r
-       }\r
+//     @Command\r
+//     public void executeJob() {\r
+//             String template = "/pages/jobselector.zul";\r
+//             Window window = (Window) Executions.createComponents(template, null, ListUtils.asMap("jobEngine", jobEngine));\r
+//             window.doModal();\r
+//     }\r
 \r
        public ListModelList<IJob> getJobList() {\r
                return jobList;\r
@@ -267,9 +267,9 @@ public class JobListModel extends AsyncBaseModel implements IJobChangedListener
        @Override\r
        public void jobChanged(JobChangedEvent event) {\r
 \r
-               //az update mehet\r
-               //              if ((searchText != null && searchText.trim().length() > 4) || searchStatus != null)\r
-               //                      return;\r
+               // az update mehet\r
+               // if ((searchText != null && searchText.trim().length() > 4) || searchStatus != null)\r
+               // return;\r
 \r
                JobChangedEvent jobEvent = event;\r
                final IJobRuntime job = jobEvent.getJob();\r
@@ -292,30 +292,30 @@ public class JobListModel extends AsyncBaseModel implements IJobChangedListener
                logger.info("{}", event.getDesktopWidth());\r
        }\r
 \r
-       //      private void updateJobsChart() {\r
-       //              chart.getSeries().addPoint(new Point(Calendar.getInstance().getTimeInMillis(), jobList.size()), true, true, true);\r
-       //      }\r
+       // private void updateJobsChart() {\r
+       // chart.getSeries().addPoint(new Point(Calendar.getInstance().getTimeInMillis(), jobList.size()), true, true, true);\r
+       // }\r
 \r
        private void onJobCreated(IJobRuntime job) {\r
                jobList.add(job);\r
                notifyChange("jobList");\r
-               //updateJobsChart();\r
+               // updateJobsChart();\r
        }\r
 \r
-       //      @Command\r
-       //      public void restart() {\r
-       //              startupDisabled = true;\r
-       //              try {\r
-       //                      jobEngine.startup();\r
-       //              } catch (Exception e) {\r
-       //              }\r
-       //              shutdownDisabled = false;\r
-       //              initializeList();\r
-       //      }\r
+       // @Command\r
+       // public void restart() {\r
+       // startupDisabled = true;\r
+       // try {\r
+       // jobEngine.startup();\r
+       // } catch (Exception e) {\r
+       // }\r
+       // shutdownDisabled = false;\r
+       // initializeList();\r
+       // }\r
 \r
        private void onJobDeleted(IJobRuntime job) {\r
-               //              selectedJobs.remove(job);\r
-               //              NotifyChange("selectedJobs");\r
+               // selectedJobs.remove(job);\r
+               // NotifyChange("selectedJobs");\r
                boolean notifyAfter = jobList.getSelection().contains(job);\r
                jobList.removeFromSelection(job);\r
                jobList.remove(job);\r
@@ -323,11 +323,11 @@ public class JobListModel extends AsyncBaseModel implements IJobChangedListener
                        onSelect();\r
 \r
                notifyChange("jobList");\r
-               //updateJobsChart();\r
+               // updateJobsChart();\r
        }\r
 \r
        private void onJobUpdated(IJobRuntime job) {\r
-               //List<IJobRuntime> savedSelectedJobs = new ArrayList<>(selectedJobs);\r
+               // List<IJobRuntime> savedSelectedJobs = new ArrayList<>(selectedJobs);\r
                jobList.notifyChange(job);\r
        }\r
 \r
@@ -440,30 +440,30 @@ public class JobListModel extends AsyncBaseModel implements IJobChangedListener
                logger.info("Search {}", searchText);\r
                String trimmedSearchText = StringUtils.trim(searchText);\r
                if (trimmedSearchText.length() < 4) {\r
-                       Messagebox.show("Minimum 4 karakter begépelése szükséges a kereséshez.", "Figyelmeztetés", Messagebox.OK, Messagebox.INFORMATION);\r
+                       SessionUtil.showWarning("Minimum 4 karakter begépelése szükséges a kereséshez.");\r
                        return;\r
                }\r
 \r
-               //kereses a futo folyamatok kozott\r
+               // kereses a futo folyamatok kozott\r
                List<IJob> filteredList = jobList.stream().filter(j -> {\r
                        return j.getRelated() != null && j.getRelated().toLowerCase().contains(formattedSearchText);\r
                }).collect(toList());\r
 \r
-               //ha nincs futo folyamat, akkor historybol\r
+               // ha nincs futo folyamat, akkor historybol\r
                if (filteredList.size() == 0)\r
                        filteredList = jobEngine.getItemManager().getJobsHistory(formattedSearchText);\r
 \r
                if (filteredList == null || filteredList.size() == 0) {\r
-                       Messagebox.show("Nincs találat.", "Figyelmeztetés", Messagebox.OK, Messagebox.INFORMATION);\r
+                       SessionUtil.showInfo("Nincs találat.");\r
                        return;\r
                }\r
 \r
-               //delete selection\r
+               // delete selection\r
                Set<IJob> selectedItems = jobList.getSelection();\r
                for (IJob item : selectedItems)\r
                        jobList.removeFromSelection(item);\r
 \r
-               //add\r
+               // add\r
                jobList.clear();\r
                jobList.addAll(filteredList);\r
        }\r
index 84b4cf69bdbc9d132049d039ba38fe19e3bb52b9..1673975ddcd4e96c04d5d06ed19f5ba3e9997ea1 100644 (file)
@@ -14,6 +14,7 @@ import javax.xml.bind.DatatypeConverter;
 import org.apache.commons.lang.StringUtils;\r
 import org.apache.logging.log4j.LogManager;\r
 import org.apache.logging.log4j.Logger;\r
+import org.zkoss.bind.BindUtils;\r
 import org.zkoss.zk.ui.Executions;\r
 import org.zkoss.zk.ui.Session;\r
 import org.zkoss.zk.ui.Sessions;\r
@@ -26,6 +27,7 @@ import com.ibm.nosql.json.api.BasicDBList;
 import com.ibm.nosql.json.api.BasicDBObject;\r
 import com.ibm.nosql.json.api.QueryBuilder;\r
 \r
+import user.commons.ListUtils;\r
 import user.commons.configuration.IConfiguration;\r
 import user.commons.nosql.NoSQLUtils;\r
 import user.jobengine.gui.ComponentBinder;\r
@@ -56,6 +58,7 @@ public class SessionUtil implements GlobalConstants {
        public static final String GUI_STAT_DISABLE = "gui.statistics.disable";\r
        public static final String GUI_HELP_DISABLE = "gui.help.disable";\r
        public static final String GUI_EDITOR_DISABLE = "gui.editor.disable";\r
+       private static final String FMT_NOTIF = "<div style='white-space:nowrap'>%s</div>";\r
 \r
        // private static MediaCubeConfig mediaCubeConfig;\r
        //\r
@@ -428,4 +431,19 @@ public class SessionUtil implements GlobalConstants {
        public static void unsubscribe(EventListener<Event> eventListener) {\r
                EventQueues.lookup(EVENTQUEUE_NAME, EventQueues.APPLICATION, false).unsubscribe(eventListener);\r
        }\r
+\r
+       public static void showError(String msg) {\r
+               Map<String, Object> params = ListUtils.asMap("msg", String.format(FMT_NOTIF, msg, "type", "error"));\r
+               BindUtils.postGlobalCommand(null, null, "showMessage", params);\r
+       }\r
+\r
+       public static void showInfo(String msg) {\r
+               Map<String, Object> params = ListUtils.asMap("msg", String.format(FMT_NOTIF, msg), "type", "info");\r
+               BindUtils.postGlobalCommand(null, null, "showMessage", params);\r
+       }\r
+\r
+       public static void showWarning(String msg) {\r
+               Map<String, Object> params = ListUtils.asMap("msg", String.format(FMT_NOTIF, msg), "type", "warning");\r
+               BindUtils.postGlobalCommand(null, null, "showMessage", params);\r
+       }\r
 }
\ No newline at end of file