Rev 1710 | Rev 1724 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<%@ page import="jomm.dao.impl.AbstractDao" %>
<%@ page import="org.json.JSONArray" %>
<%@ page import="pt.estgp.estgweb.domain.RepositoryDocumentInterfaceImpl" %>
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ page import="pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService" %>
<%@ page import="pt.estgp.estgweb.services.data.repositorydocuments.interfaces.RepositoryInterface" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="bacoTags" tagdir="/WEB-INF/tags" %>
<%@ taglib prefix="logic" uri="/WEB-INF/tlds/struts-logic.tld" %>
<%@ taglib prefix="html" uri="/WEB-INF/tlds/struts-html.tld" %>
<%@ taglib prefix="bean" uri="/WEB-INF/tlds/struts-bean.tld" %>
<%@ taglib prefix="baco" uri="http://www.estgp.pt/baco/" %>
<baco:hasNotRole role="admin,all">
<div class="web-messages">
<div class="alert alert-warning">Esta funcionalidade só pode ser utilizada por admnistradores</div>
</div>
</baco:hasNotRole>
<baco:hasRole role="admin,all">
<%
AbstractDao.getCurrentSession().beginTransaction();
JSONArray collectionsArrayOrderedTree = new RepositoryDocumentService().loadCollectionsOrderedAsTree();
AbstractDao.getCurrentSession().getTransaction().commit();
%>
<div id="appToolsRepositoryApp" ng-app="appToolsRepositoryApp" ng-controller="appToolsRepositoryController">
<script>
var appToolsRepositoryApp = angular.module('appToolsRepositoryApp', ['ui.tree']);
GLOBAL_BacoAngularAppDependencies.push('appToolsRepositoryApp');
<!-- estes codigos todos do remove e do toggle e etc's não mechi em nada limitei-me a copiar dos gajos-->
appToolsRepositoryApp.controller('appToolsRepositoryController', function ($scope)
{
$scope.sections = [];
$scope.paragraphSelector = "#plugsection p";
$scope.urlSource = "http://www.ipportalegre.pt/pt/ipp/regulamentos-e-despachos/";
$scope.collections = <%=collectionsArrayOrderedTree.toString()%>;
$scope.pushUrlSource = function()
{
widgetCallWithActionParameters(
"<%=request.getContextPath()%>/user/repositoryDoc.do",
"selectObjectsFromURL",
{
"paragraphSelector" : $scope.paragraphSelector,
"urlSource" : $scope.urlSource
},
"#appToolsRepositoryApp",
function(json)
{
$scope.sections = [];
$scope.sections=json.sections;
$scope.$apply();
$('[data-toggle="tooltip"]').tooltip();
}
);
}
$scope.setModified = function(doc)
{
doc.modified = "true";
}
$scope.setInfoFinanceira = function()
{
$scope.paragraphSelector = "#plugsection p, #plugsection h2";
$scope.urlSource = "http://www.ipportalegre.pt/pt/ipp/servicos/administrativos-e-financeiros/situacao-financeira/";
}
$scope.setRecursosHumanos = function()
{
$scope.paragraphSelector = ".doc, h1, h2, h3, h4";
$scope.urlSource = "http://www.ipportalegre.pt/pt/ipp/servicos/administrativos-e-financeiros/recursos-humanos/";
}
$scope.setContratacaoPublica = function()
{
$scope.paragraphSelector = ".doc, h1, h2, h3, h4";
$scope.urlSource = "http://www.ipportalegre.pt/pt/ipp/servicos/administrativos-e-financeiros/servicos-financeiros/";
}
$scope.setRegulamentacaointerna = function()
{
$scope.paragraphSelector = ".multicolumn4 p, h3, h4, h2";
$scope.urlSource = "http://www.ipportalegre.pt/pt/ipp/regulamentacao/";
}
$scope.setDespachosPresidente = function()
{
$scope.paragraphSelector = "#plugsection p";
$scope.urlSource = "http://www.ipportalegre.pt/pt/ipp/regulamentos-e-despachos/";
}
$scope.setCollection = function(section,collectionId)
{
for(var i = 0; i < section.documents.length;i++)
{
section.documents[i].document.collection = {};
section.documents[i].document.collection.id = collectionId;
}
}
//Meotodo necessário para incializar os pickers após serem criados
$scope.updateDatetimePickers = function()
{
$('.datetimepicker').datetimepicker({
locale: 'pt',
format: 'YYYY/MM/DD'
});
}
$scope.setDocPublishDate = function ($event,doc) {
var datetimepicker = $($event.target).parents(".form-group").find(".datetimepicker");
$(datetimepicker).datetimepicker({locale: 'pt',format: 'YYYY/MM/DD'})
.on("dp.change", function (data) {
//alert($("#"+datePicker).find("input").val());
doc.document.publishDateStr = $(datetimepicker).find("input").val();
doc.modified = true;
$scope.$apply();
});
}
$scope.submitDocument = function(docContainer,docContainerId)
{
if(!docContainer.document.collection)
{
alert("Escolha uma colecção por favor");
}
else
{
docContainer.uploading = "true";
widgetCallWithActionParameters(
"<%=request.getContextPath()%>/user/repositoryDoc.do",
"saveRepositoryDocument",
{
"doc" : JSON.stringify(docContainer.document),
"uploadedFiles" : JSON.stringify(docContainer.filesUploadResult)
},
"#"+docContainerId,
function(docJson)
{
docContainer.document = docJson;
docContainer.uploaded = "true";
docContainer.filesUploadResult = {
"service": null,
"uploadedFiles": []
};
delete docContainer.uploading;
if(docContainer.modified)
delete docContainer.modified;
$scope.$apply();
},
function(json){
//onError
alert("ERRO: " + JSON.stringify(json));
delete docContainer.uploading;
$scope.$apply();
}
);
}
}
});
</script>
<style>
.uploaded
{
background-color: rgba(0, 255, 0, 0.13);
border: 1px dashed #008000;
}
</style>
<div class="panel panel-default">
<div class="panel-heading">
Ferramenta de Importação de Documentos a Partir de Sites WEB
</div>
<div class="panel-body">
<div class="web-messages"></div>
<button class="btn btn-default" type="button" ng-click="setRegulamentacaointerna()">Regulamentação Interna</button>
<button class="btn btn-default" type="button" ng-click="setDespachosPresidente()">Despachos do Presidente</button>
<button class="btn btn-default" type="button" ng-click="setContratacaoPublica()">Contratação Pública</button>
<button class="btn btn-default" type="button" ng-click="setRecursosHumanos()">Recursos Humanos</button>
<button class="btn btn-default" type="button" ng-click="setInfoFinanceira()">Informação Finânceira</button>
<div>
<p>Regras de Parsing:</p>
<ul>
<li>Considera qualquer elemento selecionado um possivel candidato a documento ou secção</li>
<li>Separa o elemento em linhas partindo nos <br> , se não existir link esse é o titulo do documento</li>
<li>Se existir link o texto será o titulo do ficheiro e o link é guardado</li>
<li>Limpa traços nos inicios das linhas</li>
</ul>
</div>
<div class="form-group">
<label class="control-label">Selector de Paragrafos HTML</label>
<div>
<input type="text" class="form-control" ng-model="paragraphSelector"/>
</div>
</div>
<div class="form-group">
<label class="control-label">URL Fonte de Documentos (Arranje o seu HTML para poder ser dividido em elementos todos iguais: exemplo um paragrafo por documento)</label>
<div>
<input type="text" class="form-control" ng-model="urlSource" placeholder="URL"/>
</div>
</div>
<div class="form-group">
<div>
<button type="button" class="btn btn-info" ng-click="pushUrlSource()">Obter</button>
</div>
</div>
<div class="repository-interface">
<div class="repository-intro repository-interface-intro">
<div class="repository-title">
Documentos Importados
</div>
<div class="repository-description">
Documentos importados em tempo real para confirmação pelo Administrador antes de importar para o sistema de repositorio digital.
</div>
</div>
<div class="repository-column">
<div class="repository-block" ng-repeat="section in sections">
<div class="repository-intro">
<div class="repository-title clearfix" style="padding: 10px;background-color: rgba(212, 168, 0, 0.5)">
<div class="col-md-6">
<span class="btn-xs glyphicon glyphicon-bookmark"></span>
{{section.section}}
</div>
<div class="col-md-1 control-label">
Colecção:
</div>
<div class="col-md-5">
<select ng-change="setCollection(section,section.choosedCol)" place-holder="Escolha Colecção" ng-model="section.choosedCol" class="form-control chosenOff" ng-options="collection.id as collection.pathName for collection in collections">
</select>
</div>
</div>
</div>
<div ng-class="{'uploaded':doc.uploaded,'modified':doc.modified}" ng-repeat="doc in section.documents" class="clearfix" ng-attr-id="{{'doc' + $index + '_' + $parent.$index}}" ng-init="sectionIndex = $parent.$index">
<div class="col-md-1">
<img ng-if="doc.uploading" src="<%=request.getContextPath()%>/imgs/wait.gif">
<button ng-if="!(doc.uploaded || doc.uploading)" ng-click="submitDocument(doc,'doc' + $index + '_' + sectionIndex)" type="button" data-toggle="tooltip" title="Depositar" class="btn btn-success" style="width: 100%">
<span class="icon icon-upload3" style="font-size: 2.0em"></span>
</button>
<a ng-if="doc.document.id" style="width: 100%" target="_blank" class="btn btn-warning" ng-href="<%=request.getContextPath()%>/user/repositoryEditDocument.do?repositoryDocumentId={{doc.document.id}}">
<span class="glyphicon glyphicon-pencil" style="font-size: 1.5em"></span>
</a>
<button style="margin-top: 5px" ng-if="doc.uploaded && doc.modified" ng-click="submitDocument(doc,'doc' + $index + '_' + sectionIndex)" type="button" data-toggle="tooltip" title="Depositar" class="btn btn-default" style="width: 100%">
<span class="glyphicon glyphicon-floppy-disk" style="font-size: 1.5em"></span>
</button>
</div>
<div class="col-md-11">
<div class="web-messages"></div>
<div class="repository-document clearfix">
<div class="repository-title clearfix" style="padding:5px">
<span class="title col-md-1">
<span class="glyphicon glyphicon-file"></span>
</span>
<span class="title col-md-5">
<input type="text" class="form-control" ng-change="setModified(doc)" ng-model="doc.document.title">
</span>
<div class="col-md-4">
<select place-holder="Escolha Colecção" ng-change="setModified(doc)" ng-model="doc.document.collection.id" class="form-control chosenOff" ng-options="collection.id as collection.pathName for collection in collections">
</select>
</div>
<div class="col-md-2 form-group">
<div class='input-group date datetimepicker' ng-click="setDocPublishDate($event,doc)">
<input ng-model="doc.document.publishDateStr" type="text" class="form-control" ng-init="updateDatetimePickers()"/>
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
</div>
<div class="repository-description"></div>
<div class="repository-document-files" style="padding-left:20px;width: 100%" ng-repeat="file in doc.filesUploadResult.uploadedFiles">
<div class="repository-document-file clearfix" style="width: 100%;" >
<div class="repository-title border-radius-bottom clearfix" style="padding: 5px">
<div class="title col-md-1">
<span class="glyphicon glyphicon-paperclip"></span>
</div>
<div class="col-md-11">
<input type="text" class="form-control" ng-model="file.title">
</div>
<div class="col-md-1">
<a data-toggle="tooltip" title="Descarregar" class="btn btn-default pull-left repository-file-icon" target="_blank" ng-href="{{file.tmpName}}"><span class="icon icon-file-pdf icon-large"></span></a>
</div>
<div class="col-md-11">
<input type="text" class="form-control" ng-model="file.tmpName">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<pre>
{{urlSource}}
</pre>
<pre>
{{sections | json}}
</pre>
</div>
</div>
</div>
</baco:hasRole>
Generated by GNU Enscript 1.6.5.2.