Subversion Repositories bacoAlunos

Rev

Rev 1327 | Rev 1329 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<%@ page import="pt.estgp.estgweb.web.filters.TopImageFilter" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<meta name="viewport" content="width=device-width, initial-scale=1">




<%
    String bacoTheme = (String) request.getAttribute("pt_estgp_estgweb_theme");
    if(bacoTheme == null)
        bacoTheme = "estg";
%>

<link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/yui/build/menu/assets/skins/sam/menu.css" />
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/yui/build/button/assets/skins/sam/button.css" />
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/yui/build/fonts/fonts-min.css" />
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/yui/build/container/assets/skins/sam/container.css" />
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/yui/build/editor/assets/skins/sam/editor.css" />

<!--OFF CANVAS É PARA METER O BODY ABAIXO DO MENU DESLIZANTE DE TOPO-->
<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/offcanvas.css"/>


<script type="text/javascript" src="<%=request.getContextPath()%>/js/functions.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/js/ajax.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/js/compactedPopup.js"></script>
<!--
<style>
    body
    {
        background: url('http://www.ist.utl.pt/img/page/cubes.png')
    }
</style>-->
<!--
<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/js/jquery/style.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/js/jquery-latest.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/js/jquery.tablesorter.js"></script>
-->

<%
        String link = (String) request.getAttribute(TopImageFilter.TOP_CSS);
        if (link != null)
        {
    %>
    <link type="text/css" rel="stylesheet" href="<%=link%>"/>
    <%
        }
    %>

<script type="text/javascript" language="JavaScript">
    var cal = new CalendarPopup();

   /* //TABLE SORTER
    $(document).ready(function() 
        { 
            $("#myTable").tablesorter();

        } 
    );*/

</script>



<script type="text/javascript" src="<%=request.getContextPath()%>/js/jquerytables/jquery-2.1.4.min.js"></script>

<!--READY FIRST EVENT-->
<script>
    $(document).ready(
            function()
            {
                $(".baco-please-wait-target").hide();
                $(".baco-please-wait").html(
                        "<div class=\"panel panel-info\">" +
                                "<div class=\"panel-body\">" +
                                "<p>Por favor aguarde um momento, o sistema está a carregar <img src=\"<%=request.getContextPath()%>/imgs/wait.gif\"/></p>" +
                                "</div>" +
                                "</div>");
                setTimeout("removeBacoWait()", 2000);

            }
    );
    function removeBacoWait()
    {
        $(".baco-please-wait").fadeOut(300, function(){ $(this).remove();});
        $(".baco-please-wait-target").fadeIn(300, function(){ $(this).show();});
    }
</script>
<style>
    .baco-please-wait-target
    {
        display: none;
    }
</style>
<!--READY FIRST EVENT-->

<script type="text/javascript" src="<%=request.getContextPath()%>/js/jquerytables/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/js/jquerytables/jquery.tablesorter.widgets.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/js/jquerytables/bootstrap/js/bootstrap.js"></script>
<link rel="stylesheet" href="<%=request.getContextPath()%>/js/jquerytables/bootstrap/css/bootstrap.css" type="text/css"/>
<link rel="stylesheet" href="<%=request.getContextPath()%>/js/jquerytables/bootstrap/icomoon/style.css" type="text/css"/>
<!--<link rel="stylesheet" href="<%=request.getContextPath()%>/js/jquerytables/bootstrap/css/bootstrap-theme.css" type="text/css"/>-->
<link rel="stylesheet" href="<%=request.getContextPath()%>/js/jquerytables/jquerytable/theme.estg.css" type="text/css"/>
<link rel="stylesheet" href="<%=request.getContextPath()%>/js/jquerytables/jquerytable/filter.formatter.css" type="text/css"/>
<!--<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/variables.less"/>
<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/lavish-bootstrap.css"/>-->
<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/<%=bacoTheme%>/lavish-bootstrap.css"/>
<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/<%=bacoTheme%>/variables.scss"/>



