Rev 1717 | Rev 1726 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1670 | jmachado | 1 | <%@ page import="jomm.dao.impl.AbstractDao" %> |
2 | <%@ page import="pt.estgp.estgweb.domain.RepositoryDocumentCollection" %> |
||
3 | <%@ page import="pt.estgp.estgweb.domain.RepositoryDocumentCollectionImpl" %> |
||
4 | <%@ page import="pt.estgp.estgweb.domain.RepositoryDocumentImpl" %> |
||
5 | <%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
||
6 | <%@ page import="java.util.List" %> |
||
7 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
||
8 | <%@ taglib prefix="bacoTags" tagdir="/WEB-INF/tags" %> |
||
9 | <%@ taglib prefix="logic" uri="/WEB-INF/tlds/struts-logic.tld" %> |
||
1683 | jmachado | 10 | <%@ taglib prefix="html" uri="/WEB-INF/tlds/struts-html.tld" %> |
11 | <%@ taglib prefix="bean" uri="/WEB-INF/tlds/struts-bean.tld" %> |
||
1670 | jmachado | 12 | |
13 | <div class="container-fluid"> |
||
14 | |||
15 | <% |
||
16 | |||
17 | AbstractDao.getCurrentSession().beginTransaction(); |
||
18 | List<RepositoryDocumentCollection> collections = DaoFactory.getRepositoryDocumentCollectionDaoImpl().findAll(); |
||
19 | |||
20 | String documentRepositoryId = request.getParameter("repositoryDocumentId"); |
||
1714 | jmachado | 21 | String repositoryCollectionId = request.getParameter("repositoryCollectionId"); |
1670 | jmachado | 22 | if(documentRepositoryId != null) |
23 | { |
||
24 | RepositoryDocumentImpl repoEdited = (RepositoryDocumentImpl) DaoFactory.getRepositoryDocumentDaoImpl().get(Long.parseLong(documentRepositoryId)); |
||
25 | String docJson = repoEdited.toJson(); |
||
26 | request.setAttribute("docJson",docJson); |
||
27 | } |
||
1714 | jmachado | 28 | else if(repositoryCollectionId != null) |
29 | { |
||
30 | request.setAttribute("repositoryCollectionId",repositoryCollectionId); |
||
31 | } |
||
1670 | jmachado | 32 | |
33 | String collectionsJson = RepositoryDocumentCollectionImpl.toJson(collections); |
||
34 | |||
35 | request.setAttribute("collectionsJson",collectionsJson); |
||
36 | |||
37 | %> |
||
38 | |||
39 | <script> |
||
40 | var repoModule = angular.module('repoModule', []); |
||
41 | GLOBAL_BacoAngularAppDependencies.push('repoModule'); |
||
42 | |||
43 | |||
44 | repoModule.controller('repoModuleController', function($scope) { |
||
45 | $scope.collections = ${collectionsJson}; |
||
1719 | jmachado | 46 | $scope.dups = []; |
1670 | jmachado | 47 | <logic:empty name="docJson"> |
48 | $scope.doc = { |
||
49 | "visible" : true |
||
1714 | jmachado | 50 | <logic:notEmpty name="repositoryCollectionId"> |
51 | , |
||
52 | "collection" : { "id" : ${repositoryCollectionId} } |
||
53 | </logic:notEmpty> |
||
1670 | jmachado | 54 | }; |
55 | </logic:empty> |
||
56 | <logic:notEmpty name="docJson"> |
||
57 | $scope.doc = ${docJson} |
||
58 | </logic:notEmpty> |
||
59 | $scope.setCloseDate = function (datePickerId) { |
||
60 | |||
61 | $("#"+datePickerId).datetimepicker().on("dp.change", function (data) { |
||
62 | |||
63 | //alert($("#"+datePicker).find("input").val()); |
||
64 | $scope.doc.closeDateStr = $("#"+datePickerId).find("input").val(); |
||
65 | $scope.$apply(); |
||
66 | |||
67 | }); |
||
68 | } |
||
69 | $scope.setPublishDate = function (datePickerId) { |
||
70 | |||
71 | $("#"+datePickerId).datetimepicker().on("dp.change", function (data) { |
||
72 | |||
73 | //alert($("#"+datePicker).find("input").val()); |
||
74 | $scope.doc.publishDateStr = $("#"+datePickerId).find("input").val(); |
||
75 | $scope.$apply(); |
||
76 | |||
77 | }); |
||
78 | } |
||
79 | $scope.newAuthor = function() |
||
80 | { |
||
81 | if(!$scope.doc.authorsJson) |
||
82 | { |
||
83 | $scope.doc.authorsJson = {}; |
||
84 | } |
||
85 | if(!$scope.doc.authorsJson.persons) |
||
86 | { |
||
87 | $scope.doc.authorsJson.persons = []; |
||
88 | } |
||
89 | $scope.doc.authorsJson.persons.push({}); |
||
90 | } |
||
91 | $scope.newContributor = function() |
||
92 | { |
||
93 | if(!$scope.doc.contributorsJson) |
||
94 | { |
||
95 | $scope.doc.contributorsJson = {}; |
||
96 | } |
||
97 | if(!$scope.doc.contributorsJson.persons) |
||
98 | { |
||
99 | $scope.doc.contributorsJson.persons = []; |
||
100 | } |
||
101 | $scope.doc.contributorsJson.persons.push({}); |
||
102 | } |
||
103 | $scope.submitForm = function() |
||
104 | { |
||
1717 | jmachado | 105 | if(!($scope.doc.collection && $scope.doc.collection.id)) |
1675 | jmachado | 106 | { |
1717 | jmachado | 107 | alertModal("Necessita de preencher uma colecção para continuar"); |
108 | } |
||
109 | else if(!($scope.doc.title && $scope.doc.title.length>0)) |
||
110 | { |
||
111 | alertModal("Necessita de preencher o título para continuar"); |
||
112 | } |
||
113 | else{ |
||
1719 | jmachado | 114 | if($scope.doc.id && $scope.doc.id > 0) |
115 | { |
||
116 | $scope.submitNoCheck(); |
||
117 | } |
||
118 | else |
||
119 | widgetCallWithActionParameters( |
||
1717 | jmachado | 120 | "<%=request.getContextPath()%>/user/repositoryDoc.do", |
1719 | jmachado | 121 | "checkRepositoryDocumentExistence", |
1717 | jmachado | 122 | { |
1719 | jmachado | 123 | "doc" : JSON.stringify($scope.doc) |
1717 | jmachado | 124 | }, |
125 | "#repoModule", |
||
1719 | jmachado | 126 | function(json) |
127 | { |
||
128 | if(json.found.length > 0) |
||
129 | { |
||
130 | $scope.dups = json.found; |
||
131 | $scope.$apply(); |
||
132 | $("#alertDocExist").modal( |
||
133 | { |
||
134 | "show" : true |
||
135 | } |
||
136 | ); |
||
137 | } |
||
138 | else |
||
139 | { |
||
140 | $scope.submitNoCheck(); |
||
141 | } |
||
142 | }); |
||
1717 | jmachado | 143 | } |
1670 | jmachado | 144 | } |
1719 | jmachado | 145 | $scope.submitNoCheck = function() |
146 | { |
||
147 | widgetCallWithActionParameters( |
||
148 | "<%=request.getContextPath()%>/user/repositoryDoc.do", |
||
149 | "saveRepositoryDocument", |
||
150 | { |
||
151 | "doc" : JSON.stringify($scope.doc), |
||
152 | "uploadedFiles" : JSON.stringify($scope.jsonFiles) |
||
153 | }, |
||
154 | "#repoModule", |
||
155 | function(json) |
||
156 | { |
||
157 | $scope.doc = json; |
||
158 | $scope.jsonFiles = {"service":"ok","uploadedFiles": [] }; |
||
159 | $scope.$apply(); |
||
160 | |||
161 | $("#savedOpenNew").show(); |
||
162 | $("#docEditPanel").hide(); |
||
163 | }, |
||
164 | function(json) |
||
165 | { |
||
166 | alert(JSON.stringify(json)); |
||
167 | } |
||
168 | ); |
||
169 | } |
||
1675 | jmachado | 170 | $scope.backEdit = function() |
171 | { |
||
172 | $("#savedOpenNew").hide(); |
||
173 | $("#docEditPanel").show(); |
||
174 | } |
||
1670 | jmachado | 175 | |
176 | |||
177 | //<!--Seccao de uploadedFiles--> |
||
178 | //EVENTO DE CHANGE PARA PUXAR DADOS PARA O MODELO |
||
179 | $scope.jsonFiles = {"service":"ok","uploadedFiles": [] }; |
||
180 | $(document).ready(function(){ |
||
181 | $("#UPLOADED_FILES_RESULT").change(function() |
||
182 | { |
||
183 | var uploadedIncomingJson = JSON.parse($("#UPLOADED_FILES_RESULT").val()); |
||
184 | for(var i in uploadedIncomingJson.uploadedFiles) |
||
185 | { |
||
186 | var file = uploadedIncomingJson.uploadedFiles[i]; |
||
1675 | jmachado | 187 | file.visible = true; |
188 | file.accessControl = "resource.access.publicDomain"; |
||
1670 | jmachado | 189 | angular.element($("#repoModule")).scope().jsonFiles.uploadedFiles.push(file); |
190 | } |
||
191 | angular.element($("#repoModule")).scope().$apply(); |
||
192 | }); |
||
1675 | jmachado | 193 | |
194 | $("#DOCUMENT_FILES_RESULT").change(function() |
||
195 | { |
||
196 | var uploadedIncomingJson = JSON.parse($("#DOCUMENT_FILES_RESULT").val()); |
||
197 | |||
198 | var file = uploadedIncomingJson.uploadedFiles[0]; |
||
199 | file.id = uploadedIncomingJson.token; |
||
200 | |||
201 | |||
202 | //Find document remove it from documents List add to uploadFiles |
||
203 | var doc = angular.element($("#repoModule")).scope().doc; |
||
204 | for(var i in doc.repositoryDocumentFiles) |
||
205 | { |
||
206 | if(doc.repositoryDocumentFiles[i].id == file.id) |
||
207 | { |
||
208 | var repoDoc = doc.repositoryDocumentFiles[i]; |
||
209 | doc.repositoryDocumentFiles.splice(i,1); |
||
210 | file.title = repoDoc.title; |
||
211 | file.visible = repoDoc.visible; |
||
212 | file.description = repoDoc.description; |
||
213 | file.accessControl = repoDoc.repositoryFileProxy.repositoryFile.accessControl; |
||
214 | file.repositoryStream = repoDoc.repositoryFileProxy.repositoryStream; |
||
215 | break; |
||
216 | } |
||
217 | |||
218 | } |
||
219 | |||
220 | angular.element($("#repoModule")).scope().jsonFiles.uploadedFiles.push(file); |
||
221 | angular.element($("#repoModule")).scope().$apply(); |
||
222 | }); |
||
1670 | jmachado | 223 | }); |
224 | $scope.removeFileFromModel = function($index) |
||
225 | { |
||
226 | $scope.jsonFiles.uploadedFiles.splice($index,1); |
||
227 | } |
||
1675 | jmachado | 228 | $scope.setDocumentFileInvisible = function(docFile) |
229 | { |
||
230 | docFile.visible=false; |
||
231 | docFile.repositoryFileProxy.repositoryFile.accessControl ="resource.access.privateDomain"; |
||
232 | } |
||
233 | $scope.setDocumentFileVisible = function(docFile) |
||
234 | { |
||
235 | docFile.visible=true; |
||
236 | alert("As permissões do ficheiro estão definidas como privadas, por favor escolha as permissões novas."); |
||
237 | docFile.repositoryFileProxy.repositoryFile.accessControl ="resource.access.privateDomain"; |
||
238 | } |
||
239 | |||
1670 | jmachado | 240 | //<!--Seccao de uploadedFiles--> |
241 | }); |
||
242 | </script> |
||
243 | |||
244 | |||
245 | <div id="repoModule" |
||
246 | ng-app="repoModule" |
||
247 | ng-controller="repoModuleController" |
||
248 | class="form-horizontal"> |
||
249 | |||
1719 | jmachado | 250 | <div class="modal fade alertModal" id="alertDocExist" tabindex="-1" role="dialog" > |
251 | <div class="modal-dialog" data-width="960" style="display: block; width: 960px; margin-top: 50px;" aria-hidden="false"> |
||
252 | <div class="modal-content"> |
||
253 | <div class="modal-header"> |
||
254 | <h4 class="modal-title">Alerta</h4> |
||
255 | </div> |
||
256 | <div class="modal-body"> |
||
257 | <div class="alert alert-warning InfoMessageToUser"> |
||
258 | Já existem documentos semelhantes no repositório. Confirme que o documento é mesmo para depositar nesta colecção |
||
259 | </div> |
||
260 | <ul> |
||
261 | <li ng-repeat="dup in dups"> |
||
262 | <a target="_blank" ng-href="<%=request.getContextPath()%>/user/repositoryEditDocument.do?repositoryDocumentId={{dup.id}}"> |
||
263 | {{dup.title}} - Colecção: {{dup.collection.pathName}} |
||
264 | </a> |
||
265 | <ul> |
||
266 | <li ng-repeat="f in dup.repositoryDocumentFiles"> |
||
267 | Ficheiro: {{f.repositoryFileProxy.repositoryFile.lastVersion.name}} - {{f.title}} |
||
268 | </li> |
||
269 | </ul> |
||
270 | </li> |
||
271 | </ul> |
||
272 | </div> |
||
273 | <div class="modal-footer"> |
||
274 | <button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button> |
||
275 | <button type="button" class="btn btn-success pull-right" data-dismiss="modal" ng-click="submitNoCheck()">Confirmo que é para depositar à mesma</button> |
||
276 | </div> |
||
277 | </div> |
||
278 | </div> |
||
279 | </div> |
||
1675 | jmachado | 280 | |
1719 | jmachado | 281 | |
1675 | jmachado | 282 | <div id="savedOpenNew" class="panel panel-default" style="display: none"> |
283 | <div class="panel-body"> |
||
284 | <div class="web-messages"></div> |
||
285 | <hr/> |
||
286 | <div class="row"> |
||
287 | <div class="col-md-4"> |
||
288 | <button class="btn btn-default btn-lg btn-block btn-huge" ng-click="backEdit()"><span class="glyphicon glyphicon-chevron-left"></span> Voltar à edição</button> |
||
289 | </div> |
||
290 | <div class="col-md-4"> |
||
1683 | jmachado | 291 | <html:link styleClass="btn btn-success btn-lg btn-block btn-huge" action="/user/repositoryEditDocument">Adicionar outro documento <span class="glyphicon glyphicon-chevron-right"></span></html:link> |
1675 | jmachado | 292 | </div> |
293 | </div> |
||
294 | <hr/> |
||
295 | <div class="row"> |
||
296 | <div class="col-md-4"> |
||
1683 | jmachado | 297 | <html:link styleClass="btn btn-danger btn-lg btn-block btn-huge" action="/user/homePae">Sair</html:link> |
1675 | jmachado | 298 | </div> |
299 | </div> |
||
300 | |||
301 | </div> |
||
302 | </div> |
||
303 | <div id="docEditPanel" class="panel panel-default"> |
||
1670 | jmachado | 304 | <div class="panel-heading"> |
305 | Criar um novo documento digital |
||
306 | </div> |
||
307 | <div class="panel-body"> |
||
1675 | jmachado | 308 | <div class="web-messages"></div> |
309 | <hr/> |
||
1670 | jmachado | 310 | <input class="form-control" type="hidden" ng-model="doc.id"> |
311 | |||
1719 | jmachado | 312 | <div ng-if="doc.id" class="form-group"> |
313 | <label class="col-md-2 control-label">ID BASE DADOS</label> |
||
314 | <div class="col-md-2"> |
||
315 | {{doc.id}} |
||
316 | </div> |
||
317 | </div> |
||
318 | <div ng-if="!doc.id" class="form-group"> |
||
319 | <label class="col-md-2 control-label">ID BASE DADOS</label> |
||
320 | <div class="col-md-2"> |
||
321 | Ainda não atribuido: Documento Novo |
||
322 | </div> |
||
323 | </div> |
||
1670 | jmachado | 324 | <div class="form-group"> |
325 | <label class="col-md-2 control-label">Visivel</label> |
||
326 | <div class="col-md-2"> |
||
1714 | jmachado | 327 | <select ng-class="{'bg-red': doc.visible == false, 'bg-green': doc.visible == true}" class="form-control chosenOff" type="text" ng-model="doc.visible" ng-options="o.v as o.n for o in [{ n: 'Visivel', v: true }, { n: 'Invisivel', v: false }]">> |
1670 | jmachado | 328 | |
329 | </select> |
||
330 | </div> |
||
331 | </div> |
||
332 | <div class="form-group"> |
||
333 | <label class="col-md-2 control-label">ID Interno</label> |
||
334 | <div class="col-md-10"> |
||
335 | <input class="form-control" type="text" ng-model="doc.internalIdentifier"> |
||
336 | </div> |
||
337 | </div> |
||
338 | |||
339 | <div class="form-group"> |
||
340 | <label class="col-md-2 control-label">Coleção</label> |
||
341 | <div class="col-md-10"> |
||
1675 | jmachado | 342 | <select ng-model="doc.collection.id" class="form-control chosenOff" ng-options="c.id as c.pathName for c in collections"></select> |
1670 | jmachado | 343 | </div> |
344 | </div> |
||
345 | |||
346 | <div class="form-group"> |
||
347 | <label class="control-label col-sm-2" for="pubdate">Data de Publicação</label> |
||
348 | <div class="col-sm-2"> |
||
349 | <div class='input-group date datetimepicker' id="publishDatePicker" ng-click="setPublishDate('publishDatePicker')"> |
||
350 | <input ng-model="doc.publishDateStr" type="text" id="pubdate" class="form-control"/> |
||
351 | <span class="input-group-addon"> |
||
352 | <span class="glyphicon glyphicon-calendar"></span> |
||
353 | </span> |
||
354 | </div> |
||
355 | </div> |
||
356 | <div class="col-sm-2"> |
||
357 | <button type="button" class="btn btn-danger" onclick="$('#pubdate').val('')"><span class="glyphicon glyphicon-remove"></span></button> |
||
358 | </div> |
||
359 | </div> |
||
360 | |||
361 | <div class="form-group"> |
||
362 | <label class="control-label col-sm-2" for="closedate">Data de Fim (se aplicável)</label> |
||
363 | <div class="col-md-2"> |
||
364 | <div class='input-group date datetimepicker' id="closeDatePicker" ng-click="setCloseDate('closeDatePicker')"> |
||
365 | <input type="text" ng-model="doc.closeDateStr" class="form-control" id="closedate"/> |
||
366 | <span class="input-group-addon"> |
||
367 | <span class="glyphicon glyphicon-calendar"></span> |
||
368 | </span> |
||
369 | </div> |
||
370 | </div> |
||
371 | <div class="col-sm-2"> |
||
372 | <button type="button" class="btn btn-danger" onclick="$('#closedate').val('')"><span class="glyphicon glyphicon-remove"></span></button> |
||
373 | </div> |
||
374 | </div> |
||
375 | |||
376 | <div class="form-group"> |
||
377 | <label class="col-md-2 control-label">Título</label> |
||
378 | <div class="col-md-10"> |
||
379 | <input class="form-control" type="text" ng-model="doc.title"> |
||
380 | </div> |
||
381 | </div> |
||
382 | |||
383 | <div class="form-group"> |
||
384 | <label class="col-md-2 control-label">SubTitulo</label> |
||
385 | <div class="col-md-10"> |
||
386 | <input class="form-control" type="text" ng-model="doc.subtitle"> |
||
387 | </div> |
||
388 | </div> |
||
389 | |||
390 | <div class="form-group"> |
||
391 | <label class="col-md-2 control-label">Descrição</label> |
||
392 | <div class="col-md-10"> |
||
393 | <textarea rows="6" class="form-control" ng-model="doc.description"> |
||
394 | |||
395 | </textarea> |
||
396 | </div> |
||
397 | </div> |
||
398 | |||
399 | |||
400 | |||
401 | <div class="form-group"> |
||
402 | <label class="col-md-2 control-label">Entidade Publicadora</label> |
||
403 | <div class="col-md-10"> |
||
404 | <input type="text" class="form-control" ng-model="doc.publisher"> |
||
405 | </div> |
||
406 | </div> |
||
407 | |||
408 | <h2 class="well well-sm clearfix"> |
||
409 | Autores |
||
410 | <button class="btn btn-success pull-right" ng-click="newAuthor()"><span class="glyphicon glyphicon-plus"/></button> |
||
411 | </h2> |
||
412 | |||
413 | <div class="panel-body" ng-repeat="a in doc.authorsJson.persons"> |
||
414 | <div class="form-group"> |
||
415 | <label class="col-md-2 control-label">Apelido</label> |
||
416 | <div class="col-md-10"> |
||
417 | <input class="form-control" type="text" ng-model="a.lastName"> |
||
418 | </div> |
||
419 | </div> |
||
420 | <div class="form-group"> |
||
421 | <label class="col-md-2 control-label">Primeiros Nomes</label> |
||
422 | <div class="col-md-10"> |
||
423 | <input class="form-control" type="text" ng-model="a.firstNames"> |
||
424 | </div> |
||
425 | </div> |
||
426 | </div> |
||
427 | |||
428 | |||
429 | <h2 class="well well-sm clearfix"> |
||
430 | Colaboradores |
||
431 | <button class="btn btn-success pull-right" ng-click="newContributor()"><span class="glyphicon glyphicon-plus"/></button> |
||
432 | </h2> |
||
433 | |||
434 | <div class="panel-body" ng-repeat="a in doc.contributorsJson.persons"> |
||
435 | <div class="form-group"> |
||
436 | <label class="col-md-2 control-label">Apelido</label> |
||
437 | <div class="col-md-10"> |
||
438 | <input class="form-control" type="text" ng-model="a.lastName"> |
||
439 | </div> |
||
440 | </div> |
||
441 | <div class="form-group"> |
||
442 | <label class="col-md-2 control-label">Primeiros Nomes</label> |
||
443 | <div class="col-md-10"> |
||
444 | <input class="form-control" type="text" ng-model="a.firstNames"> |
||
445 | </div> |
||
446 | </div> |
||
447 | </div> |
||
448 | |||
449 | <!--Seccao de DocumentFiles--> |
||
450 | |||
1675 | jmachado | 451 | |
1670 | jmachado | 452 | <div class="panel panel-default" ng-show="doc.repositoryDocumentFiles.length > 0"> |
453 | <div class="panel-heading">Ficheiros Já Anexados</div> |
||
454 | <div class="panel-body"> |
||
455 | |||
456 | |||
457 | |||
1675 | jmachado | 458 | <input type="hidden" id="DOCUMENT_FILES_RESULT" value=""/> |
1670 | jmachado | 459 | |
460 | |||
461 | |||
1675 | jmachado | 462 | |
463 | <div> |
||
464 | <div class="list-group clearfix" ng-repeat="f in doc.repositoryDocumentFiles" ng-class="{'bacoInvisible': f.visible == false}"> |
||
1670 | jmachado | 465 | <div class="list-group-item clearfix"> |
1675 | jmachado | 466 | <div class="col-md-10" > |
467 | <label ng-show="f.visible == false"> |
||
468 | <span class="glyphicon glyphicon-ban-circle"/> |
||
469 | </label> |
||
470 | <img src="<%=request.getContextPath()%>/imgs/mime/{{ f.repositoryFileProxy.repositoryFile.lastVersion.extension }}.gif"/> - {{ f.repositoryFileProxy.repositoryFile.lastVersion.name }} {{ (f.repositoryFileProxy.repositoryFile.lastVersion.size / 1024)| number:0 }}KB |
||
471 | |||
472 | |||
1670 | jmachado | 473 | </div> |
1675 | jmachado | 474 | |
475 | <bacoTags:repositoryFile staticTag="true" transactional="true" repositoryStream="{{f.repositoryFileProxy.repositoryStream}}"/> |
||
476 | |||
477 | <button data-toggle="tooltip" title="Ocultar ficheiro" ng-show="f.visible == true" class="btn btn-danger pull-right" type="button" ng-click="setDocumentFileInvisible(f)"><span class="glyphicon glyphicon-ban-circle"/></button> |
||
478 | <button data-toggle="tooltip" title="Repor ficheiro" ng-show="f.visible == false" class="btn btn-default pull-right" type="button" ng-click="setDocumentFileVisible(f)"><span class="glyphicon glyphicon-ok-circle"/></button> |
||
479 | |||
1711 | jmachado | 480 | <a ng-disabled="f.visible == false" title="Substituir ficheiro" class="btn btn-default pull-right" href="#" style="margin-right: 20px" |
1675 | jmachado | 481 | data-title="Alteração do Ficheiro {{f.repositoryFileProxy.repositoryFile.lastVersion.name}}" |
482 | data-toggle="modal" |
||
483 | data-target="#filesUploadModal" |
||
484 | data-multiple="false" |
||
485 | data-token="{{f.id}}" |
||
486 | data-showmetafields="false" |
||
487 | data-jsontargetid="#DOCUMENT_FILES_RESULT"> |
||
488 | <span class="glyphicon glyphicon-pencil"/> |
||
489 | </a> |
||
490 | |||
491 | </div> |
||
492 | <div class="list-group-item clearfix"> |
||
493 | <div class=" col-md-2 control-label">Controlo de Acesso:</div> |
||
494 | <div class="col-md-6 control-label"> |
||
495 | <select ng-disabled="f.visible == false" class="form-control chosenOff" type="text" ng-model="f.repositoryFileProxy.repositoryFile.accessControl" ng-options="o.v as o.n for o in [{ n: 'Publico', v: 'resource.access.publicDomain' }, { n: 'Privado', v: 'resource.access.privateDomain' }, { n: 'Interno', v: 'resource.access.authenticatedDomain' }]">> |
||
496 | |||
497 | </select> |
||
1670 | jmachado | 498 | </div> |
499 | </div> |
||
500 | <div class="list-group-item clearfix"> |
||
1675 | jmachado | 501 | <div class=" col-md-2 control-label">Visivel:</div> |
502 | <div class="col-md-6 control-label"> |
||
503 | <select ng-disabled="f.visible == false" class="form-control chosenOff" type="text" ng-model="f.visible" ng-options="o.v as o.n for o in [{ n: 'Sim', v: true }, { n: 'Não', v: false }]">> |
||
504 | |||
505 | </select> |
||
506 | </div> |
||
507 | </div> |
||
508 | <div class="list-group-item clearfix"> |
||
1670 | jmachado | 509 | <div class=" col-md-2 control-label">Titulo:</div> |
510 | <div class="col-md-10 control-label"> |
||
1675 | jmachado | 511 | <input ng-disabled="f.visible == false" type="text" class="form-control" ng-model="f.title"/> |
1670 | jmachado | 512 | </div> |
513 | </div> |
||
514 | <div class="list-group-item clearfix"> |
||
515 | <div class="col-md-2 control-label">Descrição:</div> |
||
516 | <div class="col-md-10 control-label"> |
||
1675 | jmachado | 517 | <textarea ng-disabled="f.visible == false" rows="3" class="form-control" ng-model="f.description"></textarea> |
1670 | jmachado | 518 | </div> |
519 | </div> |
||
520 | </div> |
||
521 | </div> |
||
522 | </div> |
||
523 | |||
524 | </div> |
||
525 | <!--Seccao de DocumentFiles--> |
||
526 | |||
527 | |||
528 | |||
529 | <!--Seccao de uploadedFiles--> |
||
530 | <div class="panel panel-info"> |
||
531 | <div class="panel-heading">Carregar Ficheiros Novos</div> |
||
532 | <div class="panel-body"> |
||
533 | |||
534 | |||
535 | |||
536 | <input type="hidden" id="UPLOADED_FILES_RESULT" value=""/> |
||
537 | <a class="btn btn-default" href="#" |
||
1675 | jmachado | 538 | data-title="Importação de Ficheiros" |
1670 | jmachado | 539 | data-toggle="modal" |
540 | data-target="#filesUploadModal" |
||
1675 | jmachado | 541 | data-multiple="true" |
1670 | jmachado | 542 | data-jsontargetid="#UPLOADED_FILES_RESULT"> |
543 | Carregar Ficheiros <span class="glyphicon glyphicon-upload"/> |
||
544 | </a> |
||
545 | |||
1675 | jmachado | 546 | |
1670 | jmachado | 547 | <div ng-show="jsonFiles.uploadedFiles.length > 0"> |
548 | <h2>Ficheiros Carregados Provisórios</h2> |
||
1675 | jmachado | 549 | <div> |
550 | <div class="list-group clearfix" ng-repeat="f in jsonFiles.uploadedFiles" > |
||
1670 | jmachado | 551 | <div class="list-group-item clearfix"> |
1675 | jmachado | 552 | <div class="col-md-10" ng-class="{'alert-warning': f.id}"> |
1670 | jmachado | 553 | <img src="<%=request.getContextPath()%>/imgs/mime/{{ f.extension }}.gif"/> - {{ f.fileName }} {{ (f.fileSize / 1024)| number:0 }}KB |
554 | </div> |
||
555 | <div class="col-md-2"> |
||
556 | <button class="btn btn-danger" type="button" ng-click="removeFileFromModel($index)"><span class="glyphicon glyphicon-remove"/></button> |
||
557 | </div> |
||
558 | </div> |
||
559 | <div class="list-group-item clearfix"> |
||
1675 | jmachado | 560 | <div class=" col-md-2 control-label">Controlo de Acesso:</div> |
561 | <div class="col-md-6 control-label"> |
||
562 | <select class="form-control chosenOff" type="text" ng-model="f.accessControl" ng-options="o.v as o.n for o in [{ n: 'Publico', v: 'resource.access.publicDomain' }, { n: 'Privado', v: 'resource.access.privateDomain' }, { n: 'Interno', v: 'resource.access.authenticatedDomain' }]">> |
||
563 | |||
564 | </select> |
||
565 | </div> |
||
566 | </div> |
||
567 | <div class="list-group-item clearfix"> |
||
568 | <div class=" col-md-2 control-label">Visivel:</div> |
||
569 | <div class="col-md-6 control-label"> |
||
570 | <select class="form-control chosenOff" type="text" ng-model="f.visible" ng-options="o.v as o.n for o in [{ n: 'Sim', v: true }, { n: 'Não', v: false }]">> |
||
571 | |||
572 | </select> |
||
573 | </div> |
||
574 | </div> |
||
575 | <div class="list-group-item clearfix"> |
||
1670 | jmachado | 576 | <div class=" col-md-2 control-label">Titulo:</div> |
577 | <div class="col-md-10 control-label"> |
||
578 | <input type="text" class="form-control" ng-model="f.title"/> |
||
579 | </div> |
||
580 | </div> |
||
581 | <div class="list-group-item clearfix"> |
||
582 | <div class="col-md-2 control-label">Descrição:</div> |
||
583 | <div class="col-md-10 control-label"> |
||
584 | <textarea rows="3" class="form-control" ng-model="f.description"></textarea> |
||
585 | </div> |
||
586 | </div> |
||
587 | </div> |
||
588 | </div> |
||
589 | </div> |
||
590 | </div> |
||
591 | </div> |
||
592 | <!--Seccao de uploadedFiles--> |
||
593 | |||
594 | |||
1675 | jmachado | 595 | <div class="row"> |
596 | <div class="col-md-6"><button class="btn btn-success" ng-click="submitForm()">Salvar</button></div> |
||
597 | <div class="col-md-6"><a class="btn btn-danger" href="<%=request.getContextPath()%>/user/homePae.do">Cancelar</a></div> |
||
598 | </div> |
||
1670 | jmachado | 599 | |
600 | |||
1675 | jmachado | 601 | |
602 | |||
1670 | jmachado | 603 | </div> |
604 | </div> |
||
1675 | jmachado | 605 | <%-- |
1670 | jmachado | 606 | <pre> |
607 | {{doc | json}} |
||
608 | </pre> |
||
1675 | jmachado | 609 | <pre> |
610 | {{jsonFiles | json}} |
||
611 | |||
612 | </pre>--%> |
||
1670 | jmachado | 613 | </div> |
614 | |||
615 | <% |
||
616 | AbstractDao.getCurrentSession().getTransaction().commit(); |
||
617 | %> |
||
1683 | jmachado | 618 | </div> |