Subversion Repositories bacoAlunos

Rev

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 &lt;br&gt; , 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.