Rev 1684 | Rev 1772 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1684 | Rev 1771 | ||
---|---|---|---|
Line 2... | Line 2... | ||
2 | <%@ page import="pt.estgp.estgweb.domain.Course" %> |
2 | <%@ page import="pt.estgp.estgweb.domain.Course" %> |
3 | <%@ page import="pt.estgp.estgweb.domain.CourseStudiesPlan" %> |
3 | <%@ page import="pt.estgp.estgweb.domain.CourseStudiesPlan" %> |
4 | <%@ page import="pt.estgp.estgweb.domain.CourseStudiesPlanImpl" %> |
4 | <%@ page import="pt.estgp.estgweb.domain.CourseStudiesPlanImpl" %> |
5 | <%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
5 | <%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
6 | <%@ page import="pt.estgp.estgweb.services.courses.CoursesService" %> |
6 | <%@ page import="pt.estgp.estgweb.services.courses.CoursesService" %> |
- | 7 | <%@ page import="pt.estgp.estgweb.services.courses.xsd.Curso" %> |
|
- | 8 | <%@ page import="pt.estgp.estgweb.services.courses.xsd.CursoImpl" %> |
|
7 | <%@ page import="pt.estgp.estgweb.web.form.courses.CourseStudiesPlansAdminForm" %> |
9 | <%@ page import="pt.estgp.estgweb.web.form.courses.CourseStudiesPlansAdminForm" %> |
8 | <%@ page import="java.util.List" %> |
- | |
9 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
10 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
10 | <%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
11 | <%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
11 | <%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
12 | <%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
12 | <%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
13 | <%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
13 | <%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
14 | <%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
14 | <%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
15 | <%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
15 | <%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %> |
16 | <%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %> |
16 | <%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm"%> |
17 | <%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm"%> |
17 | <% |
18 | <% |
- | 19 | ||
- | 20 | ||
- | 21 | //TODO NOVO JSON |
|
- | 22 | //O SALVAR TEM DE SER UMA FuncTION E DEIXAR DE SER UM SUBMIT PARA PODERMOS TRASNFERIR O JSON |
|
- | 23 | //PARA UMA VAR DE TEXTO |
|
- | 24 | ||
18 | //todo temos de ter aqui o id do curso para o carregar aqui mesmo |
25 | //todo temos de ter aqui o id do curso para o carregar aqui mesmo |
19 | 26 | ||
20 | //se queremos barras de navegação então temos de ter ser acedidos de um |
27 | //se queremos barras de navegação então temos de ter ser acedidos de um |
21 | //controlador que carregue o necerrário à barra ou então assumimos que |
28 | //controlador que carregue o necerrário à barra ou então assumimos que |
22 | //o curso id esta sempre disponivel nas barras possiveis de chamar |
29 | //o curso id esta sempre disponivel nas barras possiveis de chamar |
Line 77... | Line 84... | ||
77 | 84 | ||
78 | } |
85 | } |
79 | */ |
86 | */ |
80 | 87 | ||
81 | %> |
88 | %> |
82 | <div class="panel panel-default"> |
89 | <div class="panel panel-default" id="planoApp" ng-app="planoApp" ng-controller="planoController"> |
83 | <div class="panel-heading"> |
90 | <div class="panel-heading"> |
84 | Edição do plano de estudos. Versão <%=versaoPlano%> <%=ultimaVersao? "(<u>é a versão em vigor</u>)":""%> do curso de <%=course.getName()%> (<%=course.getCode()%>) |
91 | Edição do plano de estudos. Versão <%=versaoPlano%> <%=ultimaVersao? "(<u>é a versão em vigor</u>)":""%> do curso de <%=course.getName()%> (<%=course.getCode()%>) |
85 | </div> |
92 | </div> |
86 | <div class="panel-body"> |
93 | <div class="panel-body"> |
87 | 94 | ||
Line 211... | Line 218... | ||
211 | <label class="control-label col-sm-2">URL Padrão</label> |
218 | <label class="control-label col-sm-2">URL Padrão</label> |
212 | <div class="col-sm-10"> |
219 | <div class="col-sm-10"> |
213 | <p>exemplo para a ESTG: http://www.estgp.pt/startLoadCourseUnitProgramSiges.do?unitCode={SIGES_UNIT}&courseCode={SIGES_CURSO}&semestre={UNIT_SEMESTRE}</p> |
220 | <p>exemplo para a ESTG: http://www.estgp.pt/startLoadCourseUnitProgramSiges.do?unitCode={SIGES_UNIT}&courseCode={SIGES_CURSO}&semestre={UNIT_SEMESTRE}</p> |
214 | <p>Nenhum dos campos é obrigatório, o sistema substitui se existir no padrão, Na estg o Semestre é obrigatório para diferenciar unidades que são lecionadas em ambos os semestres</p> |
221 | <p>Nenhum dos campos é obrigatório, o sistema substitui se existir no padrão, Na estg o Semestre é obrigatório para diferenciar unidades que são lecionadas em ambos os semestres</p> |
215 | <p>O semestre presente neste sistema e que vai ser preenchido vai de S1 a S6 e de T1 a T8 ou A, portanto se o semestre for usado à que ter isto em atenção</p> |
222 | <p>O semestre presente neste sistema e que vai ser preenchido vai de S1 a S6 e de T1 a T8 ou A, portanto se o semestre for usado à que ter isto em atenção</p> |
216 | <input type="text" class="form-control" id="urlPadraoFicha" placeholder="http://exemplo.com/exemplo/{SIGES_CURSO}/{SEMESTRE}/{SIGES_UNIT}.pdf"> |
223 | <input type="text" class="form-control" id="urlPadraoFicha" placeholder="http://exemplo.com/exemplo/{SIGES_CURSO}/{UNIT_SEMESTRE}/{SIGES_UNIT}.pdf"> |
217 | </div> |
224 | </div> |
218 | </div> |
225 | </div> |
219 | <div class="form-group"> |
226 | <div class="form-group"> |
220 | <label class="control-label col-sm-2">Alvos</label> |
227 | <label class="control-label col-sm-2">Alvos</label> |
221 | <div class="col-sm-10"> |
228 | <div class="col-sm-10"> |
Line 234... | Line 241... | ||
234 | </div> |
241 | </div> |
235 | </div> |
242 | </div> |
236 | 243 | ||
237 | <% |
244 | <% |
238 | CourseStudiesPlansAdminForm courseStudiesPlansAdminForm = (CourseStudiesPlansAdminForm) request.getAttribute("CourseStudiesPlansAdminForm"); |
245 | CourseStudiesPlansAdminForm courseStudiesPlansAdminForm = (CourseStudiesPlansAdminForm) request.getAttribute("CourseStudiesPlansAdminForm"); |
- | 246 | //Isto corre sempre que se entra no Editor a primeira vez e não apenas quando é um plano novo |
|
239 | //Form ainda não iniciado vai iniciar é a primeira vez |
247 | //Form ainda não iniciado vai iniciar é a primeira vez |
240 | if(courseStudiesPlansAdminForm.getCourseStudiesPlan().getId() <= 0) |
248 | if(courseStudiesPlansAdminForm.getCourseStudiesPlan().getId() <= 0) |
241 | { |
249 | { |
242 | courseStudiesPlansAdminForm.setCourseStudiesPlan(planoEdicao); |
250 | courseStudiesPlansAdminForm.setCourseStudiesPlan(planoEdicao); |
243 | courseStudiesPlansAdminForm.setCourseId(courseId); |
251 | courseStudiesPlansAdminForm.setCourseId(courseId); |
244 | courseStudiesPlansAdminForm.setVersaoVigor(ultimaVersao); |
252 | courseStudiesPlansAdminForm.setVersaoVigor(ultimaVersao); |
- | 253 | Curso cPlanoDoXml2Json = new CoursesService().loadCursoPlanoFromXml(planoEdicao.getXml()); |
|
- | 254 | if(cPlanoDoXml2Json == null) |
|
- | 255 | courseStudiesPlansAdminForm.setPlanoEstudos(new CursoImpl()); |
|
- | 256 | else |
|
245 | courseStudiesPlansAdminForm.setPlanoEstudos(new CoursesService().loadCursoPlanoFromXml(planoEdicao.getXml())); |
257 | courseStudiesPlansAdminForm.setPlanoEstudos(new CoursesService().loadCursoPlanoFromXml(planoEdicao.getXml())); |
246 | } |
258 | } |
- | 259 | //LINHA NOVA PARA JSON DE INTERFACE |
|
- | 260 | courseStudiesPlansAdminForm.setPlanoEstudosJsonInterface(CursoImpl.toJson(courseStudiesPlansAdminForm.getPlanoEstudos())); |
|
247 | %> |
261 | %> |
248 | <logic:notEmpty name="CourseStudiesPlansAdminForm" property="courseStudiesPlan.importLog"> |
262 | <logic:notEmpty name="CourseStudiesPlansAdminForm" property="courseStudiesPlan.importLog"> |
249 | <div class="panel panel-warning"> |
263 | <div class="panel panel-warning"> |
250 | <div class="panel-heading"><span class="glyphicon glyphicon-wrench"></span> LOG DA ULTIMA IMPORTAÇÃO</div> |
264 | <div class="panel-heading"><span class="glyphicon glyphicon-wrench"></span> LOG DA ULTIMA IMPORTAÇÃO</div> |
251 | <div class="panel-body"> |
265 | <div class="panel-body"> |
Line 267... | Line 281... | ||
267 | <label class="control-label col-sm-2">Escolher Ficheiro Exportado do Siges</label> |
281 | <label class="control-label col-sm-2">Escolher Ficheiro Exportado do Siges</label> |
268 | <div class="col-sm-10"> |
282 | <div class="col-sm-10"> |
269 | <html:file styleClass="form-control" property="formFileImport"/> |
283 | <html:file styleClass="form-control" property="formFileImport"/> |
270 | </div> |
284 | </div> |
271 | </div> |
285 | </div> |
272 | <button class="btn btn-warning" type="button" data-toggle="modal" data-target="#confirm-ModalFunction" data-message="Esta operação vai sobrepor os dados do plano de estudos atual com os dados da versão escolhida!! Tem a certeza que deseja prosseguir?" data-script="set($('#CourseStudiesPlansAdminForm').get(0),'importarPlano');$('#CourseStudiesPlansAdminForm').get(0).submit();"> |
286 | <button class="btn btn-warning" type="button" data-toggle="modal" data-target="#confirm-ModalFunction" data-message="Esta operação vai sobrepor os dados do plano de estudos atual com os dados da versão escolhida!! Tem a certeza que deseja prosseguir?" data-script="angular.element($('#planoApp')).scope().fundirPlano();"> |
273 | Importar o ficheiro sobrepondo esta versão do plano |
287 | Importar o ficheiro sobrepondo esta versão do plano |
274 | </button> |
288 | </button> |
275 | </div> |
289 | </div> |
276 | </div> |
290 | </div> |
277 | </div> |
291 | </div> |
Line 282... | Line 296... | ||
282 | <label class="control-label col-sm-2">Escolher Ficheiro Exportado do Siges Com Ramos</label> |
296 | <label class="control-label col-sm-2">Escolher Ficheiro Exportado do Siges Com Ramos</label> |
283 | <div class="col-sm-10"> |
297 | <div class="col-sm-10"> |
284 | <html:file styleClass="form-control" property="formFileImport2"/> |
298 | <html:file styleClass="form-control" property="formFileImport2"/> |
285 | </div> |
299 | </div> |
286 | </div> |
300 | </div> |
287 | <button class="btn btn-warning" type="button" data-toggle="modal" data-target="#confirm-ModalFunction" data-message="Esta operação vai sobrepor os dados do plano de estudos atual com os dados da versão escolhida!! Tem a certeza que deseja prosseguir?" data-script="set($('#CourseStudiesPlansAdminForm').get(0),'mergePlano');$('#CourseStudiesPlansAdminForm').get(0).submit();"> |
301 | <button class="btn btn-warning" type="button" data-toggle="modal" data-target="#confirm-ModalFunction" data-message="Esta operação vai sobrepor os dados do plano de estudos atual com os dados da versão escolhida!! Tem a certeza que deseja prosseguir?" data-script="angular.element($('#planoApp')).scope().fundirPlano();"> |
288 | FUNDIR o ficheiro com esta versão do plano |
302 | FUNDIR o ficheiro com esta versão do plano |
289 | </button> |
303 | </button> |
290 | </div> |
304 | </div> |
291 | </div> |
305 | </div> |
292 | </div> |
306 | </div> |
Line 295... | Line 309... | ||
295 | </div> |
309 | </div> |
296 | </div> |
310 | </div> |
297 | 311 | ||
298 | 312 | ||
299 | <div class="panel panel-default"> |
313 | <div class="panel panel-default"> |
300 | <div class="panel-heading">Plano de Estudos |
314 | <div class="panel-heading">Plano de Estudos</div> |
301 | - | ||
302 | <button style="margin-left: 4px" type="button" class="btn btn-success pull-right" onclick="set(this.form,'addNewSemestre');this.form.submit()"> |
- | |
303 | <span class="glyphicon glyphicon-plus"> </span> Semestre |
- | |
304 | </button> |
- | |
305 | </div> |
- | |
306 | <div class="panel-body"> |
315 | <div class="panel-body"> |
307 | 316 | ||
308 | 317 | ||
309 | <input type="hidden" name="dispatch" value="savePlano"/> |
318 | <input type="hidden" name="dispatch" value="savePlano"/> |
310 | <html:hidden property="courseId"/> |
319 | <html:hidden property="courseId"/> |
311 | <html:hidden property="versaoVigor"/> |
320 | <html:hidden property="versaoVigor"/> |
312 | <html:hidden property="courseStudiesPlan.id"/> |
321 | <html:hidden property="courseStudiesPlan.id"/> |
313 | <html:hidden styleId="semestreId" property="semestreId"/> |
322 | <html:hidden styleId="semestreId" property="semestreId"/> |
314 | <html:hidden styleId="perfilId" property="perfilId"/> |
323 | <html:hidden styleId="perfilId" property="perfilId"/> |
- | 324 | <html:hidden styleId="planoEstudosJsonInterface" property="planoEstudosJsonInterface"/> |
|
315 | 325 | ||
316 | <div class="form-group"> |
326 | <div class="form-group"> |
317 | <label class="control-label col-sm-2">Versão</label> |
327 | <label class="control-label col-sm-2">Versão</label> |
318 | <div class="col-sm-10"> |
328 | <div class="col-sm-10"> |
319 | <html:text styleClass="form-control" property="courseStudiesPlan.version" size="3"/> |
329 | <html:text styleClass="form-control" property="courseStudiesPlan.version" size="3"/> |
Line 327... | Line 337... | ||
327 | </div> |
337 | </div> |
328 | 338 | ||
329 | 339 | ||
330 | 340 | ||
331 | 341 | ||
332 | <% |
- | |
333 | int dummyIndexIdUnidades = 0; |
- | |
334 | int dummyIndexPerfilId = 0; |
- | |
335 | int dummyIndexSemestreId = 0; |
- | |
336 | 342 | ||
337 | %> |
- | |
338 | <script> |
- | |
339 | 343 | ||
340 | function sendUpUnidadeCurricular(dummyIndexId) |
- | |
341 | { |
- | |
342 | sendFieldUp("removed",dummyIndexId); |
- | |
343 | sendFieldUp("siges",dummyIndexId); |
- | |
344 | sendFieldUp("nome",dummyIndexId); |
- | |
345 | sendFieldUp("nomeEn",dummyIndexId); |
- | |
346 | sendFieldUp("nomeEs",dummyIndexId); |
- | |
347 | sendFieldUp("nomeFr",dummyIndexId); |
- | |
348 | - | ||
349 | sendFieldUp("totalHoras",dummyIndexId); |
- | |
350 | sendFieldUp("horasContactoT",dummyIndexId); |
- | |
351 | sendFieldUp("horasContactoTP",dummyIndexId); |
- | |
352 | sendFieldUp("horasContactoP",dummyIndexId); |
- | |
353 | sendFieldUp("horasContactoPL",dummyIndexId); |
- | |
354 | sendFieldUp("horasContactoPD",dummyIndexId); |
- | |
355 | sendFieldUp("horasContactoOT",dummyIndexId); |
- | |
356 | sendFieldUp("horasContactoE",dummyIndexId); |
- | |
357 | sendFieldUp("horasContactoS",dummyIndexId); |
- | |
358 | sendFieldUp("horasContactoTC",dummyIndexId); |
- | |
359 | sendFieldUp("horasContactoO",dummyIndexId); |
- | |
360 | sendFieldUp("ECTS",dummyIndexId); |
- | |
361 | sendFieldUp("urlUnidadeCurricular",dummyIndexId); |
- | |
362 | sendFieldUp("urlFichaCurricular",dummyIndexId); |
- | |
363 | 344 | ||
364 | } |
345 | <div> |
- | 346 | <script> |
|
- | 347 | var planoApp = angular.module('planoApp', ['ui.tree']); |
|
- | 348 | GLOBAL_BacoAngularAppDependencies.push('planoApp'); |
|
- | 349 | planoApp.controller('planoController', function ($scope) { |
|
- | 350 | $scope.treeOptions = { |
|
- | 351 | accept: function(sourceNodeScope, destNodesScope, destIndex) { |
|
- | 352 | ||
- | 353 | //if(destNodesScope) |
|
- | 354 | //console.log(destNodesScope); |
|
- | 355 | //console.log(sourceNodeScope); |
|
365 | function sendDownUnidadeCurricular(dummyIndexId) |
356 | //console.log(destIndex); |
- | 357 | //console.log(destNodesScope.$parent.$modelValue.title); |
|
- | 358 | //console.log(destNodesScope.$modelValue[0].type); |
|
- | 359 | if(sourceNodeScope.$modelValue.type == destNodesScope.$modelValue[0].type) |
|
- | 360 | return true; |
|
- | 361 | return false; |
|
- | 362 | }, |
|
- | 363 | dropped: function(e) { |
|
- | 364 | //console.log (e.source.nodeScope.$modelValue); |
|
- | 365 | //alert ("Largado o nó com nome: " + e.source.nodeScope.$modelValue.name + " sobre " + e.dest.nodesScope.$parent.$modelValue.name); |
|
- | 366 | } |
|
- | 367 | }; |
|
- | 368 | $scope.json = <%=courseStudiesPlansAdminForm.getPlanoEstudosJsonInterface()%> |
|
- | 369 | ||
- | 370 | $scope.confView = |
|
366 | { |
371 | { |
- | 372 | "SIGES" : true , |
|
367 | sendFieldDown("removed",dummyIndexId); |
373 | "Nome" : true , |
368 | sendFieldDown("siges",dummyIndexId); |
374 | "ECTS" : true, |
369 | sendFieldDown("nome",dummyIndexId); |
375 | "Total" : true , |
- | 376 | "T" : true , |
|
- | 377 | "TP" : true , |
|
- | 378 | "P" : true , |
|
- | 379 | "PL" : true , |
|
- | 380 | "PD" : true , |
|
- | 381 | "OT" : true , |
|
- | 382 | "E" : true , |
|
- | 383 | "S" : true , |
|
- | 384 | "TC" : true , |
|
- | 385 | "O" : true , |
|
- | 386 | "URL_UNIDADE" : true , |
|
- | 387 | "FICHA_URL" : true |
|
- | 388 | } |
|
- | 389 | ||
370 | sendFieldDown("nomeEn",dummyIndexId); |
390 | $scope.submeterForm = function() |
- | 391 | { |
|
- | 392 | $("#planoEstudosJsonInterface").val( |
|
- | 393 | JSON.stringify($scope.json) |
|
- | 394 | ); |
|
- | 395 | $("#CourseStudiesPlansAdminForm").submit(); |
|
- | 396 | } |
|
- | 397 | ||
371 | sendFieldDown("nomeEs",dummyIndexId); |
398 | $scope.fundirPlano = function() |
- | 399 | { |
|
- | 400 | set($("#CourseStudiesPlansAdminForm").get(0),"mergePlano"); |
|
372 | sendFieldDown("nomeFr",dummyIndexId); |
401 | $scope.submeterForm(); |
- | 402 | } |
|
373 | 403 | ||
374 | sendFieldDown("totalHoras",dummyIndexId); |
404 | $scope.importarPlano = function() |
- | 405 | { |
|
- | 406 | set($("#CourseStudiesPlansAdminForm").get(0),"importarPlano"); |
|
375 | sendFieldDown("horasContactoT",dummyIndexId); |
407 | $scope.submeterForm(); |
- | 408 | } |
|
376 | sendFieldDown("horasContactoTP",dummyIndexId); |
409 | $scope.salvar = function() |
- | 410 | { |
|
- | 411 | set($("#CourseStudiesPlansAdminForm").get(0),"savePlano"); |
|
377 | sendFieldDown("horasContactoP",dummyIndexId); |
412 | $scope.submeterForm(); |
- | 413 | } |
|
- | 414 | ||
378 | sendFieldDown("horasContactoPL",dummyIndexId); |
415 | $scope.removeSemestre = function($index) |
- | 416 | { |
|
- | 417 | if(confirm("Tem a certeza que deseja remover o Semestre " + $scope.json.semestre[$index].id + "?")) |
|
379 | sendFieldDown("horasContactoPD",dummyIndexId); |
418 | $scope.json.semestre.splice($index,1); |
- | 419 | } |
|
380 | sendFieldDown("horasContactoOT",dummyIndexId); |
420 | $scope.removePerfil = function(semestre,$index) |
- | 421 | { |
|
- | 422 | if(confirm("Tem a certeza que deseja remover o Perfil " + semestre.perfil[$index].nome + "?")) |
|
381 | sendFieldDown("horasContactoE",dummyIndexId); |
423 | semestre.perfil.splice($index,1); |
- | 424 | } |
|
- | 425 | $scope.removeUnidade = function(semestreOuperfil,$index) |
|
- | 426 | { |
|
- | 427 | if(confirm("Tem a certeza que deseja remover a Unidade " + semestreOuperfil.unidade[$index].nome + "?")) |
|
382 | sendFieldDown("horasContactoS",dummyIndexId); |
428 | semestreOuperfil.unidade.splice($index,1); |
- | 429 | } |
|
383 | sendFieldDown("horasContactoTC",dummyIndexId); |
430 | $scope.addSemestre = function() |
- | 431 | { |
|
384 | sendFieldDown("horasContactoO",dummyIndexId); |
432 | $scope.json.semestre.push( |
- | 433 | { |
|
385 | sendFieldDown("ECTS",dummyIndexId); |
434 | "id": "S1", |
- | 435 | "notas": null, |
|
- | 436 | "perfil": [], |
|
- | 437 | "semestreDesc": "Semestre 1", |
|
- | 438 | "semestreDescEn": "Semester 1", |
|
- | 439 | "semestreDescEs": "Semestre 1", |
|
386 | sendFieldDown("urlUnidadeCurricular",dummyIndexId); |
440 | "semestreDescFr": "Semestre 1", |
- | 441 | "semestreId": null, |
|
- | 442 | "unidade": [], |
|
387 | sendFieldDown("urlFichaCurricular",dummyIndexId); |
443 | "type" : "semestre" |
- | 444 | } |
|
- | 445 | ); |
|
- | 446 | } |
|
388 | 447 | ||
389 | } |
- | |
390 | function sendFieldUp(field,dummyIndexId){ |
448 | $scope.addPerfil = function(semestre) |
391 | nome = $("#" + field + "dummyIndex" + dummyIndexId).val(); |
449 | { |
392 | $("#" + field + "dummyIndex" + (dummyIndexId)).val($("#" + field + "dummyIndex" + (dummyIndexId-1)).val()); |
- | |
393 | $("#" + field + "dummyIndex" + (dummyIndexId-1)).val(nome); |
450 | semestre.perfil.push( |
394 | } |
451 | { |
395 | function sendFieldDown(field,dummyIndexId){ |
452 | "nome": "", |
396 | nome = $("#" + field + "dummyIndex" + dummyIndexId).val(); |
453 | "perfilId": null, |
397 | $("#" + field + "dummyIndex" + (dummyIndexId)).val($("#" + field + "dummyIndex" + (dummyIndexId+1)).val()); |
454 | "unidade" : [], |
398 | $("#" + field + "dummyIndex" + (dummyIndexId+1)).val(nome); |
455 | "type" : "perfil" |
399 | } |
456 | } |
400 | function removeUnit(dummyIndexId) |
457 | ); |
401 | { |
458 | } |
402 | $("#removed" + "dummyIndex" + dummyIndexId).val("true"); |
- | |
403 | $("#removed" + "dummyIndex" + dummyIndexId).closest("tr").hide("slow"); |
- | |
404 | 459 | ||
- | 460 | $scope.addUnidade = function(semestreOuPerfil) |
|
- | 461 | { |
|
- | 462 | semestreOuPerfil.unidade.push( |
|
- | 463 | { |
|
- | 464 | "dep": "", |
|
- | 465 | "ects": "", |
|
- | 466 | "nome": "", |
|
- | 467 | "nomeEn": null, |
|
- | 468 | "nomeEs": null, |
|
- | 469 | "nomeFr": null, |
|
- | 470 | "obs": "", |
|
- | 471 | "removed": null, |
|
- | 472 | "siges": null, |
|
- | 473 | "totalHoras": 0, |
|
- | 474 | "urlFichaCurricular": "", |
|
- | 475 | "urlUnidadeCurricular": "", |
|
- | 476 | "type": "unidade" |
|
- | 477 | } |
|
- | 478 | ); |
|
- | 479 | } |
|
405 | } |
480 | }); |
406 | 481 | ||
407 | function sendUpSemestre(dummySemestreId,form) |
- | |
408 | { |
- | |
409 | $(form.semestreId).val("semestreDummy" + dummySemestreId); |
- | |
410 | $(form.dispatch).val("sendUpSemestre"); |
- | |
411 | form.submit(); |
- | |
412 | } |
- | |
413 | function sendDownSemestre(dummySemestreId,form) |
- | |
414 | { |
- | |
415 | $(form.semestreId).val("semestreDummy" +dummySemestreId); |
- | |
416 | $(form.dispatch).val("sendDownSemestre"); |
- | |
417 | form.submit(); |
- | |
418 | } |
- | |
419 | 482 | ||
420 | function sendUpPerfil(dummyPerfilId,form,dummySemestreId) |
483 | </script> |
421 | { |
484 | <div class="panel panel-info"> |
422 | form.action = form.action + "#" + dummySemestreId; |
485 | <div class="panel-heading">Configuração de Visualização</div> |
423 | $(form.perfilId).val("perfilDummy" + dummyPerfilId); |
486 | <div class="panel-body"> |
424 | $(form.dispatch).val("sendUpPerfil"); |
487 | <table class="table"> |
425 | form.submit(); |
488 | <thead> |
426 | } |
489 | <tr> |
- | 490 | <th>SIGES</th> |
|
427 | function sendDownPerfil(dummyPerfilId,form,dummySemestreId) |
491 | <th>Nome</th> |
- | 492 | <th>ECTS</th> |
|
- | 493 | <th>Total</th> |
|
428 | { |
494 | <th>T</th> |
429 | form.action = form.action + "#" + dummySemestreId; |
495 | <th>TP</th> |
- | 496 | <th>P</th> |
|
430 | $(form.perfilId).val("perfilDummy" + dummyPerfilId); |
497 | <th>PL</th> |
431 | $(form.dispatch).val("sendDownPerfil"); |
498 | <th>PD</th> |
432 | form.submit(); |
499 | <th>OT</th> |
433 | } |
500 | <th>E</th> |
434 | </script> |
501 | <th>S</th> |
- | 502 | <th>TC</th> |
|
435 | <nested:notEmpty property="planoEstudos"> |
503 | <th>O</th> |
436 | 504 | ||
- | 505 | <th>URL UNIDADE</th> |
|
- | 506 | <th>FICHA URL</th> |
|
437 | <div class="panel panel-default"> |
507 | </tr> |
438 | <div class="panel-heading"> |
508 | </thead> |
- | 509 | <tbody> |
|
- | 510 | <tr> |
|
- | 511 | <td><input type="checkbox" ng-model="confView.SIGES"></td> |
|
- | 512 | <td><input type="checkbox" ng-model="confView.Nome"></td> |
|
- | 513 | <td><input type="checkbox" ng-model="confView.ECTS"></td> |
|
- | 514 | <td><input type="checkbox" ng-model="confView.Total"></td> |
|
- | 515 | <td><input type="checkbox" ng-model="confView.T"></td> |
|
- | 516 | <td><input type="checkbox" ng-model="confView.TP"></td> |
|
- | 517 | <td><input type="checkbox" ng-model="confView.P"></td> |
|
- | 518 | <td><input type="checkbox" ng-model="confView.PL"></td> |
|
- | 519 | <td><input type="checkbox" ng-model="confView.PD"></td> |
|
- | 520 | <td><input type="checkbox" ng-model="confView.OT"></td> |
|
- | 521 | <td><input type="checkbox" ng-model="confView.E"></td> |
|
- | 522 | <td><input type="checkbox" ng-model="confView.S"></td> |
|
- | 523 | <td><input type="checkbox" ng-model="confView.TC"></td> |
|
- | 524 | <td><input type="checkbox" ng-model="confView.O"></td> |
|
- | 525 | <td><input type="checkbox" ng-model="confView.URL_UNIDADE"></td> |
|
- | 526 | <td><input type="checkbox" ng-model="confView.FICHA_URL"></td> |
|
439 | Informação obtida do Siges (Auxiliar) |
527 | </tr> |
- | 528 | </tbody> |
|
- | 529 | </table> |
|
- | 530 | </div> |
|
440 | </div> |
531 | </div> |
- | 532 | ||
441 | <div class="panel-body"> |
533 | <div class="panel panel-default"> |
442 | <div class="form-group"> |
534 | <div class="panel-heading"> |
443 | <label class="control-label col-sm-2">Ano do Plano no Siges</label> |
- | |
444 | <div class="col-sm-10"> |
535 | Informação obtida do Siges (Auxiliar) |
445 | <html:text styleClass="form-control" property="planoEstudos.anoPlanoSiges"/> |
- | |
446 | </div> |
- | |
447 | </div> |
536 | </div> |
- | 537 | <div class="panel-body"> |
|
448 | <div class="form-group"> |
538 | <div class="form-group"> |
449 | <label class="control-label col-sm-2">Código do Plano no Siges</label> |
539 | <label class="control-label col-sm-2">Ano do Plano no Siges</label> |
450 | <div class="col-sm-10"> |
540 | <div class="col-sm-10"> |
451 | <html:text styleClass="form-control" property="planoEstudos.codigoPlanoSiges"/> |
541 | <input type="text" class="form-control" ng-model="json.anoPlanoSiges"/> |
- | 542 | </div> |
|
452 | </div> |
543 | </div> |
- | 544 | <div class="form-group"> |
|
- | 545 | <label class="control-label col-sm-2">Código do Plano no Siges</label> |
|
- | 546 | <div class="col-sm-10"> |
|
- | 547 | <input type="text" class="form-control" ng-model="json.codigoPlanoSiges"/> |
|
- | 548 | </div> |
|
453 | </div> |
549 | </div> |
454 | <div class="form-group"> |
550 | <div class="form-group"> |
455 | <label class="control-label col-sm-2">Linha Descritiva do Plano no Siges</label> |
551 | <label class="control-label col-sm-2">Linha Descritiva do Plano no Siges</label> |
456 | <div class="col-sm-10"> |
552 | <div class="col-sm-10"> |
457 | <html:text styleClass="form-control" property="planoEstudos.descPlanoSiges"/> |
553 | <input type="text" class="form-control" ng-model="json.descPlanoSiges"/> |
- | 554 | </div> |
|
458 | </div> |
555 | </div> |
459 | </div> |
556 | </div> |
460 | </div> |
557 | </div> |
461 | </div> |
- | |
462 | 558 | ||
463 | <html:hidden property="planoEstudos.siges"/> |
- | |
464 | <html:hidden property="planoEstudos.nome"/> |
- | |
465 | <html:hidden property="planoEstudos.dep"/> |
- | |
466 | <nested:size id="tamanhoSemestre" property="planoEstudos.semestre"/> |
- | |
467 | <nested:iterate id="semestre" indexId="semestreIndexId" property="planoEstudos.semestre" type="pt.estgp.estgweb.services.courses.xsd.Curso.Semestre"> |
- | |
468 | <div class="panel panel-primary"> |
559 | <div class="panel panel-default"> |
469 | <div class="panel-heading"> |
560 | <div class="panel-heading"> |
- | 561 | Semestres |
|
- | 562 | <button style="margin-left: 4px" type="button" class="btn btn-success pull-right" ng-click="addSemestre()"> |
|
- | 563 | <span class="glyphicon glyphicon-plus"> </span> Semestre |
|
- | 564 | </button> |
|
- | 565 | </div> |
|
- | 566 | <div class="panel-body"> |
|
- | 567 | <div ui-tree="treeOptions" id="page-content-root"> |
|
- | 568 | <div ui-tree-nodes ng-model="json.semestre"> |
|
- | 569 | <div class="panel panel-primary" ng-repeat="s in json.semestre" ui-tree-node ng-include="'semestre_renderer.html'" ng-init="s.type='semestre'"> |
|
- | 570 | </div> |
|
- | 571 | </div> |
|
- | 572 | </div> |
|
- | 573 | </div> |
|
470 | 574 | ||
- | 575 | <script type="text/ng-template" id="semestre_renderer.html"> |
|
- | 576 | <div class="panel-heading"> |
|
471 | <div class="form-group"> |
577 | <div class="form-group"> |
472 | <% |
- | |
473 | dummyIndexSemestreId++; |
- | |
474 | request.setAttribute("dummyIndexSemestreId",dummyIndexSemestreId); |
- | |
475 | %> |
- | |
476 | <nested:hidden property="semestreId" value="semestreDummy${dummyIndexSemestreId}"/> |
- | |
- | 578 | ||
477 | <div class="col-sm-2"> |
579 | <div class="col-sm-1"> |
478 | <button type="button" class="btn btn-warning" onclick="sendUpSemestre('<%=dummyIndexSemestreId%>',this.form)"> |
- | |
479 | <span class="glyphicon glyphicon-arrow-up"> </span> |
- | |
480 | </button> |
- | |
481 | <button type="button" class="btn btn-warning" onclick="sendDownSemestre('<%=dummyIndexSemestreId%>',this.form)"> |
- | |
482 | <span class="glyphicon glyphicon-arrow-down"> </span> |
- | |
483 | </button> |
- | |
484 | <button type="button" class="btn btn-danger" data-toggle="modal" data-target="#confirm-ModalFunction" data-message="Esta operação vai remover todas as unidades e perfis deste semestre!! Tem a certeza que deseja prosseguir? A operação não afeta as unidades nem os cursos do PAE, apenas o plano." data-script="$('#semestreId').val('semestreDummy${dummyIndexSemestreId}');set($('#CourseStudiesPlansAdminForm').get(0),'removeSemestre');$('#CourseStudiesPlansAdminForm').get(0).submit()"> |
580 | <button type="button" class="btn btn-danger" ng-click="removeSemestre($index)"> |
485 | <span class="glyphicon glyphicon-remove"> </span> |
581 | <span class="glyphicon glyphicon-remove"> </span> |
486 | </button> |
582 | </button> |
487 | </div> |
583 | </div> |
488 | <div class="col-sm-1"> |
584 | <div class="col-sm-4" ui-tree-handle> |
- | 585 | <span class="btn btn-info"><i class="glyphicon glyphicon-resize-vertical"></i></span> |
|
489 | Duração |
586 | Duração |
490 | </div> |
587 | </div> |
491 | <div class="col-sm-3"> |
588 | <div class="col-sm-3"> |
492 | <script> |
- | |
493 | $(document).ready( |
- | |
494 | function() |
- | |
495 | { |
- | |
496 | showHideSemestreDesc${dummyIndexSemestreId}(); |
- | |
497 | } |
- | |
498 | ); |
- | |
499 | - | ||
500 | - | ||
501 | function showHideSemestreDesc${dummyIndexSemestreId}() |
589 | <select class="form-control chosenOff" ng-model="s.id"> |
502 | { |
- | |
503 | if($("#selectSemestreDesc${dummyIndexSemestreId}").val()=='OP') |
- | |
504 | { |
- | |
505 | $('#semestreDescContainer${dummyIndexSemestreId}').show(); |
- | |
506 | } |
- | |
507 | else |
- | |
508 | { |
- | |
509 | $('#semestreDescContainer${dummyIndexSemestreId}').hide(); |
- | |
510 | } |
- | |
511 | } |
- | |
512 | </script> |
- | |
513 | <nested:select styleClass="form-control" property="id" styleId="selectSemestreDesc${dummyIndexSemestreId}" onchange="showHideSemestreDesc${dummyIndexSemestreId}(this)"> |
- | |
514 | <html:option value="S1">Semestre 1</html:option> |
590 | <option value="S1">Semestre 1</option> |
515 | <html:option value="S2">Semestre 2</html:option> |
591 | <option value="S2">Semestre 2</option> |
516 | <html:option value="S3">Semestre 3</html:option> |
592 | <option value="S3">Semestre 3</option> |
517 | <html:option value="S4">Semestre 4</html:option> |
593 | <option value="S4">Semestre 4</option> |
518 | <html:option value="S5">Semestre 5</html:option> |
594 | <option value="S5">Semestre 5</option> |
519 | <html:option value="S6">Semestre 6</html:option> |
595 | <option value="S6">Semestre 6</option> |
520 | <html:option value="S7">Semestre 7</html:option> |
596 | <option value="S7">Semestre 7</option> |
521 | <html:option value="S8">Semestre 8</html:option> |
597 | <option value="S8">Semestre 8</option> |
522 | <html:option value="A1">Anual 1</html:option> |
598 | <option value="A1">Anual 1</option> |
523 | <html:option value="A2">Anual 2</html:option> |
599 | <option value="A2">Anual 2</option> |
524 | <html:option value="A3">Anual 3</html:option> |
600 | <option value="A3">Anual 3</option> |
525 | <html:option value="A4">Anual 4</html:option> |
601 | <option value="A4">Anual 4</option> |
526 | <html:option value="T1">Trimestre 1</html:option> |
602 | <option value="T1">Trimestre 1</option> |
527 | <html:option value="T2">Trimestre 2</html:option> |
603 | <option value="T2">Trimestre 2</option> |
528 | <html:option value="T3">Trimestre 3</html:option> |
604 | <option value="T3">Trimestre 3</option> |
529 | <html:option value="T4">Trimestre 4</html:option> |
605 | <option value="T4">Trimestre 4</option> |
530 | <html:option value="T5">Trimestre 5</html:option> |
606 | <option value="T5">Trimestre 5</option> |
531 | <html:option value="T6">Trimestre 6</html:option> |
607 | <option value="T6">Trimestre 6</option> |
532 | <html:option value="T7">Trimestre 7</html:option> |
608 | <option value="T7">Trimestre 7</option> |
533 | <html:option value="T8">Trimestre 8</html:option> |
609 | <option value="T8">Trimestre 8</option> |
534 | <html:option value="OP">Opcionais</html:option> |
610 | <option value="OP">Opcionais</option> |
535 | </nested:select> |
611 | </select> |
536 | <div id="semestreDescContainer${dummyIndexSemestreId}"> |
612 | <div ng-show="s.id == 'OP'"> |
537 | Descrição (PT) <nested:text property="semestreDesc" styleClass="form-control"/> |
613 | Descrição (PT) <input type="text" ng-model="s.semestreDesc" class="form-control"/> |
538 | Descrição (EN) <nested:text property="semestreDescEn" styleClass="form-control"/> |
614 | Descrição (EN) <input type="text" ng-model="s.semestreDescEn" class="form-control"/> |
539 | Descrição (ES) <nested:text property="semestreDescEs" styleClass="form-control"/> |
615 | Descrição (ES) <input type="text" ng-model="s.semestreDescEs" class="form-control"/> |
540 | Descrição (FR) <nested:text property="semestreDescFr" styleClass="form-control"/> |
616 | Descrição (FR) <input type="text" ng-model="s.semestreDescFr" class="form-control"/> |
541 | </div> |
617 | </div> |
542 | </div> |
618 | </div> |
543 | <div class="col-sm-6"> |
619 | <div class="col-sm-4"> |
544 | 620 | ||
545 | <button style="margin-left: 4px" type="button" class="btn btn-success pull-right" onclick="form.action=form.action+'#semestreDummy${dummyIndexSemestreId}';$('#semestreId').val('semestreDummy${dummyIndexSemestreId}');set(this.form,'addUnidadeSemestre');this.form.submit()"> |
621 | <button style="margin-left: 4px" type="button" class="btn btn-success pull-right" ng-click="addUnidade(s)"> |
546 | <span class="glyphicon glyphicon-plus"> </span> Unidade |
622 | <span class="glyphicon glyphicon-plus"> </span> Unidade |
547 | </button> |
623 | </button> |
548 | 624 | ||
549 | <button style="margin-left: 4px" type="button" class="btn btn-success pull-right" onclick="form.action=form.action+'#semestreDummy${dummyIndexSemestreId}';$('#semestreId').val('semestreDummy${dummyIndexSemestreId}');set(this.form,'addPerfilSemestre');this.form.submit()"> |
625 | <button style="margin-left: 4px" type="button" class="btn btn-success pull-right" ng-click="addPerfil(s)"> |
550 | <span class="glyphicon glyphicon-plus"> </span> Perfil |
626 | <span class="glyphicon glyphicon-plus"> </span> Perfil |
551 | </button> |
627 | </button> |
552 | - | ||
553 | <a name="semestreDummy${dummyIndexSemestreId}"></a> |
- | |
554 | </div> |
628 | </div> |
555 | </div> |
629 | </div> |
556 | </div> |
630 | </div> |
557 | <div class="panel-body"> |
631 | <div class="panel-body"> |
558 | - | ||
559 | <div class="form-group"> |
632 | <div class="form-group"> |
560 | 633 | ||
561 | <div class="col-sm-2"> |
634 | <div class="col-sm-2"> |
562 | Notas do Semestre (Pode ser utilizado para mostrar Optativas) |
635 | Notas do Semestre (Pode ser utilizado para mostrar Optativas) |
563 | </div> |
636 | </div> |
564 | <div class="col-sm-10"> |
637 | <div class="col-sm-10"> |
565 | <nested:textarea property="notas" rows="5" styleClass="form-control"/> |
638 | <textarea ng-model="s.notas" rows="5" class="form-control"></textarea> |
566 | </div> |
639 | </div> |
567 | </div> |
640 | </div> |
568 | 641 | ||
569 | <button class="btn btn-default" data-toggle="collapse" type="button" data-target=".langs">Ver Campos Multingua</button> |
642 | <button class="btn btn-default" data-toggle="collapse" type="button" data-target=".langs">Ver Campos Multingua</button> |
570 | - | ||
571 | <nested:size id="tamanhoPerfil" property="perfil"/> |
- | |
572 | <nested:iterate id="perfil" indexId="perfilIndexId" property="perfil" type="pt.estgp.estgweb.services.courses.xsd.Curso.Semestre.Perfil"> |
- | |
573 | <div class="panel panel-info"> |
- | |
574 | <div class="panel-heading"> |
- | |
575 | <div class="form-group"> |
- | |
576 | <% |
- | |
577 | dummyIndexPerfilId++; |
- | |
578 | request.setAttribute("dummyIndexPerfilId",dummyIndexPerfilId); |
- | |
579 | %> |
- | |
580 | <a name="perfilDummy${dummyIndexPerfilId}"></a> |
- | |
581 | <nested:hidden property="perfilId" value="perfilDummy${dummyIndexPerfilId}"/> |
- | |
582 | <div class="col-sm-2"> |
- | |
583 | <button type="button" class="btn btn-warning" onclick="sendUpPerfil('<%=dummyIndexPerfilId%>',this.form,'semestreDummy${dummyIndexSemestreId}')"> |
- | |
584 | <span class="glyphicon glyphicon-arrow-up"> </span> |
- | |
585 | </button> |
- | |
586 | <button type="button" class="btn btn-warning" onclick="sendDownPerfil('<%=dummyIndexPerfilId%>',this.form,'semestreDummy${dummyIndexSemestreId}')"> |
- | |
587 | <span class="glyphicon glyphicon-arrow-down"> </span> |
- | |
588 | </button> |
- | |
589 | <button type="button" class="btn btn-danger" data-toggle="modal" data-target="#confirm-ModalFunction" data-message="Esta operação vai remover todas as unidades deste perfil!! Tem a certeza que deseja prosseguir? A operação não afeta as unidades nem os cursos do PAE, apenas o plano." data-script="$('#CourseStudiesPlansAdminForm').get(0).action=$('#CourseStudiesPlansAdminForm').get(0).action+'#semestreDummy${dummyIndexSemestreId}';$('#perfilId').val('perfilDummy${dummyIndexPerfilId}');set($('#CourseStudiesPlansAdminForm').get(0),'removePerfil');$('#CourseStudiesPlansAdminForm').get(0).submit()"> |
643 | <div ui-tree-nodes="" ng-model="s.perfil" ng-show="s.perfil.length > 0"> |
590 | <span class="glyphicon glyphicon-remove"> </span> |
- | |
591 | </button> |
- | |
592 | </div> |
- | |
593 | <div class="col-sm-1"> |
- | |
594 | Perfil |
- | |
595 | </div> |
- | |
596 | <div class="col-sm-5"> |
- | |
597 | <nested:text styleClass="form-control" property="nome"/> |
- | |
598 | </div> |
- | |
599 | <div class="col-sm-4"> |
- | |
600 | <button type="button" class="btn btn-success pull-right" onclick="form.action=form.action+'#perfilDummy${dummyIndexPerfilId}';$('#perfilId').val('perfilDummy${dummyIndexPerfilId}');set(this.form,'addUnidadePerfil');this.form.submit()"> |
644 | <div class="panel panel-info" ng-repeat="p in s.perfil" ui-tree-node ng-include="'perfil_renderer.html'" ng-init="p.type='perfil';parent=s"> |
601 | <span class="glyphicon glyphicon-plus"> </span> Unidade |
- | |
602 | </button> |
- | |
603 | </div> |
- | |
604 | </div> |
- | |
605 | </div> |
- | |
606 | <div class="panel-body"> |
- | |
607 | <table class="tablesorterfiltered"> |
- | |
608 | <thead> |
- | |
609 | <tr> |
- | |
610 | <td></td> |
- | |
611 | <td></td> |
- | |
612 | <th>SIGES</th> |
- | |
613 | <th>Nome</th> |
- | |
614 | <th>Total</th> |
- | |
615 | <th>T</th> |
- | |
616 | <th>TP</th> |
- | |
617 | <th>P</th> |
- | |
618 | <th>PL</th> |
- | |
619 | <th>PD</th> |
- | |
620 | <th>OT</th> |
- | |
621 | <th>E</th> |
- | |
622 | <th>S</th> |
- | |
623 | <th>TC</th> |
- | |
624 | <th>O</th> |
- | |
625 | <th>ECTS</th> |
- | |
626 | <th>URL UNIDADE</th> |
- | |
627 | <th>FICHA URL</th> |
- | |
628 | </tr> |
- | |
629 | </thead> |
- | |
630 | <tbody> |
- | |
631 | <nested:size id="tamanho" property="unidade"/> |
- | |
632 | <nested:iterate id="unit" indexId="indexId" property="unidade" type="pt.estgp.estgweb.services.courses.xsd.UnidadeType"> |
- | |
633 | - | ||
634 | <% |
- | |
635 | dummyIndexIdUnidades++; |
- | |
636 | request.setAttribute("dummyIndexIdUnidades","dummyIndex" + dummyIndexIdUnidades); |
- | |
637 | %> |
- | |
638 | <% |
- | |
639 | int tamanhoMinus1 = tamanho - 1; |
- | |
640 | request.setAttribute("tamanhoMinus1",tamanhoMinus1); |
- | |
641 | - | ||
642 | %> |
- | |
643 | <tr <nested:equal property="removed" value="true">class="hidden"</nested:equal>> |
- | |
644 | <td class="text-nowrap"> |
- | |
645 | - | ||
646 | <%-- |
- | |
647 | Usando o dummyIndex apenas não colocamos botao de up na primeira de todas as unidades de todos os semestres |
- | |
648 | Antes usavamos o indexId e trabalhavamos lista a lista considerando semestres e perfis independentes |
- | |
649 | --%> |
- | |
650 | <nested:notEqual value="dummyIndex1" name="dummyIndexIdUnidades"> |
- | |
651 | <button type="button" class="btn btn-warning" onclick="sendUpUnidadeCurricular(<%=dummyIndexIdUnidades%>)"> |
- | |
652 | <span class="glyphicon glyphicon-arrow-up"> </span> |
- | |
653 | </button> |
- | |
654 | </nested:notEqual> |
- | |
655 | <% |
- | |
656 | boolean perfilMaximoAtingido = perfilIndexId >= tamanhoPerfil - 1; |
- | |
657 | boolean semestreMaximoAtingido = semestreIndexId >= tamanhoSemestre - 1; |
- | |
658 | boolean tamanhoMaximoAtingido = indexId >= tamanho - 1; |
- | |
659 | if(!perfilMaximoAtingido || !semestreMaximoAtingido || !tamanhoMaximoAtingido) |
- | |
660 | { |
- | |
661 | %> |
- | |
662 | <button type="button" class="btn btn-warning" onclick="sendDownUnidadeCurricular(<%=dummyIndexIdUnidades%>)"> |
- | |
663 | <span class="glyphicon glyphicon-arrow-down"> </span> |
- | |
664 | </button> |
- | |
665 | <% |
- | |
666 | } |
- | |
667 | %> |
- | |
668 | </td> |
- | |
669 | <td> |
- | |
670 | <nested:hidden styleId="removed${dummyIndexIdUnidades}" property="removed"/> |
- | |
671 | <button type="button" class="btn btn-danger" onclick="removeUnit(<%=dummyIndexIdUnidades%>)"> |
- | |
672 | <span class="glyphicon glyphicon-remove"> </span> |
- | |
673 | </button> |
- | |
674 | </td> |
- | |
675 | <td> |
- | |
676 | <script> |
- | |
677 | $(document).ready( |
- | |
678 | function() |
- | |
679 | { |
- | |
680 | $("#siges${dummyIndexIdUnidades}").focusout( |
- | |
681 | function(){ |
- | |
682 | var code = $("#siges${dummyIndexIdUnidades}").val(); |
- | |
683 | $.getJSON("<%=request.getContextPath()%>/user/courses/courseApiJson.jsp", |
- | |
684 | { service:"findCourseUnit", |
- | |
685 | siges: code, |
- | |
686 | courseSigesCode: "${course.code}" |
- | |
687 | }, |
- | |
688 | function(data) |
- | |
689 | { |
- | |
690 | if(data.response == "ok") |
- | |
691 | { |
- | |
692 | $("#nome${dummyIndexIdUnidades}").val(data.courseUnitName); |
- | |
693 | $("#sigesResponse${dummyIndexIdUnidades}").html(""); |
- | |
694 | } |
- | |
695 | else |
- | |
696 | { |
- | |
697 | $("#sigesResponse${dummyIndexIdUnidades}").html("Não encontrado"); |
- | |
698 | } |
- | |
699 | } |
- | |
700 | ); |
- | |
701 | } |
- | |
702 | ); |
- | |
703 | } |
- | |
704 | ); |
- | |
705 | </script> |
- | |
706 | - | ||
707 | <nested:text styleId="siges${dummyIndexIdUnidades}" styleClass="form-control" property="siges"/> |
- | |
708 | <div id="sigesResponse${dummyIndexIdUnidades}"></div> |
- | |
709 | </td> |
- | |
710 | <td> |
- | |
711 | <div> |
- | |
712 | <div class="col-sm-1">(PT)</div> |
- | |
713 | <div class="col-sm-11"><nested:text styleId="nome${dummyIndexIdUnidades}" style="width:300px" styleClass="form-control" property="nome"/></div> |
- | |
714 | - | ||
715 | <div class="langs collapse" > |
- | |
716 | <div class="col-sm-1">(EN)</div> |
- | |
717 | <div class="col-sm-11"><nested:text styleId="nomeEn${dummyIndexIdUnidades}" style="width:300px" styleClass="form-control" property="nomeEn"/></div> |
- | |
718 | <div class="col-sm-1">(ES)</div> |
- | |
719 | <div class="col-sm-11"><nested:text styleId="nomeEs${dummyIndexIdUnidades}" style="width:300px" styleClass="form-control" property="nomeEs"/></div> |
- | |
720 | <div class="col-sm-1">(FR)</div> |
- | |
721 | <div class="col-sm-11"><nested:text styleId="nomeFr${dummyIndexIdUnidades}" style="width:300px" styleClass="form-control" property="nomeFr"/></div> |
- | |
722 | </div> |
- | |
723 | </div> |
- | |
724 | - | ||
725 | </td> |
- | |
726 | <td><nested:text styleClass="form-control" styleId="totalHoras${dummyIndexIdUnidades}" property="totalHoras"/></td> |
- | |
727 | <td><nested:text styleClass="form-control" styleId="horasContactoT${dummyIndexIdUnidades}" property="horasContacto.t"/></td> |
- | |
728 | <td><nested:text styleClass="form-control" styleId="horasContactoTP${dummyIndexIdUnidades}" property="horasContacto.TP"/></td> |
- | |
729 | <td><nested:text styleClass="form-control" styleId="horasContactoP${dummyIndexIdUnidades}" property="horasContacto.p"/></td> |
- | |
730 | <td><nested:text styleClass="form-control" styleId="horasContactoPL${dummyIndexIdUnidades}" property="horasContacto.PL"/></td> |
- | |
731 | <td><nested:text styleClass="form-control" styleId="horasContactoPD${dummyIndexIdUnidades}" property="horasContacto.PD"/></td> |
- | |
732 | <td><nested:text styleClass="form-control" styleId="horasContactoOT${dummyIndexIdUnidades}" property="horasContacto.OT"/></td> |
- | |
733 | <td><nested:text styleClass="form-control" styleId="horasContactoE${dummyIndexIdUnidades}" property="horasContacto.e"/></td> |
- | |
734 | <td><nested:text styleClass="form-control" styleId="horasContactoS${dummyIndexIdUnidades}" property="horasContacto.s"/></td> |
- | |
735 | <td><nested:text styleClass="form-control" styleId="horasContactoTC${dummyIndexIdUnidades}" property="horasContacto.TC"/></td> |
- | |
736 | <td><nested:text styleClass="form-control" styleId="horasContactoO${dummyIndexIdUnidades}" property="horasContacto.o"/></td> |
- | |
737 | <td><nested:text styleClass="form-control" styleId="ECTS${dummyIndexIdUnidades}" property="ECTS"/></td> |
- | |
738 | <td><nested:text styleClass="form-control" styleId="urlUnidadeCurricular${dummyIndexIdUnidades}" style="width:600px" property="urlUnidadeCurricular"/></td> |
- | |
739 | <td data-unit-semestre="${semestre.id}" data-course-siges-code="${courseSigesCode}" data-unit-siges-code="${unit.siges}" data-unit-ficha-url-target-id="urlFichaCurricular${dummyIndexIdUnidades}" data-unit-site-url-target-id="urlUnidadeCurricular${dummyIndexIdUnidades}"> |
- | |
740 | <nested:text styleClass="form-control" styleId="urlFichaCurricular${dummyIndexIdUnidades}" style="width:600px" property="urlFichaCurricular"/> |
- | |
741 | </td> |
- | |
742 | </tr> |
- | |
743 | </nested:iterate> |
- | |
744 | </tbody> |
- | |
745 | </table> |
- | |
746 | </div> |
- | |
747 | </div> |
645 | </div> |
- | 646 | </div> |
|
- | 647 | <div ng-show="s.unidade.length > 0" class="table-responsive"> |
|
- | 648 | <table class="table clearfix"> |
|
- | 649 | <thead> |
|
- | 650 | <tr> |
|
- | 651 | <td></td> |
|
- | 652 | <td></td> |
|
- | 653 | <th ng-show="confView.SIGES">SIGES</th> |
|
- | 654 | <th ng-show="confView.Nome">Nome</th> |
|
- | 655 | <th ng-show="confView.ECTS">ECTS</th> |
|
- | 656 | <th ng-show="confView.Total">Total</th> |
|
- | 657 | <th ng-show="confView.T">T</th> |
|
- | 658 | <th ng-show="confView.TP">TP</th> |
|
- | 659 | <th ng-show="confView.P">P</th> |
|
- | 660 | <th ng-show="confView.PL">PL</th> |
|
- | 661 | <th ng-show="confView.PD">PD</th> |
|
- | 662 | <th ng-show="confView.OT">OT</th> |
|
- | 663 | <th ng-show="confView.E">E</th> |
|
- | 664 | <th ng-show="confView.S">S</th> |
|
- | 665 | <th ng-show="confView.TC">TC</th> |
|
- | 666 | <th ng-show="confView.O">O</th> |
|
- | 667 | <th ng-show="confView.URL_UNIDADE">URL UNIDADE</th> |
|
- | 668 | <th ng-show="confView.FICHA_URL">FICHA URL</th> |
|
- | 669 | </tr> |
|
- | 670 | </thead> |
|
- | 671 | <tbody ui-tree-nodes="" ng-model="s.unidade"> |
|
748 | 672 | ||
- | 673 | <!-- UNIDADE TEMPLATE START--> |
|
- | 674 | <tr ng-repeat="u in s.unidade" ui-tree-node ng-include="'unidade_renderer.html'" ng-init="u.type='unidade';parent=s"> |
|
- | 675 | </tr> |
|
- | 676 | <!--UNIDADE TEMPLATE END--> |
|
- | 677 | ||
- | 678 | </tbody> |
|
749 | </nested:iterate> |
679 | </table> |
- | 680 | </div> |
|
- | 681 | </div> |
|
- | 682 | </script> |
|
- | 683 | <!-- PERFIL TEMPLATE START --> |
|
- | 684 | <script type="text/ng-template" id="perfil_renderer.html"> |
|
750 | 685 | ||
751 | <nested:notEmpty property="unidade"> |
686 | <div class="panel-heading"> |
752 | 687 | ||
- | 688 | <div class="form-group"> |
|
- | 689 | <div class="col-sm-1"> |
|
- | 690 | <button type="button" class="btn btn-danger" ng-click="removePerfil(parent,$index)"> |
|
- | 691 | <span class="glyphicon glyphicon-remove"> </span> |
|
- | 692 | </button> |
|
- | 693 | </div> |
|
- | 694 | <div class="col-sm-3" ui-tree-handle> |
|
- | 695 | <span class="btn btn-info"><i class="glyphicon glyphicon-resize-vertical"></i></span> Perfil |
|
- | 696 | </div> |
|
- | 697 | <div class="col-sm-5"> |
|
- | 698 | <input type="text" class="form-control" ng-model="p.nome"> |
|
- | 699 | </div> |
|
- | 700 | <div class="col-sm-3"> |
|
- | 701 | <button type="button" class="btn btn-success pull-right" ng-click="addUnidade(p)"> |
|
- | 702 | <span class="glyphicon glyphicon-plus"> </span> Unidade |
|
- | 703 | </button> |
|
- | 704 | </div> |
|
- | 705 | </div> |
|
- | 706 | </div> |
|
- | 707 | <div class="panel-body clearfix table-responsive"> |
|
753 | <table class="tablesorterfiltered"> |
708 | <table class="table"> |
754 | <thead> |
709 | <thead> |
755 | <tr> |
710 | <tr> |
756 | <th></th> |
711 | <td></td> |
757 | <th></th> |
712 | <td></td> |
758 | <th>SIGES</th> |
713 | <th ng-show="confView.SIGES">SIGES</th> |
759 | <th>Nome</th> |
714 | <th ng-show="confView.Nome">Nome</th> |
760 | <th>Total</th> |
715 | <th ng-show="confView.ECTS">ECTS</th> |
761 | <th>T</th> |
716 | <th ng-show="confView.Total">Total</th> |
762 | <th>TP</th> |
717 | <th ng-show="confView.T">T</th> |
763 | <th>P</th> |
718 | <th ng-show="confView.TP">TP</th> |
764 | <th>PL</th> |
719 | <th ng-show="confView.P">P</th> |
765 | <th>PD</th> |
720 | <th ng-show="confView.PL">PL</th> |
766 | <th>OT</th> |
721 | <th ng-show="confView.PD">PD</th> |
767 | <th>E</th> |
722 | <th ng-show="confView.OT">OT</th> |
768 | <th>S</th> |
723 | <th ng-show="confView.E">E</th> |
769 | <th>TC</th> |
724 | <th ng-show="confView.S">S</th> |
770 | <th>O</th> |
725 | <th ng-show="confView.TC">TC</th> |
771 | <th>ECTS</th> |
726 | <th ng-show="confView.O">O</th> |
772 | <th>URL UNIDADE</th> |
727 | <th ng-show="confView.URL_UNIDADE">URL UNIDADE</th> |
773 | <th>FICHA URL</th> |
728 | <th ng-show="confView.FICHA_URL">FICHA URL</th> |
774 | </tr> |
729 | </tr> |
775 | </thead> |
730 | </thead> |
776 | <tbody> |
- | |
777 | <nested:size id="tamanho" property="unidade"/> |
731 | <tbody ui-tree-nodes="" ng-model="p.unidade"> |
778 | <nested:iterate id="unit" property="unidade" indexId="indexId" type="pt.estgp.estgweb.services.courses.xsd.UnidadeType"> |
- | |
779 | <% |
- | |
780 | dummyIndexIdUnidades++; |
732 | <!-- UNIDADE TEMPLATE START--> |
781 | request.setAttribute("dummyIndexIdUnidades","dummyIndex" + dummyIndexIdUnidades); |
733 | <tr ng-repeat="u in p.unidade" ui-tree-node ng-include="'unidade_renderer.html'" ng-init="u.type='unidade';parent=p"> |
782 | %> |
- | |
783 | <% |
- | |
784 | int tamanhoMinus1 = tamanho - 1; |
- | |
785 | request.setAttribute("tamanhoMinus1",tamanhoMinus1); |
- | |
786 | - | ||
787 | %> |
734 | </tr> |
788 | - | ||
789 | <tr <nested:equal property="removed" value="true">class="hidden"</nested:equal>> |
- | |
790 | <td class="text-nowrap"> |
- | |
791 | - | ||
792 | <%-- |
- | |
793 | Usando o dummyIndex apenas não colocamos botao de up na primeira de todas as unidades de todos os semestres |
- | |
794 | Antes usavamos o indexId e trabalhavamos lista a lista considerando semestres e perfis independentes |
- | |
795 | --%> |
- | |
796 | <nested:notEqual value="dummyIndex1" name="dummyIndexIdUnidades"> |
- | |
797 | <button type="button" class="btn btn-warning" onclick="sendUpUnidadeCurricular(<%=dummyIndexIdUnidades%>)"> |
- | |
798 | <span class="glyphicon glyphicon-arrow-up"> </span> |
- | |
799 | </button> |
- | |
800 | </nested:notEqual> |
- | |
801 | <% |
- | |
802 | boolean semestreMaximoAtingido = semestreIndexId >= tamanhoSemestre - 1; |
- | |
803 | boolean tamanhoMaximoAtingido = indexId >= tamanho - 1; |
- | |
804 | if(!semestreMaximoAtingido || !tamanhoMaximoAtingido) |
- | |
805 | { |
- | |
806 | %> |
- | |
807 | <button type="button" class="btn btn-warning" onclick="sendDownUnidadeCurricular(<%=dummyIndexIdUnidades%>)"> |
- | |
808 | <span class="glyphicon glyphicon-arrow-down"> </span> |
- | |
809 | </button> |
- | |
810 | <% |
- | |
811 | } |
- | |
812 | %> |
- | |
813 | </td> |
- | |
814 | <td> |
- | |
815 | <nested:hidden styleId="removed${dummyIndexIdUnidades}" property="removed"/> |
- | |
816 | <button type="button" class="btn btn-danger" onclick="removeUnit(<%=dummyIndexIdUnidades%>)" > |
- | |
817 | <span class="glyphicon glyphicon-remove"> </span> |
- | |
818 | </button> |
- | |
819 | </td> |
- | |
820 | <td> |
- | |
821 | <script> |
- | |
822 | $(document).ready( |
- | |
823 | function() |
- | |
824 | { |
- | |
825 | $("#siges${dummyIndexIdUnidades}").focusout( |
- | |
826 | function(){ |
- | |
827 | var code = $("#siges${dummyIndexIdUnidades}").val(); |
- | |
828 | $.getJSON("<%=request.getContextPath()%>/user/courses/courseApiJson.jsp", |
- | |
829 | { service:"findCourseUnit", |
- | |
830 | siges: code, |
- | |
831 | courseSigesCode: "${course.code}" |
- | |
832 | }, |
- | |
833 | function(data) |
- | |
834 | { |
- | |
835 | if(data.response == "ok") |
- | |
836 | { |
- | |
837 | $("#nome${dummyIndexIdUnidades}").val(data.courseUnitName); |
- | |
838 | $("#sigesResponse${dummyIndexIdUnidades}").html(""); |
- | |
839 | } |
- | |
840 | else |
- | |
841 | { |
- | |
842 | $("#sigesResponse${dummyIndexIdUnidades}").html("Não encontrado"); |
- | |
843 | } |
- | |
844 | } |
- | |
845 | ); |
- | |
846 | } |
- | |
847 | ); |
- | |
848 | } |
- | |
849 | ); |
- | |
850 | </script> |
- | |
851 | <nested:text styleId="siges${dummyIndexIdUnidades}" styleClass="form-control" property="siges"/> |
- | |
852 | <div id="sigesResponse${dummyIndexIdUnidades}"></div> |
- | |
853 | </td> |
- | |
854 | - | ||
855 | <td> |
- | |
856 | <div> |
- | |
857 | <div class="col-sm-1">(PT)</div> |
- | |
858 | <div class="col-sm-11"> |
- | |
859 | <nested:text styleId="nome${dummyIndexIdUnidades}" style="width:300px" styleClass="form-control" property="nome"/> |
- | |
860 | </div> |
- | |
861 | - | ||
862 | <div class="langs collapse" > |
- | |
863 | <div class="col-sm-1">(EN)</div> |
- | |
864 | <div class="col-sm-11"><nested:text styleId="nomeEn${dummyIndexIdUnidades}" style="width:300px" styleClass="form-control" property="nomeEn"/></div> |
- | |
865 | <div class="col-sm-1">(ES)</div> |
- | |
866 | <div class="col-sm-11"><nested:text styleId="nomeEs${dummyIndexIdUnidades}" style="width:300px" styleClass="form-control" property="nomeEs"/></div> |
- | |
867 | <div class="col-sm-1">(FR)</div> |
- | |
868 | <div class="col-sm-11"><nested:text styleId="nomeFr${dummyIndexIdUnidades}" style="width:300px" styleClass="form-control" property="nomeFr"/></div> |
- | |
869 | </div> |
735 | <!--UNIDADE TEMPLATE END--> |
870 | </div> |
- | |
871 | - | ||
872 | </td> |
- | |
873 | <td><nested:text styleClass="form-control" styleId="totalHoras${dummyIndexIdUnidades}" property="totalHoras"/></td> |
- | |
874 | <td><nested:text styleClass="form-control" styleId="horasContactoT${dummyIndexIdUnidades}" property="horasContacto.t"/></td> |
- | |
875 | <td><nested:text styleClass="form-control" styleId="horasContactoTP${dummyIndexIdUnidades}" property="horasContacto.TP"/></td> |
- | |
876 | <td><nested:text styleClass="form-control" styleId="horasContactoP${dummyIndexIdUnidades}" property="horasContacto.p"/></td> |
- | |
877 | <td><nested:text styleClass="form-control" styleId="horasContactoPL${dummyIndexIdUnidades}" property="horasContacto.PL"/></td> |
- | |
878 | <td><nested:text styleClass="form-control" styleId="horasContactoPD${dummyIndexIdUnidades}" property="horasContacto.PD"/></td> |
- | |
879 | <td><nested:text styleClass="form-control" styleId="horasContactoOT${dummyIndexIdUnidades}" property="horasContacto.OT"/></td> |
- | |
880 | <td><nested:text styleClass="form-control" styleId="horasContactoE${dummyIndexIdUnidades}" property="horasContacto.e"/></td> |
- | |
881 | <td><nested:text styleClass="form-control" styleId="horasContactoS${dummyIndexIdUnidades}" property="horasContacto.s"/></td> |
- | |
882 | <td><nested:text styleClass="form-control" styleId="horasContactoTC${dummyIndexIdUnidades}" property="horasContacto.TC"/></td> |
- | |
883 | <td><nested:text styleClass="form-control" styleId="horasContactoO${dummyIndexIdUnidades}" property="horasContacto.o"/></td> |
- | |
884 | <td><nested:text styleClass="form-control" styleId="ECTS${dummyIndexIdUnidades}" property="ECTS"/></td> |
- | |
885 | <td><nested:text styleClass="form-control" styleId="urlUnidadeCurricular${dummyIndexIdUnidades}" style="width:600px" property="urlUnidadeCurricular"/></td> |
- | |
886 | <td data-unit-semestre="${semestre.id}" data-course-siges-code="${courseSigesCode}" data-unit-siges-code="${unit.siges}" data-unit-ficha-url-target-id="urlFichaCurricular${dummyIndexIdUnidades}" data-unit-site-url-target-id="urlUnidadeCurricular${dummyIndexIdUnidades}"> |
736 | |
887 | <nested:text styleClass="form-control" styleId="urlFichaCurricular${dummyIndexIdUnidades}" style="width:600px" property="urlFichaCurricular"/> |
- | |
888 | </td> |
- | |
889 | </tr> |
- | |
890 | </nested:iterate> |
- | |
891 | </tbody> |
737 | </tbody> |
892 | </table> |
738 | </table> |
893 | </nested:notEmpty> |
- | |
894 | - | ||
895 | </div> |
739 | </div> |
896 | </div> |
740 | </script> |
- | 741 | ||
- | 742 | <script type="text/ng-template" id="unidade_renderer.html"> |
|
- | 743 | <td class="text-nowrap"> |
|
- | 744 | <span class="btn btn-info"><i class="glyphicon glyphicon-resize-vertical" ui-tree-handle></i></span> |
|
- | 745 | </td> |
|
- | 746 | <td> |
|
- | 747 | <button type="button" class="btn btn-danger" ng-click="removeUnidade(parent,$index)"> |
|
- | 748 | <span class="glyphicon glyphicon-remove"> </span> |
|
- | 749 | </button> |
|
- | 750 | </td> |
|
- | 751 | <td ng-show="confView.SIGES"> |
|
- | 752 | <%-- |
|
897 | 753 | ||
- | 754 | FOCUS FIND UNIT |
|
898 | </nested:iterate> |
755 | <script> |
899 | 756 | ||
- | 757 | $(document).ready( |
|
- | 758 | function() |
|
- | 759 | { |
|
- | 760 | $("#siges${dummyIndexIdUnidades}").focusout( |
|
- | 761 | function(){ |
|
- | 762 | var code = $("#siges${dummyIndexIdUnidades}").val(); |
|
- | 763 | $.getJSON("<%=request.getContextPath()%>/user/courses/courseApiJson.jsp", |
|
- | 764 | { service:"findCourseUnit", |
|
- | 765 | siges: code, |
|
- | 766 | courseSigesCode: "${course.code}" |
|
- | 767 | }, |
|
- | 768 | function(data) |
|
- | 769 | { |
|
- | 770 | if(data.response == "ok") |
|
- | 771 | { |
|
- | 772 | $("#nome${dummyIndexIdUnidades}").val(data.courseUnitName); |
|
- | 773 | $("#sigesResponse${dummyIndexIdUnidades}").html(""); |
|
- | 774 | } |
|
- | 775 | else |
|
- | 776 | { |
|
- | 777 | $("#sigesResponse${dummyIndexIdUnidades}").html("Não encontrado"); |
|
- | 778 | } |
|
- | 779 | } |
|
- | 780 | ); |
|
- | 781 | } |
|
- | 782 | ); |
|
- | 783 | } |
|
- | 784 | ); |
|
- | 785 | </script>--%> |
|
- | 786 | ||
- | 787 | <input type="text" ng-model="u.siges" style="width: 60px"/> |
|
- | 788 | <%--<div id="sigesResponse${dummyIndexIdUnidades}"></div>--%> |
|
- | 789 | </td> |
|
- | 790 | <td ng-show="confView.Nome"> |
|
- | 791 | <div> |
|
- | 792 | <div class="col-sm-11"><input type="text" style="width:200px" ng-model="u.nome"/></div> |
|
- | 793 | ||
- | 794 | <div class="langs collapse" > |
|
- | 795 | <div class="col-sm-1">(EN)</div> |
|
- | 796 | <div class="col-sm-11"><input type="text" style="width:200px" ng-model="u.nomeEn"/></div> |
|
- | 797 | <div class="col-sm-1">(ES)</div> |
|
- | 798 | <div class="col-sm-11"><input type="text" style="width:200px" ng-model="u.nomeEs"/></div> |
|
- | 799 | <div class="col-sm-1">(FR)</div> |
|
- | 800 | <div class="col-sm-11"><input type="text" style="width:200px" ng-model="u.nomeFr"/></div> |
|
- | 801 | </div> |
|
- | 802 | </div> |
|
- | 803 | ||
- | 804 | </td> |
|
- | 805 | <td ng-show="confView.ECTS"><input type="text" style="width: 40px" ng-model="u.eCTS"/></td> |
|
- | 806 | <td ng-show="confView.Total"><input type="text" style="width: 40px" ng-model="u.totalHoras"></td> |
|
- | 807 | ||
- | 808 | <td ng-show="confView.T"><input type="text" style="width: 40px" ng-model="u.horasContacto.t"/></td> |
|
- | 809 | <td ng-show="confView.TP"><input type="text" style="width: 40px" ng-model="u.horasContacto.TP"/></td> |
|
- | 810 | <td ng-show="confView.P"><input type="text" style="width: 40px" ng-model="u.horasContacto.p"/></td> |
|
- | 811 | <td ng-show="confView.PL"><input type="text" style="width: 40px" ng-model="u.horasContacto.PL"/></td> |
|
- | 812 | <td ng-show="confView.PD"><input type="text" style="width: 40px" ng-model="u.horasContacto.PD"/></td> |
|
- | 813 | <td ng-show="confView.OT"><input type="text" style="width: 40px" ng-model="u.horasContacto.OT"/></td> |
|
- | 814 | <td ng-show="confView.E"><input type="text" style="width: 40px" ng-model="u.horasContacto.e"/></td> |
|
- | 815 | <td ng-show="confView.S"><input type="text" style="width: 40px" ng-model="u.horasContacto.s"/></td> |
|
- | 816 | <td ng-show="confView.TC"><input type="text" style="width: 40px" ng-model="u.horasContacto.TC"/></td> |
|
- | 817 | <td ng-show="confView.O"><input type="text" style="width: 40px" ng-model="u.horasContacto.o"/></td> |
|
- | 818 | <td ng-show="confView.URL_UNIDADE"><input type="text" ng-model="u.urlUnidadeCurricular" style="width:600px"/></td> |
|
900 | </nested:notEmpty> |
819 | <td ng-show="confView.FICHA_URL" data-unit-semestre="{{s.id}}" data-course-siges-code="${courseSigesCode}" data-unit-siges-code="{{u.siges}}" data-unit-ficha-url-target-id="urlFichaCurricular{{s.id}}_{{u.siges}}" data-unit-site-url-target-id="urlUnidadeCurricular{{s.id}}_{{u.siges}}"> |
- | 820 | <input type="text" id="urlFichaCurricular{{s.id}}_{{u.siges}}" ng-model="u.urlFichaCurricular" style="width:600px"/> |
|
- | 821 | </td> |
|
- | 822 | </script> |
|
- | 823 | ||
- | 824 | <%-- <pre class="code"> |
|
- | 825 | {{json | json}} |
|
- | 826 | </pre>--%> |
|
- | 827 | <a type="button" class="btn btn-danger" href="<%=request.getContextPath()%>/user/adminStudyPlans.do?courseId=${courseId}">Cancelar</a> |
|
- | 828 | <button type="button" class="btn btn-success" ng-click="salvar()">Salvar</button> |
|
- | 829 | </div> |
|
901 | 830 | ||
902 | <a type="button" class="btn btn-danger" href="<%=request.getContextPath()%>/user/adminStudyPlans.do?courseId=${courseId}">Cancelar</a> |
- | |
903 | <html:submit styleClass="btn btn-success" >Salvar</html:submit> |
- | |
904 | 831 | ||
905 | 832 | ||
906 | 833 | ||
907 | 834 | ||
908 | </div> |
835 | </div> |