Rev 1310 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<%@ page import="jomm.dao.utils.HibernateUtils" %>
<%@ page import="pt.estgp.estgweb.Globals" %>
<%@ page import="pt.estgp.estgweb.domain.*" %>
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ page import="pt.estgp.estgweb.services.data.RepositoryService" %>
<%@ page import="pt.estgp.estgweb.web.UserSessionProxy" %>
<%@ page import="java.util.List" %>
<%@ page import="pt.estgp.estgweb.web.filters.UserRoleProxy" %>
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/>
<%
if(!UserSession.getUser().hasRole(Globals.ROLE_PROCESSES_ADMIN) && !UserSession.getUser().isSuperuser())
{
%>
<jsp:include page="/errors/401.jsp"/>
<%
return;
}
%>
<script language="javascript">
function addUser(username)
{
$('#formulario').find('input[name="personToAdd"]').val(username);
$('#formulario').find('input[name="dispatch"]').val('update');
$("#personsResults").hide();
$("#formulario").submit();
}
function searchPersons(form,targetElement,q,searchInput)
{
$.post( "<%=request.getContextPath()%>/user/processes/searchPerson.jsp?q="+q, function( data ) {
$( "#" + targetElement ).html( data );
//$( "#" + targetElement).show();
$( "#" + targetElement).css({ left: $("#"+searchInput).position().left, top: $("#"+searchInput).position().top + 30}).show();
});
}
</script>
<html:errors/>
<jomm:messages/>
<h2>Criando novo metaprocesso</h2>
<html:form styleId="formulario" action="/user/metaProcessesController" enctype="multipart/form-data">
<jsp:useBean id="NewMetaProcessForm" type="pt.estgp.estgweb.web.form.processes.NewMetaProcessForm" scope="request"/>
<%
if(request.getParameter("id")!=null)
{
long id = Long.parseLong(request.getParameter("id"));
HibernateUtils.getCurrentSession().beginTransaction();
MetaProcess metaProcess = DaoFactory.getMetaProcessDaoImpl().get(id);
System.out.println("1");
NewMetaProcessForm.setMetaProcess((MetaProcessImpl) metaProcess);
System.out.println("2");
new RepositoryService().load(metaProcess.getRepositoryStream(), UserSessionProxy.loadUserSessionFromRequest(request)).getName();
System.out.println("3");
NewMetaProcessForm.setFileName(new RepositoryService().load(metaProcess.getRepositoryStream(), UserSessionProxy.loadUserSessionFromRequest(request)).getName());
System.out.println("4");
HibernateUtils.getCurrentSession().getTransaction().commit();
}
%>
<input type="hidden" name="dispatch" value="update"/>
<html:hidden property="metaProcess.id"/>
<html:hidden property="metaProcess.possiblePersons"/>
<html:hidden property="metaProcess.possibleTargets"/>
<html:hidden property="personToAdd"/>
<html:hidden property="personToRemove"/>
<html:hidden property="roleToRemove"/>
<html:hidden property="metaProcess.repositoryStream"/>
<html:hidden property="fileName"/>
<table border="0" style="width: 100%" >
<tr>
<th align="right"></th>
<th colspan="2" align="center" >
<div style="padding: 10px; background-color: lightgrey;border: 1px solid darkgray">
<i><u>Ficheiro Modelo</u></i>
<html:file property="file"/> <input value="Carregar ficheiro" type="button" onclick="this.form.dispatch.value='update';this.form.submit()"/>
<logic:notEmpty name="NewMetaProcessForm" property="metaProcess.repositoryStream">
<a target="_blank" href="<%=request.getContextPath()%>/repositoryStream/<bean:write name="NewMetaProcessForm" property="metaProcess.repositoryStream"/>"><bean:write name="NewMetaProcessForm" property="fileName"/></a>
<br/>
<a href="javascript:invoqueDataVersionForm(<bean:write name="NewMetaProcessForm" property="metaProcess.repositoryStream"/>);">Ver todas as versões</a>
</logic:notEmpty>
</div>
</th>
<th align="center"></th>
</tr>
<tr>
<td align="right" style="font-size: 7pt"></td>
<td colspan="2" valign="middle" align="center" style="vertical-align: middle; font-size: 7pt;padding: 10px;">
<i><<input>></i> <img src="<%=request.getContextPath()%>/imgs/process/down_arrow.png"/>
</td>
<td align="center"></td>
</tr>
<tr>
<th align="center"><img src="<%=request.getContextPath()%>/imgs/process/actor.gif"/> <br/>Tipo de Requerente</th>
<th colspan="2" align="center">Processo</th>
<th align="center"><img src="<%=request.getContextPath()%>/imgs/process/actor.gif"/> <br/>Atendido por</th>
</tr>
<tr>
<td>
<html:select property="metaProcess.srcRole">
<%
List<String> roles = UserRoleProxy.getUserRoles();
request.setAttribute("roles",roles);
%>
<logic:iterate id="role" name="roles">
<html:option value="${role}"><bean:message key="user.role.${role}"/></html:option>
</logic:iterate>
</html:select>
</td>
<td style="width: 100%" colspan="2" style="padding-left: 10px;padding-right: 10px">
<table style="width: 100%" class="processActivity" cellpadding="0" cellspacing="0">
<tr>
<td class="processActivityTail"><img src="<%=request.getContextPath()%>/imgs/process/leftProcess.gif"/></td>
<td class="processActivityName" style="width: 100%"><html:text style="width: 100%" property="metaProcess.name"/></td>
<td class="processActivityArrow"><img src="<%=request.getContextPath()%>/imgs/process/rightProcess.gif"/></td>
</tr>
</table>
</td>
<td >
<html:select property="metaProcess.targetRole">
<logic:iterate id="role" name="roles">
<html:option value="${role}"><bean:message key="user.role.${role}"/></html:option>
</logic:iterate>
</html:select>
</td>
</tr>
<tr>
<td colspan="4" style="height: 10px; border-right: 3px dotted green; border-bottom: 3px dotted green;">
</td>
</tr>
<tr>
<td colspan="4" style="height: 10px; border-left: 3px dotted green; ">
</td>
</tr>
<tr>
<td colspan="4">
<table style="width: 100%" class="processActivity" cellpadding="0" cellspacing="0">
<tr>
<td class="processActivityTail"><img src="<%=request.getContextPath()%>/imgs/process/leftProcess.gif"/></td>
<td class="processActivityName" style="width: 100%;text-align: center"><i>Tratamento</i></td>
<td class="processActivityArrow"><img src="<%=request.getContextPath()%>/imgs/process/rightProcess.gif"/></td>
</tr>
</table>
</td>
</tr>
<tr>
<th colspan="4" style="text-align: center">
<img src="<%=request.getContextPath()%>/imgs/process/actor.gif"/>
<img src="<%=request.getContextPath()%>/imgs/process/actor.gif"/>
<img src="<%=request.getContextPath()%>/imgs/process/actor.gif"/>
</th>
</tr>
<tr>
<td colspan="4" style="height: 30px; ">
<table cellpadding="0" cellspacing="0" style="width: 100%;border:0;">
<tr>
<th style="width: 50%; text-align: center;border-bottom: 2px solid darkgray; border-right: 2px solid darkgray;">
Pessoas especificas permitidas
</th>
<th style="border-bottom: 2px solid darkgray;width: 50%; text-align: center">
Papeis institucionais permitidos
</th>
</tr>
<tr>
<td valign="top" style="background-color:#E4E4E4 ;width: 50%; text-align: left;border-bottom: 2px solid darkgray; border-right: 2px solid darkgray;">
<input style="width:200px" id="queryTd" type="text" name="q"/> <input type="image" src="<%=request.getContextPath()%>/imgs/lupa.gif" onclick="searchPersons(this.form,'personsResults',this.form.q.value,'queryTd');return false;"/>
</td>
<td style="background-color:#E4E4E4 ; border-bottom: 2px solid darkgray;width: 50%; text-align: left">
<html:select property="roleToAdd">
<option value="">Nenhum</option>
<logic:iterate id="role" name="roles">
<html:option value="${role}"><bean:message key="user.role.${role}"/></html:option>
</logic:iterate>
</html:select>
<input type="button" onclick="set(form,'update');form.submit()" value="Adicionar"/>
</td>
</tr>
<tr>
<td valign="top" style="width: 50%; text-align: center; border-right: 2px solid darkgray; border-bottom: 2px solid darkgray;">
<logic:present name="NewMetaProcessForm" property="addedPersonsList">
<table class="dataTable" width="100%">
<tr>
<th>Nome</th>
<th>Username</th>
<th>Tipo</th>
<th>Email</th>
</tr>
<%
HibernateUtils.getCurrentSession().beginTransaction();
%>
<logic:iterate id="person" name="NewMetaProcessForm" property="addedPersonsList" type="String">
<%
User u = DaoFactory.getUserDaoImpl().loadByUsername(person);
if(u != null)
{
%>
<tr>
<td>
<%=u.getName()%>
</td>
<td>
<%=u.getUsername()%>
</td>
<td>
<%
if(u instanceof Teacher) {
%><%="Professor"%><%
}
else if(u instanceof Student) {
%><%="Aluno"%><%
}
else {
%><%="Utilizador"%><%
}
%>
</td>
<td>
<%=u.getEmail()%>
</td>
<td><a href="javascript:NewMetaProcessForm.dispatch.value='delete';NewMetaProcessForm.personToRemove.value='${person}';NewMetaProcessForm.submit();"><img border="0" src="<%=request.getContextPath()%>/imgs/delete.gif"/></a></td>
</tr>
<%}%>
</logic:iterate>
</table>
<%
HibernateUtils.getCurrentSession().getTransaction().commit();
%>
</logic:present>
</td>
<td style="border-bottom: 2px solid darkgray;width: 50%; text-align: center" valign="top">
<logic:present name="NewMetaProcessForm" property="addedRolesList">
<table class="dataTable" width="100%">
<tr>
<th>Papel</th>
</tr>
<logic:iterate id="role" name="NewMetaProcessForm" property="addedRolesList" type="String">
<%
if(role != null && role.length() > 0)
{
%>
<tr>
<td>
<bean:message key="user.role.${role}"/>
</td>
<td><a href="javascript:NewMetaProcessForm.dispatch.value='delete';NewMetaProcessForm.roleToRemove.value='${role}';NewMetaProcessForm.submit();"><img border="0" src="<%=request.getContextPath()%>/imgs/delete.gif"/></a></td>
</tr>
<%
}
%>
</logic:iterate>
</table>
</logic:present>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table class="dataTable">
<tr>
<th>Categoria</th>
<td><html:text property="metaProcess.category"/></td>
</tr>
<tr>
<th>SubCategoria</th>
<td><html:text property="metaProcess.subCategory"/></td>
</tr>
<tr>
<th>Descrição</th>
<td><html:textarea style="width: 400px;height: 200px" property="metaProcess.description"/></td>
</tr>
</table>
<input type="button" value="<bean:message key="confirm"/>" onclick="set(form,'create');form.submit();">
<div id="personsResults" style="position: absolute;display: none;background: lightcyan;border: 1px solid gray">
</div>
</html:form>