<%--SCRIPTS DO CALENDARIO BOOTSTRAP--%>
<%--<script type="text/javascript" src="/bower_components/jquery/jquery.min.js"></script>--%>
<script type="text/javascript" src="<%=request.getContextPath()%>/js/bower_components/moment/min/moment.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/js/bower_components/moment/locale/pt.js"></script>
<%--<script type="text/javascript" src="/bower_components/bootstrap/dist/js/bootstrap.min.js"></script>--%>
<script type="text/javascript" src="<%=request.getContextPath()%>/js/bower_components/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js"></script>
<%--<link rel="stylesheet" href="/bower_components/bootstrap/dist/css/bootstrap.min.css" />--%>
<link rel="stylesheet" href="<%=request.getContextPath()%>/js/bower_components/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.min.css" />

<script type="text/javascript">
    $(function () {
        $('.datetimepicker').datetimepicker({
            locale: 'pt',
            format: 'YYYY/MM/DD'
        });
    });
</script>

<script type="text/javascript" language="JavaScript">
    var cal = new CalendarPopup();

    /*
    //TABLE SORTER
    $(document).ready(function()
            {
                $("#myTable").tablesorter();

            }
    );
*/

    function isBreakpoint( alias ) {
        return $('.device-' + alias).is(':visible');
    }








    $(document).ready(
            function(){
                $("#network").hide();
                $("#network2").hide();
                $("#network").mouseleave(
                        function(){
                            $("#network").animate({
                                height: 'hide'
                            });
                        }

                );
                $("#network2").mouseleave(
                        function(){
                            $("#network2").animate({
                                height: 'hide'
                            });
                        }

                );
            }
    );

    function openNetwork(id){

        $(".slideMenu").each(function()
        {
            if($(this).attr("id") != id)
            {
                $(this).animate({
                    height: 'hide'
                },200);
            }
        });

        $("#"+id).animate({
            height: 'toggle'
        },600);

    }



