Do automaticky odesílaných e-mailů lze nyní vložit URL na záznam
požadavku. Při otevření URL se nastaví kurzor v gridu na příslušný záznam.Verze_1.0
							parent
							
								
									babb9f8312
								
							
						
					
					
						commit
						a9a98cfd63
					
				@ -0,0 +1,39 @@
 | 
			
		||||
package info.bukova.isspst;
 | 
			
		||||
 | 
			
		||||
import info.bukova.isspst.data.DataModel;
 | 
			
		||||
 | 
			
		||||
import javax.servlet.http.HttpServletRequest;
 | 
			
		||||
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
 | 
			
		||||
public class CommonUrlResolver implements EntityUrlResolver {
 | 
			
		||||
 | 
			
		||||
	@Autowired
 | 
			
		||||
	private HttpServletRequest request;
 | 
			
		||||
	protected String defaultUrl;
 | 
			
		||||
	
 | 
			
		||||
	public CommonUrlResolver() {
 | 
			
		||||
		 
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	@Override
 | 
			
		||||
	public String entityUrl(Object entity) {
 | 
			
		||||
		if (defaultUrl == null) {
 | 
			
		||||
			this.defaultUrl = request.getRequestURL().toString();
 | 
			
		||||
			this.defaultUrl = defaultUrl.substring(0, defaultUrl.indexOf(request.getServletPath()));
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		if (!DataModel.class.isAssignableFrom(entity.getClass())) {
 | 
			
		||||
			return defaultUrl + "/app";
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		String url = Constants.URL_MAP.get(entity.getClass());
 | 
			
		||||
		
 | 
			
		||||
		if (url == null) {
 | 
			
		||||
			return defaultUrl + "/app";
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		return defaultUrl + url + "?select=" + String.valueOf(((DataModel)entity).getId());
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,7 @@
 | 
			
		||||
package info.bukova.isspst;
 | 
			
		||||
 | 
			
		||||
public interface EntityUrlResolver {
 | 
			
		||||
	
 | 
			
		||||
	public String entityUrl(Object entity);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,39 @@
 | 
			
		||||
package info.bukova.isspst;
 | 
			
		||||
 | 
			
		||||
import info.bukova.isspst.data.Requirement;
 | 
			
		||||
 | 
			
		||||
import javax.servlet.http.HttpServletRequest;
 | 
			
		||||
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
 | 
			
		||||
public class RequirementUrlResolver implements EntityUrlResolver {
 | 
			
		||||
	
 | 
			
		||||
	private String defaultUrl;
 | 
			
		||||
	@Autowired
 | 
			
		||||
	private HttpServletRequest request;
 | 
			
		||||
	
 | 
			
		||||
	public RequirementUrlResolver() {
 | 
			
		||||
		
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	public String entityUrl(Object entity) {
 | 
			
		||||
		if (!(entity instanceof Requirement)) {
 | 
			
		||||
			return defaultUrl + "/app";
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		if (defaultUrl == null) {
 | 
			
		||||
			this.defaultUrl = request.getRequestURL().toString();
 | 
			
		||||
			this.defaultUrl = defaultUrl.substring(0, defaultUrl.indexOf(request.getServletPath()));
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		Requirement req = (Requirement)entity;
 | 
			
		||||
		
 | 
			
		||||
		if (req.getKind() == Constants.REQ_TYPE_MATERIAL) {
 | 
			
		||||
			return defaultUrl + Constants.URL_MAP.get(req) + "material/?select=" + String.valueOf(req.getId());
 | 
			
		||||
		} else {
 | 
			
		||||
			return defaultUrl + Constants.URL_MAP.get(req) + "services/?select=" + String.valueOf(req.getId());
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,30 @@
 | 
			
		||||
package info.bukova.isspst;
 | 
			
		||||
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
 | 
			
		||||
public class UrlResolverHolder {
 | 
			
		||||
	
 | 
			
		||||
	private EntityUrlResolver commonResolver;
 | 
			
		||||
	private Map<Class<?>, EntityUrlResolver> resolvers;
 | 
			
		||||
	
 | 
			
		||||
	public UrlResolverHolder(EntityUrlResolver common) {
 | 
			
		||||
		this.commonResolver = common;
 | 
			
		||||
		resolvers = new HashMap<Class<?>, EntityUrlResolver>();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public void setResolvers(Map<Class<?>, EntityUrlResolver> resolvers) {
 | 
			
		||||
		this.resolvers = resolvers;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public EntityUrlResolver resolverFor(Class<?> clazz) {
 | 
			
		||||
		EntityUrlResolver res = resolvers.get(clazz);
 | 
			
		||||
		
 | 
			
		||||
		if (res == null) {
 | 
			
		||||
			return commonResolver;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		return res;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
					Loading…
					
					
				
		Reference in New Issue