Salvatore La Manna
3 anni fa
27 ha cambiato i file con 326 aggiunte e 23 eliminazioni
@ -0,0 +1,121 @@
|
||||
package it.mwg.sismica.bo.portlet; |
||||
|
||||
import it.tref.liferay.portos.bo.model.Comune; |
||||
import it.tref.liferay.portos.bo.model.DettPratica; |
||||
import it.tref.liferay.portos.bo.model.IntPratica; |
||||
import it.tref.liferay.portos.bo.model.Provincia; |
||||
import it.tref.liferay.portos.bo.service.ComuneLocalServiceUtil; |
||||
import it.tref.liferay.portos.bo.service.DettPraticaLocalServiceUtil; |
||||
import it.tref.liferay.portos.bo.service.IntPraticaLocalServiceUtil; |
||||
import it.tref.liferay.portos.bo.service.ProvinciaLocalServiceUtil; |
||||
import it.tref.liferay.portos.bo.service.TerritorioLocalServiceUtil; |
||||
|
||||
import java.io.IOException; |
||||
import java.util.Arrays; |
||||
import java.util.List; |
||||
|
||||
import javax.portlet.ActionRequest; |
||||
import javax.portlet.ActionResponse; |
||||
import javax.portlet.PortletException; |
||||
import javax.portlet.ResourceRequest; |
||||
import javax.portlet.ResourceResponse; |
||||
|
||||
import org.apache.commons.lang.StringUtils; |
||||
|
||||
import com.liferay.portal.kernel.exception.PortalException; |
||||
import com.liferay.portal.kernel.exception.SystemException; |
||||
import com.liferay.portal.kernel.json.JSONArray; |
||||
import com.liferay.portal.kernel.json.JSONFactoryUtil; |
||||
import com.liferay.portal.kernel.json.JSONObject; |
||||
import com.liferay.portal.kernel.log.Log; |
||||
import com.liferay.portal.kernel.log.LogFactoryUtil; |
||||
import com.liferay.portal.kernel.util.ParamUtil; |
||||
import com.liferay.portal.kernel.util.StringPool; |
||||
import com.liferay.portal.kernel.util.Validator; |
||||
import com.liferay.portal.service.ServiceContext; |
||||
import com.liferay.portal.service.ServiceContextFactory; |
||||
import com.liferay.util.bridges.mvc.MVCPortlet; |
||||
|
||||
public class RicercaPosizionePortlet extends MVCPortlet { |
||||
private static final Log _log = LogFactoryUtil.getLog(RicercaPosizionePortlet.class); |
||||
|
||||
@SuppressWarnings("serial") |
||||
private static final List<String> CAMPI = Arrays.<String> asList("tabs1", "numeroProgetto", "provincia", "comune", |
||||
"via", "lat", "long", "raggio"); |
||||
|
||||
public void ricerca(ActionRequest actionRequest, ActionResponse actionResponse) { |
||||
|
||||
for (String campo : CAMPI) { |
||||
String val = ParamUtil.getString(actionRequest, campo, StringPool.BLANK); |
||||
actionResponse.setRenderParameter(campo, val); |
||||
} |
||||
} |
||||
|
||||
public void localizzaProgetto(ActionRequest actionRequest, ActionResponse actionResponse) throws IOException, |
||||
SystemException { |
||||
|
||||
String numeroProgetto = ParamUtil.getString(actionRequest, "numeroProgetto"); |
||||
JSONObject object = JSONFactoryUtil.createJSONObject(); |
||||
if (Validator.isNotNull(numeroProgetto)) { |
||||
IntPratica pratica = IntPraticaLocalServiceUtil.findByNumeroProgetto(numeroProgetto); |
||||
if (Validator.isNotNull(pratica)) { |
||||
DettPratica dett = DettPraticaLocalServiceUtil.getLastCompletedByIntPratica(pratica.getIntPraticaId()); |
||||
if (Validator.isNotNull(dett)) { |
||||
String localizzazione = dett.getLocalizzazioneGeografica(); |
||||
if (Validator.isNotNull(localizzazione)) { |
||||
String[] parti = StringUtils.split(localizzazione, '|'); |
||||
if (parti.length > 1) { |
||||
object.put("lat", Double.valueOf(parti[0])); |
||||
object.put("lng", Double.valueOf(parti[1])); |
||||
} |
||||
} |
||||
|
||||
} |
||||
} |
||||
} |
||||
writeJSON(actionRequest, actionResponse, object); |
||||
} |
||||
|
||||
@Override |
||||
public void serveResource(ResourceRequest resourceRequest, ResourceResponse resourceResponse) throws IOException, |
||||
PortletException { |
||||
|
||||
String id = resourceRequest.getResourceID(); |
||||
ServiceContext serviceContext; |
||||
try { |
||||
serviceContext = ServiceContextFactory.getInstance(resourceRequest); |
||||
long companyId = serviceContext.getCompanyId(); |
||||
JSONArray array = JSONFactoryUtil.createJSONArray(); |
||||
switch (id) { |
||||
case "province": |
||||
for (String codice : TerritorioLocalServiceUtil.getActiveProvince()) { |
||||
JSONObject object = JSONFactoryUtil.createJSONObject(); |
||||
Provincia provincia = ProvinciaLocalServiceUtil.fetchByC_C(companyId, codice); |
||||
object.put("id", provincia.getCodiceProvincia()); |
||||
object.put("nome", provincia.getProvincia()); |
||||
array.put(object); |
||||
} |
||||
writeJSON(resourceRequest, resourceResponse, array); |
||||
break; |
||||
case "comuni": |
||||
String provinciaId = ParamUtil.getString(resourceRequest, "provinciaId"); |
||||
if (Validator.isNotNull(provinciaId)) { |
||||
List<Long> comuni = TerritorioLocalServiceUtil.getActiveComuniByCodiceProvincia(provinciaId); |
||||
for (long comuneId : comuni) { |
||||
JSONObject object = JSONFactoryUtil.createJSONObject(); |
||||
Comune comune = ComuneLocalServiceUtil.getComune(comuneId); |
||||
object.put("id", comune.getComuneId()); |
||||
object.put("nome", comune.getDenominazione()); |
||||
array.put(object); |
||||
} |
||||
} |
||||
writeJSON(resourceRequest, resourceResponse, array); |
||||
break; |
||||
default: |
||||
super.serveResource(resourceRequest, resourceResponse); |
||||
} |
||||
} catch (PortalException | SystemException e) { |
||||
e.printStackTrace(); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,166 @@
|
||||
<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> |
||||
<%@include file="/html/init.jsp" %> |
||||
<%@page import="com.liferay.portal.kernel.util.HtmlUtil"%> |
||||
<%@page import="it.tref.liferay.portos.bo.shared.util.PortletKeys"%> |
||||
<%@page import="it.tref.liferay.portos.bo.shared.util.TipoIntegrazioneUtil"%> |
||||
<%@page import="it.tref.liferay.portos.bo.shared.util.TipoSoggettoUtil"%> |
||||
<%@page import="it.tref.liferay.portos.bo.util.PraticaUtil"%> |
||||
<%@page import="java.text.NumberFormat"%> |
||||
<%@page import="java.text.DecimalFormat"%> |
||||
<%@page import="java.util.ArrayList"%> |
||||
<%@page import="java.util.Locale"%> |
||||
<%@page import="javax.portlet.PortletURL"%> |
||||
<%@page import="it.mwg.sismica.bo.util.MappeUtil"%> |
||||
<% |
||||
String codiceProvincia = ParamUtil.getString(request, "provincia", StringPool.BLANK); |
||||
long idComune = ParamUtil.getLong(request, "comune", 0); |
||||
String urlIframeMappe = MappeUtil.getUrlRicerca(request, codiceProvincia, idComune); |
||||
%> |
||||
<liferay-portlet:actionURL name="ricerca" var="ricercaURL" /> |
||||
<div class="container-fluid"> |
||||
<div class="row"> |
||||
<div class="module-group"> |
||||
<liferay-ui:panel extended="false" defaultState="open" collapsible="false" title="ricerca-posizione"> |
||||
<div class="container-fluid"> |
||||
<div class="row"> |
||||
<aui:form method="POST" name="ricerca" action="<%= ricercaURL %>"> |
||||
<div class="col-xs-6 col-sm-5"> |
||||
<aui:select name="provincia" label="dp-dc-prov" showEmptyOption="true" /> |
||||
</div> |
||||
<div class="col-xs-6 col-sm-5"> |
||||
<aui:select name="comune" label="dp-dc-comune" showEmptyOption="true" /> |
||||
</div> |
||||
<div class="col-xs-12 col-sm-2 text-right" style="padding-top:19px"> |
||||
<aui:button type="submit" value="search" /> |
||||
</div> |
||||
</aui:form> |
||||
</div> |
||||
<div class="row cont_maps"> |
||||
<div class="col-xs-12"> |
||||
<!-- Integrazione geoportal --> |
||||
<div style="border:none;width:100%;height:700px"> |
||||
<iframe src="<%= urlIframeMappe %>" style="border:none;width:100%;height:700px"></iframe> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</liferay-ui:panel> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
<script> |
||||
var <portlet:namespace/>comuneSelezionato = ''; |
||||
|
||||
YUI().use( |
||||
'aui-tooltip', |
||||
function(Y) { |
||||
new Y.TooltipDelegate({ |
||||
trigger: '.tooltip-info', |
||||
position: 'top', |
||||
cssClass: 'tooltip-help', |
||||
html: true, |
||||
opacity: 1, |
||||
}); |
||||
} |
||||
); |
||||
</script> |
||||
<liferay-portlet:resourceURL id="province" var="getProvinceURL" /> |
||||
<liferay-portlet:resourceURL id="comuni" var="getComuniURL" /> |
||||
<aui:script use="aui-io-request,liferay-dynamic-select"> |
||||
var getProvince = function(callback) { |
||||
A.io.request( |
||||
'<%= getProvinceURL %>', |
||||
{ |
||||
dataType: 'json', |
||||
on: { |
||||
success: function() { |
||||
var data = this.get('responseData'); |
||||
<portlet:namespace/>province = {}; |
||||
for (var i = 0; i < data.length; i++) { |
||||
<portlet:namespace/>province[data[i].nome.replaceAll(' ', '-').toLowerCase()] = data[i].id; |
||||
} |
||||
callback(data); |
||||
} |
||||
} |
||||
} |
||||
); |
||||
}; |
||||
|
||||
var getComuni = function(callback, provinciaId) { |
||||
A.io.request( |
||||
'<%= getComuniURL %>', |
||||
{ |
||||
dataType: 'json', |
||||
data: { |
||||
<portlet:namespace />provinciaId: provinciaId |
||||
}, |
||||
on: { |
||||
success: function() { |
||||
var data = this.get('responseData'); |
||||
callback(data); |
||||
if ('' !== <portlet:namespace/>comuneSelezionato) { |
||||
for (var i = 0; i < data.length; i++) { |
||||
if (data[i].nome.replaceAll(' ', '-').toLowerCase() === <portlet:namespace/>comuneSelezionato) { |
||||
A.one('#<portlet:namespace/>comune').set('value', data[i].id); |
||||
} |
||||
} |
||||
<portlet:namespace/>comuneSelezionato = ''; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
); |
||||
}; |
||||
new Liferay.DynamicSelect([ |
||||
{ |
||||
select: '<portlet:namespace />provincia', |
||||
selectData: getProvince, |
||||
selectDesc: 'nome', |
||||
selectId: 'id', |
||||
selectSort: true, |
||||
selectVal: '<%= codiceProvincia %>', |
||||
}, |
||||
{ |
||||
select: '<portlet:namespace />comune', |
||||
selectData: getComuni, |
||||
selectDesc: 'nome', |
||||
selectId: 'id', |
||||
selectSort: true, |
||||
selectDisableOnEmpty: true, |
||||
selectVal: '<%= idComune %>', |
||||
}, |
||||
]); |
||||
</aui:script> |
||||
<script> |
||||
document.addEventListener('DOMContentLoaded', function(event) { |
||||
window.addEventListener('message', messageListener, false); |
||||
}); |
||||
function messageListener(event) { |
||||
try { |
||||
var data = JSON.parse(event.data); |
||||
} catch (e) { |
||||
return; |
||||
} |
||||
var trasferiti = []; |
||||
for (key in data) { |
||||
switch (key) { |
||||
case 'latitudine': |
||||
var name = 'lat'; |
||||
break; |
||||
case 'longitudine': |
||||
var name = 'long'; |
||||
break; |
||||
default: |
||||
var name = 'input_' + key; |
||||
} |
||||
var el = document.getElementById('<portlet:namespace/>' + name); |
||||
if (null !== el) { |
||||
el.value = data[key]; |
||||
trasferiti.push(key); |
||||
} |
||||
} |
||||
if (trasferiti.length > 0) { |
||||
//console.log('Trasferiti correttamente: ' + trasferiti.join(', ')); |
||||
} |
||||
} |
||||
</script> |
Caricamento…
Reference in new issue