</script>
<script language="javascript">

    function ping()
    {
        $.ajax({
            url: "<%=request.getContextPath()%>/ping.jsp",
            type: "POST",
            dataType: "json",
            success: function(resposta) {
                setTimeout("ping()",10000);
            },
            error: function() {
                setTimeout("ping()",10000);
            }
        });

    }
    $(document).ready(function()
            {

                return evaluateTableSorters();

            }

    );

    function evaluateTableSorters()
    {
        evaluateTableSortersInside("");
    }
    function evaluateTableSortersInside(insideDiv)
    {
        if($(insideDiv + " #myTable"))
        {
            $(insideDiv + " #myTable").tablesorter({
                        theme: 'blue',


                        sortMultiSortKey: 'altKey',
                        //sortList: [[0,0]],
                        widgets: ["zebra","filter"],

                        ignoreCase: false,
                        widthFixed : true,
                        widgetOptions : {filter_reset : 'button.reset',filter_columnFilters : true},
                        textExtraction: function(node) {
                            // extract data from markup and return it
                            if($(node).find(':input').size()>0)
                            {
                                var values = $(node).find(":input").map(function() {
                                    return $(this).val()
                                }).get().join(",");


                                return values;
                            }
                            return $(node).text();
                        },
                        widgetOptions : {

                            filter_excludeFilter : {
                                // target a column by class name or column index (zero-based)
                                '.filter-false' : 'range'
                            }

                        }

                        /*        ,

                         widgetOptions : {

                         // filter_anyMatch options was removed in v2.15; it has been replaced by the filter_external option

                         // If there are child rows in the table (rows with class name from "cssChildRow" option)
                         // and this option is true and a match is found anywhere in the child row, then it will make that row
                         // visible; default is false
                         filter_childRows : false,

                         // if true, filter child row content by column; filter_childRows must also be true
                         filter_childByColumn : false,

                         // if true, a filter will be added to the top of each table column;
                         // disabled by using -> headers: { 1: { filter: false } } OR add class="filter-false"
                         // if you set this to false, make sure you perform a search using the second method below
                         filter_columnFilters : true,

                         // if true, allows using "#:{query}" in AnyMatch searches (column:query; added v2.20.0)
                         filter_columnAnyMatch: true,

                         // extra css class name (string or array) added to the filter element (input or select)
                         filter_cellFilter : '',

                         // extra css class name(s) applied to the table row containing the filters & the inputs within that row
                         // this option can either be a string (class applied to all filters) or an array (class applied to indexed filter)
                         filter_cssFilter : '', // or []

                         // add a default column filter type "~{query}" to make fuzzy searches default;
                         // "{q1} AND {q2}" to make all searches use a logical AND.
                         filter_defaultFilter : {},

                         // filters to exclude, per column
                         filter_excludeFilter : {},

                         // jQuery selector (or object) pointing to an input to be used to match the contents of any column
                         // please refer to the filter-any-match demo for limitations - new in v2.15
                         filter_external : '',

                         // class added to filtered rows (rows that are not showing); needed by pager plugin
                         filter_filteredRow : 'filtered',

                         // add custom filter elements to the filter row
                         // see the filter formatter demos for more specifics
                         filter_formatter : null,

                         // add custom filter functions using this option
                         // see the filter widget custom demo for more specifics on how to use this option
                         filter_functions : null,

                         // hide filter row when table is empty
                         filter_hideEmpty : true,

                         // if true, filters are collapsed initially, but can be revealed by hovering over the grey bar immediately
                         // below the header row. Additionally, tabbing through the document will open the filter row when an input gets focus
                         filter_hideFilters : true,

                         // Set this option to false to make the searches case sensitive
                         filter_ignoreCase : true,

                         // if true, search column content while the user types (with a delay)
                         filter_liveSearch : true,

                         // a header with a select dropdown & this class name will only show available (visible) options within that drop down.


                         // default placeholder text (overridden by any header "data-placeholder" setting)
                         filter_placeholder : { search : '', select : '' },

                         // jQuery selector string of an element used to reset the filters
                         filter_reset : 'button.reset',

                         // Use the $.tablesorter.storage utility to save the most recent filters (default setting is false)
                         filter_saveFilters : true,

                         // Delay in milliseconds before the filter widget starts searching; This option prevents searching for
                         // every character while typing and should make searching large tables faster.
                         filter_searchDelay : 300,

                         // allow searching through already filtered rows in special circumstances; will speed up searching in large tables if true
                         filter_searchFiltered: true,

                         // include a function to return an array of values to be added to the column filter select
                         filter_selectSource  : null,

                         // if true, server-side filtering should be performed because client-side filtering will be disabled, but
                         // the ui and events will still be used.
                         filter_serversideFiltering : false,

                         // Set this option to true to use the filter to find text from the start of the column
                         // So typing in "a" will find "albert" but not "frank", both have a's; default is false
                         filter_startsWith : false,

                         // Filter using parsed content for ALL columns
                         // be careful on using this on date columns as the date is parsed and stored as time in seconds
                         filter_useParsedData : false,

                         // data attribute in the header cell that contains the default filter value
                         filter_defaultAttrib : 'data-value',

                         // filter_selectSource array text left of the separator is added to the option value, right into the option text
                         filter_selectSourceSeparator : '|'

                         }*/
                    }
            );
        }

        if($(insideDiv + " #myTable2"))
        {
            $(insideDiv + " #myTable2").tablesorter({
                        theme: 'blue',
                        sortMultiSortKey: 'altKey',
                        //sortList: [[0,0]],
                        widgets: ["zebra","filter"],
                        ignoreCase: false,
                        widthFixed : true,
                        widgetOptions : {filter_reset : 'button.reset',filter_columnFilters : true,
                            filter_excludeFilter : {
                                // target a column by class name or column index (zero-based)
                                '.filter-false' : 'range'
                            }},
                        textExtraction: function(node) {
                            // extract data from markup and return it
                            if($(node).find(':input').size()>0)
                            {
                                var values = $(node).find(":input").map(function() {
                                    return $(this).val()
                                }).get().join(",");


                                return values;
                            }
                            return $(node).text();
                        }
                    }
            );
        }

        if($(insideDiv + " .tablesortersimple"))
        {
            $(insideDiv + " .tablesortersimple").tablesorter({
                        theme: 'blue',
                        sortMultiSortKey: 'altKey',
                        //sortList: [[0,0]],
                        widgets: ["zebra","filter"],
                        ignoreCase: false,
                        widthFixed : true,
                        widgetOptions : {filter_reset : 'button.reset',filter_columnFilters : true,

                            filter_excludeFilter : {
                                // target a column by class name or column index (zero-based)
                                '.filter-false' : 'range'
                            }
                        },
                        textExtraction: function(node) {
                            // extract data from markup and return it
                            if($(node).find(':input').size()>0)
                            {
                                var values = $(node).find(":input").map(function() {
                                    return $(this).val()
                                }).get().join(",");


                                return values;
                            }
                            return $(node).text();
                        }
                    }
            );
        }
        /*
         if($(".tablesorterfiltered"))
         {
         $(".tablesorterfiltered").tablesorter({
         theme: 'blue',


         sortMultiSortKey: 'altKey',
         //sortList: [[0,0]],
         widgets: ["zebra","filter"],

         ignoreCase: false,
         widthFixed : true,
         widgetOptions : {filter_reset : 'button.reset',filter_columnFilters : true},
         textExtraction: function(node) {
         // extract data from markup and return it
         if($(node).find(':input').size()>0)
         {
         var values = $(node).find(":input").map(function() {
         return $(this).val()
         }).get().join(",");


         return values;
         }
         return $(node).text();
         }
         }
         );
         }*/
        if($(insideDiv + " .tablesorterfiltered"))
        {
            $(insideDiv + " .tablesorterfiltered").tablesorter({
                        theme: 'blue',


                        sortMultiSortKey: 'altKey',
                        //sortList: [[0,0]],
                        widgets: ["zebra","filter"],

                        ignoreCase: false,
                        widthFixed : true,
                        widgetOptions : {filter_reset : 'button.reset',filter_columnFilters : true,

                            filter_excludeFilter : {
                                // target a column by class name or column index (zero-based)
                                '.filter-false' : 'range'


                            }
                        },
                        textExtraction: function(node) {
                            // extract data from markup and return it
                            if($(node).find(':input').size()>0)
                            {
                                var values = $(node).find(":input").map(function() {
                                    return $(this).val()
                                }).get().join(",");


                                return values;
                            }
                            return $(node).text();
                        }
                    }
            );
        }



        // External search
        // buttons set up like this:
        // <button type="button" data-filter-column="4" data-filter-text="2?%">Saved Search</button>
        $(insideDiv + 'button[data-filter-column]').click(function(){
            /*** first method *** data-filter-column="1" data-filter-text="!son"
             add search value to Discount column (zero based index) input */
            var filters = [],
                    $t = $(this),
                    col = $t.data('filter-column'), // zero-based index
                    txt = $t.data('filter-text') || $t.text(); // text to add to filter

            filters[col] = txt;
            // using "table.hasFilters" here to make sure we aren't targeting a sticky header
            if($(insideDiv + ' #myTable'))
                $.tablesorter.setFilters( $(insideDiv + ' #myTable'), filters, true ); // new v2.9
            if($(insideDiv + ' #myTable2'))
                $.tablesorter.setFilters( $(insideDiv + ' #myTable2'), filters, true ); // new v2.9
            if($(insideDiv + ' .tablesorterfiltered'))
                $.tablesorter.setFilters( $(insideDiv + ' .tablesorterfiltered'), filters, true ); // new v2.9

            /*
             if($('.tablesorterfiltered'))
             $.tablesorter.setFilters( $('.tablesorterfiltered'), filters, true ); // new v2.9
             */
            /** old method (prior to tablsorter v2.9 ***
             var filters = $('table.tablesorter').find('input.tablesorter-filter');
             filters.val(''); // clear all filters
             filters.eq(col).val(txt).trigger('search', false);
             ******/

            /*** second method ***
             this method bypasses the filter inputs, so the "filter_columnFilters"
             option can be set to false (no column filters showing)
             ******/
            /*
             var columns = [];
             columns[5] = '2?%'; // or define the array this way [ '', '', '', '', '', '2?%' ]
             $('table').trigger('search', [ columns ]);
             */

            return false;
        });
    }
