--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<zk xmlns:w="http://www.zkoss.org/2005/zk/client">\r
+<window id="zkwindow" border="true" width="100%" height="100%" contentStyle="padding:0;" \r
+ apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('user.jobengine.zk.model.DirectoryListModel')">\r
+ <div id="kicsidiv" height="100%" width="100%">\r
+ <!-- Keresés menü -->\r
+ <hbox width="100%">\r
+ <button id="sback" onClick="@command('onSrcBack')" image="/img/baseline_arrow_back_black_18dp.png">\r
+ <attribute w:name="onClick"><![CDATA[\r
+ var ss = zk.Widget.$(jq('$sourceSearch')),\r
+ val = "";\r
+ ss.setValue(val);\r
+ ss.smartUpdate('value', val);\r
+ ]]></attribute>\r
+ </button>\r
+ <textbox id="sourceSearch" value="@bind(vm.searchText)" onOK="@command('refresh')" />\r
+ \r
+ \r
+ <!-- button hflex="min" image="/img/ic_search_black_18dp.png" onClick="@command('doSearch')" / -->\r
+ <button id="resetSSearch" image="/img/baseline_close_black_18dp.png" onClick="@command('clearSrcFilter')">\r
+ <attribute w:name="onClick"><![CDATA[\r
+ var ss = zk.Widget.$(jq('$sourceSearch')),\r
+ val = "";\r
+ ss.setValue(val);\r
+ ss.smartUpdate('value', val);\r
+ ]]></attribute>\r
+ </button>\r
+ <button id="refreshS" image="/img/baseline_refresh_black_18dp.png" onClick="@command('refresh')"/>\r
+ </hbox>\r
+ <!-- Forrás file lista -->\r
+ <listbox id="srcbox" vflex="true" model="@load(vm.srcFiles)" multiple="false" checkmark="true" \r
+ oddRowSclass="listbox-odd-style" sclass="listbox-normal-style" style="border: none; background: #e3e3e3 !important;"\r
+ ctrlKeys="#bak" onCtrlKey="@command('onSrcBack')" onSelect="@command('selectedItemChanged')"\r
+ onAfterRender="srcbox.focus()">\r
+ <listhead>\r
+ <listheader label="" sort="auto(isFolder)" width="8%" />\r
+ <listheader label="Név" sort="auto(name)" width="40%" />\r
+ <listheader label="Méret" sort="auto(size)" width="12%" />\r
+ <listheader label="Létrehozva" sort="auto(created)" width="20%" />\r
+ <listheader label="Módosítva" sort="auto(modify)" />\r
+ </listhead>\r
+\r
+ <template name="model">\r
+ <!-- listitem onDoubleClick="@command('onSourceDoubleClick',selectedItem=each)" -->\r
+ <listitem onDoubleClick="@command('onSourceDoubleClick')">\r
+ <attribute w:name="onDoubleClick"><![CDATA[\r
+ var ss = zk.Widget.$(jq('$sourceSearch')),\r
+ val = "";\r
+ ss.setValue(val);\r
+ ss.smartUpdate('value', val);\r
+ ]]></attribute>\r
+ <listcell>\r
+ <image style="margin-left:4px;margin-top:2px;vertical-align:top;">\r
+ <attribute name="src" if="${!each.isFolder}">/img/outline_insert_drive_file_black_18dp.png</attribute>\r
+ <attribute name="src" if="${each.isFolder}">/img/baseline_folder_black_18dp.png</attribute>\r
+ </image>\r
+ </listcell>\r
+ \r
+ <listcell>\r
+ <label value="@load(each.name)" visible="${!each.isFolder}" />\r
+ <a label="@load(each.name)" visible="${each.isFolder}" onClick="@command('onSourceClick',selectedItem=each)">\r
+ <attribute w:name="onClick"><![CDATA[\r
+ var ss = zk.Widget.$(jq('$sourceSearch')),\r
+ val = "";\r
+ ss.setValue(val);\r
+ ss.smartUpdate('value', val);\r
+ ]]></attribute>\r
+ </a>\r
+ </listcell>\r
+ <listcell><label value="@load(each.size) @converter(vm.fileSizeConverter)" visible="${!each.isFolder}" /></listcell>\r
+ <listcell><label value="@load(each.created) @converter('formatedDate',format='yyyy.MM.dd hh:mm:ss')" /></listcell>\r
+ <listcell><label value="@load(each.modify) @converter('formatedDate',format='yyyy.MM.dd hh:mm:ss')" /></listcell>\r
+ </listitem>\r
+ </template>\r
+ </listbox> \r
+ </div> \r
+</window>\r
+</zk>\r
<?xml version="1.0" encoding="UTF-8"?>\r
-<?init class="user.jobengine.zk.util.AuthInitiator"?>\r
<zk xmlns:w="http://www.zkoss.org/2005/zk/client">\r
-<window id="zkwindow" border="none" width="100%" height="100%" contentStyle="padding:0;" \r
+<window id="zkwindow" border="true" width="100%" height="100%" contentStyle="padding:0;" \r
apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('user.jobengine.zk.model.MaestroModel')">\r
<custom-attributes org.zkoss.zul.image.preload="true" />\r
- <!-- borderlayout width="${myWidth}" height="${myHeight}" -->\r
- <!-- borderlayout width="100px" height="100px" -->\r
- <borderlayout height="100%">\r
- <west border="10">\r
- <!-- hbox height="100%" width="100%" align="center" pack="center" style="background: #008AC8;" -->\r
- <listbox id="box" height="400px" multiple="false" model="@load(vm.sourceFileList)" selectedItem="@bind(vm.sourceFileList)">\r
- <auxhead>\r
- <auxheader label="Forrás fájlok" colspan="1" align="center" />\r
- </auxhead>\r
- <listhead>\r
- <listheader label="Név" width="200px" />\r
- <!-- listheader label="Név" sort="auto(fileName)" width="200px" / -->\r
- <!-- listheader label="Hossz" sort="auto(length)" width="80px" / -->\r
- <!-- listheader label="Típus" sort="auto(type)" width="80px" / -->\r
- </listhead>\r
-\r
- <template name="model" >\r
- <listitem>\r
- <listcell><label value="@load(each)" /></listcell>\r
- <!-- listcell><label value="@load(each.fileName)" /></listcell -->\r
- <!-- listcell><label value="@load(each.length)" /></listcell -->\r
- <!-- listcell><label value="@load(each.type)" /></listcell -->\r
- </listitem>\r
- </template>\r
- </listbox> \r
- <!-- /hbox -->\r
+ <borderlayout width="100%" height="100%">\r
+ <west width="40%" splittable="true">\r
+ <panel width="100%" height="100%" border="normal" title="Source">\r
+ <panelchildren style="padding:5px;">\r
+ <include src="/pages/directorylist.zul" />\r
+ </panelchildren>\r
+ </panel>\r
</west>\r
- <center border="0">\r
- <hbox height="100%" width="100%" align="bottom" pack="start" 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
- </hbox>\r
+ <center border="true">\r
+ <panel width="100%" border="normal" title="Traffic" vflex="true">\r
+ <panelchildren style="padding:5px;">\r
+ <include src="/pages/planner.zul" />\r
+ </panelchildren>\r
+ </panel>\r
</center>\r
- <east border="0">\r
- <hbox height="100%" width="100%" align="bottom" 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
- </hbox>\r
+ <east border="true" width="25%" splittable="true">\r
+ <panel width="100%" border="normal" title="Targets" vflex="true">\r
+ <panelchildren style="padding:5px;">\r
+ <include src="/pages/targets.zul" />\r
+ </panelchildren>\r
+ </panel>\r
</east>\r
- <south border="0">\r
- \r
- </south>\r
+ <south border="true" height="40%" hflex="true" splittable="true">\r
+ <panel width="100%" border="normal" title="Jobs">\r
+ <panelchildren style="padding:5px;">\r
+ <listbox id="jobs" height="400px" model="@load(vm.jobs)" multiple="false" checkmark="false"\r
+ oddRowSclass="listbox-odd-style" sclass="listbox-normal-style">\r
+ <auxhead sclass="category-center">\r
+ <auxheader label="Jobok" colspan="6"/>\r
+ </auxhead>\r
+ <listhead>\r
+ <listheader label="" sort="auto(isFolder)" width="8%" />\r
+ </listhead>\r
+ <template name="model" >\r
+ <listitem>\r
+ <listcell><label value="@load(each)" /></listcell>\r
+ </listitem>\r
+ </template>\r
+ </listbox>\r
+ </panelchildren>\r
+ </panel>\r
+ </south>\r
</borderlayout>\r
<!-- include src="/pages/menu.zul" / -->\r
<!-- /borderlayout -->\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<zk xmlns:w="http://www.zkoss.org/2005/zk/client">\r
+<window id="zkwindow" border="true" width="100%" height="100%" contentStyle="padding:0;" \r
+ apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('user.jobengine.zk.model.PlannerListModel')">\r
+ <custom-attributes org.zkoss.zul.image.preload="true" />\r
+ <!-- Keresés menü -->\r
+ <hbox>\r
+ <button id="back" image="/img/baseline_arrow_back_black_18dp.png">\r
+ <attribute w:name="onClick"><![CDATA[\r
+ var ts = zk.Widget.$(jq('$search')),\r
+ val = "";\r
+ ts.setValue(val);\r
+ ts.smartUpdate('value', val);\r
+ ]]></attribute>\r
+ </button>\r
+ <textbox id="search" />\r
+ <button id="resetSearch" image="/img/baseline_close_black_18dp.png">\r
+ <attribute w:name="onClick"><![CDATA[\r
+ var ts = zk.Widget.$(jq('$search')),\r
+ val = "";\r
+ ts.setValue(val);\r
+ ts.smartUpdate('value', val);\r
+ ]]></attribute>\r
+ </button>\r
+ <button id="refresh" image="/img/baseline_refresh_black_18dp.png">\r
+ </button>\r
+ </hbox>\r
+ <!-- Gombok -->\r
+ <hbox pack="left" align="top" id="searchFiltersMenu">\r
+ <vlayout>\r
+ <toolbar class="toolbar">\r
+ <forEach items="@load(vm.topTypeFilterNames)">\r
+ <toolbarbutton label="@load(each)" mode="toggle" \r
+ checked="@bind(vm.typeFilters[each].checked) @validator(vm.allFilterCheckedValidator)" />\r
+ </forEach>\r
+ </toolbar>\r
+ </vlayout>\r
+ </hbox>\r
+ <!-- Cél file lista -->\r
+ <listbox id="lbox" vflex="true" \r
+ oddRowSclass="listbox-odd-style" sclass="listbox-normal-style" style="border: none; background: #e3e3e3 !important;"\r
+ onAfterRender="lbox.focus()">\r
+ <listhead>\r
+ <listheader label="Tételek" />\r
+ </listhead>\r
+\r
+ <template name="model" hflex="max">\r
+ <listitem >\r
+ <listcell> label="Tételek" /></listcell>\r
+ </listitem>\r
+ </template>\r
+ </listbox> \r
+\r
+</window>\r
+</zk>\r
<?taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c" ?>\r
<?init class="user.jobengine.zk.util.AuthInitiator"?>\r
\r
-<zk xmlns:w="http://www.zkoss.org/2005/zk/client" xmlns:h="xhtml">\r
+<zk xmlns:w="http://www.zkoss.org/2005/zk/client" xmlns:h="xhtml" xmlns:n="native" xmlns:c="client">\r
<style src="/css/video-js.css" />\r
<h:script src="/js/videojs-ie8.min.js" />\r
<h:script src="/js/video.js" />\r
\r
function setSource(src) {\r
console.log("setSource", player, src);\r
- player.src({type: 'video/mp4', src: src});\r
+ if (src != null) {\r
+ player.src({type: 'video/mp4', src: src});\r
+ }else{\r
+ player.src({type: 'image/png', src: "/img/mediacube_logo_v2_50x50.png"});\r
+ }\r
} \r
\r
function pushTcIn() {\r
var current = player.currentTime();\r
console.log("pushTcIn", current);\r
- zk.Widget.$('$videoListener').fire('onTcIn', current, {toServer:true});\r
- } \r
+ zk.Widget.$('$videoListener').fire('onTcIn', {meta: current}, {toServer:true});\r
+ }\r
+ \r
+ function pushTcOut() {\r
+ var current = player.currentTime();\r
+ console.log("pushTcOut", current);\r
+ zk.Widget.$('$videoListener').fire('onTcOut', {meta: current}, {toServer:true});\r
+ }\r
</h:script>\r
\r
<!-- csak igy jo a list sebessege -->\r
<div id="scdiv" width="100%" height="100%" apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('user.jobengine.zk.model.SearchModel')">\r
<timer id="timer" delay="1" repeats="false" onTimer="@command('uiTick')" />\r
<borderlayout width="100%" height="100%">\r
- <west border="none" size="60%" splittable="true" minsize="500" onSize="@command('onWestResize', west=self)">\r
+ <west border="none" flex="true" size="60%" splittable="true" minsize="500" onSize="@command('onWestResize', west=self)">\r
<div height="100%" width="100%">\r
<groupbox vflex="min" closable="false">\r
<vlayout>\r
<borderlayout height="100%" width="100%">\r
<north border="none" size="60%" splittable="true" minsize="250" collapsible="true">\r
<div align="center" height="100%" width="100%">\r
- <h:video id="myVideoDiv" class="video-js vjs-default-skin vjs-big-play-centered" poster="/img/mediacube_logo_v2_50x50.png">\r
+ <h:video id="myVideoDiv" class="video-js vjs-default-skin vjs-big-play-centered">\r
</h:video>\r
- <div id="videoListener" onTcIn="@command('onTcIn')" />\r
- \r
- \r
+ <div id="videoListener" onTcOut="@command('onTcOut')" onTcIn="@command('onTcIn')" />\r
+\r
<!-- <iframe id="mediaPlayer" height="100%" width="100%" autohide="false" src="@load(vm.lowresMediaFilePath)"></iframe> -->\r
</div>\r
</north>\r
<center border="none">\r
<div height="100%">\r
<toolbar width="100%" style="min-height:40px; font-size:8px">\r
- <div style="max-width:450px; margin:auto;" >\r
- <div sclass="menuButtons">\r
- <toolbarbutton image="/img/ic_compare_arrows_black_18dp.png" autodisable="self" onClick="@command('showInResults')"\r
- disabled="@load(vm.selectedObject eq null)" label="Szinkronizálás" />\r
- <toolbarbutton sclass="col-xs-12" image="/img/ic_shopping_cart_black_18dp.png" autodisable="self" onClick="@command('downloadMedia')"\r
- disabled="@load(not vm.hasTSMMediaFile)" label="Kosárba" />\r
- <toolbarbutton image="/img/baseline_share_black_18dp.png" autodisable="self" onClick="@command('copyMediaIdToClipboard')" \r
- disabled="@load(not sessionScope.userPrincipal.editor or sessionScope.userPrincipal.anonymous or vm.selectedObject eq null)" label="Megosztás" />\r
- <toolbarbutton image="/img/baseline_edit_black_18dp.png" autodisable="self" onClick="@command('openMetaDataDialog')"\r
- disabled="@load(not sessionScope.userPrincipal.editor or sessionScope.userPrincipal.anonymous or vm.selectedObject eq null)" label="Szerkesztés" />\r
- <toolbarbutton autodisable="self" onClick="pushTcIn()" label="IN" />\r
- </div>\r
+ <div style="max-width:450px; margin:auto;" >\r
+ <div sclass="menuButtons">\r
+ <toolbarbutton image="/img/ic_compare_arrows_black_18dp.png" autodisable="self" onClick="@command('showInResults')"\r
+ disabled="@load(vm.selectedObject eq null)" label="Szinkronizálás" />\r
+ <toolbarbutton sclass="col-xs-12" image="/img/ic_shopping_cart_black_18dp.png" autodisable="self" onClick="@command('downloadMedia')"\r
+ disabled="@load(not vm.hasTSMMediaFile)" label="Kosárba" />\r
+ <toolbarbutton image="/img/baseline_share_black_18dp.png" autodisable="self" onClick="@command('copyMediaIdToClipboard')" \r
+ disabled="@load(not sessionScope.userPrincipal.editor or sessionScope.userPrincipal.anonymous or vm.selectedObject eq null)" label="Megosztás" />\r
+ <toolbarbutton image="/img/baseline_edit_black_18dp.png" autodisable="self" onClick="@command('openMetaDataDialog')"\r
+ disabled="@load(not sessionScope.userPrincipal.editor or sessionScope.userPrincipal.anonymous or vm.selectedObject eq null)" label="Szerkesztés" />\r
+ <separator />\r
+ <toolbarbutton autodisable="self" c:onClick="pushTcIn('${arg.field}')" label="IN" />\r
+ <toolbarbutton autodisable="self" c:onClick="pushTcOut('${arg.field}')" label="OUT" />\r
+ </div>\r
</div>\r
</toolbar>\r
<div id="mediaDetails" width="100%" vflex="true" style="padding: 4px; overflow:auto; background-color: white">\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<zk xmlns:w="http://www.zkoss.org/2005/zk/client">\r
+<window id="zkwindow" border="true" width="100%" height="100%" contentStyle="padding:0;" \r
+ apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('user.jobengine.zk.model.TargetsListModel')">\r
+ <vbox vflex="true" width="100%">\r
+ <vbox vflex="max" width="100%" pack="start">\r
+ <checkbox label="${each.name}" onCheck="@command('onCheck', data=each)" forEach="${vm.targets}" />\r
+ </vbox>\r
+\r
+ <vbox vflex="min" pack="end" align="end" width="100%" class="bottomright">\r
+ <div align="" >\r
+ <div class="bottomright">\r
+ <button id="vegrehajt" label="Végrehajt" width="150px" height="80px" />\r
+ </div>\r
+ </div>\r
+ </vbox>\r
+ </vbox>\r
+</window>\r
+</zk>\r
--- /dev/null
+package user.jobengine.zk.model;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import java.util.Set;\r
+\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+import org.zkoss.bind.annotation.BindingParam;\r
+import org.zkoss.bind.annotation.Command;\r
+import org.zkoss.bind.annotation.Init;\r
+import org.zkoss.bind.annotation.NotifyChange;\r
+import org.zkoss.zul.ListModelList;\r
+\r
+import user.commons.RemoteFile;\r
+import user.commons.StoreUri;\r
+import user.commons.config.JSONConfig;\r
+import user.jobengine.db.Store;\r
+\r
+public class DirectoryListModel {\r
+ private static final Logger logger = LogManager.getLogger();\r
+ private Store store = new Store();\r
+ private ListModelList<RemoteFile> files;\r
+ private List<RemoteFile> filesCopy;\r
+ private StoreUri uri;\r
+ private MaestroConfig config = null;\r
+ private FileSizeConverter fileSizeConverter = new FileSizeConverter();\r
+ private String searchText;\r
+\r
+ public void setSourceList() throws Exception {\r
+ filesCopy = new ArrayList<>(files);\r
+ files = new ListModelList<>(filesCopy);\r
+ }\r
+\r
+ public void changeSrcDirectory(RemoteFile selectedFolder) throws Exception {\r
+ if (uri.getCurrentPath() == null){\r
+ uri.setCurrentPath(selectedFolder.getName());\r
+ }else{\r
+ uri.setCurrentPath(uri.getCurrentPath() + "/" + selectedFolder.getName());\r
+ }\r
+\r
+ setSourceList();\r
+ }\r
+ \r
+ @Command\r
+ public void selectedItemChanged (){\r
+ Set<RemoteFile> selection = files.getSelection();\r
+ logger.info("Selected: {}", selection.size());\r
+ }\r
+\r
+ @Init\r
+ public void init() {\r
+ try {\r
+ String key = "jobengine.maestro.config";\r
+ config = JSONConfig.read(key, MaestroConfig.class);\r
+ uri = config.getSourceStoreUri();\r
+\r
+ files = new ListModelList<>(uri.getRemoteFiles()); \r
+ setSourceList();\r
+ } catch (Exception e) {\r
+ logger.error("A forrás file -ok nem elérhetőek: {}", e.getMessage());\r
+ }\r
+ }\r
+\r
+ @Command\r
+ @NotifyChange("srcFiles")\r
+ public void onSourceDoubleClick() {\r
+// if (selectedSource.getIsFolder()){\r
+// try {\r
+// \r
+// changeSrcDirectory(selectedSource);\r
+// } catch (Exception e) {\r
+// logger.error("A forrás file -ok nem elérhetőek: {}", e);\r
+// }\r
+// }\r
+ }\r
+ \r
+ @Command\r
+ @NotifyChange("srcFiles")\r
+ public void onSourceClick(@BindingParam("selectedItem") RemoteFile selectedItem) {\r
+ //selectedSource = selectedItem;\r
+ onSourceDoubleClick();\r
+ }\r
+\r
+ @Command\r
+ @NotifyChange("srcFiles")\r
+ public void refresh() throws Exception {\r
+ if (searchText == null || searchText == ""){\r
+ setSourceList();\r
+ }else{ \r
+ files.clear();\r
+ for (int i=0;i<uri.getRemoteFiles().size();i++){\r
+ if (uri.getRemoteFiles().get(i).getName().contains(searchText)){\r
+ files.add(uri.getRemoteFiles().get(i));\r
+ }\r
+ }\r
+ }\r
+ }\r
+\r
+ @Command\r
+ @NotifyChange("srcFiles")\r
+ public void clearSrcFilter() throws Exception {\r
+ files = new ListModelList<>(filesCopy);\r
+ }\r
+ \r
+ public StoreUri getSourceUri() {\r
+ return uri;\r
+ }\r
+\r
+ public void setSourceUri(StoreUri sourceUri) {\r
+ this.uri = sourceUri;\r
+ }\r
+\r
+ public List<RemoteFile> getSrcFiles() {\r
+ return files;\r
+ }\r
+\r
+ public Store getSourceStore() {\r
+ return store;\r
+ }\r
+\r
+ public void setSourceStore(Store sourceStore) {\r
+ this.store = sourceStore;\r
+ }\r
+\r
+ @Command\r
+ @NotifyChange("srcFiles")\r
+ public void onSrcBack() throws Exception{\r
+ if (uri.getCurrentPath() != null){\r
+ if (uri.getCurrentPath().contains("/")){\r
+ uri.setCurrentPath(uri.getCurrentPath().substring(0, uri.getCurrentPath().lastIndexOf("/")));\r
+ }else{\r
+ uri.setCurrentPath(null);\r
+ }\r
+ setSourceList();\r
+ }\r
+ }\r
+\r
+ public FileSizeConverter getFileSizeConverter() {\r
+ return fileSizeConverter;\r
+ }\r
+ \r
+ public void setFileSizeConverter(FileSizeConverter fileSizeConverter) {\r
+ this.fileSizeConverter = fileSizeConverter;\r
+ }\r
+\r
+\r
+ public List<RemoteFile> getsrcFilesCopy() {\r
+ return filesCopy;\r
+ }\r
+\r
+ public void setsrcFilesCopy(List<RemoteFile> srcFilesCopy) {\r
+ this.filesCopy = srcFilesCopy;\r
+ }\r
+\r
+ public String getSearchText() {\r
+ return searchText;\r
+ }\r
+\r
+ public void setSearchText(String searchText) {\r
+ this.searchText = searchText;\r
+ }\r
+}\r
--- /dev/null
+package user.jobengine.zk.model;\r
+\r
+import org.apache.commons.io.FileUtils;\r
+import org.zkoss.bind.BindContext;\r
+import org.zkoss.bind.Converter;\r
+import org.zkoss.zul.Label;\r
+\r
+public class FileSizeConverter implements Converter<String, Long, Label> {\r
+\r
+ @Override\r
+ public String coerceToUi(Long fileSize, Label paramC, BindContext context) {\r
+ return FileUtils.byteCountToDisplaySize(fileSize);\r
+ }\r
+\r
+ @Override\r
+ public Long coerceToBean(String paramU, Label paramC, BindContext paramBindContext) {\r
+ // TODO Auto-generated method stub\r
+ return null;\r
+ }\r
+}\r
package user.jobengine.zk.model;\r
\r
-import java.io.File;\r
+import java.util.ArrayList;\r
+import java.util.LinkedHashMap;\r
+import java.util.List;\r
+import java.util.Map;\r
+import java.util.Set;\r
\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+import org.zkoss.bind.annotation.BindingParam;\r
+import org.zkoss.bind.annotation.Command;\r
import org.zkoss.bind.annotation.Init;\r
+import org.zkoss.bind.annotation.NotifyChange;\r
+import org.zkoss.zul.ListModelList;\r
+\r
+import user.commons.RemoteFile;\r
+import user.commons.StoreUri;\r
+import user.commons.config.JSONConfig;\r
+import user.jobengine.db.Store;\r
+import user.jobengine.server.IJobEngine;\r
\r
public class MaestroModel {\r
- //private ListModelList<Role> roleList = new ListModelList<Role>();\r
+ private static final Logger logger = LogManager.getLogger();\r
+ private Store sourceStore = new Store();\r
+ private Store targetStore = new Store();\r
+ private ListModelList<RemoteFile> srcFiles;\r
+ private List<RemoteFile> srcFilesCopy;\r
+ private List<RemoteFile> trgFiles;\r
+ private RemoteFile selectedTarget;\r
+ private StoreUri sourceUri;\r
+ private StoreUri targetUri0;\r
+ private StoreUri targetUri1;\r
+ private MaestroConfig sourceConfig = null;\r
+ //private MaestroConfig targetConfig = null;\r
+ private List<MaestroTarget> targetList = null;\r
+ private static final String PROGRAM = "Műsor";\r
+ private static final String PROMO = "Promó";\r
+ private static final String AD = "Reklám";\r
+ private String[] topTypeFilterNames;\r
+ private Map<String, TypeFilter> typeFilters;\r
+ private IJobEngine jobEngine;\r
+ private FileSizeConverter fileSizeConverter = new FileSizeConverter();\r
+ private String[] jobs = new String[] { "Job1", "Job2", "Job3" };\r
+ private String searchText;\r
+\r
+ public void setSourceList() throws Exception {\r
+ srcFilesCopy = new ArrayList<>(srcFiles);\r
+ srcFiles = new ListModelList<>(srcFilesCopy);\r
+ }\r
+\r
+ public void changeSrcDirectory(RemoteFile selectedFolder) throws Exception {\r
+ if (sourceUri.getCurrentPath() == null){\r
+ sourceUri.setCurrentPath(selectedFolder.getName());\r
+ }else{\r
+ sourceUri.setCurrentPath(sourceUri.getCurrentPath() + "/" + selectedFolder.getName());\r
+ }\r
+\r
+ setSourceList();\r
+ //srcFiles.clear();\r
+ //srcFiles.addAll(sourceUri.getRemoteFiles());\r
+ }\r
\r
- //List<String> sourceFileList = new List<String>();\r
- File folder = new File("c:/temp/");\r
- private File[] sourceFileList = folder.listFiles();\r
- //private ArrayList<String> sourceFileList;\r
+ public void changeTrgDirectory(RemoteFile selectedFolder) throws Exception {\r
+ /* if (targetUri.getCurrentPath() == null){\r
+ targetUri.setCurrentPath(selectedFolder.getName());\r
+ }else{\r
+ targetUri.setCurrentPath(targetUri.getCurrentPath() + "/" + selectedFolder.getName());\r
+ }\r
\r
+ trgFiles.clear();\r
+ getTargetList();\r
+ */\r
+ }\r
+ \r
+ public void loadTargets(RemoteFile selectedFolder) throws Exception {\r
+ /* targetUri.setCurrentPath(targetUri.getUri() + "/" + selectedFolder.getName());\r
+ trgFiles = targetUri.getRemoteFiles();\r
+ */\r
+ }\r
\r
+ public void getTargetList() throws Exception {\r
+ /*trgFiles.clear();\r
+ targetList = sourceConfig.getTargets();\r
+ for(MaestroTarget mt : targetList){\r
+ targetUri = mt.getStoreUri();\r
+ trgFiles.addAll(targetUri.getRemoteFiles());\r
+ }\r
+ Collections.sort(trgFiles, new Comparator<RemoteFile>() {\r
+ @Override\r
+ public int compare(RemoteFile r1, RemoteFile r2) {\r
+ return ((r1.getIsFolder() ? "0" : "1")+ r1.getName()).compareTo(((r2.getIsFolder() ? "0" : "1")+ r2.getName()));\r
+ }\r
+ });\r
+ */\r
+ }\r
+ \r
+ @Command\r
+ public void selectedItemChanged (){\r
+ Set<RemoteFile> selection = srcFiles.getSelection();\r
+ logger.info("Selected: {}", selection.size());\r
+ }\r
+\r
@Init\r
public void init() {\r
- //File folder = new File("/Users/you/folder/");\r
- //File[] listOfFiles = folder.listFiles();\r
+ typeFilters = new LinkedHashMap<>();\r
+ addTypeFilter(TypeFilter.as(PROGRAM, "RED200", "ic_language_black_18dp.png"));\r
+ addTypeFilter(TypeFilter.as(PROMO, "RED100", "ic_perm_camera_mic_black_18dp.png"));\r
+ addTypeFilter(TypeFilter.as(AD, "TEAL200", "ic_theaters_black_18dp.png"));\r
+ setTopTypeFilterNames(new String[] { PROGRAM, PROMO, AD });\r
+\r
+ String message = "A forrás file -ok nem elérhetőek: {}";\r
+ try {\r
+ String key = "jobengine.maestro.config";\r
+ sourceConfig = JSONConfig.read(key, MaestroConfig.class);\r
+ sourceUri = sourceConfig.getSourceStoreUri();\r
+ //sourceConfig.getTargets().get(0).getStoreUri()\r
+ srcFiles = new ListModelList<>(sourceUri.getRemoteFiles()); \r
+ setSourceList();\r
+ targetUri0 = sourceConfig.getTargets().get(0).getStoreUri();\r
+ targetUri1 = sourceConfig.getTargets().get(1).getStoreUri();\r
+\r
+ //target files\r
+ //message = "A cél file -ok nem elérhetőek: {}";\r
+ //trgFiles = new ArrayList<RemoteFile>();\r
+ //getTargetList();\r
+ } catch (Exception e) {\r
+ logger.error(message, e.getMessage());\r
+ }\r
+ }\r
+\r
+ @Command\r
+ @NotifyChange("srcFiles")\r
+ public void onSourceDoubleClick() {\r
+// if (selectedSource.getIsFolder()){\r
+// try {\r
+// \r
+// changeSrcDirectory(selectedSource);\r
+// } catch (Exception e) {\r
+// logger.error("A forrás file -ok nem elérhetőek: {}", e);\r
+// }\r
+// }\r
+ }\r
+ \r
+ /*@Command\r
+ @NotifyChange("trgFiles")\r
+ public void onTargetDoubleClick() {\r
+ if (selectedTarget.getIsFolder()){\r
+ try {\r
+ \r
+ changeTrgDirectory(selectedTarget);\r
+ } catch (Exception e) {\r
+ logger.error("A cél file -ok nem elérhetőek: {}", e);\r
+ }\r
+ }\r
+ }*/\r
+ \r
+ @Command\r
+ @NotifyChange("srcFiles")\r
+ public void onSourceClick(@BindingParam("selectedItem") RemoteFile selectedItem) {\r
+ //selectedSource = selectedItem;\r
+ onSourceDoubleClick();\r
+ }\r
+ \r
+ /*@Command\r
+ @NotifyChange("trgFiles")\r
+ public void onTargetClick(@BindingParam("selectedItem") RemoteFile selectedItem) {\r
+ selectedTarget = selectedItem;\r
+ onTargetDoubleClick();\r
+ }*/\r
\r
- for (File file : getSourceFileList()) {\r
- if (file.isFile()) {\r
- System.out.println(file.getAbsoluteFile());\r
- System.out.println(file.getParent());\r
- }\r
+ @Command\r
+ @NotifyChange("srcFiles")\r
+ public void refresh() throws Exception {\r
+ if (searchText == null || searchText == ""){\r
+ setSourceList();\r
+ }else{ \r
+ srcFiles.clear();\r
+ for (int i=0;i<sourceUri.getRemoteFiles().size();i++){\r
+ if (sourceUri.getRemoteFiles().get(i).getName().contains(searchText)){\r
+ srcFiles.add(sourceUri.getRemoteFiles().get(i));\r
+ }\r
+ }\r
}\r
- /*sourceFileList = new ArrayList<String>(); \r
- sourceFileList.add("Alma");\r
- sourceFileList.add("Körte");\r
- sourceFileList.add("Narancs");*/\r
}\r
\r
+ @Command\r
+ @NotifyChange("trgFiles")\r
+ public void changeTrgFilter(@BindingParam("ttext") String ttext) throws Exception {\r
+ /* trgFiles.clear();\r
+ for (int i=0;i<targetUri.getRemoteFiles().size();i++){\r
+ if (targetUri.getRemoteFiles().get(i).getName().contains(ttext)){\r
+ trgFiles.add(targetUri.getRemoteFiles().get(i));\r
+ //getTargetList();\r
+ }\r
+ }\r
+ */\r
+ }\r
\r
- public File[] getSourceFileList() {\r
- return sourceFileList;\r
+ @Command\r
+ @NotifyChange("srcFiles")\r
+ public void clearSrcFilter() throws Exception {\r
+ srcFiles = new ListModelList<>(srcFilesCopy);\r
+ }\r
+ \r
+ @Command\r
+ @NotifyChange("trgFiles")\r
+ public void clearTrgFilter() throws Exception {\r
+ /* trgFiles.clear();\r
+ trgFiles.addAll(targetUri.getRemoteFiles());\r
+ */\r
+ }\r
+ \r
+ @Command\r
+ @NotifyChange({ "trgFiles"})\r
+ public void trg1(@BindingParam("state") boolean state ) {\r
+ if (state) {\r
+ //sourceConfig.getTargets().get(0).getStoreUri().setUri("c:/temp1");\r
+ sourceConfig.getTargets().get(0).setStoreUri(getTargetUri1());\r
+ }else {\r
+ //sourceConfig.getTargets().get(0).getStoreUri().setUri("");\r
+ sourceConfig.getTargets().get(0).setStoreUri(null);\r
+ }\r
+ }\r
+ \r
+ @Command\r
+ @NotifyChange({ "trgFiles"})\r
+ public void trg2(@BindingParam("state") boolean state ) {\r
+ if (state) {\r
+ //sourceConfig.getTargets().get(1).getStoreUri().setUri("c:/temp2");\r
+ sourceConfig.getTargets().get(1).setStoreUri(getTargetUri1());\r
+ }else {\r
+ //sourceConfig.getTargets().get(1).getStoreUri().setUri("");\r
+ sourceConfig.getTargets().get(1).setStoreUri(null);\r
+ }\r
+ }\r
+\r
+ \r
+ public StoreUri getSourceUri() {\r
+ return sourceUri;\r
}\r
\r
- public void setSourceFileList(File[] sourceFileList) {\r
- this.sourceFileList = sourceFileList;\r
+ public void setSourceUri(StoreUri sourceUri) {\r
+ this.sourceUri = sourceUri;\r
}\r
\r
+ public StoreUri getTargetUri0() {\r
+ return targetUri0;\r
+ }\r
+\r
+ public void setTargetUri0(StoreUri targetUri) {\r
+ this.targetUri0 = targetUri;\r
+ }\r
+ \r
+ public StoreUri getTargetUri1() {\r
+ return targetUri1;\r
+ }\r
+\r
+ public void setTargetUri1(StoreUri targetUri) {\r
+ this.targetUri1 = targetUri;\r
+ }\r
+ \r
+ /*public String getTargetUri() {\r
+ return sourceConfig.getSourceStoreUri().getUri();\r
+ }\r
+ \r
+ public void setTargetUri(String targetUri) {\r
+ sourceConfig.getSourceStoreUri().setUri(targetUri);\r
+ }*/\r
+\r
+ public List<RemoteFile> getSrcFiles() {\r
+ return srcFiles;\r
+ }\r
+\r
+ public Store getSourceStore() {\r
+ return sourceStore;\r
+ }\r
+\r
+ public void setSourceStore(Store sourceStore) {\r
+ this.sourceStore = sourceStore;\r
+ }\r
+\r
+ public List<RemoteFile> gettrgFiles() {\r
+ return trgFiles;\r
+ }\r
+\r
+ public void settrgFiles(List<RemoteFile> trgFiles) {\r
+ this.trgFiles = trgFiles;\r
+ }\r
+ \r
+ public String[] getJobs() {\r
+ return jobs;\r
+ }\r
+ \r
+ public void setJobs(String[] jobs) {\r
+ this.jobs = jobs;\r
+ }\r
+\r
+ private void addTypeFilter(TypeFilter typeFilter) {\r
+ typeFilters.put(typeFilter.getName(), typeFilter);\r
+ }\r
+ \r
+ public String[] getTopTypeFilterNames() {\r
+ return topTypeFilterNames;\r
+ }\r
+\r
+ public void setTopTypeFilterNames(String[] topTypeFilterNames) {\r
+ this.topTypeFilterNames = topTypeFilterNames;\r
+ }\r
+ \r
+ public Map<String, TypeFilter> getTypeFilters() {\r
+ return typeFilters;\r
+ }\r
+ \r
+
+ public Store getTargetStore() {\r
+ return targetStore;\r
+ }\r
+\r
+ public void setTargetStore(Store targetStore) {\r
+ this.targetStore = targetStore;\r
+ }\r
+\r
+\r
+ public IJobEngine getJobEngine() {\r
+ return jobEngine;\r
+ }\r
+\r
+ public void setJobEngine(IJobEngine jobEngine) {\r
+ this.jobEngine = jobEngine;\r
+ }\r
+ \r
+ @Command\r
+ @NotifyChange("srcFiles")\r
+ public void onSrcBack() throws Exception{\r
+ if (sourceUri.getCurrentPath() != null){\r
+ if (sourceUri.getCurrentPath().contains("/")){\r
+ sourceUri.setCurrentPath(sourceUri.getCurrentPath().substring(0, sourceUri.getCurrentPath().lastIndexOf("/")));\r
+ }else{\r
+ sourceUri.setCurrentPath(null);\r
+ }\r
+ setSourceList();\r
+ }\r
+ }\r
+ \r
+ @Command\r
+ @NotifyChange("trgFiles")\r
+ public void onTrgBack() throws Exception{\r
+ /*if (targetUri.getCurrentPath() != null){\r
+ if (targetUri.getCurrentPath().contains("/")){\r
+ targetUri.setCurrentPath(targetUri.getCurrentPath().substring(0, targetUri.getCurrentPath().lastIndexOf("/")));\r
+ }else{\r
+ targetUri.setCurrentPath(null);\r
+ }\r
+ trgFiles.clear();\r
+ trgFiles.addAll(targetUri.getRemoteFiles());\r
+ clearTrgFilter();\r
+ }*/\r
+ }\r
+\r
+ public FileSizeConverter getFileSizeConverter() {\r
+ return fileSizeConverter;\r
+ }\r
+ \r
+ public void setFileSizeConverter(FileSizeConverter fileSizeConverter) {\r
+ this.fileSizeConverter = fileSizeConverter;\r
+ }\r
+\r
+ public RemoteFile getSelectedTarget() {\r
+ return selectedTarget;\r
+ }\r
+\r
+ public void setSelectedTarget(RemoteFile selectedTarget) {\r
+ this.selectedTarget = selectedTarget;\r
+ }\r
+\r
+ public List<RemoteFile> getsrcFilesCopy() {\r
+ return srcFilesCopy;\r
+ }\r
+\r
+ public void setsrcFilesCopy(List<RemoteFile> srcFilesCopy) {\r
+ this.srcFilesCopy = srcFilesCopy;\r
+ }\r
+\r
+ public String getSearchText() {\r
+ return searchText;\r
+ }\r
+\r
+ public void setSearchText(String searchText) {\r
+ this.searchText = searchText;\r
+ }\r
}\r
private static final Logger logger = LogManager.getLogger();\r
private static final String PAGES_RETRIEVEBATCHSELECTOR_ZUL = "/pages/retrievebatchselector.zul";\r
private String basketMenuLabel = "(0)";\r
- private List<ArchivedMedia> basketItems;\r
+ private List<ArchivedMedia> basketItems = new ArrayList<>();\r
\r
@Wire\r
Menuitem basketIMenuItem;\r
logger.warn("Item to select is null");\r
return;\r
}\r
- if (basketItems == null)\r
- basketItems = new ArrayList<>();\r
+ \r
if (select) {\r
if (!basketItems.contains(item)) {\r
basketItems.add(item);\r
--- /dev/null
+package user.jobengine.zk.model;\r
+\r
+import java.util.LinkedHashMap;\r
+import java.util.Map;\r
+\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+import org.zkoss.bind.annotation.Init;\r
+\r
+import user.commons.config.JSONConfig;\r
+\r
+public class PlannerListModel {\r
+ private MaestroConfig config = null;\r
+ private static final Logger logger = LogManager.getLogger();\r
+ private static final String PROGRAM = "Műsor";\r
+ private static final String PROMO = "Promó";\r
+ private static final String AD = "Reklám";\r
+ private String[] topTypeFilterNames;\r
+ private Map<String, TypeFilter> typeFilters;\r
+ \r
+ @Init\r
+ public void init() {\r
+ typeFilters = new LinkedHashMap<>();\r
+ addTypeFilter(TypeFilter.as(PROGRAM, "RED200", "ic_language_black_18dp.png"));\r
+ addTypeFilter(TypeFilter.as(PROMO, "RED100", "ic_perm_camera_mic_black_18dp.png"));\r
+ addTypeFilter(TypeFilter.as(AD, "TEAL200", "ic_theaters_black_18dp.png"));\r
+ setTopTypeFilterNames(new String[] { PROGRAM, PROMO, AD });\r
+ \r
+ String key = "jobengine.maestro.config";\r
+ try {\r
+ config = JSONConfig.read(key, MaestroConfig.class);\r
+ } catch (Exception e) {\r
+ logger.error("Hiba a config file beállításánál {}", e.getMessage());\r
+ }\r
+ }\r
+ \r
+ private void addTypeFilter(TypeFilter typeFilter) {\r
+ typeFilters.put(typeFilter.getName(), typeFilter);\r
+ }\r
+ \r
+ public String[] getTopTypeFilterNames() {\r
+ return topTypeFilterNames;\r
+ }\r
+\r
+ public void setTopTypeFilterNames(String[] topTypeFilterNames) {\r
+ this.topTypeFilterNames = topTypeFilterNames;\r
+ }\r
+ \r
+ public Map<String, TypeFilter> getTypeFilters() {\r
+ return typeFilters;\r
+ }\r
+\r
+}\r
package user.jobengine.zk.model;\r
\r
+import java.util.ArrayList;\r
import java.util.List;\r
import java.util.Map;\r
-import java.util.stream.Collectors;\r
\r
import org.apache.commons.lang.StringUtils;\r
import org.apache.logging.log4j.LogManager;\r
\r
public List<ArchivedMedia> getBasketItems() {\r
setDisabled(menuModel.getBasketItems() == null || menuModel.getBasketItems().size() == 0);\r
- return menuModel.getBasketItems();\r
- }\r
-\r
+ List<ArchivedMedia> basketItems = menuModel.getBasketItems();\r
+ \r
+ //////////TEST CODE KESOBB TOROLNI ++++++++++++++++\r
+ if(basketItems == null) basketItems = new ArrayList<ArchivedMedia>();\r
+ if(basketItems.size() == 0){\r
+ for(int c=0; c<20; c++){\r
+ basketItems.add(createFakeArchivedMedia(c));\r
+ }\r
+ }\r
+ \r
+ \r
+ return basketItems;\r
+ }\r
+\r
+ //////////TEST CODE KESOBB TOROLNI ++++++++++++++++\r
+ private ArchivedMedia createFakeArchivedMedia(int c){\r
+ ArchivedMedia ret = new ArchivedMedia();\r
+ Media media = new Media();\r
+ media.setId(c);\r
+ media.setTitle("title_" + c);\r
+ media.setMediaFilesName("mediaFilesName_" + c);\r
+ ret.setMedia(media);\r
+ return ret;\r
+ }\r
+ \r
+ \r
public String getEmail() {\r
return email;\r
}\r
return houseId;\r
}\r
\r
- private List<Media> getMedias() {\r
+ private List<ArchivedMedia> getMedias() {\r
List<ArchivedMedia> basket = getBasketItems();\r
- List<Media> result = basket.stream().map(i -> {\r
- return i.getMedia();\r
- }).collect(Collectors.toList());\r
- return result;\r
+// List<Media> result = basket.stream().map(i -> {\r
+// return i.getMedia();\r
+// }).collect(Collectors.toList());\r
+ return basket;\r
}\r
\r
public ListModel<String> getReloadTypes() {\r
import org.zkoss.bind.annotation.ContextParam;\r
import org.zkoss.bind.annotation.ContextType;\r
import org.zkoss.bind.annotation.NotifyChange;\r
+import org.zkoss.json.JSONObject;\r
import org.zkoss.zk.ui.Component;\r
import org.zkoss.zk.ui.Executions;\r
import org.zkoss.zk.ui.event.Event;\r
addTypeFilter(TypeFilter.as(GENERIC, "YELLOW200", "ic_view_quilt_black_18dp.png"));\r
addTypeFilter(TypeFilter.as(GENERIC_ORIGINAL, "YELLOW200", "ic_view_quilt_black_18dp.png"));\r
topTypeFilterNames = new String[] { NEWS_MATERIAL, RAW_NEWS_MATERIAL, ECHO_RECORDING, RECORDING, GENERIC };\r
- bottomTypeFilterNames = new String[] { ECHO_MATERIAL, MATERIAL, RAW_MATERIAL, ECHO_PROMO, PROMO, RAW_PROMO, ECHO_AD, AD, RAW_AD };\r
+ bottomTypeFilterNames = new String[] { ECHO_MATERIAL, MATERIAL, RAW_MATERIAL, ECHO_PROMO, PROMO, RAW_PROMO,\r
+ ECHO_AD, AD, RAW_AD };\r
\r
columnHeaders = new LinkedHashMap<>();\r
columnHeaders.put("ID", "mediahouseid");\r
itemsGrid.setPageSize(SessionUtil.getUserPageSize());\r
setSettingsPageSize(itemsGrid.getPageSize());\r
if (!allChecked)\r
- Clients.showNotification(String.format("Figyelem!<br><br><span style='white-space:nowrap'> A keresési paraméterek megváltoztak! </span>"),\r
+ Clients.showNotification(\r
+ String.format(\r
+ "Figyelem!<br><br><span style='white-space:nowrap'> A keresési paraméterek megváltoztak! </span>"),\r
"warning", searchFiltersMenu, "end_center", 3000);\r
}\r
\r
\r
@Command\r
public void copyMediaIdToClipboard() {\r
- String port = (Executions.getCurrent().getServerPort() == 80) ? "" : (":" + Executions.getCurrent().getServerPort());\r
+ String port = (Executions.getCurrent().getServerPort() == 80) ? ""\r
+ : (":" + Executions.getCurrent().getServerPort());\r
String baseURL = Executions.getCurrent().getScheme() + "://" + Executions.getCurrent().getServerName() + port\r
+ Executions.getCurrent().getContextPath();\r
String url = String.format("%s/?%s=%d", baseURL, MEDIA_ID, selectedObject.getMedia().getId());\r
- String email = String.format("mailto:?subject=Média címe: %s &body=A média itt tekinthető meg: %s", selectedObject.getMedia().getTitle(), url);\r
+ String email = String.format("mailto:?subject=Média címe: %s &body=A média itt tekinthető meg: %s",\r
+ selectedObject.getMedia().getTitle(), url);\r
// Toolkit toolkit = Toolkit.getDefaultToolkit();\r
// Clipboard clipboard = toolkit.getSystemClipboard();\r
// StringSelection strSel = new StringSelection(url);\r
// clipboard.setContents(strSel, null);\r
- // Messagebox.show("A médiához szükséges URL a vágólapra másolva, az URL a következő:\n" + email, "", Messagebox.OK, Messagebox.NONE);\r
+ // Messagebox.show("A médiához szükséges URL a vágólapra másolva, az URL\r
+ // a következő:\n" + email, "", Messagebox.OK, Messagebox.NONE);\r
Executions.getCurrent().sendRedirect(email);\r
}\r
\r
return;\r
// Map<String, Object> arguments = new HashMap<String, Object>();\r
// arguments.put(MEDIACUBEMEDIA, this.selectedObject.getMedia());\r
- // Window window = (Window) Executions.createComponents(PAGES_RETRIEVESELECTOR_ZUL, null, arguments);\r
+ // Window window = (Window)\r
+ // Executions.createComponents(PAGES_RETRIEVESELECTOR_ZUL, null,\r
+ // arguments);\r
// window.doModal();\r
\r
MenuModel model = (MenuModel) SessionUtil.getAttribute(SessionUtil.MENUMODEL);\r
}\r
\r
@Command\r
- public void onTcIn(@ContextParam(ContextType.TRIGGER_EVENT) Event event) {\r
- //event.getData() a tcin\r
+ public void onTcIn(@ContextParam(ContextType.TRIGGER_EVENT) Event event) throws Exception\r
+ {\r
+ ////////////Végén törölni innen!!!\r
+ if (selectedObject == null) { \r
+ selectedObject = new ArchivedMedia();\r
+ }\r
+ ////////////Végén törölni eddig!!!\r
+ \r
+ JSONObject jsObject = (JSONObject)event.getData();\r
+ Double doubleVar = 0.0; \r
+ if (!jsObject.get("meta").equals(0)){ \r
+ doubleVar = (Double)jsObject.get("meta");\r
+ }\r
+ \r
+ if (doubleVar.floatValue() >= ((selectedObject.getTcOut() == null)?9999999999999999999999.9:selectedObject.getTcOut())){\r
+ throw new Exception("A kilépés időpontjának későbbinek kell lennie mint a belépés időpontja!");\r
+ }else{\r
+ selectedObject.setTcIn(new Float(doubleVar.floatValue()));\r
+ }\r
+ }\r
+ \r
+ @Command\r
+ public void onTcOut(@ContextParam(ContextType.TRIGGER_EVENT) Event event) throws Exception\r
+ {\r
+ ////////////Végén törölni innen!!!\r
+ if (selectedObject == null) { \r
+ selectedObject = new ArchivedMedia();\r
+ }\r
+ ////////////Végén törölni eddig!!!\r
+ \r
+ JSONObject jsObject = (JSONObject)event.getData();\r
+ Double doubleVar = 0.0; \r
+ if (!jsObject.get("meta").equals(0)){ \r
+ doubleVar = (Double)jsObject.get("meta");\r
+ }\r
+ \r
+ if (doubleVar.floatValue() <= ((selectedObject.getTcIn() == null)?0.0:selectedObject.getTcIn())){\r
+ throw new Exception("A kilépés időpontjának későbbinek kell lennie mint a belépés időpontja!");\r
+ }else{\r
+ selectedObject.setTcOut(new Float(doubleVar.floatValue()));\r
+ }\r
}\r
\r
@Command\r
@Command\r
public void openMetaDataDialog() {\r
String template = "/pages/metadatadetails.zul";\r
- Window window = (Window) Executions.createComponents(template, null, ListUtils.asMap("selectedObject", selectedObject));\r
+ Window window = (Window) Executions.createComponents(template, null,\r
+ ListUtils.asMap("selectedObject", selectedObject));\r
window.doModal();\r
}\r
\r
logger.info(event);\r
}\r
\r
- // public void rowSelected(@BindingParam("item") Object media, @BindingParam("isChecked") boolean isChecked) {\r
+ // public void rowSelected(@BindingParam("item") Object media,\r
+ // @BindingParam("isChecked") boolean isChecked) {\r
@Command\r
public void rowMouseOver(@BindingParam("evt") MouseEvent event) {\r
logger.info(event);\r
\r
@Command\r
@NotifyChange({ "selectedObject", "hasLowresMediaFile", "hasTSMMediaFile", "lowresMediaFilePath" })\r
- public void select(@BindingParam("selectedObject") ArchivedMedia selectedObject, @ContextParam(ContextType.BIND_CONTEXT) BindContext ctx) {\r
+ public void select(@BindingParam("selectedObject") ArchivedMedia selectedObject,\r
+ @ContextParam(ContextType.BIND_CONTEXT) BindContext ctx) {\r
Event event = ctx.getTriggerEvent();\r
- //Nem mindig a row a target, ha a kepre kattintunk akkor az image\r
- //selectedRowIndex = ((Row) event.getTarget()).getIndex();\r
+ // Nem mindig a row a target, ha a kepre kattintunk akkor az image\r
+ // selectedRowIndex = ((Row) event.getTarget()).getIndex();\r
highlight(this.selectedObject, false);\r
setSelectedObject(selectedObject);\r
highlight(this.selectedObject, true);\r
\r
@NotifyChange("typeFilters")\r
public void setAllChecked(boolean allChecked) {\r
+ ////////////Végén törölni innen!!!\r
+ if (allChecked) {\r
+ Clients.evalJavaScript("setSource('/img/Mediacube_todo2.mp4')");\r
+ } else {\r
+ // Clients.evalJavaScript("setSource('/img/mediacube_logo_v2_50x50.png')");\r
+ Clients.evalJavaScript("setSource()");\r
+ }\r
+ ////////////Végén törölni eddig!!!\r
this.allChecked = allChecked;\r
for (String key : typeFilters.keySet())\r
typeFilters.get(key).setChecked(allChecked);\r
\r
try {\r
String video = getLowresMediaFilePath();\r
- Clients.evalJavaScript("setSource('" + video + "')");\r
+ if (video.contentEquals(null)) {\r
+ Clients.evalJavaScript("setSource('/img/mediacube_logo_v2_50x50.png')");\r
+ } else {\r
+ Clients.evalJavaScript("setSource('" + video + "')");\r
+ }\r
\r
- //ret += "&poster=/img/mediacube_logo_v2_50x50.png";\r
+ // Clients.evalJavaScript("setSource('/img/Mediacube_todo2.mp4')");\r
\r
} catch (Exception e) {\r
logger.error(e);\r
private void showExternalMediaID() {\r
String mediaID = SessionUtil.getQueryParameter(MEDIA_ID);\r
if (mediaID != null)\r
- searchResult = new InitializedCachedListModel(mediaID, searchValue, new ArrayList<String>(), orderBy, orderAscending);\r
+ searchResult = new InitializedCachedListModel(mediaID, searchValue, new ArrayList<String>(), orderBy,\r
+ orderAscending);\r
}\r
\r
@Command\r
// preventAfterRender = true;\r
if (activePageIndex != itemsGrid.getActivePage()) {\r
itemsGrid.setActivePage(activePageIndex);\r
- logger.info("Selected media is shown in the results, which can be found on {} page and also it will be highlighted.", activePageIndex + 1);\r
+ logger.info(\r
+ "Selected media is shown in the results, which can be found on {} page and also it will be highlighted.",\r
+ activePageIndex + 1);\r
} else {\r
onAfterRenderGrid();\r
logger.info("Selected media is shown in the results, which can be found on opened page.");\r
--- /dev/null
+package user.jobengine.zk.model;\r
+\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+import org.zkoss.bind.annotation.BindingParam;\r
+import org.zkoss.bind.annotation.Command;\r
+import org.zkoss.bind.annotation.Init;\r
+import org.zkoss.zul.ListModelList;\r
+\r
+import user.commons.config.JSONConfig;\r
+\r
+public class TargetsListModel {\r
+ private static final Logger logger = LogManager.getLogger();\r
+ private MaestroConfig config = null;\r
+ private ListModelList<MaestroTarget> targets;\r
+\r
+ @Init\r
+ public void init() {\r
+ String key = "jobengine.maestro.config";\r
+ try {\r
+ config = JSONConfig.read(key, MaestroConfig.class);\r
+ targets = new ListModelList<>(config.getTargets());\r
+ } catch (Exception e) {\r
+ logger.error("Hiba a config file beállításánál {}", e.getMessage());\r
+ }\r
+ }\r
+\r
+ public ListModelList<MaestroTarget> getTargets() {\r
+ return targets;\r
+ }\r
+ \r
+ @Command\r
+ public void onCheck(@BindingParam("data") MaestroTarget data){\r
+ //@ContextParam(ContextType.TRIGGER_EVENT) CheckEvent event,\r
+ \r
+ }\r
+}\r