Exemplo n.º 1
0
func projectBrowseHandler(w http.ResponseWriter, r *http.Request) {
	data := setDefaultData(w, r)
	projectAmount := 16
	pageAmount := 5

	//pagination
	pageNumber, err := strconv.Atoi(r.URL.Query().Get("page")) //used for getting roles
	currentPage := pageNumber                                  //used for getting page list
	if currentPage <= 0 {
		currentPage = 1
	}
	data["currentPage"] = currentPage
	data["prevPage"] = currentPage - 1
	data["nextPage"] = currentPage + 1
	if err != nil {
		fmt.Println(err)
	}
	//zero index page number for skip calculation when querying mongo
	if pageNumber != 0 {
		pageNumber--
	}

	//get projects
	projectList, projectCount := project.FindProjects(nil, (pageNumber)*projectAmount, projectAmount)
	fmt.Println(projectList)
	//more params for pagination
	maxPage := int(math.Ceil(float64(projectCount) / float64(projectAmount)))
	pageList := getPageList(maxPage, currentPage, pageAmount)

	data["projects"] = projectList
	data["pageList"] = pageList
	data["maxPage"] = maxPage

	display(w, "browseProjects", &Page{Title: "Projects", Data: data})
}
Exemplo n.º 2
0
func viewUserProjects(w http.ResponseWriter, r *http.Request) {
	data := setDefaultData(w, r)
	userID := r.URL.Query().Get("id")
	user := user.FindUserById(userID)
	dbRefUser := &mgo.DBRef{Collection: "users", Id: user.Id, Database: "CoAud"}
	postedProjects, projectCount := project.FindProjects(bson.M{"user": dbRefUser}, 0, 500)
	data["user"] = user
	data["postedProjects"] = postedProjects
	data["projectCount"] = projectCount
	display(w, "viewUserProjects", &Page{Title: user.DisplayName, Data: data})
}
Exemplo n.º 3
0
//The handlers.
func homeHandler(w http.ResponseWriter, r *http.Request) {
	data := setDefaultData(w, r)

	//get roles
	roleList, totalRolesCount := role.FindRoles(nil, 0, 16)
	projectList, totalProjectList := project.FindProjects(nil, 0, 6)

	fmt.Println("total number of projects: ", totalProjectList)
	data["totalRolesCount"] = totalRolesCount
	data["roles"] = roleList
	data["projects"] = projectList
	display(w, "home", &Page{Title: "Home!", Data: data})
}