package com.wordpress.salaboy.emergencyservice.web.task; import java.util.HashMap; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.yaml.snakeyaml.Yaml; import com.wordpress.salaboy.smarttasks.formbuilder.api.ConnectionData; import com.wordpress.salaboy.smarttasks.formbuilder.api.SmartTaskBuilder; import com.wordpress.salaboy.smarttasks.formbuilder.api.output.TaskListsData; /** * Controller that will resolve views for start page and task lists. * @author calcacuervo * */ @Controller public class CommonController { /** * The builder is inyected using spring. */ @Autowired private SmartTaskBuilder helper; Yaml yaml = new Yaml(); @RequestMapping(value = "/") public String home(Model model) { return "redirect:/new/"; } @RequestMapping(value = "/new/") public String start(Model model) { return "start"; } /** * This method gets the task list using the UIHelper classes. TODO move it * to common! * * @param entity * @param profile * @param model * @return */ @RequestMapping(value = "/list/{entity}/{profile}", method = RequestMethod.GET) public String list(@PathVariable("entity") String entity, @PathVariable("profile") String profile, Model model) { helper.connect(new ConnectionData(entity)); String stringTaskList = helper.getTaskList(profile); TaskListsData taskListdata = (TaskListsData) yaml.load(stringTaskList); Object[][] data = taskListdata.getData(); model.addAttribute("data", data); String[] headers = taskListdata.getColumnHeaders(); model.addAttribute("headers", headers); int idIndex = -1; for (int i = 0; i < headers.length; i++) { String string = headers[i]; if (string.equalsIgnoreCase("id")) { model.addAttribute("idIndex", i); idIndex = i; } } for (int i = 0; i < headers.length; i++) { String string = headers[i]; if (string.equalsIgnoreCase("status")) { model.addAttribute("Idstatus", i); } } Map<String, String> taskNames = new HashMap(); int nameIndex = -1; for (int i = 0; i < headers.length; i++) { String string = headers[i]; if (string.equalsIgnoreCase("description")) { nameIndex = i; } } for (int i = 0; i < data.length; i++) { Object[] allData = data[i]; if (allData[idIndex] instanceof String) { taskNames.put((String) allData[idIndex], ((String) allData[nameIndex]).replaceAll(" ", "")); } } model.addAttribute("taskNames", taskNames); model.addAttribute("user", entity); model.addAttribute("profile", profile); return "list"; } }