<%@ page extends="oneit.servlets.jsp.JSPInclude" %>

<%@ include file="/inc/stdimports50.jsp" %><%-- This is in cougar --%>
<%@ include file="/inc/stdcms.jsp" %><%-- This is in cougar --%>
<%@ include file="/extensions/performa/inc/stdimports.jsp" %>
<%@ page import="oneit.utils.text.FormatUtils"%>

<%
    Job                     job             =   (Job) process.getAttribute("Job");
    List<JobApplication>    applications    =   (List<JobApplication>) getData(request, "applications");
    String                  currentPage     =   (String) getData(request, "currentPage");
    ApplicationStatus       appStatus       =   (ApplicationStatus)  getData(request, "WorkFlowStatus");
    String                  applicationPage =   WebUtils.getSamePageInRenderMode(request, WebUtils.VIEW_APPLICATION);
    List<WorkFlow>          sortedWorkFlows =   ObjstoreUtils.sort(job.getApplicantWFs(), 
                                                        new ObjectTransform[]{WorkFlow.pipesWorkFlow().toSortOrder()}, 
                                                        new Comparator[]{CollectionUtils.DEFAULT_COMPARATOR_NULLS_FIRST});
%>

<oneit:dynIncluded>
    <script type="text/javascript">
        $(document).ready(function() 
        {            
            $("[name$='WorkFlow']").change(function()
            {
                var id  = $(this).closest('.appli-row').attr('id');
                $('.save-application' + id).click();
            });
        });
    </script>
    <div class="view-appli-list">
    <%
        int j   = 0;

        for(JobApplication jobApplication : applications)
        {
            double      roleFitVal  =   jobApplication.getRoleFitPercentage(); 
            double      cultureVal  =   jobApplication.getCultureFitScore();
            long        criteriaVal =   jobApplication.getRequirementFitScore(); 
            String      roleFit     =   FormatUtils.stringify(jobApplication.getRoleFitPercentage(), "PercentageTwoDP", "0");
            String      culture     =   FormatUtils.stringify(jobApplication.getCultureFitScore(), "PercentageWholeNumber", "0");
            String      criteria    =   FormatUtils.stringify(jobApplication.getRequirementFitScore(), "PercentageWholeNumber", "0");
            String      appID       =   "app-id-" + jobApplication.getID().toString();
            Integer     overallRank =   jobApplication.getOverallRank();
            Boolean     isTopRank   =   CollectionUtils.equals(overallRank, 1);
            WorkFlow    workflow    =   job.getWorkFlowByStatus(jobApplication.getApplicationStatus());
            boolean     missingReq  =   jobApplication.hasFailedEssentialRequirements();
            
            jobApplication.setWorkFlow(workflow);
    %>
            <div class="appli-row"  id="<%= jobApplication.getID() %>">
                <div class="appli-checkbox appli-l eq-second-height">
                    <div class="checkbox-list">
                        <input type="checkbox"  name="IsSelected" value="<%= jobApplication.getObjectID().toString() %>"  id="<%= appID %>" class="applicant" >
                        <label for="<%= appID %>"></label>
                    </div>
                </div>
                <div class="appli-list-name appli-l eq-second-height">
                    <oneit:button   value=" "    name="gotoPage" cssClass="<%= jobApplication.getID() + ""%>" skin="link"
                                    requestAttribs="<%= CollectionUtils.mapEntry("nextPage", applicationPage)
                                                                    .mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).mapEntry("Applications", applications).toMap())
                                                                    .toMap() %>">
                        <oneit:toString value="<%= jobApplication.getCandidate() %>"    mode="EscapeHTML" />
                        <div class="appli-int-status">
                            <oneit:toString value="<%= jobApplication.getApplicantStatusStr() %>"   mode="EscapeHTML" />
                        </div>
                    </oneit:button>
                </div>
                <div class="appli-overall appli-l eq-second-height">
                    <div class="rank">
                        Overall rank
                    </div>
                    <!--TODO: logic needed to be worked out. Added to note that there are three colors-->
                    <div class="<%= "appli-percent-no blue " + (isTopRank ? "first" : "")%>">
                        <oneit:toString value="<%= jobApplication.getOverallRank() %>"   mode="Integer" />
                    </div>
                </div>
                <%
                    String widthClass   =   "appli-jcs2";
                    
                    if(job.getIncludeAssessmentCriteria() == Boolean.TRUE)
                    {
                        widthClass  =   "appli-jcs";
                    }
                %>
                <div class="<%= widthClass %> appli-l eq-second-height">
                    <span class="appli-view-bar">
                        <div class="progress">
                            <div class="progress-bar" role="progressbar" aria-valuenow="<%= roleFit %>" aria-valuemin="0" aria-valuemax="100" 
                                    style="<%= "width: " + roleFit %>">
                                <span class="show-precentage"><%= roleFit %></span>
                            </div>
                            
                        </div>
                    </span>
                    role fit
                </div>
                <div class="<%= widthClass %> appli-l eq-second-height">
                    <span class="appli-view-bar">
                        <div class="progress">
                            <div class="progress-bar" role="progressbar" aria-valuenow="<%= culture %>" aria-valuemin="0" aria-valuemax="100" 
                                    style="<%= "width: " + culture %>">
                                <span class="show-precentage"><%= culture %></span>
                            </div> 
                            
                        </div>
                    </span>
                    culture fit
                </div>
                <%
                    if(job.getIncludeAssessmentCriteria() == Boolean.TRUE)
                    {
                %>
                        <div class="<%= widthClass %> appli-l eq-second-height">
                            <span class="appli-view-bar">
                                <div class="progress">
                                    <div class="progress-bar <%= (criteriaVal == 100 && !missingReq ? " green" : "")%>" role="progressbar" aria-valuenow="<%= criteria %>" aria-valuemin="0" aria-valuemax="100" 
                                            style="<%= "width: " + criteria %>">
                                         <span class="show-precentage"><%= criteria %></span>
                                    </div>
                                           
                                </div>
                                <span  class="<%= missingReq ? "missing-requirements-icon" : "requirements-correct-icon" %>"></span>
                            </span>
                            <span class="<%= missingReq ? "red-requirements" : "" %>">
                                requirements
                            </span>
                        </div>
                <%
                    }
                %>
                <div class="appli-status appli-l eq-second-height">
                    <div class="appli-list-drop">
                        <tagfile:ormsingleasso_select obj="<%= jobApplication %>"   assocName="WorkFlow"    cssClass="form-control app-process"    
                                                      options="<%= sortedWorkFlows.toArray(new WorkFlow[0]) %>"/>
                    </div>
                </div> 
                <oneit:button   name="changeApplicationStatus"  value=" "   cssClass="<%= "save-application" +  jobApplication.getID().toString() + " hidden"%>"
                                requestAttribs="<%= CollectionUtils.mapEntry("nextPage", currentPage)
                                                                    .mapEntry ("restartProcess", Boolean.TRUE)
                                                                    .mapEntry("procParams", CollectionUtils.mapEntry("WorkFlowStatus", appStatus).mapEntry("Job", job).toMap())
                                                                    .mapEntry ("attribNamesToRestore", new HashSet<String> (Arrays.asList(new String[] {"Job", "WorkFlowStatus"})))
                                                                    .mapEntry("JobApplication", jobApplication)
                                                                    .toMap() %>" />
            </div>
    <%
            j++;
        }
    %>
    </div>
</oneit:dynIncluded>
