/branches/v3/impl/conf/language/MessageResources.properties |
---|
17,8 → 17,8 |
#errors.header=<script>alert('Existem erros ou avisos, verifique a lista');</script><div class="web-messages"> |
errors.header=<div class="web-messages"> |
errors.prefix=<div class="alert alert-warning"> |
errors.header=<div class="web-messages web-messages-errors-baco"> |
errors.prefix=<div class="alert alert-warning web-messages-error-baco"> |
errors.suffix=</div> |
errors.footer=</div> |
/branches/v3/impl/conf/WEB-INF/struts/struts-courseunits.xml |
---|
77,6 → 77,16 |
<forward name="edit.evaluation" path="page.edit.courseunit.evaluation"/> |
</action> |
<!--Authentication--> |
<action path="/user/courseUnitEvaluationControllerWidget" |
type="pt.estgp.estgweb.web.controllers.courseunits.CourseUnitsEvaluationController" |
name="CourseUnitEvaluationForm" |
scope="request" |
parameter="dispatch" |
validate="false" |
input="page.widget.json.fail.validations"> |
</action> |
<!--<action path="/user/startLoadCourseUnitFromHome" forward="page.load.courseunit.from.home"/>--> |
<action path="/user/startLoadCourseUnitRootFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadRoot&from=Home"/> |
/branches/v3/impl/conf/WEB-INF/struts/struts-pae.xml |
---|
71,6 → 71,17 |
<!--Authentication--> |
<action path="/authenticateWidget" |
type="pt.estgp.estgweb.web.controllers.authenticate.AuthenticateController" |
name="WidgetModelForm" |
scope="request" |
parameter="dispatch" |
validate="true" |
input="page.widget.json.fail.validations"> |
</action> |
</action-mappings> |
</struts-config> |
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/views/CourseView.java |
---|
224,6 → 224,7 |
if(department != null) |
{ |
c.setDepartment(department); |
if(department != null) |
c.setInstitutionalCode(department.getCourseSchool().getInstitutionalCode()); |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/web/controllers/courseunits/CourseUnitsEvaluationController.java |
---|
80,10 → 80,7 |
} |
} |
public ActionForward saveEvaluation(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
public boolean saveEvaluation(ActionForm form,HttpServletRequest request, HttpServletResponse response) |
throws ServletException |
{ |
CourseUnitEvaluationForm cUF = (CourseUnitEvaluationForm) form; |
92,28 → 89,34 |
boolean go = true; |
long id = cUF.getCourseUnitView().getId(); |
CourseUnitEvaluationView cuV = cUF.getCourseUnitEvaluationView(); |
if(request.getParameter("json")!=null && request.getParameter("json").equals("true")) |
if(request.getParameter("autosave") != null && request.getParameter("autosave").equals("true")) |
{ |
cuV.setAutosave(true); |
} |
else |
{ |
ActionErrors errors = cUF.validateSave(mapping,request); |
ActionErrors errors = cUF.validateSave(null,request); |
if(errors.size() > 0) |
{ |
saveErrors(request, errors); |
go = false; |
} |
} |
IServiceManager sm = ServiceManager.getInstance(); |
Object[] args = new Object[]{cuV, id}; |
String[] names = new String[]{"evaluationView", "unitId"}; |
if(go) |
{ |
cuV = (CourseUnitEvaluationView) sm.execute(RequestUtils.getRequester(request, response), "SaveCourseUnitEvaluation", args,names); |
CourseUnitView cV = loadCourseUnitView(id,true,false, mapping, request, response); |
addMessage(request,"courseunit.evaluation.success"); |
} |
/*CourseUnitView cV = loadCourseUnitView(id,true,false, null, request, response); |
cUF.setCourseUnitView(cV); |
cUF.setCourseUnitEvaluationView(cuV); |
request.setAttribute("CourseUnitView", cV); |
if(go) |
addMessage(request,"courseunit.evaluation.success"); |
if(request.getParameter("json")!=null && request.getParameter("json").equals("true")) |
124,27 → 127,20 |
return mapping.findForward("load"); |
else |
return mapping.findForward("edit.evaluation"); |
*/ |
return true; |
} |
catch (FilterChainFailedException e) |
{ |
return mapping.findForward("error401"); |
} |
catch (NotFoundException e) |
{ |
return mapping.findForward("error404"); |
} |
catch (Throwable e) |
{ |
logger.error(e, e); |
addError(request, "courseunit.evaluation.tryagain"); |
return editEvaluation(mapping,cUF,request,response); |
return false; |
} |
} |
public ActionForward teacherCompleteEvaluation(ActionMapping mapping, |
public boolean teacherCompleteEvaluation( |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
154,7 → 150,7 |
try |
{ |
boolean go = true; |
ActionErrors errors = cUF.validateSave(mapping,request); |
ActionErrors errors = cUF.validateSave(null,request); |
if(errors.size() > 0) |
{ |
saveErrors(request, errors); |
170,36 → 166,37 |
String[] names = new String[]{"evaluationView", "unitId"}; |
if(go) |
cuV = (CourseUnitEvaluationView) sm.execute(RequestUtils.getRequester(request, response), "SaveCourseUnitEvaluation", args,names); |
CourseUnitView cV = loadCourseUnitView(id,true,false, mapping, request, response); |
cUF.setCourseUnitView(cV); |
cUF.setCourseUnitEvaluationView(cuV); |
request.setAttribute("CourseUnitView", cV); |
//CourseUnitView cV = loadCourseUnitView(id,true,false, mapping, request, response); |
//cUF.setCourseUnitView(cV); |
//cUF.setCourseUnitEvaluationView(cuV); |
//request.setAttribute("CourseUnitView", cV); |
if(go) |
addMessage(request,"courseunit.evaluation.success"); |
if(go) |
return mapping.findForward("load"); |
else |
return mapping.findForward("edit.evaluation"); |
//if(go) |
// return mapping.findForward("load"); |
//else |
// return mapping.findForward("edit.evaluation"); |
return go; |
} |
catch (FilterChainFailedException e) |
{ |
return mapping.findForward("error401"); |
addErrorAsString(request,e.toString()); |
return false; |
} |
catch (NotFoundException e) |
{ |
return mapping.findForward("error404"); |
addErrorAsString(request,e.toString()); |
return false; |
} |
catch (Throwable e) |
{ |
logger.error(e, e); |
addErrorAsString(request,e.toString()); |
addError(request, "courseunit.evaluation.tryagain"); |
return editEvaluation(mapping,cUF,request,response); |
//return mapping.findForward("error500"); |
return false; |
} |
} |
public ActionForward publishEvaluation(ActionMapping mapping, |
ActionForm form, |
public boolean publishEvaluation(ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException |
208,7 → 205,7 |
try |
{ |
boolean go = true; |
ActionErrors errors = cUF.validateSave(mapping,request); |
ActionErrors errors = cUF.validateSave(null,request); |
if(errors.size() > 0) |
{ |
saveErrors(request, errors); |
223,30 → 220,34 |
String[] names = new String[]{"evaluationView", "unitId"}; |
if(go) |
cuV = (CourseUnitEvaluationView) sm.execute(RequestUtils.getRequester(request, response), "SaveCourseUnitEvaluation", args,names); |
CourseUnitView cV = loadCourseUnitView(id,true,false, mapping, request, response); |
cUF.setCourseUnitView(cV); |
cUF.setCourseUnitEvaluationView(cuV); |
request.setAttribute("CourseUnitView", cV); |
//CourseUnitView cV = loadCourseUnitView(id,true,false, mapping, request, response); |
//cUF.setCourseUnitView(cV); |
//cUF.setCourseUnitEvaluationView(cuV); |
//request.setAttribute("CourseUnitView", cV); |
if(go) |
addMessage(request,"courseunit.evaluation.success"); |
if(go) |
return mapping.findForward("load"); |
else |
return mapping.findForward("edit.evaluation"); |
//if(go) |
// return mapping.findForward("load"); |
//else |
// return mapping.findForward("edit.evaluation"); |
return go; |
} |
catch (FilterChainFailedException e) |
{ |
return mapping.findForward("error401"); |
addErrorAsString(request,e.toString()); |
return false; |
} |
catch (NotFoundException e) |
{ |
return mapping.findForward("error404"); |
addErrorAsString(request,e.toString()); |
return false; |
} |
catch (Throwable e) |
{ |
logger.error(e, e); |
addError(request, "courseunit.evaluation.tryagain"); |
return editEvaluation(mapping,cUF,request,response); |
addErrorAsString(request,e.toString()); |
return false; |
} |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/web/controllers/courseunits/CourseUnitsProgramController.java |
---|
41,6 → 41,7 |
HttpServletResponse response) |
throws Throwable { |
CourseUnitProgramForm cUF = (CourseUnitProgramForm) form; |
long id = cUF.getCourseUnitId(); |
57,6 → 58,7 |
request, |
response); |
} |
public ActionForward invalidateProgram(ActionMapping mapping, |
65,22 → 67,25 |
HttpServletResponse response) |
throws Throwable { |
CourseUnitProgramForm cUF = (CourseUnitProgramForm) form; |
long id = cUF.getCourseUnitId(); |
if(id <= 0) |
id = cUF.getCourseUnitView().getId(); |
CourseUnitProgramForm cUF = (CourseUnitProgramForm) form; |
IServiceManager sm = ServiceManager.getInstance(); |
Object[] args = new Object[]{id}; |
String[] names = new String[]{"unitId"}; |
sm.execute(RequestUtils.getRequester(request, response), "InvalidateCourseUnitProgram", args,names); |
long id = cUF.getCourseUnitId(); |
if(id <= 0) |
id = cUF.getCourseUnitView().getId(); |
return editProgram(mapping, |
form, |
request, |
response); |
IServiceManager sm = ServiceManager.getInstance(); |
Object[] args = new Object[]{id}; |
String[] names = new String[]{"unitId"}; |
sm.execute(RequestUtils.getRequester(request, response), "InvalidateCourseUnitProgram", args,names); |
return editProgram(mapping, |
form, |
request, |
response); |
} |
public ActionForward editProgram(ActionMapping mapping, |
153,7 → 158,13 |
CourseUnitView cV = loadCourseUnitView(id,true,false, mapping, request, response); |
cUF.setCourseUnitView(cV); |
request.setAttribute("CourseUnitView", cV); |
return mapping.findForward("load"); |
if(request.getParameter("json")!=null && request.getParameter("json").equals("true")) |
{ |
return mapping.findForward("jsonOk"); |
} |
else |
return mapping.findForward("load"); |
} |
catch (FilterChainFailedException e) |
{ |
/branches/v3/impl/src/java/pt/estgp/estgweb/web/controllers/authenticate/AuthenticateController.java |
---|
9,7 → 9,7 |
import pt.estgp.estgweb.domain.views.UserView; |
import pt.estgp.estgweb.services.authenticate.AuthenticateException; |
import pt.estgp.estgweb.web.UserSessionProxy; |
import pt.estgp.estgweb.web.controllers.ApplicationDispatchController; |
import pt.estgp.estgweb.web.controllers.utils.AbstractWidgetAjaxController; |
import pt.estgp.estgweb.web.exceptions.NoCookiesException; |
import pt.estgp.estgweb.web.form.profile.ProfileForm; |
import pt.estgp.estgweb.web.utils.RequestUtils; |
27,11 → 27,36 |
* @time 18:01:54 |
* @see pt.estgp.estgweb.web |
*/ |
public class AuthenticateController extends ApplicationDispatchController |
public class AuthenticateController extends AbstractWidgetAjaxController |
{ |
private static final Logger logger = Logger.getLogger(AuthenticateController.class); |
public boolean loginWidget(ActionForm form,HttpServletRequest request, HttpServletResponse response) throws Throwable |
{ |
try |
{ |
String username = request.getParameter("username"); |
String password = request.getParameter("password"); |
IServiceManager sm = ServiceManager.getInstance(); |
Object[] args = new Object[]{username,password}; |
UserSession userSession = (UserSession) sm.execute(RequestUtils.getRequester(request, response),Globals.AUTHENTICATE_SERVICE,args); |
request.setAttribute(Globals.USER_SESSION_KEY,userSession); |
return true; |
} |
catch (AuthenticateException e) |
{ |
ActionMessages actionMessages = new ActionMessages(); |
actionMessages.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage(e.getMessage())); |
saveErrors(request, actionMessages); |
return false; |
} |
catch (Throwable e) |
{ |
return false; |
} |
} |
public ActionForward login(ActionMapping mapping, |
ActionForm form , |
HttpServletRequest request, |
270,4 → 295,6 |
} |
} |
/branches/v3/impl/src/web/auth/loginWidget.jsp |
---|
New file |
0,0 → 1,93 |
<%@ page import="pt.estgp.estgweb.Globals" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %> |
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
<script> |
var actionAuthenticate = "<%=request.getContextPath()%>/authenticateWidget.do"; |
function authenticateWidget() |
{ |
var username = $("#formAuthenticationWidget input[name='username']").val(); |
var password = $("#formAuthenticationWidget input[name='password']").val(); |
widgetSimpleCallWithActionParameters( |
"<%=request.getContextPath()%>/authenticateWidget.do", |
"loginWidget", |
{ |
"username" : username, |
"password" : password |
}, |
"#formAuthenticationWidget", |
function() |
{ |
$('#modalAuthentication').modal('hide'); |
}, |
function() |
{ |
//fail |
} |
); |
} |
</script> |
<!--AUTENTICATION MODAL--> |
<script> |
$(document).ready(function(){ |
$('#modalAuthentication').on('show.bs.modal', function(e) |
{ |
$("#modalAuthentication .web-messages").html(""); |
}); |
}); |
</script> |
<div class="modal fade" id="modalAuthentication" role="dialog" > |
<div class="modal-dialog" data-width="960" style="display: block; width: 960px; margin-top: 50px;" aria-hidden="false"> |
<!-- Modal content--> |
<div class="modal-content"> |
<div class="modal-header"> |
<h1 class="modal-title">Formulário de Autenticação</h1> |
</div> |
<div class="modal-body"> |
<div class="alert alert-info"> |
Caro utilizador, a sessão expirou, por favor introduza as suas credênciais |
para voltar a autênticar-se no sistema |
e poder repetir a última operação. Obrigado. |
</div> |
<div id="formAuthenticationWidget" class="clearfix"> |
<div class="web-messages" style="margin-bottom: 5px"></div> |
<div class="form-horizontal col-md-12 clearfix"> |
<div class="form-group clearfix"> |
<label class="col-md-12" style="margin-bottom: 10px"><jomm:messageConfigKey config="authentication.policy.username.msg.key"/></label> |
<div class="col-md-6"> |
<input type="text" class="form-control" name="username"/> |
</div> |
</div> |
<div class="form-group clearfix"> |
<label class="col-md-12" style="margin-bottom: 10px"><jomm:messageConfigKey config="authentication.policy.password.msg.key"/></label> |
<div class="col-md-6"> |
<input type="password" class="form-control" name="password"/> |
</div> |
</div> |
<div class="col-sm-2"> |
<button type="button" class="btn btn-success" onclick="authenticateWidget()"><bean:message key="submit"/></button> |
</div> |
</div> |
</div> |
</div> |
</div> |
</div> |
</div> |
/branches/v3/impl/src/web/errors/401.jsp |
---|
9,7 → 9,7 |
<% |
response.sendError(401); |
%> |
<div class="container-fluid"> |
<div class="container-fluid errorContent"> |
<h3 class="statusWARNING"> |
<baco:isNotAuthenticated> |
/branches/v3/impl/src/web/errors/500.jsp |
---|
9,7 → 9,7 |
response.sendError(500); |
%> |
<div class="container-fluid"> |
<div class="container-fluid errorContent"> |
<div class="alert alert-danger"><bean:message key="error.500"/></div> |
<div class="alert alert-info"><bean:message key="admin.contact"/> |
<ul> |
/branches/v3/impl/src/web/errors/404.jsp |
---|
8,7 → 8,7 |
<% |
response.sendError(404); |
%> |
<div class="container-fluid"> |
<div class="container-fluid errorContent"> |
<div class="alert alert-warning"><bean:message key="error.404"/></div> |
<p><bean:message key="error.404.explain"/></p> |
<ul> |
/branches/v3/impl/src/web/errors/503.jsp |
---|
8,7 → 8,7 |
<% |
response.sendError(500); |
%> |
<div class="container-fluid"> |
<div class="container-fluid errorContent"> |
<div class="alert alert-danger"><bean:message key="error.503"/></div> |
<div class="alert alert-info"><bean:message key="admin.contact"/> |
<ul> |
/branches/v3/impl/src/web/errors/noCookies.jsp |
---|
6,5 → 6,7 |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<div class="container-fluid errorContent"> |
<h3 class="statusWARNING"><bean:message key="error.no.cookies"/></h3> |
<p><bean:message key="admin.contact"/> webmaster [AT] estgp [DOT] pt</p> |
<p><bean:message key="admin.contact"/> webmaster [AT] estgp [DOT] pt</p> |
</div> |
/branches/v3/impl/src/web/errors/408.jsp |
---|
8,6 → 8,7 |
<% |
response.sendError(404); |
%> |
<div class="container-fluid errorContent"> |
<h3 class="statusWARNING"><bean:message key="error.404"/></h3> |
<p><bean:message key="error.408.explain"/></p> |
17,3 → 18,4 |
<li><%=ConfigProperties.getProperty("admin.email.2")%></li> |
</ul> |
</p> |
</div> |
/branches/v3/impl/src/web/js/baco-widgets.js |
---|
12,7 → 12,7 |
{ |
var data = $(form).serialize().replace(/%0D%0A/g, '%0A').replace(/\r?\n/g, "\r\n"); |
widgetCallWithActionParameters(form.action,serviceName,data,form,handlerOk,handlerFail); |
widgetCallWithActionParameters($(form).attr("action"),serviceName,data,form,handlerOk,handlerFail); |
} |
/** |
25,7 → 25,7 |
*/ |
function widgetCallWithParameters(serviceName,parameters,form,handlerOk,handlerFail) |
{ |
widgetCallWithActionParameters(form.action,serviceName,parameters,form,handlerOk,handlerFail); |
widgetCallWithActionParameters($(form).attr("action"),serviceName,parameters,form,handlerOk,handlerFail); |
} |
/** |
48,6 → 48,11 |
type: "POST", |
data: data, |
dataType: "json", |
statusCode: { |
401:function() { |
$("#modalAuthentication").modal({ show : 'true'}); |
} |
}, |
success: function(resposta) |
{ |
90,7 → 95,7 |
function widgetSimpleCall(serviceName,form,handlerOk,handlerFail){ |
var data = $(form).serialize().replace(/%0D%0A/g, '%0A').replace(/\r?\n/g, "\r\n"); |
widgetSimpleCallWithActionParameters(form.action,serviceName,data,form,handlerOk,handlerFail); |
widgetSimpleCallWithActionParameters($(form).attr("action"),serviceName,data,form,handlerOk,handlerFail); |
} |
/** |
* |
108,6 → 113,12 |
type: "POST", |
data: data, |
dataType: "json", |
statusCode: { |
401:function() { |
$('.modal').modal("hide"); |
$("#modalAuthentication").modal({ show : 'true'}); |
} |
}, |
success: function(resposta) |
{ |
$(webMessagesContainer).find(".web-messages").html(""); |
136,11 → 147,16 |
{ |
$(webMessagesContainer).find(".web-messages").append('<div class="alert alert-success">' + resposta.messages[msg] + '</div>'); |
} |
for(var error in resposta.errors) |
{ |
$(webMessagesContainer).find(".web-messages").append('<div class="alert alert-warning">' + resposta.errors[error] + '</div>'); |
} |
if(handlerOk != undefined) |
handlerOk(); |
} |
}, |
error: function() { |
error: function(resposta) |
{ |
$(webMessagesContainer).find(".web-messages").html('<div class="alert alert-danger">Erro de comunicação, por favor tente novamente</div>'); |
} |
}); |
/branches/v3/impl/src/web/layout/themes/scripts-default.jsp |
---|
741,3 → 741,5 |
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/css/bpmn/css/bpmn.css" /> |
/branches/v3/impl/src/web/layout/headerTools.jsp |
---|
323,4 → 323,129 |
<jsp:include page="intranetTools/files-upload-form.jsp"/> |
<link rel="stylesheet" href="<%=request.getContextPath()%>/js/angularjs/angular-ui-tree/angular-ui-tree.min.css"> |
<script type="text/javascript" src="<%=request.getContextPath()%>/js/angularjs/angular-ui-tree/angular-ui-tree.js"></script> |
<script type="text/javascript" src="<%=request.getContextPath()%>/js/angularjs/angular-ui-tree/angular-ui-tree.js"></script> |
<script> |
//COLOCAR WEB-MESSAGES WARNING E ERROR NUMA MODAL DEPOIS DE CARREGAR A PAGINA |
$(document).ready(function() |
{ |
if($(".web-messages-errors-baco").length) |
{ |
$('#errorsBacoModal .content-errors').html($(".web-messages-errors-baco").html()); |
$('#errorsBacoModal').modal({ |
show: 'true' |
}); |
} |
}); |
function modalWebMessages(title) |
{ |
if($(".web-messages").length) |
{ |
$("#modalWebMessages modal-title").html(title); |
$('#modalWebMessages .content-web-messages').html( $(".web-messages").html()); |
$('#modalWebMessages .content-aditional').html( ""); |
$('#modalWebMessages').modal({ |
show: 'true' |
}); |
} |
} |
function modalWebMessages(title,aditionalHtml) |
{ |
if($(".web-messages").length) |
{ |
$("#modalWebMessages .modal-title").html(title); |
$('#modalWebMessages .content-web-messages').html( $(".web-messages").html()); |
$('#modalWebMessages .content-aditional').html( aditionalHtml); |
$('#modalWebMessages').modal({ |
show: 'true' |
}); |
} |
} |
function modalWebMessagesGivenContainer(title,refContainer) |
{ |
if($(refContainer + " .web-messages").length) |
{ |
$("#modalWebMessages .modal-title").html(title); |
$('#modalWebMessages .content-web-messages').html($(refContainer + " .web-messages").html()); |
$('#modalWebMessages .content-aditional').html( ""); |
$('#modalWebMessages').modal({ |
show: 'true' |
}); |
} |
} |
function modalWebMessagesGivenContainer(title,refContainer,targetOkUrl) |
{ |
if($(refContainer + " .web-messages").length) |
{ |
$("#modalWebMessages .modal-title").html(title); |
$('#modalWebMessages .content-web-messages').html($(refContainer + " .web-messages").html()); |
$('#modalWebMessages .content-aditional').html( ""); |
$('#modalWebMessages').modal({ |
show: 'true' |
}); |
$("#modalWebMessages button[data-dismiss='modal']").unbind( "click" ); |
$("#modalWebMessages button[data-dismiss='modal']").click( |
function() |
{ |
window.location.href = targetOkUrl; |
} |
); |
} |
} |
</script> |
<div class="modal fade" id="errorsBacoModal" role="dialog" > |
<div class="modal-dialog" data-width="960" style="display: block; width: 960px; margin-top: 50px;" aria-hidden="false"> |
<!-- Modal content--> |
<div class="modal-content"> |
<div class="modal-header"> |
<h1 class="modal-title">Existem Avisos</h1> |
</div> |
<div class="modal-body"> |
<div class="panel panel-default"> |
<div class="panel-body content-errors" > |
</div> |
</div> |
<button type="button" class="btn btn-default" data-dismiss="modal">Entendi</button> |
</div> |
</div> |
</div> |
</div> |
<div class="modal fade" id="modalWebMessages" role="dialog" > |
<div class="modal-dialog" data-width="960" style="display: block; width: 960px; margin-top: 50px;" aria-hidden="false"> |
<!-- Modal content--> |
<div class="modal-content"> |
<div class="modal-header"> |
<h1 class="modal-title"></h1> |
</div> |
<div class="modal-body"> |
<div class="panel panel-default"> |
<div class="panel-body content-web-messages" > |
</div> |
</div> |
<div class="content-aditional" > |
</div> |
<button type="button" class="btn btn-default" data-dismiss="modal">Entendi</button> |
</div> |
</div> |
</div> |
</div> |
<jsp:include page="/auth/loginWidget.jsp"/> |
/branches/v3/impl/src/web/user/courseunits/courseunitEvaluation.jsp |
---|
370,6 → 370,7 |
<html:errors/> |
<jomm:messages/> |
<baco:notClearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_INFO_ACTIVE"> |
<div class="alert alert-info"> |
<bean:message key="courseunit.evaluation.period.inactive"/> |
471,13 → 472,16 |
<html:form styleId="formEval" styleClass="form-horizontal" action="/user/courseUnitEvaluationController"> |
<html:form styleId="formEval" styleClass="form-horizontal" action="/user/courseUnitEvaluationControllerWidget"> |
<input type="hidden" id="dispatch" name="dispatch" value="saveEvaluation"> |
<html:hidden property="id"/> |
<html:hidden property="courseUnitView.id"/> |
<input type="hidden" name="autosave" value="true"/> |
<div class="web-messages"></div> |
<div class="panel panel-default"> |
<div class="panel-heading"> |
Dados alterados pelo Docente da Unidade |
631,15 → 635,15 |
</table> |
<baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_EDITSAVE"> |
<button type="button" class="btn btn-default" onclick="set(form,'saveEvaluation');submitFormWaitAutoSave(form);"><bean:message key="save"/></button> |
<button type="button" class="btn btn-default" onclick="submitFormWaitAutoSave(form,'saveEvaluation');"><bean:message key="save"/></button> |
</baco:clearOperation> |
<baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_TRANSITATE_TO_COMPLETE"> |
<button type="button" id="buttonTeacherCompleteEvaluation" class="btn btn-default" onclick="set(form,'teacherCompleteEvaluation');submitFormWaitAutoSave(form);"><bean:message key="courseunit.evaluation.transit.to.complete"/></button> |
<button type="button" id="buttonTeacherCompleteEvaluation" class="btn btn-default" onclick="submitFormWaitAutoSave(form,'teacherCompleteEvaluation');"><bean:message key="courseunit.evaluation.transit.to.complete"/></button> |
</baco:clearOperation> |
<baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_TRANSITATE_TO_CLOSE"> |
<button type="button" id="buttonPublishEvaluation" class="btn btn-default" onclick="set(form,'publishEvaluation');submitFormWaitAutoSave(form);"><bean:message key="courseunit.evaluation.transit.to.closed"/></button> |
<button type="button" id="buttonPublishEvaluation" class="btn btn-default" onclick="submitFormWaitAutoSave(form,'publishEvaluation');"><bean:message key="courseunit.evaluation.transit.to.closed"/></button> |
</baco:clearOperation> |
684,21 → 688,7 |
</div> |
<script> |
function submitFormWaitAutoSave() |
{ |
stopAutoSave = true; |
$('#myModal').modal({ |
show: 'true' |
}); |
//esperar se houver algum update a executar 1500 segundos é o maximo de espera |
//se a pagina não recarregar e porque a thread parou |
setTimeout("submitForm()",40000); |
} |
function submitForm() |
{ |
$("#formEdit").submit(); |
} |
$( document ).ready(function() { |
717,46 → 707,77 |
</baco:notClearOperation> |
<baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_EDITSAVE"> |
setTimeout("serData()",5000); |
setTimeout("autoSaveStart()",5000); |
</baco:clearOperation> |
}); |
var stopAutoSave = false; |
function autoSaveStart() |
{ |
if(!stopAutoSave) |
sendEvaluation(true,"saveEvaluation"); |
function serData() |
} |
function submitFormWaitAutoSave(form,service) |
{ |
if(stopAutoSave) |
stopAutoSave = true; |
$('#myModal').modal({ |
show: 'true' |
}); |
//esperar se houver algum update a executar 1500 segundos é o maximo de espera |
//se a pagina não recarregar e porque a thread parou |
setTimeout("submitForm('" + service + "')",2000); |
} |
function submitForm(service) |
{ |
//Para Submeter sem o JSON = true |
sendEvaluation(false,service); |
} |
function sendEvaluation(autosave,service) |
{ |
if(autosave) |
{ |
$("#formEval").submit(); |
return; |
$("#dispatch").val("saveEvaluation"); |
$("#autosave").html('<div class="alert alert-info">Enviando ...</div>'); |
$("#formEval input[name='autosave']").val("true"); |
} |
else |
{ |
$("#dispatch").val("saveEvaluation"); |
var data = $("#formEval").serialize().replace(/%0D%0A/g, '%0A').replace(/\r?\n/g, "\r\n"); |
//alert(data); |
$("#formEval input[name='autosave']").val("false"); |
//alert($("#dispatch").val()) |
$("#autosave").html('<div class="alert alert-info">Enviando ...</div>'); |
$.ajax({ |
url: "<%=request.getContextPath()%>/user/courseUnitEvaluationController.do", |
type: "POST", |
data: data + "&json=true", |
dataType: "json", |
success: function(resposta) { |
if(resposta.service && resposta.service == "ok") |
widgetSimpleCall( |
service, |
$("#formEval"), |
function() |
{ |
$('#myModal').modal("hide"); |
//ok |
if(autosave) |
{ |
$("#autosave").html('<div class="alert alert-success">Salvo Automaticamente (Apenas Dados, não gerou PDF, para gerar PDF terá de salvar o docente)</div>'); |
} |
else |
$("#autosave").html('<div class="alert alert-warning">Deve salvar o seu relatório periodicamente</div>'); |
setTimeout("serData()",5000); |
{ |
modalWebMessagesGivenContainer("Avaliação Salva","#formEval","<%=request.getContextPath()%>/user/startLoadCourseUnitEvaluation.do?courseUnitId=${CourseUnitView.id}"); |
} |
}, |
error: function() { |
$("#autosave").html('<div class="alert alert-danger">Erro de comunicação, tentando novamente em 5 segundos</div>'); |
setTimeout("serData()",5000); |
function() |
{ |
$('#myModal').modal("hide"); |
modalWebMessagesGivenContainer("Avaliação Salva","#formEval"); |
} |
}); |
} |
); |
} |
</script> |
/branches/v3/impl/src/web/user/courseunits/courseunitProgram.jsp |
---|
27,7 → 27,10 |
<html:errors/> |
<jomm:messages/> |
<div class="web-messages"> |
</div> |
<baco:clearOperation name="CourseUnitView" property="courseUnit" op="PROGRAM_INFO_VALID_NOT_ACTIVE"> |
<div class="alert alert-warning"> |
O programa não está aberto para edição. A comissão de curso terá de invalidar o programa para que este possa ser alterado. |
413,18 → 416,104 |
<baco:clearOperation name="CourseUnitView" property="courseUnit" op="PROGRAM_TEACHER_PART,PROGRAM_COORDINATOR_PART"> |
<button class="btn btn-success" type="button" onclick="set(form,'saveProgram');form.submit()"><bean:message key="save"/></button> |
<button id="saveButton" class="btn btn-success" type="button" onclick="saveData('saveProgram');"><bean:message key="save"/></button> |
</baco:clearOperation> |
<baco:clearOperation name="CourseUnitView" property="courseUnit" op="PROGRAM_CAN_VALIDATE"> |
<logic:equal name="CourseUnitView" property="validProgram" value="false"> |
<button class="btn btn-success" type="button" onclick="set(form,'validateProgram');form.submit()">Salvar e Validar</button> |
<button id="validateButton" class="btn btn-success" type="button" onclick="saveData('validateProgram');">Salvar e Validar</button> |
</logic:equal> |
</baco:clearOperation> |
<a id="exitButton" class="hidden btn btn-danger" href="<%=request.getContextPath()%>/user/startLoadCourseUnitFromHome.do?courseUnitView.id=${CourseUnitView.id}&pos=2" class="btn btn-danger" type="button" >Sair</a> |
</html:form> |
</div><!--Panel body--> |
</div><!--Panel--> |
</div><!--Panel--> |
<script> |
function saveData(action) |
{ |
$("#ProgramForm input[name='dispatch']").val(action); |
var data = $("#ProgramForm").serialize().replace(/%0D%0A/g, '%0A').replace(/\r?\n/g, "\r\n"); |
//alert(data); |
//alert($("#dispatch").val()) |
$(".web-messages").html('<div class="alert alert-info">Enviando ...</div>'); |
$.ajax({ |
url: "<%=request.getContextPath()%>/user/courseUnitProgramController.do", |
type: "POST", |
data: data + "&json=true", |
dataType: "json", |
statusCode: { |
401:function() { |
$("#modalAuthentication").modal({ show : 'true'}); |
} |
}, |
success: function(resposta) { |
if(resposta.service && resposta.service == "ok") |
{ |
$(".web-messages").html('<div class="alert alert-success">Programa Salvo com Sucesso, pode rever o seu trabalho ou Sair</div>'); |
modalWebMessages(""); |
$("#exitButton").removeClass("hidden"); |
$("#saveButton").hide(); |
if(action == "validateProgram") |
{ |
$("#validateButton").hide(); |
} |
} |
else |
{ |
if($(resposta.responseText).find(".web-messages").length) |
{ |
$(".web-messages").html($(resposta.responseText).find(".web-messages").html()); |
modalWebMessages("Aviso"); |
} |
else |
{ |
if($(resposta.responseText).find(".errorContent").length) |
{ |
$(".web-messages").html('<div class="alert alert-danger">Erro de comunicação, por favor aguarde uns minutos tente novamente, se não conseguir copie manualmente os seus dados para um documento para não perder o seu trabalho e contacte a administração de sistemas</div>'); |
modalWebMessages("Existem Erros",$(resposta.responseText).find(".errorContent").html()); |
} |
else |
{ |
$(".web-messages").html('<div class="alert alert-danger">Erro de comunicação, por favor aguarde uns minutos e tente novamente, se não conseguir copie manualmente os seus dados para um documento para não perder o seu trabalho e contacte a administração de sistemas</div>'); |
modalWebMessages("Aviso"); |
} |
} |
} |
}, |
error: function(resposta, b, errorThrown) |
{ |
if(resposta.status != 401) |
{ |
if($(resposta.responseText).find(".errorContent").length) |
{ |
$(".web-messages").html('<div class="alert alert-danger">Erro de comunicação, por favor aguarde uns minutos e tente novamente, se não conseguir copie manualmente os seus dados para um documento para não perder o seu trabalho e contacte a administração de sistemas</div>'); |
modalWebMessages("Existem Erros",$(resposta.responseText).find(".errorContent").html()); |
} |
else |
{ |
$(".web-messages").html('<div class="alert alert-danger">Erro de comunicação, por favor aguarde uns minutos e tente novamente, se não conseguir copie manualmente os seus dados para um documento para não perder o seu trabalho e contacte a administração de sistemas</div>'); |
modalWebMessages("Aviso"); |
} |
} |
} |
}); |
} |
</script> |