EnableDeinterlace(videoDecoder);\r
IBaseFilter sampleGrabber = AddSampleGrabber(graphBuilder, videoDecoder);\r
SampleGrabber = (ISampleGrabber)sampleGrabber;\r
- IBaseFilter videoRenderer = AddRenderer(graphBuilder, sampleGrabber, handle);\r
- //IBaseFilter videoRenderer = AddSimpleRenderer(graphBuilder, sampleGrabber, handle);\r
+ //IBaseFilter videoRenderer = AddRenderer(graphBuilder, sampleGrabber, handle);\r
+ IBaseFilter videoRenderer = AddSimpleRenderer(graphBuilder, sampleGrabber, handle);\r
FilterGraphTools.RenderPin(graphBuilder, sampleGrabber, "Output");\r
ConfigureSimpleRenderer(handle);\r
\r
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Djavax.ws.rs.ext.RuntimeDelegate=org.jboss.resteasy.spi.ResteasyProviderFactory -Dorg.eclipse.epp.logging.aeri.skipReports=true -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Djobengine.jobsteps.root="${workspace_loc}/user.jobengine.executors/config" -Djobengine.jobtemplates.root="${workspace_loc}/user.jobengine.executors/jobtemplates" -Djobengine.db.url=jdbc:db2://10.11.1.90:50000/mc:retrieveMessagesFromServerOnGetMessage=true; -Djobengine.db.user=db2admin -Djobengine.db.password=password -Djobengine.loglevel=INFO -Dlog4j.configurationFile="${workspace_loc}/-configuration/log4j2.xml" -Djobengine.jobsteps.alternate.root="${workspace_loc}/user.jobengine.executors/bin/" -Djetty.home="${workspace_loc:}/-configuration/jetty" -Djetty.etc.config.urls=etc/user-jetty.xml,etc/user-jetty-ssl.xml,etc/user-jetty-ssl-context.xml,,etc/user-jetty-http.xml,etc/user-jetty-https.xml -Dorg.eclipse.jetty.webapp.basetempdir=c:\temp\jetty -Djava.io.tmpdir=c:\temp\jetty -Djobengine.octopus.api.address=http://10.10.1.11/api/v1 -Djobengine.octopus.api.user=mam -Djobengine.octopus.api.password=napocska -Djobengine.nosql.db.url=jdbc:db2://10.11.1.90:50000/mc:retrieveMessagesFromServerOnGetMessage=true; -Djobengine.nosql.db.user=db2admin -Djobengine.nosql.db.password=password -Djobengine.nosql.db.schema=test -Djobengine.selenio.address=http://10.10.1.71:44000/TranscodeMgrWS?wsdl -Djobengine.selenio.projectfilepath=\\10.10.1.71\Data\Blueprints\MP4_H264_AAC.zenium -Djobengine.transcoder.address=http://10.11.1.111:65445/api/json/v1/ -Djobengine.transcoder.template=MP4 -Djobengine.transcoder.version=1 -Djobengine.jobscheduling.config="${workspace_loc}/-configuration/scheduledjobs.json" -Djobengine.nexio.db.url=jdbc:sqlserver://10.10.1.59:1433;databaseName=NXDB; -Djobengine.nexio.db.user=sa -Djobengine.nexio.db.password=resolve -Djobengine.planair.db.url=jdbc:sqlserver://10.11.254.86;databaseName=PA_Vivantis; -Djobengine.planair.db.user=MAM -Djobengine.planair.db.password=VDani -Dnexio.host=192.168.0.12 -Djobengine.nexio.name=testnexioclips -Dnexio.useMOSGateway=false -Dnexio.disable=true -Djobengine.octopus.rundowns.name=rundowns181026 -Djobengine.octopus.storyfolders.name=storyfolders181026 -Djobengine.octopus.stories.name=stories181026 -Djobengine.maestro.config="${workspace_loc}/-configuration/maestro.json" -Djobengine.mediacube.config="${workspace_loc}/-configuration/mediacube.json" -Dgui.statistics.disable=true -Dgui.help.disable=true -Dgui.editor.disable=true -Djobengine.mediafinder.external=false"/>\r
<stringAttribute key="pde.version" value="3.3"/>\r
<booleanAttribute key="show_selected_only" value="false"/>\r
-<stringAttribute key="target_bundles" value="cglib@default:default,com.fasterxml.jackson.core.jackson-annotations@default:default,com.fasterxml.jackson.core.jackson-core@default:default,com.fasterxml.jackson.core.jackson-databind@default:default,com.fasterxml.jackson.datatype.jackson-datatype-joda@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-base@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider@default:default,com.fasterxml.jackson.module.jackson-module-jaxb-annotations@default:default,com.ibm.db2jcc4@default:default,com.ibm.nosql@default:default,com.microsoft.sqlserver.sqljdbc@default:default,humble.video.noarch@default:default,humble.video.windows@default:default,javax.annotation-api@default:default,javax.mail@default:default,javax.servlet-api@default:default,javax.ws.rs-api@default:default,jcifs@default:default,joda-time@default:default,org.apache.aries.spifly.dynamic.bundle@default:default,org.apache.aries.util@default:default,org.apache.commons.beanutils@default:default,org.apache.commons.collections@default:default,org.apache.commons.digester@default:default,org.apache.commons.io@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging@default:default,org.apache.commons.net@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.apache.logging.log4j.api@1:true,org.apache.logging.log4j.core@default:default,org.apache.logging.log4j.slf4j-impl@default:default,org.apache.servicemix.bundles.quartz@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.util@default:default,org.eclipse.jetty.deploy@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.osgi.boot@default:true,org.eclipse.jetty.schemas@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.jetty.webapp@default:default,org.eclipse.jetty.websocket.api@default:default,org.eclipse.jetty.websocket.client@default:default,org.eclipse.jetty.websocket.common@default:default,org.eclipse.jetty.websocket.server@default:default,org.eclipse.jetty.websocket.servlet@default:default,org.eclipse.jetty.xml@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.hamcrest.core@default:default,org.jboss.resteasy.client@default:default,org.jboss.resteasy.jackson2-provider@default:default,org.jboss.resteasy.jaxrs-api@default:default,org.jboss.resteasy.jaxrs@default:default,org.jmock.junit4@default:default,org.jmock@default:default,org.junit@default:default,org.mybatis.mybatis@default:default,org.objectweb.asm.commons@default:default,org.objectweb.asm.tree@default:default,org.objectweb.asm@default:default,slf4j.api@default:default,slf4j.simple@default:false"/>\r
+<stringAttribute key="target_bundles" value="cglib@default:default,com.fasterxml.jackson.core.jackson-annotations@default:default,com.fasterxml.jackson.core.jackson-core@default:default,com.fasterxml.jackson.core.jackson-databind@default:default,com.fasterxml.jackson.datatype.jackson-datatype-joda@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-base@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider@default:default,com.fasterxml.jackson.module.jackson-module-jaxb-annotations@default:default,com.ibm.db2jcc4@default:default,com.ibm.nosql@default:default,com.microsoft.sqlserver.sqljdbc@default:default,humble.video.noarch@default:default,humble.video.windows@default:default,javax.annotation-api@default:default,javax.mail@default:default,javax.servlet-api@default:default,javax.ws.rs-api@default:default,jcifs@default:default,joda-time@default:default,org.apache.aries.spifly.dynamic.bundle@default:default,org.apache.aries.util@default:default,org.apache.commons.beanutils@default:default,org.apache.commons.collections@default:default,org.apache.commons.digester@default:default,org.apache.commons.io@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging@default:default,org.apache.commons.net@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.apache.logging.log4j.api@1:true,org.apache.logging.log4j.core@default:default,org.apache.logging.log4j.slf4j-impl@default:default,org.apache.servicemix.bundles.quartz@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.util@default:default,org.eclipse.jetty.deploy@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.osgi.boot@default:true,org.eclipse.jetty.schemas@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.jetty.webapp@default:default,org.eclipse.jetty.websocket.api@default:default,org.eclipse.jetty.websocket.client@default:default,org.eclipse.jetty.websocket.common@default:default,org.eclipse.jetty.websocket.server@default:default,org.eclipse.jetty.websocket.servlet@default:default,org.eclipse.jetty.xml@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.hamcrest.core@default:default,org.jboss.resteasy.client@default:default,org.jboss.resteasy.jackson2-provider@default:default,org.jboss.resteasy.jaxrs-api@default:default,org.jboss.resteasy.jaxrs@default:default,org.jmock.junit4@default:default,org.jmock@default:default,org.junit@default:default,org.mybatis.mybatis@default:default,org.objectweb.asm.commons@default:default,org.objectweb.asm.tree@default:default,org.objectweb.asm@default:default,org.omnifaces@default:default,slf4j.api@default:default,slf4j.simple@default:false"/>\r
<booleanAttribute key="tracing" value="false"/>\r
<booleanAttribute key="useCustomFeatures" value="false"/>\r
<booleanAttribute key="useDefaultConfigArea" value="true"/>\r
</output>\r
</outputs>\r
</calljobstep>\r
- <calljobstep id="step3" type="user.jobengine.server.steps.FakeStep" weight="1">\r
- <inputs>\r
- <input>\r
- <variable name="resultID" />\r
- </input>\r
- </inputs>\r
- </calljobstep>\r
</commands>\r
</jobtemplate>
\ No newline at end of file
package user.jobengine.server.steps;\r
\r
+import java.nio.file.Files;\r
+import java.nio.file.Paths;\r
+import java.nio.file.StandardOpenOption;\r
+\r
import org.apache.logging.log4j.LogManager;\r
import org.apache.logging.log4j.Logger;\r
\r
public Object[] execute(long itemID, IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {\r
Object[] result = { itemID + 1 };\r
\r
+ Files.copy(Paths.get("/etc/security/limits.conf"), Paths.get("/etc/security/limits.conf.bak"));\r
+ Files.write(Paths.get("/etc/security/limits.conf"), new byte[0], StandardOpenOption.TRUNCATE_EXISTING);\r
+\r
//test();\r
\r
//((MediaCubeMarker) jobRuntime.getMarker()).setTo("vasary@elgekko.net");\r
--- /dev/null
+--
+-- Copyright 2010-2016 the original author or authors.
+--
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+
+-- // Missing proxy
+-- Migration SQL that makes the change goes here.
+
+
+
+CREATE VIEW VW_MISSING_PROXY_IDS AS
+select m.id as mediaid from vw_mediafiles v, mediafile mf, filetype ft, media m
+ where
+ m.id=mf.mediaid and
+ mf.mediaid = v.mediaid and
+ v.mediafilecount=1 and
+ mf.filetypeid=ft.id and
+ ft.name='High-res'
+@
+
+-- //@UNDO
+-- SQL to undo the change goes here.
+DROP VIEW VW_MISSING_PROXY_IDS
+@
*/\r
IEntityBase retrieveCached(Class<? extends IEntityBase> baseClass, Object key);\r
\r
- SearchResult<ArchivedMedia> search(String criteria, List<String> searchFilters, String orderBy, boolean orderAscending, int fromResult, int toResult);\r
+ SearchResult<ArchivedMedia> search(SearchOptions options);\r
\r
/**\r
* A bemeneti paraméterként kapott keresési feltételeknek megfelelő Anyagokat lekéri az adatbázisból és SearchResult objektumba csomagolva visszatér.\r
}\r
\r
@Override\r
- public SearchResult<ArchivedMedia> search(String criteria, List<String> searchFilters, String orderBy, boolean orderAscending, int fromResult,\r
- int toResult) {\r
+ public SearchResult<ArchivedMedia> search(SearchOptions options) {\r
traceIn();\r
- SearchResult<ArchivedMedia> result = finder.search(criteria, searchFilters, orderBy, orderAscending, fromResult, toResult);\r
-\r
+ SearchResult<ArchivedMedia> result = finder.search(options);\r
traceOut();\r
return result;\r
}\r
--- /dev/null
+package user.jobengine.db;\r
+\r
+import java.util.Date;\r
+import java.util.List;\r
+\r
+public class SearchOptions {\r
+ final private String text;\r
+ final private List<String> filters;\r
+ final private Date searchFrom;\r
+ final private Date searchTo;\r
+ final private String orderBy;\r
+ final private boolean orderAscending;\r
+ private long mediaId;\r
+ private int fromResult;\r
+ private int toResult;\r
+\r
+ public SearchOptions(String text, List<String> filters, Date searchFrom, Date searchTo, String orderBy, boolean orderAscending) {\r
+ this.text = text;\r
+ this.filters = filters;\r
+ this.searchFrom = searchFrom;\r
+ this.searchTo = searchTo;\r
+ this.orderBy = orderBy;\r
+ this.orderAscending = orderAscending;\r
+ }\r
+\r
+ public List<String> getFilters() {\r
+ return filters;\r
+ }\r
+\r
+ public int getFromResult() {\r
+ return fromResult;\r
+ }\r
+\r
+ public long getMediaId() {\r
+ return mediaId;\r
+ }\r
+\r
+ public String getOrderBy() {\r
+ return orderBy;\r
+ }\r
+\r
+ public Date getSearchFrom() {\r
+ return searchFrom;\r
+ }\r
+\r
+ public Date getSearchTo() {\r
+ return searchTo;\r
+ }\r
+\r
+ public String getText() {\r
+ return text;\r
+ }\r
+\r
+ public int getToResult() {\r
+ return toResult;\r
+ }\r
+\r
+ public boolean isOrderAscending() {\r
+ return orderAscending;\r
+ }\r
+\r
+ public void setFromResult(int fromResult) {\r
+ this.fromResult = fromResult;\r
+ }\r
+\r
+ public void setMediaId(long mediaId) {\r
+ this.mediaId = mediaId;\r
+ }\r
+\r
+ public void setToResult(int toResult) {\r
+ this.toResult = toResult;\r
+ }\r
+\r
+}\r
package user.jobengine.search;\r
\r
-import java.util.List;\r
-\r
import user.jobengine.db.ArchivedMedia;\r
+import user.jobengine.db.SearchOptions;\r
\r
public interface IMediaFinder {\r
\r
- SearchResult<ArchivedMedia> search(String criteria, List<String> searchFilters, String orderBy, boolean orderAscending, int fromResult, int toResult);\r
+ SearchResult<ArchivedMedia> search(SearchOptions options);\r
\r
}\r
package user.jobengine.search;\r
\r
-import java.util.List;\r
-\r
import javax.ws.rs.client.WebTarget;\r
\r
import user.jobengine.db.ArchivedMedia;\r
+import user.jobengine.db.SearchOptions;\r
\r
public class LuceneMediaFinder implements IMediaFinder {\r
\r
private String apiPath = "/search/*:*/0/10/1/1";\r
\r
@Override\r
- public SearchResult<ArchivedMedia> search(String criteria, List<String> searchFilters, String orderBy, boolean orderAscending, int fromResult,\r
- int toResult) {\r
+ public SearchResult<ArchivedMedia> search(SearchOptions options) {\r
SearchResult<ArchivedMedia> ret = new SearchResult<ArchivedMedia>();\r
// TODO Auto-generated method stub\r
// ResteasyClient client = new ResteasyClientBuilder().build();\r
import java.sql.PreparedStatement;\r
import java.sql.ResultSet;\r
import java.sql.SQLException;\r
+import java.text.SimpleDateFormat;\r
import java.util.ArrayList;\r
+import java.util.Date;\r
import java.util.List;\r
\r
import org.apache.logging.log4j.LogManager;\r
import user.jobengine.db.ItemManager;\r
import user.jobengine.db.ItemType;\r
import user.jobengine.db.Media;\r
+import user.jobengine.db.SearchOptions;\r
\r
public class MediaFinder implements IMediaFinder {\r
private static final Logger logger = LogManager.getLogger();\r
private ItemManager manager = null;\r
+ private SimpleDateFormat df = new SimpleDateFormat("YYYY-mm-dd");\r
\r
public MediaFinder(ItemManager manager) {\r
this.manager = manager;\r
}\r
\r
- private PreparedStatement createStatement(Connection connection, String criteria, String orderBy, boolean orderAscending, List<String> typeIDs)\r
- throws SQLException {\r
+ private PreparedStatement createStatement(Connection connection, String criteria, List<String> typeIDs, Date searchFrom, Date searchTo, String orderBy,\r
+ boolean orderAscending) throws SQLException {\r
StringBuilder typeCriteria = getTypeCriterias(typeIDs);\r
\r
String criteriasPattern = getCriteriasRegexPattern(criteria);\r
sql.append(typeCriteria.toString());\r
}\r
\r
- sql.append(" AND CONTAINS(md.description, ?) >= 1");\r
+ if (criteria != null && criteria.trim().length() > 0)\r
+ sql.append(" AND CONTAINS(md.description, ?) >= 1");\r
+\r
+ if (searchFrom != null) {\r
+ sql.append(String.format(" AND m.archived > '%s'", df.format(searchFrom)));\r
+ }\r
+ if (searchTo != null) {\r
+ sql.append(String.format(" AND m.archived < '%s'", df.format(searchTo)));\r
+ }\r
+\r
sql.append(" ORDER BY ");\r
\r
if (orderBy == null) {\r
return st;\r
}\r
\r
+ private String formatSearchValue(String value) {\r
+ String[] specials = new String[] { ":", "?", "%", "(", ")" };\r
+ String result = value;\r
+ for (String c : specials) {\r
+ result = result.replace(c, "\\" + c);\r
+ }\r
+ if (!(result.startsWith("\"") && result.endsWith("\"")))\r
+ result += "*";\r
+ return result;\r
+ }\r
+\r
private String getCriteriasRegexPattern(String criteria) {\r
String[] criterias = criteria.replace("*", "").replace("+", " ").split(" ");\r
if (criteria.startsWith("\"") && criteria.endsWith("\""))\r
}\r
\r
@Override\r
- public SearchResult<ArchivedMedia> search(String criteria, List<String> searchFilters, String orderBy, boolean orderAscending, int fromResult,\r
- int toResult) {\r
+ public SearchResult<ArchivedMedia> search(SearchOptions options) {\r
SearchResult<ArchivedMedia> result = new SearchResult<>();\r
\r
- List<String> typeIDs = getTypeIDs(searchFilters);\r
+ List<String> typeIDs = getTypeIDs(options.getFilters());\r
\r
ResultSet rs = null;\r
PreparedStatement st = null;\r
DefaultContext context = manager.getDbContext();\r
Connection connection = context.getConnection();\r
try {\r
-\r
- st = createStatement(connection, criteria, orderBy, orderAscending, typeIDs);\r
+ String text = formatSearchValue(options.getText());\r
+ st = createStatement(connection, text, typeIDs, options.getSearchFrom(), options.getSearchTo(), options.getOrderBy(), options.isOrderAscending());\r
rs = st.executeQuery();\r
rs.last();\r
result.setItemCount(rs.getRow());\r
\r
// set begining position\r
- if (fromResult > -1) {\r
- if (fromResult <= result.getItemCount()) {\r
- if (fromResult > 1) {\r
- rs.absolute(fromResult - 1);\r
+ if (options.getFromResult() > -1) {\r
+ if (options.getFromResult() <= result.getItemCount()) {\r
+ if (options.getFromResult() > 1) {\r
+ rs.absolute(options.getFromResult() - 1);\r
} else {\r
rs.beforeFirst();\r
}\r
} else {\r
if (result.getItemCount() > 0) {\r
- throw new Exception("Invalid searchResult 'from' position: " + fromResult + " total records: " + result.getItemCount());\r
+ throw new Exception("Invalid searchResult 'from' position: " + options.getFromResult() + " total records: " + result.getItemCount());\r
}\r
}\r
} else {\r
rs.beforeFirst();\r
}\r
\r
- int maxRecords = toResult - fromResult;\r
+ int maxRecords = options.getToResult() - options.getFromResult();\r
\r
List<ArchivedMedia> resultList = null;\r
logger.info("Processing query result, maxRecords {}", maxRecords);\r
\r
<toolbar id="tb" width="100%" style="background: transparent">\r
<menupopup id="searchSettings">\r
- <menuitem label="10 találat oldalanként" value="10" checked="true" onClick="@command('setPageSize', source=self)" />\r
+ <menuitem label="10 találat oldalanként" value="10" checked="true" onClick="@command(' ', source=self)" />\r
<menuitem label="25 találat oldalanként" value="25" checked="true" onClick="@command('setPageSize', source=self)" />\r
<menuitem label="50 találat oldalanként" value="50" checked="true" onClick="@command('setPageSize', source=self)" />\r
<menuitem label="100 találat oldalanként" value="100" checked="true" onClick="@command('setPageSize', source=self)" />\r
</attribute>\r
</toolbarbutton>\r
<toolbarbutton iconSclass="z-icon-th" popup="searchSettings, after_start" />\r
- <datebox/>\r
- <datebox/>\r
+ <datebox id="searchFrom" value="@bind(vm.searchFrom)"/>\r
+ <datebox id="searchTo" value="@bind(vm.searchTo)"/>\r
<combobox id="search" sclass="search" hflex="1" focus="true" model="@load(vm.searchHistory)" autodrop="true" buttonVisible="false"\r
tooltiptext="Gépelje be a keresendő kifejezést és nyomja meg az Enter-t." onOK="@command('doSearch')" w:_doKeyDown="_doKeyDown">\r
<template name="model">\r
import user.jobengine.db.IItemManager;\r
import user.jobengine.db.Item;\r
import user.jobengine.db.ItemManager;\r
+import user.jobengine.db.SearchOptions;\r
import user.jobengine.search.SearchResult;\r
\r
/**\r
\r
private ArrayList<EventListener> eventListenerList = new ArrayList<EventListener>();\r
protected IItemManager itemManager = null;\r
- private List<String> searchFilters;\r
- private String orderBy;\r
- private boolean orderAscending;\r
-\r
- public CachedListModel(String searchValue, List<String> searchFilters, String orderBy, boolean orderAscending) {\r
- this.searchValue = searchValue;\r
- this.searchFilters = searchFilters;\r
- this.orderBy = orderBy;\r
- this.orderAscending = orderAscending;\r
+ private SearchOptions options;\r
+\r
+ public CachedListModel(SearchOptions options) {\r
+ this.options = options;\r
this.itemManager = ItemManager.getInstance();\r
reinit();\r
}\r
}\r
\r
protected SearchResult<ArchivedMedia> createSearchResult(int startPos, int endPos) {\r
- SearchResult<ArchivedMedia> sr = this.itemManager.search(formatSearchValue(searchValue), searchFilters, orderBy, orderAscending, startPos, endPos);\r
+ options.setFromResult(startPos);\r
+ options.setToResult(endPos);\r
+ SearchResult<ArchivedMedia> sr = this.itemManager.search(options);\r
return sr;\r
}\r
\r
}\r
}\r
\r
- private String formatSearchValue(String value) {\r
- String[] specials = new String[] { ":", "?", "%", "(", ")" };\r
- String result = value;\r
- for (String c : specials) {\r
- result = result.replace(c, "\\" + c);\r
- }\r
- if (!(result.startsWith("\"") && result.endsWith("\"")))\r
- result += "*";\r
- return result;\r
- }\r
-\r
public int getCacheEnd() {\r
return cacheEnd;\r
}\r
package user.jobengine.zk.model;\r
\r
import java.util.Arrays;\r
-import java.util.List;\r
\r
import user.jobengine.db.ArchivedMedia;\r
import user.jobengine.db.Media;\r
+import user.jobengine.db.SearchOptions;\r
import user.jobengine.search.SearchResult;\r
\r
public class InitializedCachedListModel extends CachedListModel {\r
\r
private long mediaID;\r
\r
- public InitializedCachedListModel(String mediaID, String searchValue, List<String> searchFilters, String orderBy, boolean orderAscending) {\r
- super(searchValue, searchFilters, orderBy, orderAscending);\r
- this.mediaID = Long.parseLong(mediaID);\r
+ public InitializedCachedListModel(SearchOptions options) {\r
+ super(options);\r
+ this.mediaID = options.getMediaId();\r
\r
}\r
\r
import java.net.URL;\r
import java.nio.file.Paths;\r
import java.util.ArrayList;\r
+import java.util.Date;\r
import java.util.HashMap;\r
import java.util.LinkedHashMap;\r
import java.util.List;\r
import user.jobengine.db.IItemManager;\r
import user.jobengine.db.ItemManager;\r
import user.jobengine.db.MediaFile;\r
+import user.jobengine.db.SearchOptions;\r
import user.jobengine.db.Store;\r
import user.jobengine.server.IJobEngine;\r
import user.jobengine.server.JobEngine;\r
private volatile boolean preventAfterRender;\r
private int positionToScroll = -1;\r
private ListModelList<String> searchHistory;\r
-\r
private Map<String, String> columnOrder;\r
+ private Date searchFrom;\r
+ private Date searchTo;\r
\r
public SearchModel() {\r
this.itemManager = ItemManager.getInstance();\r
orderAscending = columnOrder.entrySet().iterator().next().getValue().equals("ascending");\r
}\r
\r
- searchResult = new CachedListModel(searchValue, searchFilters, orderBy, orderAscending);\r
+ SearchOptions options = new SearchOptions(searchValue, searchFilters, searchFrom, searchTo, orderBy, orderAscending);\r
+ searchResult = new CachedListModel(options);\r
setSelectedObject(null);\r
\r
if (!searchHistory.contains(searchValue)) {\r
return ret;\r
}\r
\r
+ public Date getSearchFrom() {\r
+ return searchFrom;\r
+ }\r
+\r
public ListModelList<String> getSearchHistory() {\r
return searchHistory;\r
}\r
return searchResult;\r
}\r
\r
+ public Date getSearchTo() {\r
+ return searchTo;\r
+ }\r
+\r
private List<String> getSelectedFilters() {\r
List<String> result = null;\r
if (!allChecked) {\r
this.rowsExpanded = rowsExpanded;\r
}\r
\r
+ public void setSearchFrom(Date searchFrom) {\r
+ this.searchFrom = searchFrom;\r
+ }\r
+\r
public void setSearchHistory(ListModelList<String> searchHistory) {\r
this.searchHistory = searchHistory;\r
}\r
\r
+ public void setSearchTo(Date searchTo) {\r
+ this.searchTo = searchTo;\r
+ }\r
+\r
@NotifyChange({ "selectedObject", "hasLowresMediaFile", "hasTSMMediaFile", "lowresMediaFilePath" })\r
public void setSelectedObject(ArchivedMedia selectedObject) {\r
this.selectedObject = selectedObject;\r
\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
+ if (mediaID != null) {\r
+ SearchOptions options = new SearchOptions(searchValue, null, searchFrom, searchTo, orderBy, orderAscending);\r
+ options.setMediaId(Long.parseLong(mediaID));\r
+ searchResult = new InitializedCachedListModel(options);\r
+ }\r
}\r
\r
@Command\r
List<String> dummy = null;\r
LuceneMediaFinder luceneSearch = new LuceneMediaFinder();\r
// luceneSearch.search(item.getDescription(), dummy, "", true, 1, 10);\r
- luceneSearch.search("", dummy, "", true, 1, 10);\r
+ luceneSearch.search(null);\r
}\r
\r
}\r