com.rr.wabshs.ui.resources.resourcesController.java Source code

Java tutorial

Introduction

Here is the source code for com.rr.wabshs.ui.resources.resourcesController.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.rr.wabshs.ui.resources;

import com.registryKit.resources.programResources;
import com.registryKit.resources.resourceManager;
import com.registryKit.user.User;
import com.registryKit.user.userManager;
import java.util.List;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

/**
 *
 * @author chadmccue
 */
@Controller
@RequestMapping("/resources")
public class resourcesController {

    private static Integer moduleId = 13;

    @Autowired
    resourceManager resourceManager;

    @Autowired
    private userManager usermanager;

    @Value("${programId}")
    private Integer programId;

    @Value("${topSecret}")
    private String topSecret;

    @RequestMapping(value = "", method = RequestMethod.GET)
    public ModelAndView resourcesList(HttpSession session) throws Exception {

        /* Get a list of completed surveys the logged in user has access to */
        User userDetails = (User) session.getAttribute("userDetails");

        ModelAndView mav = new ModelAndView();
        mav.setViewName("/resources/users");

        /* Get a list of top level entities */
        Integer userId = 0;
        if (userDetails.getRoleId() == 3) {
            userId = userDetails.getId();
        }

        /* Get a list of available program resources */
        List<programResources> programResources = resourceManager.getResources(programId);
        mav.addObject("programResources", programResources);

        boolean allowResourceAdmin = false;
        if (userDetails.getRoleId() == 2) {
            allowResourceAdmin = true;
        }

        mav.addObject("allowResourceAdmin", allowResourceAdmin);

        return mav;
    }

    /**
     * The 'getUserList' POST method will return the list of users based on the search parameters passed in.
     * @param session
     * @param searchString
     * @param selectedResources
     * @param selectedCriteria
     * @return
     * @throws Exception 
     */
    @RequestMapping(value = "/getUserList", method = RequestMethod.POST)
    @ResponseBody
    public ModelAndView getUserList(HttpSession session,
            @RequestParam(value = "searchString", required = false) String searchString,
            @RequestParam(value = "selectedResources", required = false) List<Integer> selectedResources,
            @RequestParam(value = "selectedCriteria", required = false) String selectedCriteria) throws Exception {

        ModelAndView mav = new ModelAndView();
        mav.setViewName("/resources/userList");
        mav.addObject("searchString", searchString);

        /* Find users */
        if ((searchString != null && !"".contains(searchString))
                || (selectedResources != null && selectedResources.size() > 0)) {
            List<User> users = usermanager.getUsersByResource(programId, searchString, selectedResources,
                    selectedCriteria);
            mav.addObject("users", users);
        }

        return mav;

    }

    /**
     * The 'resourceList' GET request will return the main program resource list page.
     * 
     * @param session
     * @return
     * @throws Exception 
     */
    @RequestMapping(value = "/skillSetList", method = RequestMethod.GET)
    public ModelAndView resourceList(HttpSession session) throws Exception {

        ModelAndView mav = new ModelAndView();
        mav.setViewName("/resources");

        return mav;

    }

    /**
     * The 'getResourceList' GET request will return the list of available resources.
     * @param session
     * @return
     * @throws Exception 
     */
    @RequestMapping(value = "/getResourceList", method = RequestMethod.GET)
    @ResponseBody
    public ModelAndView getResourceList(HttpSession session) throws Exception {

        ModelAndView mav = new ModelAndView();
        mav.setViewName("/resources/resourceList");

        /* Get a list of available program resources */
        List<programResources> programResources = resourceManager.getResources(programId);
        mav.addObject("programResources", programResources);

        return mav;
    }

    /**
     * The 'getResourceModal.do' GET request will return the resource modal window.
     *
     * @param session
     * @return
     * @throws Exception 
     */
    @RequestMapping(value = "/getResourceModal.do", method = RequestMethod.GET)
    public ModelAndView getResourceModal(HttpSession session,
            @RequestParam(value = "resourceId", required = true) Integer resourceId) throws Exception {

        ModelAndView mav = new ModelAndView();
        mav.setViewName("/resources/resourceModal");

        programResources programResourceDetails;
        if (resourceId > 0) {
            programResourceDetails = resourceManager.getResourceById(resourceId);
        } else {
            programResourceDetails = new programResources();
        }

        mav.addObject("programResources", programResourceDetails);

        return mav;
    }

    /**
     * The 'saveresources.do' POST request will save/update the passed in programResources object
     * @param programResources
     * @param session
     * @return
     * @throws Exception 
     */
    @RequestMapping(value = "/saveresources.do", method = RequestMethod.POST)
    @ResponseBody
    public Integer saveresources(@ModelAttribute(value = "programResources") programResources programResources,
            HttpSession session) throws Exception {

        programResources.setProgramId(programId);

        resourceManager.saveResource(programResources);

        return 1;

    }

    @RequestMapping(value = "/deleteResources.do", method = RequestMethod.POST)
    @ResponseBody
    public Integer deleteResources(@RequestParam(value = "resourceId", required = true) Integer resourceId,
            HttpSession session) throws Exception {

        if (resourceId > 0) {
            resourceManager.removeResource(resourceId);
        }

        return 1;

    }

}