/branches/v3/impl/src/java/jomm/dao/impl/AbstractDao.java |
---|
606,6 → 606,36 |
* using the current value of the identifier property if the assigned |
* generator is used.) |
*/ |
public void update(CLAZZ obj) |
{ |
try |
{ |
getCurrentSession().update(obj); |
} |
catch (HibernateException e) |
{ |
throw new DaoException(e); |
} |
} |
public CLAZZ merge(CLAZZ obj) |
{ |
try |
{ |
return (CLAZZ) getCurrentSession().merge(obj); |
} |
catch (HibernateException e) |
{ |
throw new DaoException(e); |
} |
} |
/** |
* Used by the base DAO classes but here for your modification Persist the |
* given transient instance, first assigning a generated identifier. (Or |
* using the current value of the identifier property if the assigned |
* generator is used.) |
*/ |
public final void saveOrUpdate(CLAZZ obj) |
{ |
try |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/courseunits/DeleteCourseUnitService.java |
---|
27,6 → 27,7 |
public String messageResult = ""; |
boolean canDelete = false; |
public CourseUnitView cuv; |
boolean deleted = false; |
public List<String> getWarnings() { |
return warnings; |
184,6 → 185,7 |
} |
DaoFactory.getCourseUnitDaoImpl().delete(cu); |
result.deleted = true; |
result.messageResult = "Unidade Apagada"; |
} |
205,4 → 207,40 |
} |
return courseUnitContentsInfos; |
} |
public Integer deleteCandidatesNoWarn(String importYear,UserSession session) |
{ |
int count = 0; |
List<CourseUnitContentsInfo> courseUnitContentsInfos = loadDeleteCandidates(importYear,session); |
for(CourseUnitContentsInfo info: courseUnitContentsInfos) |
{ |
if(info.isCanDelete() && info.getWarnings().size() == 0) |
{ |
CourseUnitContentsInfo result = tryDelete(info.getCuv().getId(),session); |
if(result.deleted) |
count++; |
} |
} |
return count; |
} |
public Integer deleteCandidatesAll(String importYear,UserSession session) |
{ |
int count = 0; |
List<CourseUnitContentsInfo> courseUnitContentsInfos = loadDeleteCandidates(importYear,session); |
for(CourseUnitContentsInfo info: courseUnitContentsInfos) |
{ |
if(info.isCanDelete()) |
{ |
CourseUnitContentsInfo result = tryDelete(info.getCuv().getId(),session); |
if(result.deleted) |
count++; |
} |
} |
return count; |
} |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportTeachersService.java |
---|
54,9 → 54,10 |
int teachersChangeBI = 0; |
int unitsLocallyRemovedNotAdded = 0; |
int professoresDesaparecidosDoSigesNesteAno = 0; |
int cursosFicticios = 0; |
//todo meter a zero no run |
public ILogMessages run(String year,int institutionCode) throws ServiceException |
{ |
73,6 → 74,7 |
teachersFound = 0; |
teachersChangeBI = 0; |
unitsLocallyRemovedNotAdded = 0; |
cursosFicticios = 0; |
String msgS = "STARTING TEACHERS IMPORT SERVICE FOR YEAR: " + year; |
serviceLogInfo(msgS); |
86,8 → 88,8 |
List<Integer> codigosDocentes = DocenteDao.getInstance().loadCodigosDocentes(institutionCode, year); |
/** |
* Este método vai procurar alunos no BACO neste ano que não vieram do SIGES |
* Os alunos que não vieram da extração do SIGES e terão de ser consistidos |
* Este método vai procurar processores no BACO neste ano que não vieram do SIGES |
* Os professores que não vieram da extração do SIGES e terão de ser consistidos |
* pois as suas unidades ter desaparecido todas de uma vez e vão aqui ficar penduradas |
* Se foram adicionadas manualmente então nao serao removidas |
*/ |
219,6 → 221,10 |
{ |
serviceLogInfo("CHECK DESAPARECIDOS OK - Não existem professores desaparecidos"); |
} |
if(cursosFicticios > 0) |
{ |
serviceLogInfo("#######Cursos Ficticios Encontrados (SITUACAO NAO PREVISTA):" + cursosFicticios); |
} |
logger.info("############################"); |
logger.info("############################"); |
242,6 → 248,10 |
{ |
logger.info("CHECK DESAPARECIDOS OK - Não existem professores desaparecidos"); |
} |
if(cursosFicticios > 0) |
{ |
logger.info("#######Cursos Ficticios Encontrados (SITUACAO NAO PREVISTA):" + cursosFicticios); |
} |
if(teachersChangeBI>0) |
{ |
295,7 → 305,7 |
professoresDesaparecidosDoSigesNesteAno++; |
Teacher t = DaoFactory.getTeacherDaoImpl().loadBySigesCode(c); |
TeacherImpl teacherImpl = (TeacherImpl) DaoFactory.getTeacherDaoImpl().narrow(t); |
removerUnidadesQueDesapareceramNoSiges(teacherImpl,year, new HashSet<CourseUnit>()); |
removerUnidadesQueDesapareceramNoSiges(year, teacherImpl, new HashSet<CourseUnit>()); |
//consistirTurmasAluno(studentImpl, year, new HashMap<CourseUnit, String>()); |
} |
} |
327,7 → 337,6 |
*/ |
private void sendNotificationAdmin(String subject, String cause) |
{ |
//todo JOB |
List<String> emails = ConfigProperties.getListValues("admin.email"); |
for(String email:emails) |
440,6 → 449,9 |
logger.warn(msgS); |
serviceLogInfo(msgS); |
/******Logging****/ |
TeacherImpl tImpl = (TeacherImpl) DaoFactory.getTeacherDaoImpl().narrow(teacher); |
removerUnidadesQueDesapareceramNoSiges(year, tImpl, new HashSet<CourseUnit>()); |
} |
else |
{ |
448,16 → 460,18 |
//3 - Sao adicionadas ao teacher as que o docente ainda nao tiver da lista units |
//4 - Remover da lista do teacher as unidades que não vêm do SIGES e que não foram adicionadas localmente |
//o mapa nao esta a ser usado neste momento mas fica porque podera vir a ser necessario |
//o docente e' colocado nas unidades todas e as turmas ficam nas tipologias tratadas na importacao de cursos |
Map<CourseUnit,String> map_CourseUnit_x_Turma = new HashMap<CourseUnit, String>(); |
//PASSO 1 |
Set<CourseUnit> units = obterCadeirasBacoCorrespondentes(teacherSiges, teacher, logmessages,map_CourseUnit_x_Turma); |
Set<CourseUnit> unitsFromSigesPersistentInBaco = obterCadeirasBacoCorrespondentes(year,teacherSiges, teacher, logmessages,map_CourseUnit_x_Turma); |
//PASSO 2 |
removerRemovidasLocalmente(teacher, units); |
TeacherImpl tImpl = removerRemovidasLocalmente(teacher, unitsFromSigesPersistentInBaco); |
//PASSO 3 |
adicionarCadeirasNovasAoDocente(teacher, units); |
adicionarCadeirasNovasAoDocente(tImpl, unitsFromSigesPersistentInBaco); |
//PASSO 4 |
removerUnidadesQueDesapareceramNoSiges(teacher, year, units); |
removerUnidadesQueDesapareceramNoSiges(year, tImpl, unitsFromSigesPersistentInBaco); |
} |
478,7 → 492,7 |
} |
private void removerUnidadesQueDesapareceramNoSiges(Teacher teacher, String year, Set<CourseUnit> units) |
private void removerUnidadesQueDesapareceramNoSiges(String year, Teacher teacher, Set<CourseUnit> units) |
{ |
//Remover unidades deste ano que nao vem do SIGES e que nao foram adicionadas localmente |
Iterator<CourseUnit> iterNowUnits = teacher.getTeachedUnits().iterator(); |
498,7 → 512,7 |
boolean added = false; |
for(CourseUnit c: units) |
{ |
if(cUNow.equals(c)) |
if(cUNow.getId() == c.getId()) |
{ |
added = true; |
break; |
541,7 → 555,7 |
boolean isIn = false; |
for (CourseUnit tc : teacher.getTeachedUnits()) |
{ |
if (tc.equals(c)) |
if (tc.getId() == c.getId()) |
{ |
isIn = true; |
break; |
565,14 → 579,14 |
teacher.setTeachedUnits(units); |
} |
private void removerRemovidasLocalmente(Teacher teacher, Set<CourseUnit> units) { |
private TeacherImpl removerRemovidasLocalmente(Teacher teacher, Set<CourseUnit> units) { |
//2 - Sao retiradas da lista units as que o teacher tem mas que foram removidas localmente |
Iterator<CourseUnit> iter = units.iterator(); |
TeacherImpl tImpl = (TeacherImpl) DaoFactory.getTeacherDaoImpl().narrow(teacher); |
while (iter.hasNext()) |
{ |
CourseUnit courseUnit = iter.next(); |
//In case of a comming proxy |
TeacherImpl tImpl = (TeacherImpl) DaoFactory.getTeacherDaoImpl().narrow(teacher); |
if (tImpl.isLocalRemovedUnit(courseUnit)) |
{ |
/******Logging****/ |
585,11 → 599,11 |
iter.remove(); |
} |
} |
return tImpl; |
} |
private Set<CourseUnit> obterCadeirasBacoCorrespondentes(Docente teacherSiges, Teacher teacher, DefaultLogMessages logmessages,Map<CourseUnit,String> map_CourseUnit_x_Turma) { |
private Set<CourseUnit> obterCadeirasBacoCorrespondentes(String year, Docente teacherSiges, Teacher teacher, DefaultLogMessages logmessages,Map<CourseUnit,String> map_CourseUnit_x_Turma) { |
String msgS; |
System.out.println("STATING STEP 1"); |
Set<CourseUnit> units = new HashSet<CourseUnit>(); |
for (Disciplina disciplina : teacherSiges.getDisciplinas()) |
597,31 → 611,23 |
List<CourseUnit> loadedunits = new ArrayList<CourseUnit>(); |
if(disciplina.getCodigoCurso().intValue() < 0) |
{ |
//TODO AQUI CARREGA AS CADEIRAS DE TODOS OS CURSOS >>>> loadedunits |
//EXPLICACAO: |
//O CODIGO DE CURSO VEM A NULL E E METIDO PELO DAO A -1 |
//PORQUE OS ACADEMICOS NAO DEFINEM CURSO NA ASSOCIAÇÃO DO DOCENTE À TURMA NA TABELA T_DOC_TURMA |
//ISTO ACONTECE PORQUE A TURMA E MISTA E DE VARIOS CURSOS |
//NESTE CASO COLOCAMOS O DOCENTE NAS TURMAS TODAS |
//NESTE CASO COLOCAMOS O DOCENTE NAS cadeiras dos cursos TODOS |
//TODO -- CASO ESPECIAL TEM DE SER TRATADO DE FORMA ESPECIAL |
//TODO -- ISTO VAI OBRIGAR A FAZER O MESMO PROCESSO N VEZES MUDAMOS PARA UMA LISTA DE LOADEDUNITS |
//TODO -- TEMOS MESMO DE IR BUSCAR AS CADEIRAS AO MAPA DAS TURMAS PRIMEIRO, O MAPA DEVOLVE O CURSO REAL DA TURMA??? PODE SER QUE NAO |
//TODO -- >>>>>NO CASO DA IMPORTACAO DE ESTUDANTES JA GARANTIMOS QUE A TROCA DE CURSO E FEITA PARA O CORRECTO<<<<<<< |
//TODO -- OU SEJA SE OPTASSEMOS POR IR BUSCAR O CURSO REAL AO MAPA: 1) Caso seja apenas 1 para essa turma é esse o curso real, |
//TODO -- mas nesse caso também existe apenas uma cadeira com essa Turma que é nesse curso |
//TODO -- que é precisamente a cadeira com o curso real, será? pode haver uma cadeira noutro curso nessa turma se o mapa der um curso real unico? Nao. |
//TODO -- O WEB SERVICE DEVOLVE TODAS AS COMBINACOES POSSIVEIS ASSUMIDAS DE INSCRICOES NORMAIS COM CD_TIPDISC = 1 ou 2 |
//TODO -- Caso 2) Caso haja duas metemos o docente em todas as cadeiras possiveis (CASO ESCPECIAL), ou as guardamos no mapa de cursos reais, |
//TODO -- ou então vamos à base de dados buscar todas as possiveis e metemos o docente em todas. |
//TODO -- PORTANTO AS CADEIRAS QUE TEMOS NA NOSSA BD JA SAO APENAS AS VALIDAS GARANTIDAS NA IMPORTACAO DE ESTUDANTES |
//TODO -- NAO HA CURSO VINDO DO WEB-SERVICE METEMOS O DOCENTE COM TODAS AS POSSIVEIS CONSIDERANDO A TURMA |
//TODO -- FORMA DE ENCONTRAR A TURMA DEPOIS, TEM DE MUDAR PORQUE VAI MUDAR DE TABELA |
//TODO -- Isto vai passar a vir com Tipologias. Muda alguma coisa? A mesma cadeira vem duas vezes, mas o procedimento tem de ser o mesmo para as duas vezes |
//TODO -- que ela é devolvida, caso já exista nao se faz nada, pode-se meter na lista à mesma, fica lá duas vezes, sera? |
//todo futuro turmas separadas |
//neste caso das turmas separadas existe uma duvida: |
//Vir < 0 no codigo de curso significa que alunos de varios cursos podem estar nesta unidade |
//isso significa que nao temos cursos --> nao saber se é separated turmas |
//se nao sabemos se é separated turmas nunca podemos saber como ir buscar as unidades ao BACO |
// neste caso vamos busca-las sem a turma a descriminar e atribuimos todas ao docente. |
//a hipotese no futuro é, para todas as cadaeiras que forem devolvidas |
//corremos uma a uma e verificamos o seu curso, se for separated turmas e a turma for igual |
//a da disciplina adicionamos, se não for seprated turmas adicionamos sempre |
List<CourseUnit> courseUnits = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUniqueAllCourses("" + disciplina.getCodigo(), "" + disciplina.getCdDuracao(), "" + disciplina.getCdLectivo()); |
if(courseUnits!=null) |
{ |
648,14 → 654,35 |
} |
/******Logging****/ |
} |
else{ //TODO AQUI CARREGA COM O FILTRO DO CURSO QUE VEIO NA ASSOCIACAO >>>>> loadedunits |
else{ |
boolean cursoFicticio = ImportStudentsService.isCursoFicticio(disciplina.getCodigoCurso()); |
if(cursoFicticio) |
{ |
msgS = "WARNING WARNING #### Docente com curso ficticio, nao esperamos aqui cursos ficticios: " + disciplina.getCodigoCurso(); |
serviceLogWarn(msgS); |
logger.warn(msgS); |
logmessages.addMessage(new DefaultLogMessage("import.teachers", LogMessageTypeEnum.WARNING,msgS )); |
cursosFicticios++; |
continue; |
} |
//Nao vamos usar este pormenor aqui. Caregamos todas e pronto. Os docentes ficam associados às duas unidades das duas turmas |
//mesmo no caso das turmas separadas. As tipologias tratam das associações às turmas para que não haja questionarios a mais |
//na criacao de questionarios é natural que falhe alguma coisa por haver aqui unidades a mais |
//por isso devera ser ai feita a verificacao destes casos |
boolean separateTurmas = ImportCourseService.loadCourseYearTurmasPolicy(disciplina.getCodigoCurso(), year, logmessages, this); |
/* |
este procedimento requer que a turma venha do siges, neste momento nao vem |
if(separateTurmas) |
loadedunits = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUniqueWithTurma("" + disciplina.getCodigo(), "" + disciplina.getCodigoCurso(), "" + disciplina.getCdDuracao(), "" + disciplina.getCdLectivo(),disciplina.getCdTurma()); |
else |
loadedunits = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + disciplina.getCodigo(), "" + disciplina.getCodigoCurso(), "" + disciplina.getCdDuracao(), "" + disciplina.getCdLectivo()); |
*/ |
loadedunits = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + disciplina.getCodigo(), "" + disciplina.getCodigoCurso(), "" + disciplina.getCdDuracao(), "" + disciplina.getCdLectivo()); |
/*******Logging************************/ |
if(loadedunits.size()>1) |
if(loadedunits.size() > 1 && !separateTurmas) |
{ |
unitsDuplicated++; |
msgS = "WARNING WARNING #### UnitsDuplicated: "; |
serviceLogWarn(msgS); |
667,6 → 694,26 |
serviceLogWarn(msgS); |
logmessages.addMessage(new DefaultLogMessage("import.teachers", LogMessageTypeEnum.WARNING,msgS )); |
} |
if(loadedunits.size() > 1 && separateTurmas) |
{ |
Map<String,String> turmas = new HashMap<String, String>(); |
for(CourseUnit c :loadedunits) |
{ |
turmas.put(c.getCdTurma(),c.getCdTurma()); |
} |
if(turmas.size() < loadedunits.size()) |
{ |
unitsDuplicated++; |
msgS = "WARNING WARNING #### O Curso é de turmas separadas mas o docente tem unidades repetidas com a mesma turma: "; |
serviceLogWarn(msgS); |
logmessages.addMessage(new DefaultLogMessage("import.teachers", LogMessageTypeEnum.WARNING,msgS )); |
logmessages.addMessage(new DefaultLogMessage("import.teachers", LogMessageTypeEnum.WARNING,msgS )); |
msgS = "WARNING WARNING ####String sigesCode, String courseCode, String semestre, String year = " + disciplina.getCodigo() + ", " + disciplina.getCodigoCurso() + ","+ disciplina.getCdDuracao() + "," + disciplina.getCdLectivo(); |
serviceLogWarn(msgS); |
} |
turmas.clear(); |
} |
/*******Logging************************/ |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportCourseService.java |
---|
444,9 → 444,11 |
private void fillTipologias(Disciplina d, CourseUnitImpl c) { |
try { |
CourseUnitImpl.Tipologias t = ((CourseUnitImpl)c).getTipologiasClass(); |
CourseUnitImpl.Tipologias t = c.getTipologiasClass(); |
if(t == null) |
t = new CourseUnitImpl.Tipologias(); |
t.setTipologiasSumarios(new ArrayList<CourseUnitImpl.Tipologia>()); |
for(TipologiasSumario.TipologiaSumario tipologiaSumario : d.getTipologiasSumario().getTipologias()) |
{ |
CourseUnitImpl.Tipologia tipoSum = new CourseUnitImpl.Tipologia(); |
457,6 → 459,7 |
tipoSum.setCdTipologia(""+tipologiaSumario.getCdTipoAula()); |
t.getTipologiasSumarios().add(tipoSum); |
} |
t.setTipologiasHorarioReferencia(new ArrayList<CourseUnitImpl.Tipologia>()); |
for(TipologiasHorario.TipologiaHorario tipologiaHorario : d.getTipologiasHorario().getTipologias()) |
{ |
CourseUnitImpl.Tipologia tipoSum = new CourseUnitImpl.Tipologia(); |
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/views/CourseUnitTurmaView.java |
---|
New file |
0,0 → 1,50 |
package pt.estgp.estgweb.domain.views; |
import pt.estgp.estgweb.domain.CourseUnitTurma; |
import java.io.Serializable; |
import java.util.List; |
/** |
* Created by jorgemachado on 11/03/16. |
*/ |
public class CourseUnitTurmaView extends DomainObjectView { |
private Long id; |
private List<UserView> students; |
private String turma; |
public void setId(Long id) { |
this.id = id; |
} |
public void setStudents(List<UserView> students) { |
this.students = students; |
} |
public void setTurma(String turma) { |
this.turma = turma; |
} |
@Override |
public Class getReferenceClass() { |
return CourseUnitTurma.class; |
} |
@Override |
public Serializable getSerializable() { |
return id; |
} |
public Long getId() { |
return id; |
} |
public List<UserView> getStudents() { |
return students; |
} |
public String getTurma() { |
return turma; |
} |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/views/UserView.java |
---|
74,6 → 74,20 |
private boolean propinasEmDia = false; |
private CourseUnitTurmaView studentCourseUnitTurmaView = null; |
public void setStudentCourseUnitTurmaView(CourseUnitTurmaView studentCourseUnitTurmaView) { |
this.studentCourseUnitTurmaView = studentCourseUnitTurmaView; |
} |
public String getStudentTurma() |
{ |
if(studentCourseUnitTurmaView == null) |
return ""; |
else |
return studentCourseUnitTurmaView.getTurma(); |
} |
public UserView() |
{} |
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/views/CourseUnitView.java |
---|
64,6 → 64,8 |
private String sumariosPathFileIntranet; |
private String cdTurma; |
private List<CourseUnitTurmaView> turmas = null; |
private boolean notFound = false; |
private CourseView courseView; |
72,6 → 74,8 |
private boolean evaluationOpenByAdmin = false; |
private String topologies; |
public Class getReferenceClass() |
{ |
return CourseUnitImpl.class; |
125,6 → 129,7 |
this.interfaceImportYear = DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear(); |
this.topologies = courseUnit.getTipologias(); |
this.pathIntranet = courseUnit.getPathIntranet(); |
this.normalizedName = courseUnit.getNormalizedName(); |
this.courseUnit = courseUnit; |
179,10 → 184,24 |
} |
if(initStudents && courseUnit.getStudents() != null) |
{ |
for(StudentImpl s: courseUnit.getStudents()) |
turmas = new ArrayList<CourseUnitTurmaView>(); |
if(courseUnit.getTurmas() != null) |
{ |
UserView u = new UserView(s); |
students.add(u); |
for(CourseUnitTurma t: courseUnit.getTurmas()) |
{ |
CourseUnitTurmaView tv = new CourseUnitTurmaView(); |
tv.setTurma(t.getTurma()); |
tv.setStudents(new ArrayList<UserView>()); |
for(StudentImpl s: courseUnit.getStudents()) |
{ |
UserView u = new UserView(s); |
u.setStudentCourseUnitTurmaView(tv); |
students.add(u); |
tv.getStudents().add(u); |
} |
turmas.add(tv); |
} |
} |
} |
if(initBlog) |
753,4 → 772,65 |
} |
return studentsOrderedByName; |
} |
private List<CourseUnitImpl.Tipologia> mergedTipologias = null; |
public List<CourseUnitImpl.Tipologia> getTipologias() |
{ |
try { |
if(mergedTipologias == null) |
mergedTipologias = ((CourseUnitImpl)courseUnit).getTipologiasClass().obtainMergeTipologias(); |
} catch (Exception e) { |
logger.error(e,e); |
} |
return mergedTipologias; |
} |
public List<CourseUnitImpl.Tipologia> loadTopologiasDocente(String codigo) |
{ |
if(getTipologias() == null) |
return null; |
List<CourseUnitImpl.Tipologia> tipologiasDocente = new ArrayList<CourseUnitImpl.Tipologia>(); |
try { |
for(CourseUnitImpl.Tipologia t: getTipologias()) |
{ |
if(t.getCdDocente().equals(codigo)) |
tipologiasDocente.add(t); |
} |
return tipologiasDocente; |
} catch (Exception e) { |
logger.error(e,e); |
} |
return null; |
} |
public Map<String,List<String>> getTipologiasTurmas(String codigo) |
{ |
if(getTipologias() == null) |
return null; |
List<CourseUnitImpl.Tipologia> tipologiasDocente = new ArrayList<CourseUnitImpl.Tipologia>(); |
try { |
Map<String,List<String>> mapa = new HashMap<String, List<String>>(); |
for(CourseUnitImpl.Tipologia t: getTipologias()) |
{ |
if(t.getCdDocente().equals(codigo)) |
{ |
List<String> turmas = mapa.get(t.getDsTipologia()); |
if(turmas == null) |
{ |
turmas = new ArrayList<String>(); |
mapa.put(t.getDsTipologia(),turmas); |
} |
turmas.add(t.getCdTurma()); |
} |
} |
return mapa; |
} catch (Exception e) { |
logger.error(e,e); |
} |
return null; |
} |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/QuestionarioImpl.java |
---|
13,17 → 13,44 |
public enum State |
{ |
CREATED, |
ASSIGNED, // -> All tipologies prototypes created and assigned to student answers |
PROCESSING, // -> Impossible to change or edit prototypes, possible to answer |
CLOSED, // -> Impossible to answer |
STATISTICS1 |
CREATED(1), |
ASSIGNED(2), // -> All tipologies prototypes created and assigned to student answers |
PROCESSING(3), // -> Impossible to change or edit prototypes, possible to answer |
CLOSED(4), // -> Impossible to answer |
STATISTICS1(5); |
private int pos = 1; |
State(int pos) |
{ |
this.pos = pos; |
} |
public static State parse(String state) |
{ |
for(State s: State.values()) |
{ |
if(s.name().equals(state)) |
return s; |
} |
return CREATED; |
} |
public int getPosition() |
{ |
return pos; |
} |
} |
public QuestionarioImpl() { |
super(); |
setState(State.CREATED.name()); |
setIntroHtml(ConfigProperties.getProperty("questionario.intro.text")); |
setGroup1Title(ConfigProperties.getProperty("questionario.group1.title")); |
setGroup2Title(ConfigProperties.getProperty("questionario.group2.title")); |
setGroup3Title(ConfigProperties.getProperty("questionario.group3.title")); |
58,4 → 85,9 |
QuestionarioImpl q = new QuestionarioImpl(); |
System.out.println(q); |
} |
public State getStateEnum() |
{ |
return State.parse(getState()); |
} |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/CourseUnitImpl.java |
---|
102,6 → 102,7 |
return null; |
} |
public boolean equalsSiges(Object anotherInstance,boolean turmasSeparadas) |
{ |
if(anotherInstance instanceof CourseUnitImpl) |
625,30 → 626,33 |
public List<Tipologia> obtainMergeTipologias() |
{ |
List<Tipologia> merge = new ArrayList<Tipologia>(); |
merge.addAll(getTipologiasSumarios()); |
if(getTipologiasSumarios() != null) |
merge.addAll(getTipologiasSumarios()); |
for(Tipologia tipo: tipologiasHorarioReferencia) |
{ |
if(!merge.contains(tipo)) |
if(getTipologiasHorarioReferencia() != null) |
for(Tipologia tipo: getTipologiasHorarioReferencia()) |
{ |
merge.add(tipo); |
if(!merge.contains(tipo)) |
{ |
merge.add(tipo); |
} |
} |
} |
for(Tipologia tipo: tipologiasExtraAdicionadas) |
{ |
if(!merge.contains(tipo)) |
if(getTipologiasExtraAdicionadas() != null) |
for(Tipologia tipo: getTipologiasExtraAdicionadas()) |
{ |
merge.add(tipo); |
if(!merge.contains(tipo)) |
{ |
merge.add(tipo); |
} |
} |
} |
for(Tipologia tipo: merge) |
{ |
if(tipologiasHorarioReferencia.contains(tipo)) |
if(getTipologiasHorarioReferencia() != null && getTipologiasHorarioReferencia().contains(tipo)) |
{ |
tipo.horRef = true; |
} |
if(tipologiasExtraAdicionadas.contains(tipo)) |
if(getTipologiasExtraAdicionadas() != null && getTipologiasExtraAdicionadas().contains(tipo)) |
{ |
tipo.extra = true; |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/test/TestCourseUnit.java |
---|
319,4 → 319,387 |
} |
public void testMerge2() |
{ |
Tipologias ts = new Tipologias(); |
ts.setTipologiasHorarioReferencia(new ArrayList<Tipologia>()); |
ts.setTipologiasExtraAdicionadas(new ArrayList<Tipologia>()); |
ts.setTipologiasSumarios(null); |
Tipologia t = new Tipologia(); |
t.setCdTurma("TINF"); |
t.setCdDocente("20128"); |
t.setCdTipologia("T"); |
t.setOcorrencias(null); |
ts.getTipologiasHorarioReferencia().add(t); |
t = new Tipologia(); |
t.setCdTurma("TINF"); |
t.setCdDocente("20128"); |
t.setCdTipologia("PL"); |
t.setOcorrencias(null); |
ts.getTipologiasHorarioReferencia().add(t); |
t = new Tipologia(); |
t.setCdTurma("TINF2"); |
t.setCdDocente("20128"); |
t.setCdTipologia("OT"); |
t.setOcorrencias(null); |
ts.getTipologiasExtraAdicionadas().add(t); |
t = new Tipologia(); |
t.setCdTurma("TINF2"); |
t.setCdDocente("20128"); |
t.setCdTipologia("Sem"); |
t.setOcorrencias(null); |
ts.getTipologiasExtraAdicionadas().add(t); |
/* |
t = new Tipologia(); |
t.setCdTurma("TINF"); |
t.setCdDocente("20128"); |
t.setCdTipologia("T"); |
t.setOcorrencias(10); |
ts.getTipologiasSumarios().add(t); |
t = new Tipologia(); |
t.setCdTurma("TINF"); |
t.setCdDocente("20128"); |
t.setCdTipologia("TP"); |
t.setOcorrencias(20); |
ts.getTipologiasSumarios().add(t); |
*/ |
boolean foundT = false; |
boolean foundPL = false; |
boolean foundOT = false; |
boolean foundSem = false; |
//boolean foundTP = false; |
String serial = null; |
try { |
serial = ts.serialize(); |
Tipologias tsTeste = Tipologias.deserialize(serial); |
List<Tipologia> merge = tsTeste.obtainMergeTipologias(); |
assertTrue(merge.size() == 4); |
for(Tipologia tipologia: merge) |
{ |
if(tipologia.getCdTipologia().equals("T")) |
{ |
assertTrue(tipologia.isHorRef()); |
assertFalse(tipologia.isSumario()); |
assertFalse(tipologia.isExtra()); |
assertTrue(tipologia.getOcorrencias() == null || tipologia.getOcorrencias() == 0); |
foundT = true; |
} |
if(tipologia.getCdTipologia().equals("PL")) |
{ |
assertTrue(tipologia.isHorRef()); |
assertFalse(tipologia.isSumario()); |
assertFalse(tipologia.isExtra()); |
assertTrue(tipologia.getOcorrencias() == null || tipologia.getOcorrencias() == 0); |
foundPL = true; |
} |
if(tipologia.getCdTipologia().equals("OT")) |
{ |
assertFalse(tipologia.isHorRef()); |
assertFalse(tipologia.isSumario()); |
assertTrue(tipologia.isExtra()); |
assertTrue(tipologia.getOcorrencias() == null || tipologia.getOcorrencias() == 0); |
foundOT = true; |
} |
if(tipologia.getCdTipologia().equals("Sem")) |
{ |
assertFalse(tipologia.isHorRef()); |
assertFalse(tipologia.isSumario()); |
assertTrue(tipologia.isExtra()); |
assertTrue(tipologia.getOcorrencias() == null || tipologia.getOcorrencias() == 0); |
foundSem = true; |
} |
/*if(tipologia.getCdTipologia().equals("TP")) |
{ |
assertFalse(tipologia.isHorRef()); |
assertTrue(tipologia.isSumario()); |
assertFalse(tipologia.isExtra()); |
assertTrue(tipologia.getOcorrencias() == 20); |
foundTP = true; |
}*/ |
} |
assertTrue(foundT); |
assertTrue(foundPL); |
assertTrue(foundOT); |
assertTrue(foundSem); |
//assertTrue(foundTP); |
} catch (IOException e) { |
e.printStackTrace(); |
} catch (TransformationException e) { |
e.printStackTrace(); |
} |
} |
public void testMerge3() |
{ |
Tipologias ts = new Tipologias(); |
ts.setTipologiasHorarioReferencia(new ArrayList<Tipologia>()); |
ts.setTipologiasExtraAdicionadas(null); |
ts.setTipologiasSumarios(null); |
Tipologia t = new Tipologia(); |
t.setCdTurma("TINF"); |
t.setCdDocente("20128"); |
t.setCdTipologia("T"); |
t.setOcorrencias(null); |
ts.getTipologiasHorarioReferencia().add(t); |
t = new Tipologia(); |
t.setCdTurma("TINF"); |
t.setCdDocente("20128"); |
t.setCdTipologia("PL"); |
t.setOcorrencias(null); |
ts.getTipologiasHorarioReferencia().add(t); |
/* |
t = new Tipologia(); |
t.setCdTurma("TINF2"); |
t.setCdDocente("20128"); |
t.setCdTipologia("OT"); |
t.setOcorrencias(null); |
ts.getTipologiasExtraAdicionadas().add(t); |
t = new Tipologia(); |
t.setCdTurma("TINF2"); |
t.setCdDocente("20128"); |
t.setCdTipologia("Sem"); |
t.setOcorrencias(null); |
ts.getTipologiasExtraAdicionadas().add(t); |
*/ |
/* |
t = new Tipologia(); |
t.setCdTurma("TINF"); |
t.setCdDocente("20128"); |
t.setCdTipologia("T"); |
t.setOcorrencias(10); |
ts.getTipologiasSumarios().add(t); |
t = new Tipologia(); |
t.setCdTurma("TINF"); |
t.setCdDocente("20128"); |
t.setCdTipologia("TP"); |
t.setOcorrencias(20); |
ts.getTipologiasSumarios().add(t); |
*/ |
boolean foundT = false; |
boolean foundPL = false; |
//boolean foundOT = false; |
//boolean foundSem = false; |
//boolean foundTP = false; |
String serial = null; |
try { |
serial = ts.serialize(); |
Tipologias tsTeste = Tipologias.deserialize(serial); |
List<Tipologia> merge = tsTeste.obtainMergeTipologias(); |
assertTrue(merge.size() == 2); |
for(Tipologia tipologia: merge) |
{ |
if(tipologia.getCdTipologia().equals("T")) |
{ |
assertTrue(tipologia.isHorRef()); |
assertFalse(tipologia.isSumario()); |
assertFalse(tipologia.isExtra()); |
assertTrue(tipologia.getOcorrencias() == null || tipologia.getOcorrencias() == 0); |
foundT = true; |
} |
if(tipologia.getCdTipologia().equals("PL")) |
{ |
assertTrue(tipologia.isHorRef()); |
assertFalse(tipologia.isSumario()); |
assertFalse(tipologia.isExtra()); |
assertTrue(tipologia.getOcorrencias() == null || tipologia.getOcorrencias() == 0); |
foundPL = true; |
} |
/*if(tipologia.getCdTipologia().equals("OT")) |
{ |
assertFalse(tipologia.isHorRef()); |
assertFalse(tipologia.isSumario()); |
assertTrue(tipologia.isExtra()); |
assertTrue(tipologia.getOcorrencias() == null || tipologia.getOcorrencias() == 0); |
foundOT = true; |
} |
if(tipologia.getCdTipologia().equals("Sem")) |
{ |
assertFalse(tipologia.isHorRef()); |
assertFalse(tipologia.isSumario()); |
assertTrue(tipologia.isExtra()); |
assertTrue(tipologia.getOcorrencias() == null || tipologia.getOcorrencias() == 0); |
foundSem = true; |
}*/ |
/*if(tipologia.getCdTipologia().equals("TP")) |
{ |
assertFalse(tipologia.isHorRef()); |
assertTrue(tipologia.isSumario()); |
assertFalse(tipologia.isExtra()); |
assertTrue(tipologia.getOcorrencias() == 20); |
foundTP = true; |
}*/ |
} |
assertTrue(foundT); |
assertTrue(foundPL); |
//assertTrue(foundOT); |
//assertTrue(foundSem); |
//assertTrue(foundTP); |
} catch (IOException e) { |
e.printStackTrace(); |
} catch (TransformationException e) { |
e.printStackTrace(); |
} |
} |
public void testMerge4() |
{ |
Tipologias ts = new Tipologias(); |
ts.setTipologiasHorarioReferencia(null); |
ts.setTipologiasExtraAdicionadas(null); |
ts.setTipologiasSumarios(null); |
/* |
Tipologia t = new Tipologia(); |
t.setCdTurma("TINF"); |
t.setCdDocente("20128"); |
t.setCdTipologia("T"); |
t.setOcorrencias(null); |
ts.getTipologiasHorarioReferencia().add(t); |
t = new Tipologia(); |
t.setCdTurma("TINF"); |
t.setCdDocente("20128"); |
t.setCdTipologia("PL"); |
t.setOcorrencias(null); |
ts.getTipologiasHorarioReferencia().add(t); |
*/ |
/* |
t = new Tipologia(); |
t.setCdTurma("TINF2"); |
t.setCdDocente("20128"); |
t.setCdTipologia("OT"); |
t.setOcorrencias(null); |
ts.getTipologiasExtraAdicionadas().add(t); |
t = new Tipologia(); |
t.setCdTurma("TINF2"); |
t.setCdDocente("20128"); |
t.setCdTipologia("Sem"); |
t.setOcorrencias(null); |
ts.getTipologiasExtraAdicionadas().add(t); |
*/ |
/* |
t = new Tipologia(); |
t.setCdTurma("TINF"); |
t.setCdDocente("20128"); |
t.setCdTipologia("T"); |
t.setOcorrencias(10); |
ts.getTipologiasSumarios().add(t); |
t = new Tipologia(); |
t.setCdTurma("TINF"); |
t.setCdDocente("20128"); |
t.setCdTipologia("TP"); |
t.setOcorrencias(20); |
ts.getTipologiasSumarios().add(t); |
*/ |
//boolean foundT = false; |
//boolean foundPL = false; |
//boolean foundOT = false; |
//boolean foundSem = false; |
//boolean foundTP = false; |
String serial = null; |
try { |
serial = ts.serialize(); |
Tipologias tsTeste = Tipologias.deserialize(serial); |
List<Tipologia> merge = tsTeste.obtainMergeTipologias(); |
assertTrue(merge.size() == 0); |
for(Tipologia tipologia: merge) |
{ |
/* |
if(tipologia.getCdTipologia().equals("T")) |
{ |
assertTrue(tipologia.isHorRef()); |
assertTrue(tipologia.isSumario()); |
assertFalse(tipologia.isExtra()); |
assertTrue(tipologia.getOcorrencias() == 10); |
foundT = true; |
} |
if(tipologia.getCdTipologia().equals("PL")) |
{ |
assertTrue(tipologia.isHorRef()); |
assertFalse(tipologia.isSumario()); |
assertFalse(tipologia.isExtra()); |
assertTrue(tipologia.getOcorrencias() == null || tipologia.getOcorrencias() == 0); |
foundPL = true; |
} |
*/ |
/*if(tipologia.getCdTipologia().equals("OT")) |
{ |
assertFalse(tipologia.isHorRef()); |
assertFalse(tipologia.isSumario()); |
assertTrue(tipologia.isExtra()); |
assertTrue(tipologia.getOcorrencias() == null || tipologia.getOcorrencias() == 0); |
foundOT = true; |
} |
if(tipologia.getCdTipologia().equals("Sem")) |
{ |
assertFalse(tipologia.isHorRef()); |
assertFalse(tipologia.isSumario()); |
assertTrue(tipologia.isExtra()); |
assertTrue(tipologia.getOcorrencias() == null || tipologia.getOcorrencias() == 0); |
foundSem = true; |
}*/ |
/*if(tipologia.getCdTipologia().equals("TP")) |
{ |
assertFalse(tipologia.isHorRef()); |
assertTrue(tipologia.isSumario()); |
assertFalse(tipologia.isExtra()); |
assertTrue(tipologia.getOcorrencias() == 20); |
foundTP = true; |
}*/ |
} |
//assertTrue(foundT); |
//assertTrue(foundPL); |
//assertTrue(foundOT); |
//assertTrue(foundSem); |
//assertTrue(foundTP); |
} catch (IOException e) { |
e.printStackTrace(); |
} catch (TransformationException e) { |
e.printStackTrace(); |
} |
} |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/web/form/questionarios/QuestionarioForm.java |
---|
1,9 → 1,15 |
package pt.estgp.estgweb.web.form.questionarios; |
import org.apache.log4j.Logger; |
import org.apache.struts.action.ActionErrors; |
import org.apache.struts.action.ActionMapping; |
import pt.estgp.estgweb.domain.DomainObjectFactory; |
import pt.estgp.estgweb.domain.QuestionarioImpl; |
import pt.estgp.estgweb.web.form.ApplicationForm; |
import javax.servlet.http.HttpServletRequest; |
/** |
* @author Jorge Machado |
* @date 25/Jun/2008 |
12,11 → 18,22 |
public class QuestionarioForm extends ApplicationForm |
{ |
private static final Logger logger = Logger.getLogger(QuestionarioForm.class); |
private String dispatch; |
private QuestionarioImpl questionario; |
private boolean showQuestionarioForm = false; |
public boolean isShowQuestionarioForm() { |
return showQuestionarioForm; |
} |
public void setShowQuestionarioForm(boolean showQuestionarioForm) { |
this.showQuestionarioForm = showQuestionarioForm; |
} |
public QuestionarioForm() |
{ |
43,5 → 60,39 |
this.dispatch = dispatch; |
} |
@Override |
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { |
ActionErrors errors = new ActionErrors(); |
if(getQuestionario().getYear() == null || getQuestionario().getYear().trim().length() == 0) |
{ |
addMessageWithKeys(errors,request,"errors.required","course.importYear"); |
} |
if(getQuestionario().getSemestre() == null || getQuestionario().getSemestre().trim().length() == 0) |
{ |
addMessageWithKeys(errors,request,"errors.required","courseunit.semestre"); |
} |
try { |
for(int i = 1; i <= 30; i++) |
{ |
String p = (String) questionario.getClass().getMethod("getP" + i).invoke(questionario); |
String group = (String) questionario.getClass().getMethod("getP" + i + "Group").invoke(questionario); |
if(p != null && p.trim().length() > 0 && (group == null||group.trim().length() == 0)) |
{ |
addMessage(errors,request,"error.questionario.p.without.group","" + i); |
} |
else if(group != null && group.trim().length() > 0 && (p == null || p.trim().length() == 0)) |
{ |
addMessage(errors,request,"error.questionario.group.without.p","" + i); |
} |
} |
} catch (Exception e) { |
logger.error(e, e); |
addMessage(errors,request,"error.500"); |
} |
if(errors.size() > 0) |
showQuestionarioForm = true; |
return errors; |
} |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/web/controllers/courseunits/CourseUnitsAdminController.java |
---|
396,6 → 396,62 |
} |
public ActionForward deleteAllNoWarn(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException |
{ |
try { |
String importYear = request.getParameter("importYear"); |
IServiceManager sm; |
sm = ServiceManager.getInstance(); |
String[] names = new String[]{}; |
Object[] args = new Object[]{importYear}; |
Integer removed = (Integer) sm.execute(RequestUtils.getRequester(request, response), "DeleteAllNoWarnCourseUnitService", args, names); |
addMessage(request,"courseunits.nowarn.removed","" + removed); |
//logger.info("Não implementado por razoes de segurança"); |
//addMessage(request,"courseunit.security.not.implemented"); |
return mapping.findForward("delete"); |
} catch (Throwable e) { |
logger.error(e,e); |
return mapping.findForward("error500"); |
} |
} |
public ActionForward deleteAll(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException |
{ |
try { |
String importYear = request.getParameter("importYear"); |
IServiceManager sm; |
sm = ServiceManager.getInstance(); |
String[] names = new String[]{}; |
Object[] args = new Object[]{importYear}; |
Integer removed = (Integer) sm.execute(RequestUtils.getRequester(request, response), "DeleteAllCourseUnitService", args, names); |
addMessage(request,"courseunits.all.removed","" + removed); |
//logger.info("Não implementado por razoes de segurança"); |
//addMessage(request,"courseunit.security.not.implemented"); |
return mapping.findForward("delete"); |
} catch (Throwable e) { |
logger.error(e,e); |
return mapping.findForward("error500"); |
} |
} |
public ActionForward search(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
/branches/v3/impl/src/java/pt/estgp/estgweb/web/controllers/questionarios/QuestionarioController.java |
---|
5,12 → 5,10 |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMapping; |
import pt.estgp.estgweb.domain.ConfigurationGradesEpocaAvaliacao; |
import pt.estgp.estgweb.domain.ConfigurationGradesStatusEpoca; |
import pt.estgp.estgweb.domain.QuestionarioImpl; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.web.UserSessionProxy; |
import pt.estgp.estgweb.web.controllers.ApplicationDispatchController; |
import pt.estgp.estgweb.web.form.configuration.ConfigurationGradesForm; |
import pt.estgp.estgweb.web.form.questionarios.QuestionarioForm; |
import javax.servlet.ServletException; |
import javax.servlet.http.HttpServletRequest; |
29,47 → 27,59 |
public ActionForward saveGrades(ActionMapping mapping, |
public ActionForward newEdit(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException |
{ |
if(!UserSessionProxy.loadUserSessionFromRequest(request).getUser().isAdmin() && !UserSessionProxy.loadUserSessionFromRequest(request).getUser().hasRole("services")) |
{ |
return mapping.findForward("error401"); |
} |
ConfigurationGradesForm f = (ConfigurationGradesForm) form; |
QuestionarioForm frm = (QuestionarioForm) form; |
AbstractDao.getCurrentSession().beginTransaction(); |
for(ConfigurationGradesEpocaAvaliacao a: f.getConfigurationGrades().getEpocasAvaliacao()) |
if(frm.getQuestionario().getId() <= 0) |
{ |
if(a.getId() > 0) |
{ |
ConfigurationGradesEpocaAvaliacao persist = DaoFactory.getConfigurationGradesEpocaAvaliacaoDaoImpl().load(a.getId()); |
persist.setCodigoEpoca(a.getCodigoEpoca()); |
persist.setCodigoMomento(a.getCodigoMomento()); |
persist.setObs(a.getObs()); |
persist.setDescricao(a.getDescricao()); |
} |
DaoFactory.getQuestionarioDaoImpl().save(frm.getQuestionario()); |
} |
for(ConfigurationGradesStatusEpoca a: f.getConfigurationGrades().getStatusEpocas()) |
else |
{ |
if(a.getId() > 0) |
{ |
ConfigurationGradesStatusEpoca persist = DaoFactory.getConfigurationGradesStatusEpocaDaoImpl().load(a.getId()); |
persist.setStatus(a.getStatus()); |
persist.setObs(a.getObs()); |
persist.setDescricao(a.getDescricao()); |
} |
DaoFactory.getQuestionarioDaoImpl().merge(frm.getQuestionario()); |
} |
AbstractDao.getCurrentSession().getTransaction().commit(); |
return mapping.findForward("grades"); |
return mapping.findForward("list"); |
} |
public ActionForward refresh(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException |
{ |
QuestionarioForm frm = (QuestionarioForm) form; |
frm.setShowQuestionarioForm(true); |
return mapping.getInputForward(); |
} |
public ActionForward form(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException |
{ |
QuestionarioForm frm = (QuestionarioForm) form; |
AbstractDao.getCurrentSession().beginTransaction(); |
QuestionarioImpl q = (QuestionarioImpl) DaoFactory.getQuestionarioDaoImpl().get(frm.getQuestionario().getId()); |
frm.setQuestionario(q); |
AbstractDao.getCurrentSession().getTransaction().commit(); |
frm.setShowQuestionarioForm(true); |
return mapping.findForward("list"); |
} |
} |
/branches/v3/impl/src/hbm/pt/estgp/estgweb/domain/Questionarios.hbm.xml |
---|
7,7 → 7,7 |
<class name="pt.estgp.estgweb.domain.Questionario" table="questionario" abstract="true"> |
<meta attribute="extends">pt.estgp.estgweb.domain.DomainObject</meta> |
<meta attribute="scope-class">public abstract</meta> |
<id name="id" type="long"> |
<id name="id" type="long" unsaved-value="0"> |
<generator class="native"/> |
</id> |
<discriminator column="discriminator"/> |
/branches/v3/impl/src/web/admin/courseunits/courseUnitDeleteAdministration.jsp |
---|
1,4 → 1,3 |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="pt.estgp.estgweb.services.courseunits.DeleteCourseUnitService" %> |
<%@ page import="pt.estgp.estgweb.utils.DatesUtils" %> |
<%@ page import="pt.estgp.estgweb.web.utils.RequestUtils" %> |
87,20 → 86,10 |
%> |
<style> |
.modal-dialog{ |
position: absolute; |
left: 0; |
//now you must set a margin left under zero - value is a half width your window |
} |
</style> |
<script> |
$(document).ready(function(){ |
$('.deleteModal').on('show.bs.modal', function(e) { |
109,60 → 98,7 |
}); |
</script> |
<logic:iterate id="contentsInfo" name="CourseUnitContentsInfos" type="pt.estgp.estgweb.services.courseunits.DeleteCourseUnitService.CourseUnitContentsInfo"> |
<div id="info${contentsInfo.cuv.id}" class="modal fade" role="dialog"> |
<div class="modal-dialog modal-sm"> |
<!-- Modal content--> |
<div class="modal-content"> |
<div class="modal-header"> |
<button type="button" class="close" data-dismiss="modal">×</button> |
<h4 class="modal-title">${contentsInfo.cuv.name}/${contentsInfo.cuv.code} - ${contentsInfo.cuv.courseName}/${contentsInfo.cuv.courseCode} - ${contentsInfo.cuv.semestre} - ${contentsInfo.cuv.importYear}</h4> |
</div> |
<div class="modal-body"> |
<logic:iterate id="msgWarn" name="contentsInfo" property="warnings"> |
<p>${msgWarn}</p> |
</logic:iterate> |
</div> |
<div class="modal-footer"> |
<logic:equal value="true" name="contentsInfo" property="canDelete"> |
<button class="btn btn-danger" data-href="<%=request.getContextPath()%>/user/startDeleteCourseUnitAdminFromUnitsDeleteAdministration.do?dispatch=delete&id=${contentsInfo.cuv.id}&importYear=<%=importYear%>" data-toggle="modal" data-target="#confirm-delete${contentsInfo.cuv.id}"> |
<bean:message key="delete"/> |
</button> |
</logic:equal> |
<html:link styleClass="btn btn-default" action="/user/startLoadCourseUnitFromHome?id=${contentsInfo.cuv.id}" target="_blank">Ir para a página</html:link> |
<button type="button" class="btn btn-default" data-dismiss="modal"><bean:message key="close"/></button> |
</div> |
</div> |
</div> |
</div> |
<div class="modal fade deleteModal" id="confirm-delete${contentsInfo.cuv.id}" tabindex="-1" role="dialog" > |
<div class="modal-dialog"> |
<div class="modal-content"> |
<div class="modal-header"> |
<h4 class="modal-title">${contentsInfo.cuv.name}/${contentsInfo.cuv.code} - ${contentsInfo.cuv.courseName}/${contentsInfo.cuv.courseCode} - ${contentsInfo.cuv.semestre} - ${contentsInfo.cuv.importYear}</h4> |
</div> |
<div class="modal-body"> |
<logic:iterate id="msgWarn" name="contentsInfo" property="warnings"> |
<p>${msgWarn}</p> |
</logic:iterate> |
<logic:empty name="contentsInfo" property="warnings"> |
Não tem avisos nesta unidade. |
</logic:empty> |
</div> |
<div class="modal-footer"> |
Tem a certeza que desja apagar esta unidade curricular? |
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button> |
<a class="btn btn-danger btn-ok">Delete</a> |
</div> |
</div> |
</div> |
</div> |
</logic:iterate> |
<!--Modais de iformação com avisos de conteudo da unidade--> |
<jomm:messages/> |
174,9 → 110,120 |
<div class="panel-heading"> |
Administração de Unidades Candidatas a Apagar com Zero Estudantes |
<a href="<%=request.getContextPath()%>/admin/courseUnitsDeleteAdmin.do" class="btn btn-info"><span class="glyphicon glyphicon-refresh"></span></a> |
<button class="btn btn-danger pull-right" data-href="<%=request.getContextPath()%>/user/startDeleteCourseUnitAdminFromUnitsDeleteAdministration.do?importYear=<%=importYear%>&dispatch=deleteAll" data-toggle="modal" data-target="#confirm-deleteAll"> |
Apagar todas as permitidas |
</button> |
<button class="btn btn-warning pull-right" style="margin-right: 5px" data-href="<%=request.getContextPath()%>/user/startDeleteCourseUnitAdminFromUnitsDeleteAdministration.do?importYear=<%=importYear%>&dispatch=deleteAllNoWarn" data-toggle="modal" data-target="#confirm-deleteAllNoWarn"> |
Apagar unidades sem avisos |
</button> |
</div> |
<div class="panel-body"> |
<logic:iterate id="contentsInfo" name="CourseUnitContentsInfos" type="pt.estgp.estgweb.services.courseunits.DeleteCourseUnitService.CourseUnitContentsInfo"> |
<div id="info${contentsInfo.cuv.id}" class="modal fade" role="dialog"> |
<div class="modal-dialog" data-width="450" style="display: block; width: 450px; margin-top: 50px;" aria-hidden="false"> |
<!-- Modal content--> |
<div class="modal-content"> |
<div class="modal-header"> |
<button type="button" class="close" data-dismiss="modal">×</button> |
<h4 class="modal-title">${contentsInfo.cuv.name}/${contentsInfo.cuv.code} - ${contentsInfo.cuv.courseName}/${contentsInfo.cuv.courseCode} - ${contentsInfo.cuv.semestre} - ${contentsInfo.cuv.importYear}</h4> |
</div> |
<div class="modal-body"> |
<logic:iterate id="msgWarn" name="contentsInfo" property="warnings"> |
<p>${msgWarn}</p> |
</logic:iterate> |
</div> |
<div class="modal-footer"> |
<logic:equal value="true" name="contentsInfo" property="canDelete"> |
<button class="btn btn-danger" data-href="<%=request.getContextPath()%>/user/startDeleteCourseUnitAdminFromUnitsDeleteAdministration.do?dispatch=delete&id=${contentsInfo.cuv.id}&importYear=<%=importYear%>" data-toggle="modal" data-target="#confirm-delete${contentsInfo.cuv.id}"> |
<bean:message key="delete"/> |
</button> |
</logic:equal> |
<html:link styleClass="btn btn-default" action="/user/startLoadCourseUnitFromHome?id=${contentsInfo.cuv.id}" target="_blank">Ir para a página</html:link> |
<button type="button" class="btn btn-default" data-dismiss="modal"><bean:message key="close"/></button> |
</div> |
</div> |
</div> |
</div> |
<div class="modal fade deleteModal" id="confirm-delete${contentsInfo.cuv.id}" tabindex="-1" role="dialog" > |
<div class="modal-dialog" data-width="450" style="display: block; width: 450px; margin-top: 50px;" aria-hidden="false"> |
<div class="modal-content"> |
<div class="modal-header"> |
<h4 class="modal-title">${contentsInfo.cuv.name}/${contentsInfo.cuv.code} - ${contentsInfo.cuv.courseName}/${contentsInfo.cuv.courseCode} - ${contentsInfo.cuv.semestre} - ${contentsInfo.cuv.importYear}</h4> |
</div> |
<div class="modal-body"> |
<logic:iterate id="msgWarn" name="contentsInfo" property="warnings"> |
<p>${msgWarn}</p> |
</logic:iterate> |
<logic:empty name="contentsInfo" property="warnings"> |
Não tem avisos nesta unidade. |
</logic:empty> |
</div> |
<div class="modal-footer"> |
Tem a certeza que desja apagar esta unidade curricular? |
<button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button> |
<a class="btn btn-danger btn-ok">Apagar</a> |
</div> |
</div> |
</div> |
</div> |
</logic:iterate> |
<div class="modal fade deleteModal" id="confirm-deleteAll" tabindex="-1" role="dialog" > |
<div class="modal-dialog" data-width="450" style="display: block; width: 450px; margin-top: 50px;" aria-hidden="false"> |
<div class="modal-content"> |
<div class="modal-header"> |
<h4 class="modal-title">Apagar Todas As Unidades Permitidas</h4> |
</div> |
<div class="modal-body"> |
<p>Tem a certeza que pretende apagar todas as unidades permitidas?</p> |
</div> |
<div class="modal-footer"> |
<button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button> |
<a class="btn btn-danger btn-ok">Apagar</a> |
</div> |
</div> |
</div> |
</div> |
<div class="modal fade deleteModal" id="confirm-deleteAllNoWarn" role="dialog" > |
<div class="modal-dialog" data-width="450" style="display: block; width: 450px; margin-top: 50px;" aria-hidden="false"> |
<div class="modal-content"> |
<div class="modal-header"> |
<h4 class="modal-title">Apagar Todas As Unidades Sem Avisos?</h4> |
</div> |
<div class="modal-body"> |
<p>Tem a certeza que pretende apagar todas as unidades sem Avisos?</p> |
<p>(As unidades com Avisos serão mantidas.)</p> |
</div> |
<div class="modal-footer"> |
<button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button> |
<a class="btn btn-danger btn-ok">Apagar</a> |
</div> |
</div> |
</div> |
</div> |
<table class="tablesorter tablesorterfiltered"> |
<thead> |
<tr> |
/branches/v3/impl/src/web/admin/courseunits/findCourseunit.jsp |
---|
47,6 → 47,7 |
<th class="filter-name filter-select"><bean:message key="courseunit.semestre"/></th> |
<th class="filter-name filter-select"><bean:message key="courseunit.importYear"/></th> |
<th class="filter-name filter-select"><bean:message key="courseunit.course"/></th> |
<th class="filter-name filter-select"><bean:message key="course.code"/></th> |
<th></th> |
<th></th> |
</tr> |
60,6 → 61,7 |
<td><bean:message key="courseunit.${courseunitresult.object.semestre}"/></td> |
<td>${courseunitresult.object.importYear}</td> |
<td><a href="<%=request.getContextPath()%>/user/courseControllerFromServiceZone.do?dispatch=edit&courseView.id=${courseunitresult.object.courseId}">${courseunitresult.object.courseName}</a></td> |
<td>${courseunitresult.object.courseCode}</td> |
<td><html:link styleClass="btn btn-warning" action="/user/startEditCourseUnitAdminFromServiceZone?id=${courseunitresult.object.id}"><bean:message key="edit"/><span class="glyphicon glyphicon-pencil"></span></html:link></td> |
<td><html:link styleClass="btn btn-danger" action="/user/startDeleteCourseUnitAdminFromServiceZone?id=${courseunitresult.object.id}"><bean:message key="delete"/><span class="glyphicon glyphicon-remove"></span></html:link></td> |
<td></td> |
/branches/v3/impl/src/web/admin/questionarios/questionariosList.jsp |
---|
1,5 → 1,11 |
<%@ page import="pt.estgp.estgweb.domain.Questionario" %> |
<%@ page import="pt.estgp.estgweb.domain.UserSessionImpl" %> |
<%@ page import="pt.estgp.estgweb.utils.DatesUtils" %> |
<%@ page import="pt.estgp.estgweb.web.UserSessionProxy" %> |
<%@ page import="java.util.List" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="jomm.dao.impl.AbstractDao" %> |
<%@ page import="pt.estgp.estgweb.domain.QuestionarioImpl" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
9,95 → 15,143 |
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %> |
<% |
UserSessionImpl userSession = (UserSessionImpl) UserSessionProxy.loadUserSessionFromRequest(request); |
%> |
<!-- Modal --> |
<div class="modal fade" id="myModal" role="dialog" > |
<div class="modal-dialog" data-width="90%" style="display: block; width: 90%; margin-top: 50px;" aria-hidden="false"> |
<html:form styleClass="form-horizontal" action="/admin/questionariosPae" enctype="multipart/form-data"> |
<jsp:useBean id="QuestionarioForm" type="pt.estgp.estgweb.web.form.questionarios.QuestionarioForm" scope="request"/> |
<!-- Modal content--> |
<div class="modal-content"> |
<div class="modal-header"> |
<h1 class="modal-title">Novo Questionário</h1> |
<h1 class="modal-title"> |
<logic:lessEqual name="QuestionarioForm" property="questionario.id" value="0"> |
Novo Questionário |
</logic:lessEqual> |
<logic:notEqual name="QuestionarioForm" property="questionario.id" value="0"> |
Questionário (Número Controlo - ${QuestionarioForm.questionario.id}) |
</logic:notEqual> |
</h1> |
</div> |
<div class="modal-body"> |
<html:errors/> |
<jomm:messages/> |
<html:form styleClass="form-horizontal" action="/admin/questionariosPae" enctype="multipart/form-data"> |
<% |
if (QuestionarioForm.isShowQuestionarioForm()) |
{ |
%> |
<script> |
$(document).ready(function(){ |
$('#myModal').modal({ |
show: 'true' |
}); |
}); |
</script> |
<% |
} |
%> |
<script> |
$(document).ready( |
function(){ |
$('#editor').wysiwyg(); |
setText(); |
$(".perguntaGroup").each( |
function(){ |
if($(this).val() == "") |
{ |
$(this).css({ |
"background-color":"orange" |
}); |
} |
} |
); |
} |
); |
function alerta() |
{ |
alert($('#editor').html()); |
} |
function setText() |
{ |
$("#editor").html('<%--<bean:write name="QuestionarioForm" property="introHtml" filter="false"/>--%>'); |
$("#editor").html('<bean:write name="QuestionarioForm" property="questionario.introHtml" filter="false"/>'); |
} |
</script> |
<input type="hidden" name="dispatch" value="new"> |
<input type="hidden" name="dispatch" value="newEdit"> |
<html:hidden property="questionario.id"/> |
<div class="form-group row"> |
<div class="col-sm-12"> |
<div class="btn-toolbar" data-role="editor-toolbar" data-target="#editor"> |
<!-- <div class="btn-group"> |
<a class="btn dropdown-toggle" data-toggle="dropdown" title="Font"><i class="icon-font"></i><b class="caret"></b></a> |
<ul class="dropdown-menu"> |
</ul> |
</div>--> |
<div class="btn-group"> |
<a class="btn btn-default" data-toggle="dropdown" title="Font Size"><i class="icon-text-height"></i><b class="caret"></b></a> |
<ul class="dropdown-menu"> |
<li><a data-edit="fontSize 5"><font size="5">Grande</font></a></li> |
<li><a data-edit="fontSize 3"><font size="3">Normal</font></a></li> |
<li><a data-edit="fontSize 1"><font size="1">Pequeno</font></a></li> |
</ul> |
</div> |
<div class="btn-group"> |
<a class="btn btn-default" data-edit="bold" title="Bold (Ctrl/Cmd+B)"><i class="icon-bold"></i></a> |
<a class="btn btn-default" data-edit="italic" title="Italic (Ctrl/Cmd+I)"><i class="icon-italic"></i></a> |
<a class="btn btn-default" data-edit="strikethrough" title="Strikethrough"><i class="icon-strikethrough"></i></a> |
<a class="btn btn-default" data-edit="underline" title="Underline (Ctrl/Cmd+U)"><i class="icon-underline"></i></a> |
</div> |
<div class="btn-group"> |
<a class="btn btn-default" data-edit="insertunorderedlist" title="Bullet list"><i class="icon icon-list2"></i></a> |
<a class="btn btn-default" data-edit="insertorderedlist" title="Number list"><i class="icon icon-list-numbered"></i></a> |
<a class="btn btn-default" data-edit="outdent" title="Reduce indent (Shift+Tab)"><i class="glyphicon glyphicon-indent-left"></i></a> |
<a class="btn btn-default" data-edit="indent" title="Indent (Tab)"><i class="glyphicon glyphicon-indent-right"></i></a> |
</div> |
<div class="btn-group"> |
<a class="btn btn-default" data-edit="justifyleft" title="Align Left (Ctrl/Cmd+L)"><i class="icon icon-paragraph-left"></i></a> |
<a class="btn btn-default" data-edit="justifycenter" title="Center (Ctrl/Cmd+E)"><i class="icon icon-paragraph-center"></i></a> |
<a class="btn btn-default" data-edit="justifyright" title="Align Right (Ctrl/Cmd+R)"><i class="icon icon-paragraph-right"></i></a> |
<a class="btn btn-default" data-edit="justifyfull" title="Justify (Ctrl/Cmd+J)"><i class="icon icon-paragraph-justify"></i></a> |
</div> |
<div class="btn-group"> |
<a class="btn btn-default dropdown-toggle" data-toggle="dropdown" title="Hyperlink"><i class="icon-link"></i></a> |
<div class="dropdown-menu input-append"> |
<input class="span2" placeholder="URL" type="text" data-edit="createLink"/> |
<button class="btn" type="button">Add</button> |
<div class="btn-toolbar" data-role="editor-toolbar" data-target="#editor"> |
<!-- <div class="btn-group"> |
<a class="btn dropdown-toggle" data-toggle="dropdown" title="Font"><i class="aweicon-font"></i><b class="caret"></b></a> |
<ul class="dropdown-menu"> |
</ul> |
</div>--> |
<div class="btn-group"> |
<a class="btn btn-default" data-toggle="dropdown" title="Font Size"><i class="aweicon-text-height"></i> <b class="caret"></b></a> |
<ul class="dropdown-menu"> |
<li><a data-edit="fontSize 5"><font size="5">Grande</font></a></li> |
<li><a data-edit="fontSize 4"><font size="4">Maior</font></a></li> |
<li><a data-edit="fontSize 3"><font size="3">Normal</font></a></li> |
<li><a data-edit="fontSize 2"><font size="2">Menor</font></a></li> |
<li><a data-edit="fontSize 1"><font size="1">Pequeno</font></a></li> |
</ul> |
</div> |
<div class="btn-group"> |
<a class="btn btn-default" data-edit="bold" title="Bold (Ctrl/Cmd+B)"><i class="aweicon-bold"></i></a> |
<a class="btn btn-default" data-edit="italic" title="Italic (Ctrl/Cmd+I)"><i class="aweicon-italic"></i></a> |
<a class="btn btn-default" data-edit="strikethrough" title="Strikethrough"><i class="aweicon-strikethrough"></i></a> |
<a class="btn btn-default" data-edit="underline" title="Underline (Ctrl/Cmd+U)"><i class="aweicon-underline"></i></a> |
</div> |
<a class="btn btn-default" data-edit="unlink" title="Remove Hyperlink"><i class="icon-cut"></i></a> |
<div class="btn-group"> |
<a class="btn btn-default" data-edit="insertunorderedlist" title="Bullet list"><i class="aweicon-list-ul"></i></a> |
<a class="btn btn-default" data-edit="insertorderedlist" title="Number list"><i class="aweicon-list-ol"></i></a> |
<a class="btn btn-default" data-edit="outdent" title="Reduce indent (Shift+Tab)"><i class="aweicon-indent-left"></i></a> |
<a class="btn btn-default" data-edit="indent" title="Indent (Tab)"><i class="aweicon-indent-right"></i></a> |
</div> |
<div class="btn-group"> |
<a class="btn btn-default" data-edit="justifyleft" title="Align Left (Ctrl/Cmd+L)"><i class="aweicon-align-left"></i></a> |
<a class="btn btn-default" data-edit="justifycenter" title="Center (Ctrl/Cmd+E)"><i class="aweicon-align-center"></i></a> |
<a class="btn btn-default" data-edit="justifyright" title="Align Right (Ctrl/Cmd+R)"><i class="aweicon-align-right"></i></a> |
<a class="btn btn-default" data-edit="justifyfull" title="Justify (Ctrl/Cmd+J)"><i class="aweicon-align-justify"></i></a> |
</div> |
<div class="btn-group"> |
<a class="btn btn-default dropdown-toggle" data-toggle="dropdown" title="Hyperlink"><i class="aweicon-link"></i></a> |
<div class="dropdown-menu input-append"> |
<input class="span2" placeholder="URL" type="text" data-edit="createLink"/> |
<button class="btn" type="button">Add</button> |
</div> |
<a class="btn btn-default" data-edit="unlink" title="Remove Hyperlink"><i class="aweicon-cut"></i></a> |
</div> |
</div> |
<div class="btn-group"> |
<a class="btn btn-default" title="Insert picture (or just drag & drop)" id="pictureBtn"><i class="glyphicon glyphicon-picture"></i></a> |
<input type="file" data-role="magic-overlay" data-target="#pictureBtn" data-edit="insertImage" /> |
<div class="btn-group"> |
<a class="btn btn-default" title="Insert picture (or just drag & drop)" id="pictureBtn"><i class="aweicon-picture"></i></a> |
<input type="file" data-role="magic-overlay" data-target="#pictureBtn" data-edit="insertImage" /> |
</div> |
<div class="btn-group"> |
<a class="btn btn-default" data-edit="undo" title="Undo (Ctrl/Cmd+Z)"><i class="aweicon-undo"></i></a> |
<a class="btn btn-default" data-edit="redo" title="Redo (Ctrl/Cmd+Y)"><i class="aweicon-repeat"></i></a> |
</div> |
</div> |
<div class="btn-group"> |
<a class="btn btn-default" data-edit="undo" title="Undo (Ctrl/Cmd+Z)"><i class="icon icon-undo2"></i></a> |
<a class="btn btn-default" data-edit="redo" title="Redo (Ctrl/Cmd+Y)"><i class="icon icon-redo2"></i></a> |
<div id="editor"> |
<bean:message key="submit.todo.email.content"/>… |
</div> |
</div> |
<div id="editor"> |
<bean:message key="submit.todo.email.content"/>… |
</div> |
</div> |
</div> |
122,7 → 176,7 |
</div> |
</div> |
<div class="form-group" id="jobSemestreKeyPart"> |
<div class="form-group"> |
<label class="control-label col-sm-2" for="semestre">Semestre:</label> |
<div class="col-sm-10"> |
<html:select styleClass="form-control" styleId="semestre" property="questionario.semestre"> |
140,119 → 194,150 |
<% |
<div class="form-group" id="jobSemestreKeyPart"> |
<label class="control-label col-sm-2" for="semestre">Pergunta 1:</label> |
for(int i = 1; i <= 30; i ++) |
{ |
request.setAttribute("p",i); |
request.setAttribute("pBefore",i-1); |
%> |
<logic:present name="QuestionarioForm" property="questionario.p${p}Group"> |
<logic:equal value="1" name="p"> |
<h3> |
<logic:equal value="1" name="QuestionarioForm" property="questionario.p${p}Group"> |
1 - ${QuestionarioForm.questionario.group1Title} |
</logic:equal> |
<logic:equal value="2" name="QuestionarioForm" property="questionario.p${p}Group"> |
2 - ${QuestionarioForm.questionario.group2Title} |
</logic:equal> |
<logic:equal value="3" name="QuestionarioForm" property="questionario.p${p}Group"> |
3 - ${QuestionarioForm.questionario.group3Title} |
</logic:equal> |
<logic:equal value="4" name="QuestionarioForm" property="questionario.p${p}Group"> |
4 - ${QuestionarioForm.questionario.group4Title} |
</logic:equal> |
<logic:equal value="5" name="QuestionarioForm" property="questionario.p${p}Group"> |
5 - ${QuestionarioForm.questionario.group5Title} |
</logic:equal> |
</h3> |
</logic:equal> |
<logic:greaterThan value="1" name="p"> |
<jomm:notEqualBeans name1="QuestionarioForm" property1="questionario.p${p}Group" name2="QuestionarioForm" property2="questionario.p${pBefore}Group"> |
<hr/> |
<h3> |
<logic:equal value="1" name="QuestionarioForm" property="questionario.p${p}Group"> |
1 - ${QuestionarioForm.questionario.group1Title} |
</logic:equal> |
<logic:equal value="2" name="QuestionarioForm" property="questionario.p${p}Group"> |
2 - ${QuestionarioForm.questionario.group2Title} |
</logic:equal> |
<logic:equal value="3" name="QuestionarioForm" property="questionario.p${p}Group"> |
3 - ${QuestionarioForm.questionario.group3Title} |
</logic:equal> |
<logic:equal value="4" name="QuestionarioForm" property="questionario.p${p}Group"> |
4 - ${QuestionarioForm.questionario.group4Title} |
</logic:equal> |
<logic:equal value="5" name="QuestionarioForm" property="questionario.p${p}Group"> |
5 - ${QuestionarioForm.questionario.group5Title} |
</logic:equal> |
</h3> |
</jomm:notEqualBeans> |
</logic:greaterThan> |
</logic:present> |
<div class="form-group"> |
<label class="control-label col-sm-2" for="p${p}">Pergunta ${p}:</label> |
<div class="col-sm-8"> |
<html:textarea styleClass="form-control" property="questionario.p1" styleId="p1"/> |
<html:textarea styleClass="form-control" property="questionario.p${p}" styleId="p${p}"/> |
</div> |
<div class="col-sm-2"> |
<html:select styleClass="form-control" property="questionario.p1Group"> |
<html:select styleClass="form-control perguntaGroup" property="questionario.p${p}Group" onchange="set(this.form,'refresh');form.submit()"> |
<html:option value="">Nenhum</html:option> |
<html:option value="1">${QuestionarioForm.questionario.group1Title}</html:option> |
<html:option value="2">${QuestionarioForm.questionario.group2Title}</html:option> |
<html:option value="3">${QuestionarioForm.questionario.group3Title}</html:option> |
<html:option value="4">${QuestionarioForm.questionario.group4Title}</html:option> |
<html:option value="5">${QuestionarioForm.questionario.group5Title}</html:option> |
</html:select> |
</div> |
</div> |
<%-- |
<div class="form-group"> |
<label class="control-label col-sm-2" for="date"><bean:message key="courseunit.assignement.deliver.date"/></label> |
<div class="col-sm-8"> |
<div class='input-group date datetimepicker' > |
<html:text styleClass="form-control" property="courseUnitAssignementView.deliverDate" styleId="date" /> |
<span class="input-group-addon"> |
<span class="glyphicon glyphicon-calendar"></span> |
</span> |
</div> |
</div> |
<div class="col-sm-2"> |
<button type="button" class="btn btn-danger" onClick="CourseUnitsForm.deliverDate.value=null"><span class="glyphicon glyphicon-remove"></span></button> |
</div> |
</div> |
<div class="form-group"> |
<label class="control-label col-sm-2" for="type"><bean:message key="courseunit.assignement.deliver.type"/></label> |
<div class="col-sm-10"> |
<html:select styleId="type" styleClass="form-control" property="courseUnitAssignementView.deliverType"> |
<html:option value="file" key="courseunit.assignement.deliver.type.file"/> |
<html:option value="nofile" key="courseunit.assignement.deliver.type.nofile"/> |
</html:select> |
</div> |
</div> |
<div class="form-group"> |
<label class="control-label col-sm-2" for="permission"><bean:message key="courseunit.assignement.deliver.late.permission"/></label> |
<div class="col-sm-10"> |
<html:select styleId="permission" styleClass="form-control" property="courseUnitAssignementView.lateDelivers"> |
<html:option value="true" key="yes"/> |
<html:option value="false" key="no"/> |
</html:select> |
</div> |
</div> |
<div class="form-group"> |
<label class="control-label col-sm-2" for="desc"><bean:message key="courseunit.description"/></label> |
<div class="col-sm-10"> |
<html:textarea styleId="desc" styleClass="form-control" property="courseUnitAssignementView.description"/> |
</div> |
</div> |
<div class="form-group"> |
<label class="control-label col-sm-2" for="fileA"><bean:message key="courseunit.assignement.file"/></label> |
<div class="col-sm-10"> |
<html:file styleId="fileA" styleClass="form-control" property="uploadFile"/> |
</div> |
</div> |
<div class="form-group"> |
<label class="control-label col-sm-2" for="status"><bean:message key="courseunit.status"/></label> |
<div class="col-sm-10"> |
<html:select styleId="status" styleClass="form-control" property="courseUnitAssignementView.status"> |
<html:option value="true"> |
<bean:message key="status.active"/> |
</html:option> |
<html:option value="false"> |
<bean:message key="status.inactive"/> |
</html:option> |
</html:select> |
</div> |
</div> |
--%> |
<% |
} |
%> |
<button type="button" class="btn btn-success" onclick="this.form.submit()"><bean:message key="confirm"/></button> |
<button type="button" class="btn btn-danger" data-dismiss="modal"><bean:message key="cancel"/></button> |
</html:form> |
</div> |
</div> |
</html:form> |
</div> |
</div> |
<div class="container-fluid" style="margin-top: 10px"> |
<div class="panel panel-primary"> |
<div class="panel-heading clearfix"> |
Questionários <button type="button" data-toggle="modal" data-target="#myModal" class="btn btn-default pull-right" href="">Criar Novo <span class="glyphicon glyphicon-plus"> </span></button> |
Questionários <button type="button" data-toggle="modal" data-target="#myModal" class="btn btn-default btn-sm pull-right" href="">Criar Novo <span class="glyphicon glyphicon-plus"> </span></button> |
</div> |
<div class="panel-body"> |
<table class="tablesortersimple"> |
<thead> |
<tr> |
<th>Num. Control</th> |
<th>Ano</th> |
<th>Semestre</th> |
<th>Administrar</th> |
<th>Questionários</th> |
<th>Editar</th> |
<th>Formulário</th> |
<th>Estado</th> |
<th>Alterado a</th> |
</tr> |
</thead> |
<tbody> |
<% |
AbstractDao.getCurrentSession().beginTransaction(); |
List<Questionario> questionarios = DaoFactory.getQuestionarioDaoImpl().findByPage(0,10); |
for(Questionario q: questionarios) |
{ |
request.setAttribute("q",q); |
%> |
<tr> |
<td>${q.id}</td> |
<td>${q.year}</td> |
<td>${q.semestre}</td> |
<td><button class="btn btn-default">Admin</button></td> |
<td><button class="btn btn-default">Admin</button></td> |
<td> |
<% |
if(((QuestionarioImpl)q).getStateEnum().getPosition() <= QuestionarioImpl.State.ASSIGNED.getPosition()) |
{ |
%> |
<html:link action="/admin/formQuestionariosPae?questionario.id=${q.id}" styleClass="btn btn-default">Editar</html:link> |
<% |
} |
else |
{ |
%> |
Em processamento |
<% |
} |
%> |
</td> |
<td>${q.state}</td> |
<td><%=pt.estgp.estgweb.web.utils.DatesUtils.getStringFromDate(q.getUpdateDate())%></td> |
</tr> |
<% |
} |
AbstractDao.getCurrentSession().getTransaction().commit(); |
%> |
</tbody> |
</table> |
</div> |
/branches/v3/impl/src/web/admin/announcements/submitMessage.jsp |
---|
170,12 → 170,12 |
<div class="col-sm-12"> |
<div class="btn-toolbar" data-role="editor-toolbar" data-target="#editor"> |
<!-- <div class="btn-group"> |
<a class="btn dropdown-toggle" data-toggle="dropdown" title="Font"><i class="icon-font"></i><b class="caret"></b></a> |
<a class="btn dropdown-toggle" data-toggle="dropdown" title="Font"><i class="aweicon-font"></i><b class="caret"></b></a> |
<ul class="dropdown-menu"> |
</ul> |
</div> |
<div class="btn-group"> |
<a class="btn dropdown-toggle" data-toggle="dropdown" title="Font Size"><i class="icon-text-height"></i> <b class="caret"></b></a> |
<a class="btn dropdown-toggle" data-toggle="dropdown" title="Font Size"><i class="aweicon-text-height"></i> <b class="caret"></b></a> |
<ul class="dropdown-menu"> |
<li><a data-edit="fontSize 5"><font size="5">Huge</font></a></li> |
<li><a data-edit="fontSize 3"><font size="3">Normal</font></a></li> |
183,40 → 183,40 |
</ul> |
</div>--> |
<div class="btn-group"> |
<a class="btn btn-default" data-edit="bold" title="Bold (Ctrl/Cmd+B)"><i class="icon-bold"></i></a> |
<a class="btn btn-default" data-edit="italic" title="Italic (Ctrl/Cmd+I)"><i class="icon-italic"></i></a> |
<a class="btn btn-default" data-edit="strikethrough" title="Strikethrough"><i class="icon-strikethrough"></i></a> |
<a class="btn btn-default" data-edit="underline" title="Underline (Ctrl/Cmd+U)"><i class="icon-underline"></i></a> |
<a class="btn btn-default" data-edit="bold" title="Bold (Ctrl/Cmd+B)"><i class="aweicon-bold"></i></a> |
<a class="btn btn-default" data-edit="italic" title="Italic (Ctrl/Cmd+I)"><i class="aweicon-italic"></i></a> |
<a class="btn btn-default" data-edit="strikethrough" title="Strikethrough"><i class="aweicon-strikethrough"></i></a> |
<a class="btn btn-default" data-edit="underline" title="Underline (Ctrl/Cmd+U)"><i class="aweicon-underline"></i></a> |
</div> |
<div class="btn-group"> |
<a class="btn btn-default" data-edit="insertunorderedlist" title="Bullet list"><i class="icon-list-ul"></i></a> |
<a class="btn btn-default" data-edit="insertorderedlist" title="Number list"><i class="icon-list-ol"></i></a> |
<a class="btn btn-default" data-edit="outdent" title="Reduce indent (Shift+Tab)"><i class="icon-indent-left"></i></a> |
<a class="btn btn-default" data-edit="indent" title="Indent (Tab)"><i class="icon-indent-right"></i></a> |
<a class="btn btn-default" data-edit="insertunorderedlist" title="Bullet list"><i class="aweicon-list-ul"></i></a> |
<a class="btn btn-default" data-edit="insertorderedlist" title="Number list"><i class="aweicon-list-ol"></i></a> |
<a class="btn btn-default" data-edit="outdent" title="Reduce indent (Shift+Tab)"><i class="aweicon-indent-left"></i></a> |
<a class="btn btn-default" data-edit="indent" title="Indent (Tab)"><i class="aweicon-indent-right"></i></a> |
</div> |
<div class="btn-group"> |
<a class="btn btn-default" data-edit="justifyleft" title="Align Left (Ctrl/Cmd+L)"><i class="icon-align-left"></i></a> |
<a class="btn btn-default" data-edit="justifycenter" title="Center (Ctrl/Cmd+E)"><i class="icon-align-center"></i></a> |
<a class="btn btn-default" data-edit="justifyright" title="Align Right (Ctrl/Cmd+R)"><i class="icon-align-right"></i></a> |
<a class="btn btn-default" data-edit="justifyfull" title="Justify (Ctrl/Cmd+J)"><i class="icon-align-justify"></i></a> |
<a class="btn btn-default" data-edit="justifyleft" title="Align Left (Ctrl/Cmd+L)"><i class="aweicon-align-left"></i></a> |
<a class="btn btn-default" data-edit="justifycenter" title="Center (Ctrl/Cmd+E)"><i class="aweicon-align-center"></i></a> |
<a class="btn btn-default" data-edit="justifyright" title="Align Right (Ctrl/Cmd+R)"><i class="aweicon-align-right"></i></a> |
<a class="btn btn-default" data-edit="justifyfull" title="Justify (Ctrl/Cmd+J)"><i class="aweicon-align-justify"></i></a> |
</div> |
<div class="btn-group"> |
<a class="btn btn-default dropdown-toggle" data-toggle="dropdown" title="Hyperlink"><i class="icon-link"></i></a> |
<a class="btn btn-default dropdown-toggle" data-toggle="dropdown" title="Hyperlink"><i class="aweicon-link"></i></a> |
<div class="dropdown-menu input-append"> |
<input class="span2" placeholder="URL" type="text" data-edit="createLink"/> |
<button class="btn" type="button">Add</button> |
</div> |
<a class="btn btn-default" data-edit="unlink" title="Remove Hyperlink"><i class="icon-cut"></i></a> |
<a class="btn btn-default" data-edit="unlink" title="Remove Hyperlink"><i class="aweicon-cut"></i></a> |
</div> |
<div class="btn-group"> |
<a class="btn btn-default" title="Insert picture (or just drag & drop)" id="pictureBtn"><i class="icon-picture"></i></a> |
<a class="btn btn-default" title="Insert picture (or just drag & drop)" id="pictureBtn"><i class="aweicon-picture"></i></a> |
<input type="file" data-role="magic-overlay" data-target="#pictureBtn" data-edit="insertImage" /> |
</div> |
<div class="btn-group"> |
<a class="btn btn-default" data-edit="undo" title="Undo (Ctrl/Cmd+Z)"><i class="icon-undo"></i></a> |
<a class="btn btn-default" data-edit="redo" title="Redo (Ctrl/Cmd+Y)"><i class="icon-repeat"></i></a> |
<a class="btn btn-default" data-edit="undo" title="Undo (Ctrl/Cmd+Z)"><i class="aweicon-undo"></i></a> |
<a class="btn btn-default" data-edit="redo" title="Redo (Ctrl/Cmd+Y)"><i class="aweicon-repeat"></i></a> |
</div> |
</div> |
/branches/v3/impl/src/web/css/ipp/style.css |
---|
92,7 → 92,16 |
BOOTSTRAP OVERRIDES |
*************************************************/ |
body |
{ |
font-family: Decima, Arial,"bitstream vera sans",Verdana,Helvetica,sans-serif !important; |
font-size: 16px !important; |
color: #323431 !important; |
} |
.form-control |
{ |
color: #575253; |
} |
/*body{ |
background-color: #ABCEEB !important; |
}*/ |
/branches/v3/impl/src/web/css/ipp/lavish-bootstrap.css |
---|
1070,10 → 1070,10 |
-webkit-tap-highlight-color: transparent; } |
body { |
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; |
font-size: 14px; |
/*font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; |
font-size: 14px;*/ |
line-height: 1.42857; |
color: #8F6D69; |
/*color: #8F6D69;*/ |
background-color: #E7E7E7; } |
input, |
/branches/v3/impl/src/web/js/bootstrap-wysiwyg-master/netdna/font-awesome.css |
---|
28,4 → 28,5 |
url('fontawesome-webfont.ttf') format('truetype'); |
font-weight:normal; |
font-style:normal } |
[class^="icon-"],[class*=" icon-"]{font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;display:inline;width:auto;height:auto;line-height:normal;vertical-align:baseline;background-image:none;background-position:0 0;background-repeat:repeat;margin-top:0}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"]{background-image:none}[class^="icon-"]:before,[class*=" icon-"]:before{text-decoration:inherit;display:inline-block;speak:none}a [class^="icon-"],a [class*=" icon-"]{display:inline-block}.icon-large:before{vertical-align:-10%;font-size:1.3333333333333333em}.btn [class^="icon-"],.nav [class^="icon-"],.btn [class*=" icon-"],.nav [class*=" icon-"]{display:inline}.btn [class^="icon-"].icon-large,.nav [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large,.nav [class*=" icon-"].icon-large{line-height:.9em}.btn [class^="icon-"].icon-spin,.nav [class^="icon-"].icon-spin,.btn [class*=" icon-"].icon-spin,.nav [class*=" icon-"].icon-spin{display:inline-block}.nav-tabs [class^="icon-"],.nav-pills [class^="icon-"],.nav-tabs [class*=" icon-"],.nav-pills [class*=" icon-"],.nav-tabs [class^="icon-"].icon-large,.nav-pills [class^="icon-"].icon-large,.nav-tabs [class*=" icon-"].icon-large,.nav-pills [class*=" icon-"].icon-large{line-height:.9em}li [class^="icon-"],.nav li [class^="icon-"],li [class*=" icon-"],.nav li [class*=" icon-"]{display:inline-block;width:1.25em;text-align:center}li [class^="icon-"].icon-large,.nav li [class^="icon-"].icon-large,li [class*=" icon-"].icon-large,.nav li [class*=" icon-"].icon-large{width:1.5625em}ul.icons{list-style-type:none;text-indent:-0.75em}ul.icons li [class^="icon-"],ul.icons li [class*=" icon-"]{width:.75em}.icon-muted{color:#eee}.icon-border{border:solid 1px #eee;padding:.2em .25em .15em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.icon-2x{font-size:2em}.icon-2x.icon-border{border-width:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.icon-3x{font-size:3em}.icon-3x.icon-border{border-width:3px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.icon-4x{font-size:4em}.icon-4x.icon-border{border-width:4px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.pull-right{float:right}.pull-left{float:left}[class^="icon-"].pull-left,[class*=" icon-"].pull-left{margin-right:.3em}[class^="icon-"].pull-right,[class*=" icon-"].pull-right{margin-left:.3em}.btn [class^="icon-"].pull-left.icon-2x,.btn [class*=" icon-"].pull-left.icon-2x,.btn [class^="icon-"].pull-right.icon-2x,.btn [class*=" icon-"].pull-right.icon-2x{margin-top:.18em}.btn [class^="icon-"].icon-spin.icon-large,.btn [class*=" icon-"].icon-spin.icon-large{line-height:.8em}.btn.btn-small [class^="icon-"].pull-left.icon-2x,.btn.btn-small [class*=" icon-"].pull-left.icon-2x,.btn.btn-small [class^="icon-"].pull-right.icon-2x,.btn.btn-small [class*=" icon-"].pull-right.icon-2x{margin-top:.25em}.btn.btn-large [class^="icon-"],.btn.btn-large [class*=" icon-"]{margin-top:0}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-top:.05em}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x{margin-right:.2em}.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-left:.2em}.icon-spin{display:inline-block;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}@-moz-document url-prefix(){.icon-spin{height:.9em}.btn .icon-spin{height:auto}.icon-spin.icon-large{height:1.25em}.btn .icon-spin.icon-large{height:.75em}}.icon-glass:before{content:"\f000"}.icon-music:before{content:"\f001"}.icon-search:before{content:"\f002"}.icon-envelope:before{content:"\f003"}.icon-heart:before{content:"\f004"}.icon-star:before{content:"\f005"}.icon-star-empty:before{content:"\f006"}.icon-user:before{content:"\f007"}.icon-film:before{content:"\f008"}.icon-th-large:before{content:"\f009"}.icon-th:before{content:"\f00a"}.icon-th-list:before{content:"\f00b"}.icon-ok:before{content:"\f00c"}.icon-remove:before{content:"\f00d"}.icon-zoom-in:before{content:"\f00e"}.icon-zoom-out:before{content:"\f010"}.icon-off:before{content:"\f011"}.icon-signal:before{content:"\f012"}.icon-cog:before{content:"\f013"}.icon-trash:before{content:"\f014"}.icon-home:before{content:"\f015"}.icon-file:before{content:"\f016"}.icon-time:before{content:"\f017"}.icon-road:before{content:"\f018"}.icon-download-alt:before{content:"\f019"}.icon-download:before{content:"\f01a"}.icon-upload:before{content:"\f01b"}.icon-inbox:before{content:"\f01c"}.icon-play-circle:before{content:"\f01d"}.icon-repeat:before{content:"\f01e"}.icon-refresh:before{content:"\f021"}.icon-list-alt:before{content:"\f022"}.icon-lock:before{content:"\f023"}.icon-flag:before{content:"\f024"}.icon-headphones:before{content:"\f025"}.icon-volume-off:before{content:"\f026"}.icon-volume-down:before{content:"\f027"}.icon-volume-up:before{content:"\f028"}.icon-qrcode:before{content:"\f029"}.icon-barcode:before{content:"\f02a"}.icon-tag:before{content:"\f02b"}.icon-tags:before{content:"\f02c"}.icon-book:before{content:"\f02d"}.icon-bookmark:before{content:"\f02e"}.icon-print:before{content:"\f02f"}.icon-camera:before{content:"\f030"}.icon-font:before{content:"\f031"}.icon-bold:before{content:"\f032"}.icon-italic:before{content:"\f033"}.icon-text-height:before{content:"\f034"}.icon-text-width:before{content:"\f035"}.icon-align-left:before{content:"\f036"}.icon-align-center:before{content:"\f037"}.icon-align-right:before{content:"\f038"}.icon-align-justify:before{content:"\f039"}.icon-list:before{content:"\f03a"}.icon-indent-left:before{content:"\f03b"}.icon-indent-right:before{content:"\f03c"}.icon-facetime-video:before{content:"\f03d"}.icon-picture:before{content:"\f03e"}.icon-pencil:before{content:"\f040"}.icon-map-marker:before{content:"\f041"}.icon-adjust:before{content:"\f042"}.icon-tint:before{content:"\f043"}.icon-edit:before{content:"\f044"}.icon-share:before{content:"\f045"}.icon-check:before{content:"\f046"}.icon-move:before{content:"\f047"}.icon-step-backward:before{content:"\f048"}.icon-fast-backward:before{content:"\f049"}.icon-backward:before{content:"\f04a"}.icon-play:before{content:"\f04b"}.icon-pause:before{content:"\f04c"}.icon-stop:before{content:"\f04d"}.icon-forward:before{content:"\f04e"}.icon-fast-forward:before{content:"\f050"}.icon-step-forward:before{content:"\f051"}.icon-eject:before{content:"\f052"}.icon-chevron-left:before{content:"\f053"}.icon-chevron-right:before{content:"\f054"}.icon-plus-sign:before{content:"\f055"}.icon-minus-sign:before{content:"\f056"}.icon-remove-sign:before{content:"\f057"}.icon-ok-sign:before{content:"\f058"}.icon-question-sign:before{content:"\f059"}.icon-info-sign:before{content:"\f05a"}.icon-screenshot:before{content:"\f05b"}.icon-remove-circle:before{content:"\f05c"}.icon-ok-circle:before{content:"\f05d"}.icon-ban-circle:before{content:"\f05e"}.icon-arrow-left:before{content:"\f060"}.icon-arrow-right:before{content:"\f061"}.icon-arrow-up:before{content:"\f062"}.icon-arrow-down:before{content:"\f063"}.icon-share-alt:before{content:"\f064"}.icon-resize-full:before{content:"\f065"}.icon-resize-small:before{content:"\f066"}.icon-plus:before{content:"\f067"}.icon-minus:before{content:"\f068"}.icon-asterisk:before{content:"\f069"}.icon-exclamation-sign:before{content:"\f06a"}.icon-gift:before{content:"\f06b"}.icon-leaf:before{content:"\f06c"}.icon-fire:before{content:"\f06d"}.icon-eye-open:before{content:"\f06e"}.icon-eye-close:before{content:"\f070"}.icon-warning-sign:before{content:"\f071"}.icon-plane:before{content:"\f072"}.icon-calendar:before{content:"\f073"}.icon-random:before{content:"\f074"}.icon-comment:before{content:"\f075"}.icon-magnet:before{content:"\f076"}.icon-chevron-up:before{content:"\f077"}.icon-chevron-down:before{content:"\f078"}.icon-retweet:before{content:"\f079"}.icon-shopping-cart:before{content:"\f07a"}.icon-folder-close:before{content:"\f07b"}.icon-folder-open:before{content:"\f07c"}.icon-resize-vertical:before{content:"\f07d"}.icon-resize-horizontal:before{content:"\f07e"}.icon-bar-chart:before{content:"\f080"}.icon-twitter-sign:before{content:"\f081"}.icon-facebook-sign:before{content:"\f082"}.icon-camera-retro:before{content:"\f083"}.icon-key:before{content:"\f084"}.icon-cogs:before{content:"\f085"}.icon-comments:before{content:"\f086"}.icon-thumbs-up:before{content:"\f087"}.icon-thumbs-down:before{content:"\f088"}.icon-star-half:before{content:"\f089"}.icon-heart-empty:before{content:"\f08a"}.icon-signout:before{content:"\f08b"}.icon-linkedin-sign:before{content:"\f08c"}.icon-pushpin:before{content:"\f08d"}.icon-external-link:before{content:"\f08e"}.icon-signin:before{content:"\f090"}.icon-trophy:before{content:"\f091"}.icon-github-sign:before{content:"\f092"}.icon-upload-alt:before{content:"\f093"}.icon-lemon:before{content:"\f094"}.icon-phone:before{content:"\f095"}.icon-check-empty:before{content:"\f096"}.icon-bookmark-empty:before{content:"\f097"}.icon-phone-sign:before{content:"\f098"}.icon-twitter:before{content:"\f099"}.icon-facebook:before{content:"\f09a"}.icon-github:before{content:"\f09b"}.icon-unlock:before{content:"\f09c"}.icon-credit-card:before{content:"\f09d"}.icon-rss:before{content:"\f09e"}.icon-hdd:before{content:"\f0a0"}.icon-bullhorn:before{content:"\f0a1"}.icon-bell:before{content:"\f0a2"}.icon-certificate:before{content:"\f0a3"}.icon-hand-right:before{content:"\f0a4"}.icon-hand-left:before{content:"\f0a5"}.icon-hand-up:before{content:"\f0a6"}.icon-hand-down:before{content:"\f0a7"}.icon-circle-arrow-left:before{content:"\f0a8"}.icon-circle-arrow-right:before{content:"\f0a9"}.icon-circle-arrow-up:before{content:"\f0aa"}.icon-circle-arrow-down:before{content:"\f0ab"}.icon-globe:before{content:"\f0ac"}.icon-wrench:before{content:"\f0ad"}.icon-tasks:before{content:"\f0ae"}.icon-filter:before{content:"\f0b0"}.icon-briefcase:before{content:"\f0b1"}.icon-fullscreen:before{content:"\f0b2"}.icon-group:before{content:"\f0c0"}.icon-link:before{content:"\f0c1"}.icon-cloud:before{content:"\f0c2"}.icon-beaker:before{content:"\f0c3"}.icon-cut:before{content:"\f0c4"}.icon-copy:before{content:"\f0c5"}.icon-paper-clip:before{content:"\f0c6"}.icon-save:before{content:"\f0c7"}.icon-sign-blank:before{content:"\f0c8"}.icon-reorder:before{content:"\f0c9"}.icon-list-ul:before{content:"\f0ca"}.icon-list-ol:before{content:"\f0cb"}.icon-strikethrough:before{content:"\f0cc"}.icon-underline:before{content:"\f0cd"}.icon-table:before{content:"\f0ce"}.icon-magic:before{content:"\f0d0"}.icon-truck:before{content:"\f0d1"}.icon-pinterest:before{content:"\f0d2"}.icon-pinterest-sign:before{content:"\f0d3"}.icon-google-plus-sign:before{content:"\f0d4"}.icon-google-plus:before{content:"\f0d5"}.icon-money:before{content:"\f0d6"}.icon-caret-down:before{content:"\f0d7"}.icon-caret-up:before{content:"\f0d8"}.icon-caret-left:before{content:"\f0d9"}.icon-caret-right:before{content:"\f0da"}.icon-columns:before{content:"\f0db"}.icon-sort:before{content:"\f0dc"}.icon-sort-down:before{content:"\f0dd"}.icon-sort-up:before{content:"\f0de"}.icon-envelope-alt:before{content:"\f0e0"}.icon-linkedin:before{content:"\f0e1"}.icon-undo:before{content:"\f0e2"}.icon-legal:before{content:"\f0e3"}.icon-dashboard:before{content:"\f0e4"}.icon-comment-alt:before{content:"\f0e5"}.icon-comments-alt:before{content:"\f0e6"}.icon-bolt:before{content:"\f0e7"}.icon-sitemap:before{content:"\f0e8"}.icon-umbrella:before{content:"\f0e9"}.icon-paste:before{content:"\f0ea"}.icon-lightbulb:before{content:"\f0eb"}.icon-exchange:before{content:"\f0ec"}.icon-cloud-download:before{content:"\f0ed"}.icon-cloud-upload:before{content:"\f0ee"}.icon-user-md:before{content:"\f0f0"}.icon-stethoscope:before{content:"\f0f1"}.icon-suitcase:before{content:"\f0f2"}.icon-bell-alt:before{content:"\f0f3"}.icon-coffee:before{content:"\f0f4"}.icon-food:before{content:"\f0f5"}.icon-file-alt:before{content:"\f0f6"}.icon-building:before{content:"\f0f7"}.icon-hospital:before{content:"\f0f8"}.icon-ambulance:before{content:"\f0f9"}.icon-medkit:before{content:"\f0fa"}.icon-fighter-jet:before{content:"\f0fb"}.icon-beer:before{content:"\f0fc"}.icon-h-sign:before{content:"\f0fd"}.icon-plus-sign-alt:before{content:"\f0fe"}.icon-double-angle-left:before{content:"\f100"}.icon-double-angle-right:before{content:"\f101"}.icon-double-angle-up:before{content:"\f102"}.icon-double-angle-down:before{content:"\f103"}.icon-angle-left:before{content:"\f104"}.icon-angle-right:before{content:"\f105"}.icon-angle-up:before{content:"\f106"}.icon-angle-down:before{content:"\f107"}.icon-desktop:before{content:"\f108"}.icon-laptop:before{content:"\f109"}.icon-tablet:before{content:"\f10a"}.icon-mobile-phone:before{content:"\f10b"}.icon-circle-blank:before{content:"\f10c"}.icon-quote-left:before{content:"\f10d"}.icon-quote-right:before{content:"\f10e"}.icon-spinner:before{content:"\f110"}.icon-circle:before{content:"\f111"}.icon-reply:before{content:"\f112"}.icon-github-alt:before{content:"\f113"}.icon-folder-close-alt:before{content:"\f114"}.icon-folder-open-alt:before{content:"\f115"} |
[class^="aweicon-"],[class*=" aweicon-"]{ |
font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;display:inline;width:auto;height:auto;line-height:normal;vertical-align:baseline;background-image:none;background-position:0 0;background-repeat:repeat;margin-top:0}.aweicon-white,.nav-pills>.active>a>[class^="aweicon-"],.nav-pills>.active>a>[class*=" aweicon-"],.nav-list>.active>a>[class^="aweicon-"],.nav-list>.active>a>[class*=" aweaweicon-"],.navbar-inverse .nav>.active>a>[class^="aweicon-"],.navbar-inverse .nav>.active>a>[class*=" aweicon-"],.dropdown-menu>li>a:hover>[class^="aweicon-"],.dropdown-menu>li>a:hover>[class*=" aweicon-"],.dropdown-menu>.active>a>[class^="aweicon-"],.dropdown-menu>.active>a>[class*=" aweicon-"],.dropdown-submenu:hover>a>[class^="aweicon-"],.dropdown-submenu:hover>a>[class*=" aweicon-"]{background-image:none}[class^="aweicon-"]:before,[class*=" aweicon-"]:before{text-decoration:inherit;display:inline-block;speak:none}a [class^="aweicon-"],a [class*=" aweicon-"]{display:inline-block}.aweicon-large:before{vertical-align:-10%;font-size:1.3333333333333333em}.btn [class^="aweicon-"],.nav [class^="aweicon-"],.btn [class*=" aweicon-"],.nav [class*=" aweicon-"]{display:inline}.btn [class^="aweicon-"].aweicon-large,.nav [class^="aweicon-"].aweicon-large,.btn [class*=" aweicon-"].aweicon-large,.nav [class*=" aweicon-"].aweicon-large{line-height:.9em}.btn [class^="aweicon-"].aweicon-spin,.nav [class^="aweicon-"].aweicon-spin,.btn [class*=" aweicon-"].aweicon-spin,.nav [class*=" aweicon-"].aweicon-spin{display:inline-block}.nav-tabs [class^="aweicon-"],.nav-pills [class^="aweicon-"],.nav-tabs [class*=" aweicon-"],.nav-pills [class*=" aweicon-"],.nav-tabs [class^="aweicon-"].aweicon-large,.nav-pills [class^="aweicon-"].aweicon-large,.nav-tabs [class*=" aweicon-"].aweicon-large,.nav-pills [class*=" aweicon-"].aweicon-large{line-height:.9em}li [class^="aweicon-"],.nav li [class^="aweicon-"],li [class*=" aweicon-"],.nav li [class*=" aweicon-"]{display:inline-block;width:1.25em;text-align:center}li [class^="aweicon-"].aweicon-large,.nav li [class^="aweicon-"].aweicon-large,li [class*=" aweicon-"].aweicon-large,.nav li [class*=" aweicon-"].aweicon-large{width:1.5625em}ul.icons{list-style-type:none;text-indent:-0.75em}ul.icons li [class^="aweicon-"],ul.icons li [class*=" aweicon-"]{width:.75em}.aweicon-muted{color:#eee}.aweicon-border{border:solid 1px #eee;padding:.2em .25em .15em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.aweicon-2x{font-size:2em}.aweicon-2x.aweicon-border{border-width:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.aweicon-3x{font-size:3em}.aweicon-3x.aweicon-border{border-width:3px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.aweicon-4x{font-size:4em}.aweicon-4x.aweicon-border{border-width:4px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.pull-right{float:right}.pull-left{float:left}[class^="aweicon-"].pull-left,[class*=" aweicon-"].pull-left{margin-right:.3em}[class^="aweicon-"].pull-right,[class*=" aweicon-"].pull-right{margin-left:.3em}.btn [class^="aweicon-"].pull-left.aweicon-2x,.btn [class*=" aweicon-"].pull-left.aweicon-2x,.btn [class^="aweicon-"].pull-right.aweicon-2x,.btn [class*=" aweicon-"].pull-right.aweicon-2x{margin-top:.18em}.btn [class^="aweicon-"].aweicon-spin.aweicon-large,.btn [class*=" aweicon-"].aweicon-spin.aweicon-large{line-height:.8em}.btn.btn-small [class^="aweicon-"].pull-left.aweicon-2x,.btn.btn-small [class*=" aweicon-"].pull-left.aweicon-2x,.btn.btn-small [class^="aweicon-"].pull-right.aweicon-2x,.btn.btn-small [class*=" aweicon-"].pull-right.aweicon-2x{margin-top:.25em}.btn.btn-large [class^="aweicon-"],.btn.btn-large [class*=" aweicon-"]{margin-top:0}.btn.btn-large [class^="aweicon-"].pull-left.aweicon-2x,.btn.btn-large [class*=" aweicon-"].pull-left.aweicon-2x,.btn.btn-large [class^="aweicon-"].pull-right.aweicon-2x,.btn.btn-large [class*=" aweicon-"].pull-right.aweicon-2x{margin-top:.05em}.btn.btn-large [class^="aweicon-"].pull-left.aweicon-2x,.btn.btn-large [class*=" aweicon-"].pull-left.aweicon-2x{margin-right:.2em}.btn.btn-large [class^="aweicon-"].pull-right.aweicon-2x,.btn.btn-large [class*=" aweicon-"].pull-right.aweicon-2x{margin-left:.2em}.aweicon-spin{display:inline-block;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}@-moz-document url-prefix(){.aweicon-spin{height:.9em}.btn .aweicon-spin{height:auto}.aweicon-spin.aweicon-large{height:1.25em}.btn .aweicon-spin.aweicon-large{height:.75em}}.aweicon-glass:before{content:"\f000"}.aweicon-music:before{content:"\f001"}.aweicon-search:before{content:"\f002"}.aweicon-envelope:before{content:"\f003"}.aweicon-heart:before{content:"\f004"}.aweicon-star:before{content:"\f005"}.aweicon-star-empty:before{content:"\f006"}.aweicon-user:before{content:"\f007"}.aweicon-film:before{content:"\f008"}.aweicon-th-large:before{content:"\f009"}.aweicon-th:before{content:"\f00a"}.aweicon-th-list:before{content:"\f00b"}.aweicon-ok:before{content:"\f00c"}.aweicon-remove:before{content:"\f00d"}.aweicon-zoom-in:before{content:"\f00e"}.aweicon-zoom-out:before{content:"\f010"}.aweicon-off:before{content:"\f011"}.aweicon-signal:before{content:"\f012"}.aweicon-cog:before{content:"\f013"}.aweicon-trash:before{content:"\f014"}.aweicon-home:before{content:"\f015"}.aweicon-file:before{content:"\f016"}.aweicon-time:before{content:"\f017"}.aweicon-road:before{content:"\f018"}.aweicon-download-alt:before{content:"\f019"}.aweicon-download:before{content:"\f01a"}.aweicon-upload:before{content:"\f01b"}.aweicon-inbox:before{content:"\f01c"}.aweicon-play-circle:before{content:"\f01d"}.aweicon-repeat:before{content:"\f01e"}.aweicon-refresh:before{content:"\f021"}.aweicon-list-alt:before{content:"\f022"}.aweicon-lock:before{content:"\f023"}.aweicon-flag:before{content:"\f024"}.aweicon-headphones:before{content:"\f025"}.aweicon-volume-off:before{content:"\f026"}.aweicon-volume-down:before{content:"\f027"}.aweicon-volume-up:before{content:"\f028"}.aweicon-qrcode:before{content:"\f029"}.aweicon-barcode:before{content:"\f02a"}.aweicon-tag:before{content:"\f02b"}.aweicon-tags:before{content:"\f02c"}.aweicon-book:before{content:"\f02d"}.aweicon-bookmark:before{content:"\f02e"}.aweicon-print:before{content:"\f02f"}.aweicon-camera:before{content:"\f030"}.aweicon-font:before{content:"\f031"}.aweicon-bold:before{content:"\f032"}.aweicon-italic:before{content:"\f033"}.aweicon-text-height:before{content:"\f034"}.aweicon-text-width:before{content:"\f035"}.aweicon-align-left:before{content:"\f036"}.aweicon-align-center:before{content:"\f037"}.aweicon-align-right:before{content:"\f038"}.aweicon-align-justify:before{content:"\f039"}.aweicon-list:before{content:"\f03a"}.aweicon-indent-left:before{content:"\f03b"}.aweicon-indent-right:before{content:"\f03c"}.aweicon-facetime-video:before{content:"\f03d"}.aweicon-picture:before{content:"\f03e"}.aweicon-pencil:before{content:"\f040"}.aweicon-map-marker:before{content:"\f041"}.aweicon-adjust:before{content:"\f042"}.aweicon-tint:before{content:"\f043"}.aweicon-edit:before{content:"\f044"}.aweicon-share:before{content:"\f045"}.aweicon-check:before{content:"\f046"}.aweicon-move:before{content:"\f047"}.aweicon-step-backward:before{content:"\f048"}.aweicon-fast-backward:before{content:"\f049"}.aweicon-backward:before{content:"\f04a"}.aweicon-play:before{content:"\f04b"}.aweicon-pause:before{content:"\f04c"}.aweicon-stop:before{content:"\f04d"}.aweicon-forward:before{content:"\f04e"}.aweicon-fast-forward:before{content:"\f050"}.aweicon-step-forward:before{content:"\f051"}.aweicon-eject:before{content:"\f052"}.aweicon-chevron-left:before{content:"\f053"}.aweicon-chevron-right:before{content:"\f054"}.aweicon-plus-sign:before{content:"\f055"}.aweicon-minus-sign:before{content:"\f056"}.aweicon-remove-sign:before{content:"\f057"}.aweicon-ok-sign:before{content:"\f058"}.aweicon-question-sign:before{content:"\f059"}.aweicon-info-sign:before{content:"\f05a"}.aweicon-screenshot:before{content:"\f05b"}.aweicon-remove-circle:before{content:"\f05c"}.aweicon-ok-circle:before{content:"\f05d"}.aweicon-ban-circle:before{content:"\f05e"}.aweicon-arrow-left:before{content:"\f060"}.aweicon-arrow-right:before{content:"\f061"}.aweicon-arrow-up:before{content:"\f062"}.aweicon-arrow-down:before{content:"\f063"}.aweicon-share-alt:before{content:"\f064"}.aweicon-resize-full:before{content:"\f065"}.aweicon-resize-small:before{content:"\f066"}.aweicon-plus:before{content:"\f067"}.aweicon-minus:before{content:"\f068"}.aweicon-asterisk:before{content:"\f069"}.aweicon-exclamation-sign:before{content:"\f06a"}.aweicon-gift:before{content:"\f06b"}.aweicon-leaf:before{content:"\f06c"}.aweicon-fire:before{content:"\f06d"}.aweicon-eye-open:before{content:"\f06e"}.aweicon-eye-close:before{content:"\f070"}.aweicon-warning-sign:before{content:"\f071"}.aweicon-plane:before{content:"\f072"}.aweicon-calendar:before{content:"\f073"}.aweicon-random:before{content:"\f074"}.aweicon-comment:before{content:"\f075"}.aweicon-magnet:before{content:"\f076"}.aweicon-chevron-up:before{content:"\f077"}.aweicon-chevron-down:before{content:"\f078"}.aweicon-retweet:before{content:"\f079"}.aweicon-shopping-cart:before{content:"\f07a"}.aweicon-folder-close:before{content:"\f07b"}.aweicon-folder-open:before{content:"\f07c"}.aweicon-resize-vertical:before{content:"\f07d"}.aweicon-resize-horizontal:before{content:"\f07e"}.aweicon-bar-chart:before{content:"\f080"}.aweicon-twitter-sign:before{content:"\f081"}.aweicon-facebook-sign:before{content:"\f082"}.aweicon-camera-retro:before{content:"\f083"}.aweicon-key:before{content:"\f084"}.aweicon-cogs:before{content:"\f085"}.aweicon-comments:before{content:"\f086"}.aweicon-thumbs-up:before{content:"\f087"}.aweicon-thumbs-down:before{content:"\f088"}.aweicon-star-half:before{content:"\f089"}.aweicon-heart-empty:before{content:"\f08a"}.aweicon-signout:before{content:"\f08b"}.aweicon-linkedin-sign:before{content:"\f08c"}.aweicon-pushpin:before{content:"\f08d"}.aweicon-external-link:before{content:"\f08e"}.aweicon-signin:before{content:"\f090"}.aweicon-trophy:before{content:"\f091"}.aweicon-github-sign:before{content:"\f092"}.aweicon-upload-alt:before{content:"\f093"}.aweicon-lemon:before{content:"\f094"}.aweicon-phone:before{content:"\f095"}.aweicon-check-empty:before{content:"\f096"}.aweicon-bookmark-empty:before{content:"\f097"}.aweicon-phone-sign:before{content:"\f098"}.aweicon-twitter:before{content:"\f099"}.aweicon-facebook:before{content:"\f09a"}.aweicon-github:before{content:"\f09b"}.aweicon-unlock:before{content:"\f09c"}.aweicon-credit-card:before{content:"\f09d"}.aweicon-rss:before{content:"\f09e"}.aweicon-hdd:before{content:"\f0a0"}.aweicon-bullhorn:before{content:"\f0a1"}.aweicon-bell:before{content:"\f0a2"}.aweicon-certificate:before{content:"\f0a3"}.aweicon-hand-right:before{content:"\f0a4"}.aweicon-hand-left:before{content:"\f0a5"}.aweicon-hand-up:before{content:"\f0a6"}.aweicon-hand-down:before{content:"\f0a7"}.aweicon-circle-arrow-left:before{content:"\f0a8"}.aweicon-circle-arrow-right:before{content:"\f0a9"}.aweicon-circle-arrow-up:before{content:"\f0aa"}.aweicon-circle-arrow-down:before{content:"\f0ab"}.aweicon-globe:before{content:"\f0ac"}.aweicon-wrench:before{content:"\f0ad"}.aweicon-tasks:before{content:"\f0ae"}.aweicon-filter:before{content:"\f0b0"}.aweicon-briefcase:before{content:"\f0b1"}.aweicon-fullscreen:before{content:"\f0b2"}.aweicon-group:before{content:"\f0c0"}.aweicon-link:before{content:"\f0c1"}.aweicon-cloud:before{content:"\f0c2"}.aweicon-beaker:before{content:"\f0c3"}.aweicon-cut:before{content:"\f0c4"}.aweicon-copy:before{content:"\f0c5"}.aweicon-paper-clip:before{content:"\f0c6"}.aweicon-save:before{content:"\f0c7"}.aweicon-sign-blank:before{content:"\f0c8"}.aweicon-reorder:before{content:"\f0c9"}.aweicon-list-ul:before{content:"\f0ca"}.aweicon-list-ol:before{content:"\f0cb"}.aweicon-strikethrough:before{content:"\f0cc"}.aweicon-underline:before{content:"\f0cd"}.aweicon-table:before{content:"\f0ce"}.aweicon-magic:before{content:"\f0d0"}.aweicon-truck:before{content:"\f0d1"}.aweicon-pinterest:before{content:"\f0d2"}.aweicon-pinterest-sign:before{content:"\f0d3"}.aweicon-google-plus-sign:before{content:"\f0d4"}.aweicon-google-plus:before{content:"\f0d5"}.aweicon-money:before{content:"\f0d6"}.aweicon-caret-down:before{content:"\f0d7"}.aweicon-caret-up:before{content:"\f0d8"}.aweicon-caret-left:before{content:"\f0d9"}.aweicon-caret-right:before{content:"\f0da"}.aweicon-columns:before{content:"\f0db"}.aweicon-sort:before{content:"\f0dc"}.aweicon-sort-down:before{content:"\f0dd"}.aweicon-sort-up:before{content:"\f0de"}.aweicon-envelope-alt:before{content:"\f0e0"}.aweicon-linkedin:before{content:"\f0e1"}.aweicon-undo:before{content:"\f0e2"}.aweicon-legal:before{content:"\f0e3"}.aweicon-dashboard:before{content:"\f0e4"}.aweicon-comment-alt:before{content:"\f0e5"}.aweicon-comments-alt:before{content:"\f0e6"}.aweicon-bolt:before{content:"\f0e7"}.aweicon-sitemap:before{content:"\f0e8"}.aweicon-umbrella:before{content:"\f0e9"}.aweicon-paste:before{content:"\f0ea"}.aweicon-lightbulb:before{content:"\f0eb"}.aweicon-exchange:before{content:"\f0ec"}.aweicon-cloud-download:before{content:"\f0ed"}.aweicon-cloud-upload:before{content:"\f0ee"}.aweicon-user-md:before{content:"\f0f0"}.aweicon-stethoscope:before{content:"\f0f1"}.aweicon-suitcase:before{content:"\f0f2"}.aweicon-bell-alt:before{content:"\f0f3"}.aweicon-coffee:before{content:"\f0f4"}.aweicon-food:before{content:"\f0f5"}.aweicon-file-alt:before{content:"\f0f6"}.aweicon-building:before{content:"\f0f7"}.aweicon-hospital:before{content:"\f0f8"}.aweicon-ambulance:before{content:"\f0f9"}.aweicon-medkit:before{content:"\f0fa"}.aweicon-fighter-jet:before{content:"\f0fb"}.aweicon-beer:before{content:"\f0fc"}.aweicon-h-sign:before{content:"\f0fd"}.aweicon-plus-sign-alt:before{content:"\f0fe"}.aweicon-double-angle-left:before{content:"\f100"}.aweicon-double-angle-right:before{content:"\f101"}.aweicon-double-angle-up:before{content:"\f102"}.aweicon-double-angle-down:before{content:"\f103"}.aweicon-angle-left:before{content:"\f104"}.aweicon-angle-right:before{content:"\f105"}.aweicon-angle-up:before{content:"\f106"}.aweicon-angle-down:before{content:"\f107"}.aweicon-desktop:before{content:"\f108"}.aweicon-laptop:before{content:"\f109"}.aweicon-tablet:before{content:"\f10a"}.aweicon-mobile-phone:before{content:"\f10b"}.aweicon-circle-blank:before{content:"\f10c"}.aweicon-quote-left:before{content:"\f10d"}.aweicon-quote-right:before{content:"\f10e"}.aweicon-spinner:before{content:"\f110"}.aweicon-circle:before{content:"\f111"}.aweicon-reply:before{content:"\f112"}.aweicon-github-alt:before{content:"\f113"}.aweicon-folder-close-alt:before{content:"\f114"}.aweicon-folder-open-alt:before{content:"\f115"} |
/branches/v3/impl/src/web/layout/themes/scripts-default.jsp |
---|
18,7 → 18,7 |
<!--OFF CANVAS É PARA METER O BODY ABAIXO DO MENU DESLIZANTE DE TOPO--> |
<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/offcanvas.css"/> |
<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/<%=bacoTheme%>/style.css"/> |
<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/<%=bacoTheme%>/stylePublicPortal.css"/> |
<script type="text/javascript" src="<%=request.getContextPath()%>/js/functions.js"></script> |
<script type="text/javascript" src="<%=request.getContextPath()%>/js/ajax.js"></script> |
543,7 → 543,7 |
<link href="<%=request.getContextPath()%>/js/bootstrap-wysiwyg-master/external/google-code-prettify/prettify.css" rel="stylesheet"> |
<!--<link href="<%=request.getContextPath()%>/js/bootstrap-wysiwyg-master/netdna/bootstrap-combined.no-icons.min.css" rel="stylesheet">--> |
<%--<link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-responsive.min.css" rel="stylesheet">--%> |
<%--<link href="<%=request.getContextPath()%>/js/bootstrap-wysiwyg-master/netdna/font-awesome.css" rel="stylesheet">--%> |
<link href="<%=request.getContextPath()%>/js/bootstrap-wysiwyg-master/netdna/font-awesome.css" rel="stylesheet"> |
<%--<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>--%> |
<script src="<%=request.getContextPath()%>/js/bootstrap-wysiwyg-master/external/jquery.hotkeys.js"></script> |
<%--<script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.min.js"></script>--%> |
620,5 → 620,6 |
} |
</script> |
<%--O nosso estilo fica aqui para se sobrepor--%> |
<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/<%=bacoTheme%>/style.css"/> |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
/branches/v3/impl/src/web/layout/themes/ipp/footer.jsp |
---|
10,7 → 10,6 |
<footer class="footer"> |
<div class="container"> |
<p class="text-muted">Powered by plataforma IPP-PAE - 2016</b>.</p> |
</div> |
</footer> |
/branches/v3/impl/src/web/user/courseunits/courseunit.jsp |
---|
1,9 → 1,9 |
<%@ page import="pt.estgp.estgweb.Globals" %> |
<%@ page import="pt.estgp.estgweb.domain.StudentImpl" %> |
<%@ page import="pt.estgp.estgweb.domain.UserImpl" %> |
<%@ page import="pt.estgp.estgweb.web.utils.RequestUtils" %> |
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager" %> |
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager" %> |
<%@ page import="java.util.List" %> |
<%@ page import="java.util.Map" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
244,15 → 244,80 |
<div class="panel panel-default"> |
<div class="panel-heading"> |
<bean:message key="courseunit.teachers"/> |
<a href="#" data-toggle="modal" data-target="#teachersInfo" class="pull-right"> |
Mais Info. <span class="glyphicon glyphicon-info-sign"> </span> |
</a> |
</div> |
<div class="panel-body"> |
<div class="modal fade" id="teachersInfo" tabindex="-1" role="dialog" > |
<div class="modal-dialog" data-width="750" style="display: block; width: 750px; margin-top: 50px;" aria-hidden="false"> |
<div class="modal-content"> |
<div class="modal-header"> |
<h4 class="modal-title"><bean:message key="courseunit.teachers"/> |
<button type="button" class="btn btn-danger btn-sm pull-right glyphicon glyphicon-remove " data-dismiss="modal"></button> |
</h4> |
</div> |
<div class="modal-body"> |
<div class="well well-sm"><bean:message key="courseunit.responsable"/></div> |
<logic:lessEqual value="0" name="CourseUnitView" property="responsableTeacher.id"> |
<p> Não existe informação disponivel.</p> |
</logic:lessEqual> |
<logic:greaterThan value="0" name="CourseUnitView" property="responsableTeacher.id"> |
<p class="lead"><strong><bean:message key="name"/></strong>: ${CourseUnitView.responsableTeacher.name}</p> |
<p><strong><bean:message key="profile.siges.code.public"/></strong>: ${CourseUnitView.responsableTeacher.code}</p> |
<p><label class=""><bean:message key="email"/></label>: ${CourseUnitView.responsableTeacher.safeEmail}</p> |
</logic:greaterThan> |
<div class="well well-sm"><bean:message key="courseunit.teachers.teaching"/></div> |
<logic:iterate id="teacher" name="CourseUnitView" property="teachers" type="pt.estgp.estgweb.domain.views.UserView"> |
<p class="lead"><strong><bean:message key="name"/></strong>: ${teacher.name}</p> |
<p><strong><bean:message key="profile.siges.code.public"/></strong>: ${teacher.code}</p> |
<p><label class=""><bean:message key="email"/></label>: ${teacher.safeEmail}</p> |
<logic:present name="CourseUnitView" property="tipologias"> |
<% |
Map<String,List<String>> mapa = CourseUnitView.getTipologiasTurmas(""+teacher.getCode()); |
for(Map.Entry<String,List<String>> entry: mapa.entrySet()) |
{ |
String tipologia = entry.getKey(); |
List<String> turmas = entry.getValue(); |
request.setAttribute("turmas", turmas); |
request.setAttribute("tipologia", tipologia); |
%> |
<p>${tipologia}: |
<logic:iterate id="turma" name="turmas" type="java.lang.String" scope="request"> |
${turma} |
</logic:iterate> |
</p> |
<% |
} |
%> |
</logic:present> |
</logic:iterate> |
</div> |
<div class="modal-footer"> |
<button type="button" class="btn btn-default" data-dismiss="modal">Voltar</button> |
</div> |
</div> |
</div> |
</div> |
<logic:notEmpty name="CourseUnitView" property="responsableTeacher"> |
<div class="list-group"> |
<div class="list-group-item list-group-item-heading"><bean:message key="courseunit.responsable"/></div> |
<div class="list-group-item clearfix"> |
<logic:lessEqual value="0" name="CourseUnitView" property="responsableTeacher.id"> |
<p> Não existe informação disponivel.</p> |
</logic:lessEqual> |
<logic:greaterThan value="0" name="CourseUnitView" property="responsableTeacher.id"> |
<html:link action="${user}/startLoadTeacherCourseUnit${fromAction}?code=${CourseUnitView.responsableTeacher.code}&courseUnitView.id=${CourseUnitView.id}">${CourseUnitView.responsableTeacher.name}</html:link> |
<span class="badge">${CourseUnitView.responsableTeacher.code}</span> |
</logic:greaterThan> |
</div> |
<div class="list-group-item list-group-item-footer"> ${CourseUnitView.responsableTeacher.safeEmail}</div> |
/branches/v3/impl/src/web/user/courseunits/students.jsp |
---|
33,7 → 33,7 |
<div class="panel panel-default"> |
<div class="panel-body"> |
<p><bean:message key="courseunit.students.count"/>: ${CourseUnitView.studentsSize}</p> |
<table id="myTable" class="tablesorter dataTable"> |
<table id="myTable" class="tablesorterfiltered"> |
<thead> |
<tr> |
<%/*<th><html:link action="${user}/startLoadCourseUnitStudents${fromAction}?courseUnitView.id=${CourseUnitView.id}&order=byNumber"><bean:message key="number"/></html:link></th> |
50,6 → 50,7 |
<th><bean:message key="phone.number"/></th> |
</baco:hasRole> |
<th class="filter-name filter-select">Turma</th> |
</tr> |
</thead> |
<tbody> |
70,6 → 71,9 |
<baco:hasRole role="teacher"> |
<td>${student.phonenumber} </td> |
</baco:hasRole> |
<td> |
${student.studentTurma} |
</td> |
</tr> |
</logic:iterate> |
</tbody> |
/branches/v3/impl/src/web/user/home/userPae.jsp |
---|
17,6 → 17,9 |
<div class="panel-body"> |
<div class="list-group"> |
<div class="list-group-item"><html:link action="/user/configurationSchedulleTasks.do"><bean:message key="configuration.tasks"/></html:link></div> |
<div class="list-group-item"><html:link action="/admin/courseUnitsDeleteAdmin">Administração de Unidades Curriculares (Remoções)</html:link></div> |
<div class="list-group-item"><html:link action="/user/courseComissions">Informação Adicional de Cursos</html:link></div> |
<div class="list-group-item"><html:link action="/user/startFindCourseUnitAdminFromServiceZone"><bean:message key="courseunit.search"/></html:link></div> |
</div> |
</div> |
</div> |
/branches/v3/impl/src/web/user/serviceZone/serviceZone.jsp |
---|
84,7 → 84,7 |
<li><a href="<%=request.getContextPath()%>/user/configurationGrades.do"><bean:message key="configuration.grades"/></a></li> |
<li><a href="<%=request.getContextPath()%>/user/configurationDirectories.do"><bean:message key="configuration.directories"/></a></li> |
<li><a href="<%=request.getContextPath()%>/user/configurationSchedulleTasks.do"><bean:message key="configuration.tasks"/></a></li> |
<li><html:link action="/admin/courseUnitsDeleteAdmin">Administração de Unidades Curriculares (Remoções)</html:link></li> |
<li><a href="<%=request.getContextPath()%>/user/configurationUserRoles.do"><bean:message key="configuration.roles"/></a></li> |
</ul> |
</li> |