refactor campaign listing view + template