<commit_before><%            /**
     * ************************************************************************
     * Copyright (c) 2011: I<NAME> Fisica Nucleare (INFN), Italy
     * Consorzio COMETA (COMETA), Italy
     *
     * See http://www.infn.it and and http://www.consorzio-cometa.it for details
     * on the copyright holders.
     *
     * Licensed under the Apache License, Version 2.0 (the "License"); you may
     * not use this file except in compliance with the License. You may obtain a
     * copy of the License at
     *
     * http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
     * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
     * License for the specific language governing permissions and limitations
     * under the License.
     * **************************************************************************
     */
    /**
     *
     *
     * @author s.monforte - r.ricceri
     */

%>
<%@page import="com.liferay.portal.kernel.util.ParamUtil"%>
<%@page import="com.liferay.portal.kernel.portlet.LiferayWindowState"%>
<%@page import="com.liferay.portal.kernel.portlet.LiferayPortlet"%>
<%@page import="java.util.jar.Attributes.Name"%>
<%@page import="com.liferay.portal.theme.ThemeDisplay"%>
<%@page import="com.liferay.portal.kernel.util.WebKeys"%>
<%@page import="com.liferay.portal.model.Company"%>
<%@page import="com.liferay.portal.util.PortalUtil;"%>
<%@page import="it.infn.ct.GridEngine.Job.JSagaJobSubmission"%>
<%@page import="java.text.DateFormat"%>
<%@page import="java.util.Vector"%>
<%@page import="com.google.common.base.Predicate"%>
<%@page import="com.google.common.collect.Iterables"%>
<%@page import="com.google.common.collect.Lists"%>
<%@page import="it.infn.ct.GridEngine.UsersTracking.ActiveInteractions"%>
<%@page import="com.liferay.portal.service.UserServiceUtil"%>
<%@page import="com.liferay.portal.model.User"%>
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="javax.portlet.*"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="liferay-ui" uri="http://liferay.com/tld/ui" %>
<%@taglib prefix="aui" uri="http://liferay.com/tld/aui"%>
<%@taglib prefix="portlet" uri="http://java.sun.com/portlet_2_0" %>
<portlet:defineObjects />
<style type="text/css">
    a.tab {color:#B22222;}
    a.tab:hover {color:#B22222;}
    a.tab:link {color:#B22222;}
    @media screen {
        #view tbody td span { display: none;}
    }
    @media print {
        #view tbody td img { display: none;}
        #view tbody td span { display: block;}
    }
</style>
<%  PortletPreferences prefs = renderRequest.getPreferences();
    String tabNames = "Active Jobs List,Done Jobs List";
    String tabs1 = ParamUtil.getString(request, "tabs1", "Active Jobs List");
    PortletURL url = renderResponse.createRenderURL();
    pageContext.setAttribute("tabs1", tabs1);
    
    boolean fgEnabled = portletPreferences.getValue("fgEnabled", "").equals("true");
    String fgHost = "";
    String fgPort = "";
    String fgAPIVer = "";
    if (fgEnabled){
        fgHost = portletPreferences.getValue("fgHost", "");
        fgPort = portletPreferences.getValue("fgPort", "");
        fgAPIVer = portletPreferences.getValue("fgAPIVer", "");
    }

%>


<%! private class supportsGateway implements Predicate<ActiveInteractions> {

        public supportsGateway(String gw) {
            this.value = gw;
        }

        public boolean apply(ActiveInteractions ai) {
            return value.equals(ai.getInteractionInfos()[1]) || "FutureGateway".equals(ai.getInteractionInfos()[1]);
        }
        private String value;
    }
%>

<%! private class isJobStatus implements Predicate<String[]> {

        public isJobStatus(String s) {
            this.status = s;
        }

        public boolean apply(String[] i) {
            return status.equals(i[5]);
        }
        private String status;
    }
%>
<%  User user = UserServiceUtil.getUserById(Long.parseLong(request.getRemoteUser()));
    Vector<ActiveInteractions> aiList = (Vector<ActiveInteractions>) request.getAttribute("jobList");
    Vector<ActiveInteractions> aiListDone = (Vector<ActiveInteractions>) request.getAttribute("jobListdone");
    Company company = PortalUtil.getCompany(request);
    String fgError = (String) request.getAttribute("fg-error");
%>

<liferay-ui:tabs
names="<%= tabNames%>"
url="<%= url.toString()%>"
    />

<c:if test="<%= fgError != null && !fgError.isEmpty()%>">
    <div class="portlet-msg-info">
        <liferay-ui:message key="Unable to contact Futuregateway" />
    </div>
</c:if>
<c:choose>
    <c:when test="${tabs1 == 'Active Jobs List'}" >
        <script type="text/javascript">
            function fnFormatDetails(text)
            {
                var sOut = '<table cellpadding="5" cellspacing="0" border="0" style="padding-left:50px;">';
                sOut += '<tr><td>'+text+'</td></tr>';
                sOut += '</table>';

                return sOut;
            }
 
            var oTable;
            function detailsText(sValue){
                var e = new RegExp(".*<span>(.*)</span>");
                var m = e.exec(sValue);
                if ( m != null ) {
                    return m[1];

                }
                return sValue;
            }
            Array.prototype.unique =                                                                                                                                                           
             function() {                                                                                                                                                                     
                   var a = [];                                                                                                                                                                    
                   var l = this.length;                                                                                                                                                           
                   for(var i=0; i<l; i++) {                                                                                                                                                       
                         for(var j=i+1; j<l; j++) {                                                                                                                                                   
                               // If this[i] is found later in the array                                                                                                                                  
                               if (this[i] === this[j])                                                                                                                                                   
                                     j = ++i;                                                                                                                                                                 
                         }                                                                                                                                                                            
                         a.push(this[i]);                                                                                                                                                             
                   }                                                                                                                                                                              
                   return a;                                                                                                                                                                      
             };
            TableTools.BUTTONS.download = {
                "sAction": "text",
                "sTag": "default",
                "sFieldBoundary": "",
                "sFieldSeperator": "\t",
                "sNewLine": "<br>",
                "sToolTip": "",
                "sButtonClass": "DTTT_button_text download_set",
                "sButtonClassHover": "DTTT_button_text_hover",
                "sButtonText": "Download Job output",
                "mColumns": "all",
                "bHeader": true,
                "bFooter": true,
                "oParams":  { 
                    mode : "set", 
                    cn : "<%=user.getScreenName()%>",
                    Path : "/tmp"
                },
                "sDiv": "",
                "fnMouseover": null,
                "fnMouseout": null,
                "fnInit": function(button,config) {
                    var descriptions = new Array(); 
                    descriptions.push("<option value='all'>All</option>");                                                                                                                                           
                             $.map( $("#view").dataTable().fnGetData(), function(v, i) {     
                                if (v[3] != "RUNNING" && v[3] != "SUBMITTED" && v[3] != "error")                                                                                   
                                    descriptions.push("<option value='"+v[1]+"'>"+v[1]+"</option>");                                                                                                   
                               });                                                                                                                                                                        
                               descriptions = descriptions.unique();
                    $('body').append(                                                                                                          
                    $('<div>', {id : "filter"}).hide().html(                                                                                   
                    "<select style='width:200px' name='ds'>" + descriptions.join() + "</select>"                                       
                ));
                   
                },
        
                "fnSelect": null,
                "fnComplete": null,
                "fnClick": function(button, config) {                                                                                                  
                           $('div#filter').dialog({                                                                                                           
                                       draggable: false,                                                                                                          
                                       resizable: false,                                                                                                          
                                       title: "Select a job set description",                                                                             
                                       maxWidth: 300,                                                                                                             
                                       modal:true,                                                                                                                
                                       buttons: {                                                                                                                 
                                                   "Ok" : function(){                                                                                                 
                                                       var val = $('#filter select option:selected').val();
                        
                                if(val =="all") config.oParams.mode = "all";
                                else config.oParams.mode="set";
                        
                                var url = "<%=renderRequest.getContextPath()%>/jobOutpuRetrive?" + 
                                    $.param(config.oParams) + "&" + $.param({ 'ds' : val}); 
                                window.open(url);
                                document.location.reload(true);
                                $('div#filter').dialog('close');                                                                                   
                                                   }                                                                                                                  
                               }                                                                                                                                  
                         });                                                                                                                                  
                   }
            };

         
            $.fn.dataTableExt.oJUIClasses.sSortAsc  = "chain-table-sort-header ui-state-active";
            $.fn.dataTableExt.oJUIClasses.sSortDesc  = "chain-table-sort-header ui-state-active";
            var oTable;
            $(document).ready(function() {
                oTable = $('#view').dataTable( {
                    "sDom": '<"H"<"clear"T>f<"clear"l><"right"p>t<"F"ip>',
                    "aaSorting": [[ 2, "desc" ]],
                    "bRetrieve": true,
                    "bJQueryUI": true,
                    "oTableTools": {
                        "sSwfPath": "<%=renderRequest.getContextPath()%>/datatables/extras/TableTools/media/swf/copy_cvs_xls_pdf.swf",
                        "aButtons": [
                            "copy",
                            "print",
                            
                            {
                                "sExtends":    "collection",
                                "sButtonText": "Save",
                                "aButtons":    [ "csv", "pdf" ]
                            },
                            "download"   
                        ]
                    },
                    "sPaginationType": "full_numbers"
                });
                new FixedHeader(oTable);
                $('#view tbody td img.more').live('click', function () {

                    var nTr = $(this).parents('tr')[0];
                    if ( oTable.fnIsOpen(nTr) )
                    {
                        /* This row is already open - close it */
                        this.src = "http://datatables.net/release-datatables/examples/examples_support/details_open.png";
                        oTable.fnClose(nTr);
                    }
                    else
                    {
                        /* Open this row */
                        var text = $("span",$(this).parent()).html();
                        this.src = "http://datatables.net/release-datatables/examples/examples_support/details_close.png";
                        oTable.fnOpen( nTr, fnFormatDetails(text), 'details' );
                    }
                } );
                
            });
           
            
        </script>
<aui:script>
    Liferay.provide(
	window,
	'openPopUp',
	function() {
		var A = AUI(); 	
		var dialog = new A.Dialog(
			{
                                bodyContent: '<p>Your download will start soon.</p>',
				destroyOnClose: true,
                                centered: true,
                                resizable: false,
				modal: true,
				title: 'Download',
				width: 200
			}
		).render();
	},
	['aui-dialog']
    ); 
</aui:script>
        <%
            boolean supportsGateway = false;

            if (aiList != null && !aiList.isEmpty()) {
                try {
                    Iterables.find(aiList, new supportsGateway(company.getName()));
                    supportsGateway = true;
                } catch (java.util.NoSuchElementException e) {
                }
            }
            if (supportsGateway) {
                <commit_msg>Some minor changes in Myjobs_view.jsp<commit_after><%            /**
     * ************************************************************************
     * Copyright (c) 2011: <NAME> (INFN), Italy
     * Consorzio COMETA (COMETA), Italy
     *
     * See http://www.infn.it and and http://www.consorzio-cometa.it for details
     * on the copyright holders.
     *
     * Licensed under the Apache License, Version 2.0 (the "License"); you may
     * not use this file except in compliance with the License. You may obtain a
     * copy of the License at
     *
     * http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
     * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
     * License for the specific language governing permissions and limitations
     * under the License.
     * **************************************************************************
     */
    /**
     *
     *
     * @author s.monforte - r.ricceri
     */

%>
<%@page import="com.liferay.portal.kernel.util.ParamUtil"%>
<%@page import="com.liferay.portal.kernel.portlet.LiferayWindowState"%>
<%@page import="com.liferay.portal.kernel.portlet.LiferayPortlet"%>
<%@page import="java.util.jar.Attributes.Name"%>
<%@page import="com.liferay.portal.theme.ThemeDisplay"%>
<%@page import="com.liferay.portal.kernel.util.WebKeys"%>
<%@page import="com.liferay.portal.model.Company"%>
<%@page import="com.liferay.portal.util.PortalUtil;"%>
<%@page import="it.infn.ct.GridEngine.Job.JSagaJobSubmission"%>
<%@page import="java.text.DateFormat"%>
<%@page import="java.util.Vector"%>
<%@page import="com.google.common.base.Predicate"%>
<%@page import="com.google.common.collect.Iterables"%>
<%@page import="com.google.common.collect.Lists"%>
<%@page import="it.infn.ct.GridEngine.UsersTracking.ActiveInteractions"%>
<%@page import="com.liferay.portal.service.UserServiceUtil"%>
<%@page import="com.liferay.portal.model.User"%>
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="javax.portlet.*"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="liferay-ui" uri="http://liferay.com/tld/ui" %>
<%@taglib prefix="aui" uri="http://liferay.com/tld/aui"%>
<%@taglib prefix="portlet" uri="http://java.sun.com/portlet_2_0" %>
<portlet:defineObjects />
<style type="text/css">
    a.tab {color:#B22222;}
    a.tab:hover {color:#B22222;}
    a.tab:link {color:#B22222;}
    @media screen {
        #view tbody td span { display: none;}
    }
    @media print {
        #view tbody td img { display: none;}
        #view tbody td span { display: block;}
    }
</style>
<%  PortletPreferences prefs = renderRequest.getPreferences();
    String tabNames = "Active Jobs List,Done Jobs List";
    String tabs1 = ParamUtil.getString(request, "tabs1", "Active Jobs List");
    PortletURL url = renderResponse.createRenderURL();
    pageContext.setAttribute("tabs1", tabs1);
    
    boolean fgEnabled = portletPreferences.getValue("fgEnabled", "").equals("true");
    String fgHost = "";
    String fgPort = "";
    String fgAPIVer = "";
    if (fgEnabled){
        fgHost = portletPreferences.getValue("fgHost", "");
        fgPort = portletPreferences.getValue("fgPort", "");
        fgAPIVer = portletPreferences.getValue("fgAPIVer", "");
    }

%>


<%! private class supportsGateway implements Predicate<ActiveInteractions> {

        public supportsGateway(String gw) {
            this.value = gw;
        }

        public boolean apply(ActiveInteractions ai) {
            return value.equals(ai.getInteractionInfos()[1]) || "FutureGateway".equals(ai.getInteractionInfos()[1]);
        }
        private String value;
    }
%>

<%! private class isJobStatus implements Predicate<String[]> {

        public isJobStatus(String s) {
            this.status = s;
        }

        public boolean apply(String[] i) {
            return status.equals(i[5]);
        }
        private String status;
    }
%>
<%  User user = UserServiceUtil.getUserById(Long.parseLong(request.getRemoteUser()));
    Vector<ActiveInteractions> aiList = (Vector<ActiveInteractions>) request.getAttribute("jobList");
    Vector<ActiveInteractions> aiListDone = (Vector<ActiveInteractions>) request.getAttribute("jobListdone");
    Company company = PortalUtil.getCompany(request);
    String fgError = (String) request.getAttribute("fg-error");
%>

<liferay-ui:tabs
names="<%= tabNames%>"
url="<%= url.toString()%>"
    />

<c:if test="<%= fgError != null && !fgError.isEmpty()%>">
    <div class="portlet-msg-info">
        <liferay-ui:message key="Unable to contact Futuregateway" />
    </div>
</c:if>
<c:choose>
    <c:when test="${tabs1 == 'Active Jobs List'}" >
        <script type="text/javascript">
            function fnFormatDetails(text)
            {
                var sOut = '<table cellpadding="5" cellspacing="0" border="0" style="padding-left:50px;">';
                sOut += '<tr><td>'+text+'</td></tr>';
                sOut += '</table>';

                return sOut;
            }
 
            var oTable;
            function detailsText(sValue){
                var e = new RegExp(".*<span>(.*)</span>");
                var m = e.exec(sValue);
                if ( m != null ) {
                    return m[1];

                }
                return sValue;
            }
            Array.prototype.unique =                                                                                                                                                           
             function() {                                                                                                                                                                     
                   var a = [];                                                                                                                                                                    
                   var l = this.length;                                                                                                                                                           
                   for(var i=0; i<l; i++) {                                                                                                                                                       
                         for(var j=i+1; j<l; j++) {                                                                                                                                                   
                               // If this[i] is found later in the array                                                                                                                                  
                               if (this[i] === this[j])                                                                                                                                                   
                                     j = ++i;                                                                                                                                                                 
                         }                                                                                                                                                                            
                         a.push(this[i]);                                                                                                                                                             
                   }                                                                                                                                                                              
                   return a;                                                                                                                                                                      
             };
            TableTools.BUTTONS.download = {
                "sAction": "text",
                "sTag": "default",
                "sFieldBoundary": "",
                "sFieldSeperator": "\t",
                "sNewLine": "<br>",
                "sToolTip": "",
                "sButtonClass": "DTTT_button_text download_set",
                "sButtonClassHover": "DTTT_button_text_hover",
                "sButtonText": "Download Job output",
                "mColumns": "all",
                "bHeader": true,
                "bFooter": true,
                "oParams":  { 
                    mode : "set", 
                    cn : "<%=user.getScreenName()%>",
                    Path : "/tmp"
                },
                "sDiv": "",
                "fnMouseover": null,
                "fnMouseout": null,
                "fnInit": function(button,config) {
                    var descriptions = new Array(); 
                    descriptions.push("<option value='all'>All</option>");                                                                                                                                           
                             $.map( $("#view").dataTable().fnGetData(), function(v, i) {     
                                if (v[3] != "RUNNING" && v[3] != "SUBMITTED" && v[3] != "error")                                                                                   
                                    descriptions.push("<option value='"+v[1]+"'>"+v[1]+"</option>");                                                                                                   
                               });                                                                                                                                                                        
                               descriptions = descriptions.unique();
                    $('body').append(                                                                                                          
                    $('<div>', {id : "filter"}).hide().html(                                                                                   
                    "<select style='width:200px' name='ds'>" + descriptions.join() + "</select>"                                       
                ));
                   
                },
        
                "fnSelect": null,
                "fnComplete": null,
                "fnClick": function(button, config) {                                                                                                  
                           $('div#filter').dialog({                                                                                                           
                                       draggable: false,                                                                                                          
                                       resizable: false,                                                                                                          
                                       title: "Select a job set description",                                                                             
                                       maxWidth: 300,                                                                                                             
                                       modal:true,                                                                                                                
                                       buttons: {                                                                                                                 
                                                   "Ok" : function(){                                                                                                 
                                                       var val = $('#filter select option:selected').val();
                        
                                if(val =="all") config.oParams.mode = "all";
                                else config.oParams.mode="set";
                        
                                var url = "<%=renderRequest.getContextPath()%>/jobOutpuRetrive?" + 
                                    $.param(config.oParams) + "&" + $.param({ 'ds' : val}); 
                                window.open(url);
                                document.location.reload(true);
                                $('div#filter').dialog('close');                                                                                   
                                                   }                                                                                                                  
                               }                                                                                                                                  
                         });                                                                                                                                  
                   }
            };

         
            $.fn.dataTableExt.oJUIClasses.sSortAsc  = "chain-table-sort-header ui-state-active";
            $.fn.dataTableExt.oJUIClasses.sSortDesc  = "chain-table-sort-header ui-state-active";
            var oTable;
            $(document).ready(function() {
                oTable = $('#view').dataTable( {
                    "sDom": '<"H"<"clear"T>f<"clear"l><"right"p>t<"F"ip>',
                    "aaSorting": [[ 2, "desc" ]],
                    "bRetrieve": true,
                    "bJQueryUI": true,
                    "oTableTools": {
                        "sSwfPath": "<%=renderRequest.getContextPath()%>/datatables/extras/TableTools/media/swf/copy_cvs_xls_pdf.swf",
                        "aButtons": [
                            "copy",
                            "print",
                            
                            {
                                "sExtends":    "collection",
                                "sButtonText": "Save",
                                "aButtons":    [ "csv", "pdf" ]
                            },
                            "download"   
                        ]
                    },
                    "sPaginationType": "full_numbers"
                });
                new FixedHeader(oTable);
                $('#view tbody td img.more').live('click', function () {

                    var nTr = $(this).parents('tr')[0];
                    if ( oTable.fnIsOpen(nTr) )
                    {
                        /* This row is already open - close it */
                        this.src = "http://datatables.net/release-datatables/examples/examples_support/details_open.png";
                        oTable.fnClose(nTr);
                    }
                    else
                    {
                        /* Open this row */
                        var text = $("span",$(this).parent()).html();
                        this.src = "http://datatables.net/release-datatables/examples/examples_support/details_close.png";
                        oTable.fnOpen( nTr, fnFormatDetails(text), 'details' );
                    }
                } );
                
            });
           
            
        </script>
<aui:script>
    Liferay.provide(
	window,
	'openPopUp',
	function() {
		var A = AUI(); 	
		var dialog = new A.Dialog(
			{
                        bodyContent: '<p>Your download will start soon.</p><p>You can close this message at any moment, download process will continue in background.</p>',
				destroyOnClose: true,
                                centered: true,
                                resizable: false,
				modal: true,
				title: 'Download',
				width: 300
			}
		).render();
	},
	['aui-dialog']
    ); 
</aui:script>
        <%
            boolean supportsGateway = false;

            if (aiList != null && !aiList.isEmpty()) {
                try {
                    Iterables.find(aiList, new supportsGateway(company.getName()));
                    supportsGateway = true;
                } catch (java.util.NoSuchElementException e) {
                }
            }
            if (supportsGateway) {
                
{'fraction_non_alphanumeric': 0.11332171999633263, 'fraction_numerical': 0.0035451239265303627, 'mean_word_length': 0.800385144429161, 'pattern_counts': {'":': 62, '<': 171, '<?xml version=': 0, '>': 163, 'https://': 0, 'lorem ipsum': 0, 'www.': 6, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 665, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '645645', 'n_tokens_mistral': 15225, 'n_tokens_neox': 10789, 'n_words': 1245}