@RequestMapping(value = "/listgrid", method = RequestMethod.GET, produces = "application/json")
  @ResponseBody
  public NodeGrid listGrid(
      @RequestParam(value = "page", required = false) Integer page,
      @RequestParam(value = "rows", required = false) Integer rows,
      @RequestParam(value = "sidx", required = false) String sortBy,
      @RequestParam(value = "sord", required = false) String order) {

    Sort sort = null;
    String orderBy = sortBy;
    if (orderBy != null && orderBy.equals("name")) {
      orderBy = "name";
    }

    if (orderBy != null && order != null) {
      if (order.equals("desc")) {
        sort = new Sort(Sort.Direction.DESC, orderBy);
      } else sort = new Sort(Sort.Direction.ASC, orderBy);
    }

    PageRequest pageRequest = null;
    if (sort != null) {
      pageRequest = new PageRequest(page - 1, rows, sort);
    } else {
      pageRequest = new PageRequest(page - 1, rows);
    }

    Page<Node> nodePage = nodeService.findByPage(pageRequest);
    NodeGrid nodeGrid = new NodeGrid();
    nodeGrid.setCurrentPage(nodePage.getNumber() + 1);
    nodeGrid.setTotalPages(nodePage.getTotalPages());
    nodeGrid.setTotalRecords(nodePage.getTotalElements());
    List<Node> nodes = Lists.newArrayList(nodePage.iterator());
    nodeGrid.setNodeData(checkAccessiblity(nodes));

    return nodeGrid;
  }