Rev 1856 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1856 | Rev 1869 | ||
---|---|---|---|
1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
2 | <style> |
2 | <style> |
- | 3 | .sections |
|
- | 4 | { |
|
- | 5 | padding-left: 20px; |
|
- | 6 | } |
|
3 | .buttonTools |
7 | .buttonTools |
4 | { |
8 | { |
5 | border: 1px solid gray; |
9 | border: 1px solid gray; |
6 | background-color: lightgray; |
10 | background-color: lightgray; |
7 | padding: 5px; |
11 | padding: 5px; |
8 | } |
12 | } |
9 | .customComponent |
13 | .customComponent |
10 | { |
14 | { |
11 | padding: 0; |
15 | padding: 0; |
12 | } |
16 | } |
13 | .documentSimpleComponent |
17 | .documentSimpleComponent |
14 | { |
18 | { |
15 | border: 1px solid gray; |
19 | border: 1px solid gray; |
16 | padding: 5px; |
20 | padding: 5px; |
17 | margin-bottom: 5px; |
21 | margin-bottom: 5px; |
18 | } |
22 | } |
19 | .componentBody |
23 | .componentBody |
20 | { |
24 | { |
21 | border: 1px solid gray; |
25 | border: 1px solid gray; |
22 | padding: 5px; |
26 | padding: 5px; |
23 | } |
27 | } |
24 | </style> |
28 | </style> |
25 | 29 | ||
- | 30 | <!--Require templateObj--> |
|
- | 31 | <script type="text/ng-template" id="callDocumentTemplate"> |
|
- | 32 | ||
- | 33 | <div ng-include="class2id(templateObj)"></div> |
|
- | 34 | </script> |
|
26 | 35 | ||
27 | <%-- |
36 | <%-- |
28 | customPane Need component customPane in variable customPane |
37 | customPane Need component customPane in variable customPane |
29 | docAppSelector selector usualy an html ID for ng-app example #docReport |
38 | docAppSelector selector usualy an html ID for ng-app example #docReport |
30 | --%> |
39 | --%> |
31 | <script type="text/ng-template" id="pt_estgp_estgweb_utils_documentBuilder_CustomPane"> |
40 | <script type="text/ng-template" id="pt_estgp_estgweb_utils_documentBuilder_CustomPane"> |
32 | <div class="customComponent clearfix component"> |
41 | <div class="customComponent clearfix component"> |
33 | <div class="buttonTools clearfix"> |
42 | <div class="buttonTools clearfix"> |
34 | <button class="btn btn-default pullleft" type="button" ng-click="addText(comp)"> |
43 | <button class="btn btn-default pullleft" type="button" ng-click="addText(comp)"> |
35 | <span class="glyphicon glyphicon-plus"></span> |
44 | <span class="glyphicon glyphicon-plus"></span> |
36 | <span class="glyphicon glyphicon-font"></span> |
45 | <span class="glyphicon glyphicon-font"></span> |
37 | </button> |
46 | </button> |
38 | 47 | ||
39 | <button class="btn btn-default pullleft" type="button" ng-click="addImage(comp)"> |
48 | <button class="btn btn-default pullleft" type="button" ng-click="addImage(comp)"> |
40 | <span class="glyphicon glyphicon-plus"></span> |
49 | <span class="glyphicon glyphicon-plus"></span> |
41 | <span class="glyphicon glyphicon-picture"></span> |
50 | <span class="glyphicon glyphicon-picture"></span> |
42 | </button> |
51 | </button> |
43 | Secção personalizada |
52 | Secção personalizada |
44 | </div> |
53 | </div> |
45 | <div class="componentBody"> |
54 | <div class="componentBody"> |
46 | <div class="clearfix" ng-repeat="subComp in comp.components" ng-init="parent=comp;comp=subComp" ng-include="class2id(subComp)"> |
55 | <div class="clearfix" ng-repeat="subComp in comp.components" ng-init="parent=comp;comp=subComp" ng-include="class2id(subComp)"> |
47 | 56 | ||
48 | </div> |
57 | </div> |
49 | <div> |
58 | <div> |
50 | </div> |
59 | </div> |
51 | </script> |
60 | </script> |
52 | 61 | ||
53 | <script type="text/ng-template" id="pt_estgp_estgweb_utils_documentBuilder_ImageComponent"> |
62 | <script type="text/ng-template" id="pt_estgp_estgweb_utils_documentBuilder_ImageComponent"> |
54 | <div class="imageComponent component"> |
63 | <div class="imageComponent component"> |
55 | <div ng-if="parent['@class']=='pt.estgp.estgweb.utils.documentBuilder.CustomPane'" class="buttonTools clearfix"> |
64 | <div ng-if="parent['@class']=='pt.estgp.estgweb.utils.documentBuilder.CustomPane'" class="buttonTools clearfix"> |
56 | <button class="btn btn-danger pull-right" type="button" ng-click="removeComponent($index,parent.components)"> |
65 | <button class="btn btn-danger pull-right" type="button" ng-click="removeComponent($index,parent.components)"> |
57 | <span class="glyphicon glyphicon-remove"></span> |
66 | <span class="glyphicon glyphicon-remove"></span> |
58 | </button> |
67 | </button> |
59 | <label>Componente de Imagem (Use esta funcinalidade para adicionar gráficos ou tabelas que ache necessárias)</label> |
68 | <label>Componente de Imagem (Use esta funcinalidade para adicionar gráficos ou tabelas que ache necessárias)</label> |
60 | </div> |
69 | </div> |
61 | 70 | ||
62 | <div class="componentBody" ng-if="comp['@class']=='pt.estgp.estgweb.utils.documentBuilder.ImageComponent'"> |
71 | <div class="componentBody" ng-if="comp['@class']=='pt.estgp.estgweb.utils.documentBuilder.ImageComponent'"> |
63 | <div class="form-group clearfix" ng-if="comp.image.identifier"> |
72 | <div class="form-group clearfix" ng-if="comp.image.identifier"> |
64 | <label class="col-md-2 control-label">Legenda</label> |
73 | <label class="col-md-2 control-label">Legenda</label> |
65 | <div class="col-md-10"> |
74 | <div class="col-md-10"> |
66 | <input type="text" class="form-control" rows="10" ng-model="comp.title"> |
75 | <input type="text" class="form-control" rows="10" ng-model="comp.title"> |
67 | </div> |
76 | </div> |
68 | </div> |
77 | </div> |
69 | <div class="form-group clearfix"> |
78 | <div class="form-group clearfix"> |
70 | <div class="col-md-2 control-label"> |
79 | <div class="col-md-2 control-label"> |
71 | <a class="btn btn-default" href="#" ng-model="comp" |
80 | <a class="btn btn-default" href="#" ng-model="comp" |
72 | data-title="Escolha Imagem" |
81 | data-title="Escolha Imagem" |
73 | data-showmetafields="false" |
82 | data-showmetafields="false" |
74 | data-confirmonupload="true" |
83 | data-confirmonupload="true" |
75 | data-toggle="modal" |
84 | data-toggle="modal" |
76 | data-target="#filesUploadModal" |
85 | data-target="#filesUploadModal" |
77 | data-multiple="false" |
86 | data-multiple="false" |
78 | data-allowed-extensions="jpg,png,gif" |
87 | data-allowed-extensions="jpg,png,gif" |
79 | data-callback-target-function="angular.element($('{{docAppSelector}}')).scope().callbackUploadedFiles"> |
88 | data-callback-target-function="angular.element($('{{docAppSelector}}')).scope().callbackUploadedFiles"> |
80 | <span ng-if="comp.image.identifier"> |
89 | <span ng-if="comp.image.identifier"> |
81 | Substituir Imagem |
90 | Substituir Imagem |
82 | </span> |
91 | </span> |
83 | <span ng-if="!(comp.image.identifier)"> |
92 | <span ng-if="!(comp.image.identifier)"> |
84 | Carregar Imagem |
93 | Carregar Imagem |
85 | </span> |
94 | </span> |
86 | 95 | ||
87 | <span class="glyphicon glyphicon-upload"/> |
96 | <span class="glyphicon glyphicon-upload"/> |
88 | 97 | ||
89 | </a> |
98 | </a> |
90 | </div> |
99 | </div> |
91 | 100 | ||
92 | <div class="col-md-10"> |
101 | <div class="col-md-10"> |
93 | <div ng-if="!(comp.image.identifier)"> |
102 | <div ng-if="!(comp.image.identifier)"> |
94 | Clique em carregar imagens e escolha uma imagem para adicionar nesta secção. |
103 | Clique em carregar imagens e escolha uma imagem para adicionar nesta secção. |
95 | </div> |
104 | </div> |
96 | 105 | ||
97 | <label ng-if="comp.image.identifier"> Limites do PDF </label> |
106 | <label ng-if="comp.image.identifier"> Limites do PDF </label> |
98 | <div ng-if="comp.image.identifier" style="text-align: center; width: 595px; border: 1px solid black; padding: 45px"> |
107 | <div ng-if="comp.image.identifier" style="text-align: center; width: 595px; border: 1px solid black; padding: 45px"> |
99 | <center> |
108 | <center> |
100 | <div style="width: 200px;height: 200px; max-width: 500px; max-height: 750px" resizable on-resize="resize($evt, $ui, comp)"> |
109 | <div style="width: 200px;height: 200px; max-width: 500px; max-height: 750px" resizable on-resize="resize($evt, $ui, comp)"> |
101 | <img style="width: 100%;height: 100%" ng-src="{{comp.imageUrl}}"> |
110 | <img style="width: 100%;height: 100%" ng-src="{{comp.imageUrl}}"> |
102 | </div> |
111 | </div> |
103 | (Se desejar altere o tamanho da imagem arrastando no canto inferior direito) |
112 | (Se desejar altere o tamanho da imagem arrastando no canto inferior direito) |
104 | </center> |
113 | </center> |
105 | </div> |
114 | </div> |
106 | </div> |
115 | </div> |
107 | </div> |
116 | </div> |
108 | </div> |
117 | </div> |
109 | </div> |
118 | </div> |
110 | </script> |
119 | </script> |
111 | 120 | ||
112 | <script type="text/ng-template" id="pt_estgp_estgweb_utils_documentBuilder_TextComponent"> |
121 | <script type="text/ng-template" id="pt_estgp_estgweb_utils_documentBuilder_TextComponent"> |
113 | <div class="textComponent component"> |
122 | <div class="textComponent component"> |
114 | 123 | ||
115 | <div ng-if="parent['@class']=='pt.estgp.estgweb.utils.documentBuilder.CustomPane'" class="buttonTools clearfix"> |
124 | <div ng-if="parent['@class']=='pt.estgp.estgweb.utils.documentBuilder.CustomPane'" class="buttonTools clearfix"> |
116 | <button class="btn btn-danger pull-right" type="button" ng-click="removeComponent($index,parent.components)"> |
125 | <button class="btn btn-danger pull-right" type="button" ng-click="removeComponent($index,parent.components)"> |
117 | <span class="glyphicon glyphicon-remove"></span> |
126 | <span class="glyphicon glyphicon-remove"></span> |
118 | </button> |
127 | </button> |
119 | <label>Componente de Texto</label> |
128 | <label>Componente de Texto</label> |
120 | </div> |
129 | </div> |
121 | <div class="componentBody"> |
130 | <div class="componentBody"> |
122 | <div ng-if="parent['@class']=='pt.estgp.estgweb.utils.documentBuilder.CustomPane'" class="form-group clearfix"> |
131 | <div ng-if="parent['@class']=='pt.estgp.estgweb.utils.documentBuilder.CustomPane'" class="form-group clearfix"> |
123 | <label class="col-md-2 control-label">Titulo de Parágrafo</label> |
132 | <label class="col-md-2 control-label">Titulo de Parágrafo</label> |
124 | <div class="col-md-10"> |
133 | <div class="col-md-10"> |
125 | <input type="text" class="form-control" rows="10" ng-model="comp.title"> |
134 | <input type="text" class="form-control" rows="10" ng-model="comp.title"> |
126 | </div> |
135 | </div> |
127 | </div> |
136 | </div> |
128 | <div class="form-group clearfix"> |
137 | <div class="form-group clearfix"> |
129 | <label class="col-md-2 control-label">Texto</label> |
138 | <label class="col-md-2 control-label">Texto</label> |
130 | <div class="col-md-10"> |
139 | <div class="col-md-10"> |
131 | <textarea class="form-control" rows="10" ng-model="comp.text"> |
140 | <textarea class="form-control" rows="10" ng-model="comp.text"> |
132 | 141 | ||
133 | </textarea> |
142 | </textarea> |
134 | </div> |
143 | </div> |
135 | </div> |
144 | </div> |
- | 145 | </div> |
|
- | 146 | </div> |
|
- | 147 | </script> |
|
- | 148 | ||
- | 149 | <!-- |
|
- | 150 | @section objeto com seccoes e componentes |
|
- | 151 | @optional @chapter capitulo do documento para esta seccao para contcatenar às subsections |
|
- | 152 | --> |
|
- | 153 | <script type="text/ng-template" id="pt_estgp_estgweb_utils_documentBuilder_DocumentSection"> |
|
- | 154 | <div class="sections"> |
|
- | 155 | <ul class="nav nav-tabs"> |
|
- | 156 | <li ng-model="section" class="separatorSectionNav" |
|
- | 157 | ng-class="{ active : subSection.active}" |
|
- | 158 | ng-repeat="subSection in section.sections"> |
|
- | 159 | <a ng-click="showSep(section,subSection)"> {{$chapter}}{{$index+1}} - {{subSection.title}}</a> |
|
- | 160 | </li> |
|
- | 161 | </ul> |
|
- | 162 | <div ng-model="subSection" |
|
- | 163 | ng-class="{ hidden: !subSection.active }" |
|
- | 164 | ng-repeat="subSection in section.sections" |
|
- | 165 | class="separatorSection clearfix"> |
|
- | 166 | <div ng-repeat="comp in subSection.components" |
|
- | 167 | ng-include="class2id(comp)"> |
|
- | 168 | ||
- | 169 | </div> |
|
- | 170 | <div ng-if="subSection.sections" |
|
- | 171 | ng-init="section=subSection;$chapter=$chapter+($index+1)+'.'" |
|
- | 172 | ng-include="class2id(subSection)"> |
|
- | 173 | </div> |
|
- | 174 | </div> |
|
- | 175 | </div> |
|
- | 176 | </script> |
|
- | 177 | ||
- | 178 | <!-- |
|
- | 179 | @section objeto com seccoes e componentes |
|
- | 180 | @optional @chapter capitulo do documento para esta seccao para contcatenar às subsections |
|
- | 181 | --> |
|
- | 182 | ||
- | 183 | <script type="text/ng-template" id="pt_estgp_estgweb_services_courses_coursereport_documentmodel_CourseUnitsReportsSection"> |
|
- | 184 | <div class="sections"> |
|
- | 185 | <a name="indexCus"></a> |
|
- | 186 | <span ng-repeat="cu in section.sections" ng-init="cu.taxaAprovacao = 100 * cu.courseUnitEvaluation.numAlunosAprovTotal/(cu.courseUnitEvaluation.numAlunosInscritos - cu.courseUnitEvaluation.numAlunosSemElementosAvaliacao)"> |
|
- | 187 | <a href="#cu{{$index}}" ng-class="{ 'alert-danger': (cu.courseUnitEvaluation.cumprimentoProgramaPercent < 100) || cu.taxaAprovacao < 75 || !cu.courseUnitEvaluation.closed || !cu.courseUnitEvaluation.teacherComplete}"> |
|
- | 188 | {{cu.title}} |
|
- | 189 | </a> | |
|
- | 190 | </span> |
|
- | 191 | <div ng-repeat="cu in section.sections" |
|
- | 192 | class="section panel-primary"> |
|
- | 193 | ||
- | 194 | <a name="cu{{$index}}"></a> |
|
- | 195 | <span ng-if="$index != 0" class="glyphicon glyphicon-backward" ></span><a ng-if="$index != 0" href="#indexCus"> Voltar atrás</a> |
|
- | 196 | <div class="panel-heading"><h2>{{cu.title}}</h2></div> |
|
- | 197 | ||
- | 198 | <div style="padding-left:20px"> |
|
- | 199 | <div><h3><label class="label label-primary">Estado do Relatório</label></h3></div> |
|
- | 200 | ||
- | 201 | <div ng-if="cu.courseUnitEvaluation.closed"> |
|
- | 202 | Entregue e Aceite |
|
- | 203 | </div> |
|
- | 204 | <div class="alert-danger" ng-if="cu.courseUnitEvaluation.closed && !cu.courseUnitEvaluation.teacherComplete"> |
|
- | 205 | Entregue mas não foi aprovado pela comissão |
|
- | 206 | </div> |
|
- | 207 | <div class="alert-danger" ng-if="!cu.courseUnitEvaluation.closed && !cu.courseUnitEvaluation.teacherComplete"> |
|
- | 208 | Não foi entregue pelo docente para validação |
|
- | 209 | </div> |
|
- | 210 | ||
- | 211 | </div> |
|
- | 212 | ||
- | 213 | ||
- | 214 | <div style="padding-left:20px"> |
|
- | 215 | <div><h3><label class="label label-primary">Resultados</label></h3></div> |
|
- | 216 | <div> |
|
- | 217 | <table class="tablesorter-blue" width="100%"> |
|
- | 218 | <tr> |
|
- | 219 | <th rowspan="2"> |
|
- | 220 | Nº Alunos Inscritos |
|
- | 221 | </th> |
|
- | 222 | <th rowspan="2"> |
|
- | 223 | Nº de alunos sem elementos de avaliação |
|
- | 224 | </th> |
|
- | 225 | <th colspan="5"> |
|
- | 226 | Nº de alunos aprovados em |
|
- | 227 | </th> |
|
- | 228 | <th colspan="2"> |
|
- | 229 | Aprovados com a classificação entre 10 e 13 valores |
|
- | 230 | </th> |
|
- | 231 | <th colspan="2"> |
|
- | 232 | Aprovados com a classificação entre 14 e 16 valores |
|
- | 233 | </th> |
|
- | 234 | <th colspan="2"> |
|
- | 235 | Aprovados com a classificação entre 17 e 20 valores |
|
- | 236 | </th> |
|
- | 237 | </tr> |
|
- | 238 | <tr> |
|
- | 239 | <th>Avaliação de frequência</th> |
|
- | 240 | <th>Exame Época Normal</th> |
|
- | 241 | <th>Exame Época Recurso</th> |
|
- | 242 | <th>Exame Época Especial</th> |
|
- | 243 | <th>Total</th> |
|
- | 244 | <th>Nº</th> |
|
- | 245 | <th>%</th> |
|
- | 246 | <th>Nº</th> |
|
- | 247 | <th>%</th> |
|
- | 248 | <th>Nº</th> |
|
- | 249 | <th>%</th> |
|
- | 250 | </tr> |
|
- | 251 | <tr> |
|
- | 252 | <td class="text-center"> |
|
- | 253 | {{cu.courseUnitEvaluation.numAlunosInscritos}} |
|
- | 254 | </td> |
|
- | 255 | <td class="text-center"> |
|
- | 256 | {{cu.courseUnitEvaluation.numAlunosSemElementosAvaliacao}} |
|
- | 257 | </td> |
|
- | 258 | <td class="text-center"> |
|
- | 259 | {{cu.courseUnitEvaluation.numAlunosAprovFrequencia}} |
|
- | 260 | </td> |
|
- | 261 | <td class="text-center"> |
|
- | 262 | {{cu.courseUnitEvaluation.numAlunosAprovNormal}} |
|
- | 263 | </td> |
|
- | 264 | <td class="text-center"> |
|
- | 265 | {{cu.courseUnitEvaluation.numAlunosAprovRecurso}} |
|
- | 266 | </td> |
|
- | 267 | <td style="text-align: center"> |
|
- | 268 | {{cu.courseUnitEvaluation.numAlunosAprovEspecial}} |
|
- | 269 | </td> |
|
- | 270 | <td class="text-center"> |
|
- | 271 | {{cu.courseUnitEvaluation.numAlunosAprovTotal}} |
|
- | 272 | </td> |
|
- | 273 | <td class="text-center"> |
|
- | 274 | {{cu.courseUnitEvaluation.numAlunosAprov1013}} |
|
- | 275 | </td> |
|
- | 276 | <td class="text-center"> |
|
- | 277 | {{cu.courseUnitEvaluation.numAlunosAprov1013Percent}} |
|
- | 278 | </td> |
|
- | 279 | <td class="text-center"> |
|
- | 280 | {{cu.courseUnitEvaluation.numAlunosAprov1416}} |
|
- | 281 | </td> |
|
- | 282 | <td class="text-center"> |
|
- | 283 | {{cu.courseUnitEvaluation.numAlunosAprov1416Percent}} |
|
- | 284 | </td> |
|
- | 285 | <td class="text-center"> |
|
- | 286 | {{cu.courseUnitEvaluation.numAlunosAprov1720}} |
|
- | 287 | </td> |
|
- | 288 | <td class="text-center"> |
|
- | 289 | {{cu.courseUnitEvaluation.numAlunosAprov1720Percent}} |
|
- | 290 | </td> |
|
- | 291 | </tr> |
|
- | 292 | </table> |
|
- | 293 | </div> |
|
- | 294 | </div> |
|
- | 295 | ||
- | 296 | <div style="padding-left:20px" > |
|
- | 297 | <div><h3><label class="label label-primary">Taxa de Aprovação</label></h3></div> |
|
- | 298 | <div ng-class="{ 'alert-danger': cu.taxaAprovacao < 75 }">{{cu.taxaAprovacao}}%</div> |
|
- | 299 | </div> |
|
- | 300 | ||
- | 301 | ||
- | 302 | ||
- | 303 | <div style="padding-left:20px"> |
|
- | 304 | <div><h3><label class="label label-primary">Apreciação dos resultados quantitativos obtidos pelos estudantes</label></h3></div> |
|
- | 305 | <div>{{cu.courseUnitEvaluation.qualApreciacaoQuantitivos}}</div> |
|
- | 306 | </div> |
|
- | 307 | <div style="padding-left:20px"> |
|
- | 308 | <div><h3><label class="label label-primary">Apreciação do funcionamento da UC</label></h3></div> |
|
- | 309 | <div>{{cu.courseUnitEvaluation.qualApreciacaoUC}}</div> |
|
- | 310 | </div> |
|
- | 311 | <div style="padding-left:20px"> |
|
- | 312 | <div><h3><label class="label label-primary">Percentagem de cumprimento do programa da UC</label></h3></div> |
|
- | 313 | <div ng-class="{ 'alert-danger': (cu.courseUnitEvaluation.cumprimentoProgramaPercent < 100) }"> |
|
- | 314 | {{cu.courseUnitEvaluation.cumprimentoProgramaPercent}}% |
|
- | 315 | </div> |
|
- | 316 | </div> |
|
- | 317 | <div style="padding-left:20px"> |
|
- | 318 | <div><h3><label class="label label-primary">Apreciação do cumprimento do programa da UC</label></h3></div> |
|
- | 319 | <div>{{cu.courseUnitEvaluation.qualApreciacaoCumprimentoPrograma}}</div> |
|
- | 320 | </div> |
|
- | 321 | <div style="padding-left:20px"> |
|
- | 322 | <div><h3><label class="label label-primary">Conclusões</label></h3></div> |
|
- | 323 | <div>{{cu.courseUnitEvaluation.qualConclusoes}}</div> |
|
- | 324 | </div> |
|
136 | </div> |
325 | </div> |
137 | </div> |
326 | </div> |
138 | </script> |
327 | </script> |
139 | 328 | ||
140 | Generated by GNU Enscript 1.6.5.2. |
329 | Generated by GNU Enscript 1.6.5.2. |
141 | 330 | ||
142 | 331 |