001    /**
002     * Copyright 2004-2013 The Kuali Foundation
003     *
004     * Licensed under the Educational Community License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     * http://www.opensource.org/licenses/ecl2.php
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    package org.kuali.hr.time.web;
017    
018    import java.util.HashMap;
019    import java.util.Map;
020    
021    import org.apache.commons.lang.StringUtils;
022    import org.kuali.rice.kim.api.KimConstants;
023    import org.kuali.rice.kim.api.identity.Person;
024    import org.kuali.rice.kns.web.struts.form.KualiMaintenanceForm;
025    import org.kuali.rice.krad.service.KRADServiceLocatorWeb;
026    import org.kuali.rice.krad.service.ModuleService;
027    
028    /**
029     * This is set up in the kr/struts-config.xml, so that our maintenance docs
030     * have some modified header information.
031     */
032    public class TimeMaintenanceForm extends KualiMaintenanceForm {
033    
034            /**
035             * 
036             */
037            private static final long serialVersionUID = 1L;
038    
039            /*
040             * This was cut and pasted from the parent, with some modification.
041             */
042            @Override
043            protected String getPersonInquiryUrlLink(Person user, String linkBody) {
044            StringBuffer urlBuffer = new StringBuffer();
045                    
046            if(user != null && StringUtils.isNotEmpty(linkBody) ) {
047                    ModuleService moduleService = KRADServiceLocatorWeb.getKualiModuleService().getResponsibleModuleService(Person.class);
048                    Map<String, String[]> parameters = new HashMap<String, String[]>();
049                    parameters.put(KimConstants.AttributeConstants.PRINCIPAL_ID, new String[] { user.getPrincipalId() });
050                    String inquiryUrl = moduleService.getExternalizableBusinessObjectInquiryUrl(Person.class, parameters);
051                if(!StringUtils.equals(KimConstants.EntityTypes.SYSTEM, user.getEntityTypeCode())){
052                        urlBuffer.append("<a href='");
053                        urlBuffer.append(inquiryUrl);
054                        urlBuffer.append("' ");
055                        urlBuffer.append("target='_blank'");
056                        urlBuffer.append("title='Person Inquiry'>");
057                        urlBuffer.append(linkBody);
058                        urlBuffer.append("</a>");
059                        
060                        // Added re: KPME-207 (https://jira.kuali.org/browse/KPME-207)
061                        urlBuffer.append(" (");
062                        urlBuffer.append(user.getName());
063                        urlBuffer.append(")");
064                } else{
065                    urlBuffer.append(linkBody);
066                }
067            }
068            
069            return urlBuffer.toString();
070            }
071    
072    }