</script>
<style>
    th.headerSortUp {
        background-image: url(<%=request.getContextPath()%>/js/jquerytables/jquerytable/asc.gif);
        background-color: #3399FF;
    }
    th.headerSortDown {
        background-image: url(<%=request.getContextPath()%>/js/jquerytables/jquerytable/desc.gif);
        background-color: #3399FF;
    }
    .dorsalActivado span, .dorsal span
    {
        text-align: center;
        background-color: white;
        padding: 3px;
        border: 1px solid black;
        font-weight: bold;
        white-space: nowrap;
    }

    .tablesorterfiltered thead .disabled {display: none}

</style>




<%--SCRIPTS DO EDITOR DE HTML 5--%>

<!--

<link rel="apple-touch-icon" href="//mindmup.s3.amazonaws.com/lib/img/apple-touch-icon.png" />
-->
<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">
<%--<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>--%>
<script src="<%=request.getContextPath()%>/js/bootstrap-wysiwyg-master/external/google-code-prettify/prettify.js"></script>
<link href="<%=request.getContextPath()%>/js/bootstrap-wysiwyg-master/index.css" rel="stylesheet">
<script src="<%=request.getContextPath()%>/js/bootstrap-wysiwyg-master/bootstrap-wysiwyg.js"></script>





<script>

    function initToolbarBootstrapBindings() {
        var fonts = ['Serif', 'Sans', 'Arial', 'Arial Black', 'Courier',
                    'Courier New', 'Comic Sans MS', 'Helvetica', 'Impact', 'Lucida Grande', 'Lucida Sans', 'Tahoma', 'Times',
                    'Times New Roman', 'Verdana'],
                fontTarget = $('[title=Font]').siblings('.dropdown-menu');
        $.each(fonts, function (idx, fontName) {
            fontTarget.append($('<li><a data-edit="fontName ' + fontName +'" style="font-family:\''+ fontName +'\'">'+fontName + '</a></li>'));
        });
        $('a[title]').tooltip({container:'body'});
        $('.dropdown-menu input').click(function() {return false;})
                .change(function () {$(this).parent('.dropdown-menu').siblings('.dropdown-toggle').dropdown('toggle');})
                .keydown('esc', function () {this.value='';$(this).change();});

        $('[data-role=magic-overlay]').each(function () {
            var overlay = $(this), target = $(overlay.data('target'));
            overlay.css('opacity', 0).css('position', 'absolute').offset(target.offset()).width(target.outerWidth()).height(target.outerHeight());
        });
        if ("onwebkitspeechchange"  in document.createElement("input")) {
            var editorOffset = $('#editor').offset();
            $('#voiceBtn').css('position','absolute').offset({top: editorOffset.top, left: editorOffset.left+$('#editor').innerWidth()-35});
        } else {
            $('#voiceBtn').hide();
        }
    };
    function showErrorAlert (reason, detail) {
        var msg='';
        if (reason==='unsupported-file-type') { msg = "Unsupported format " +detail; }
        else {
            console.log("error uploading file", reason, detail);
        }
        $('<div class="alert"> <button type="button" class="close" data-dismiss="alert">&times;</button>'+
                '<strong>File upload error</strong> '+msg+' </div>').prependTo('#alerts');
    };



    //Wysywyg Editor Toolbar
    $(document).ready(function(){
        initToolbarBootstrapBindings();
        $('#editor').wysiwyg({ fileUploadError: showErrorAlert} );
        window.prettyPrint && prettyPrint();
    });


    /******
     * Function for Files Version service data.jsp
     *
     */
    function submitDataVersionForm()
    {
        $.post( "<%=request.getContextPath()%>/user/data.jsp?id=" + $("#filesVersionsId").val(), function( data ) {
            $("#contentVersions").html($( data ).find("#contentVersions").html());
            evaluateTableSorters();
        });
    }

    function invoqueDataVersionForm(id)
    {
        $("#filesVersionsId").val(id);
        submitDataVersionForm();
        $('#historyFilesModal').modal({
            show: 'true'
        });
    }

</script>

<%--O nosso estilo fica aqui para se sobrepor--%>
<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/style.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"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta charset="UTF-8">

Generated by GNU Enscript 1.6.5.2.