use of com.emc.metalnx.modelattribute.template.field.TemplateFieldForm in project metalnx-web by irods-contrib.
the class TemplateController method mapDataGridTempToFieldForm.
/**
* Maps a single instance of DataGridTemplateField into a TemplateFieldForm
* object
*
* @param dataGridTempField
* DataGridTemplateField object
* @return TemplateFieldForm object
*/
private TemplateFieldForm mapDataGridTempToFieldForm(final DataGridTemplateField dataGridTempField) {
if (dataGridTempField == null) {
return null;
}
TemplateFieldForm tempField = new TemplateFieldForm();
tempField.setAttribute(dataGridTempField.getAttribute());
tempField.setValue(dataGridTempField.getValue());
tempField.setUnit(dataGridTempField.getUnit());
tempField.setStartRange(dataGridTempField.getStartRange());
tempField.setEndRange(dataGridTempField.getEndRange());
tempField.setOrder(dataGridTempField.getOrder());
tempField.setId(dataGridTempField.getId());
if (dataGridTempField.getTemplate() != null) {
tempField.setTemplateName(dataGridTempField.getTemplate().getTemplateName());
}
return tempField;
}
use of com.emc.metalnx.modelattribute.template.field.TemplateFieldForm in project metalnx-web by irods-contrib.
the class TemplateController method modifyTemplate.
@RequestMapping(value = "modify/action/")
public String modifyTemplate(final Model model, @ModelAttribute final MetadataTemplateForm templateForm, final RedirectAttributes redirectAttributes) {
DataGridTemplate template = null;
try {
template = templateService.findById(templateForm.getId());
if (template == null) {
throw new Exception("Cannot modify a non-existent template");
}
DataGridUser loggedUser = loggedUserUtils.getLoggedDataGridUser();
if (!template.getOwner().equalsIgnoreCase(loggedUser.getUsername())) {
throw new Exception("Cannot modify a template beloging to another user");
}
template.setTemplateName(templateForm.getTemplateName());
template.setDescription(templateForm.getDescription());
template.setUsageInformation(templateForm.getUsageInformation());
template.setAccessType(templateForm.getAccessType().toString());
List<String> positions = templateForm.getAvuPositions();
List<String> attributes = templateForm.getAvuAttributes();
List<String> values = templateForm.getAvuValues();
List<String> units = templateForm.getAvuUnits();
if (attributes != null) {
for (int i = 0; i < attributes.size(); i++) {
for (int j = i + 1; j < attributes.size(); j++) {
if (attributes.get(i).equals(attributes.get(j)) && !values.get(i).isEmpty() && values.get(i).equals(values.get(j)) && units.get(i).equals(units.get(j))) {
redirectAttributes.addFlashAttribute("repeatedAVU", true);
return "redirect:/templates/modify/";
}
}
}
}
if (positions != null) {
for (int i = 0; i < positions.size(); i++) {
String position = positions.get(i);
if (position.contains("mod_pos_")) {
addTemplateFields.get(Integer.parseInt(position.replace("mod_pos_", ""))).setAttribute(attributes.get(i));
addTemplateFields.get(Integer.parseInt(position.replace("mod_pos_", ""))).setValue(values.get(i));
addTemplateFields.get(Integer.parseInt(position.replace("mod_pos_", ""))).setUnit(units.get(i));
} else if (position.contains("mod_id_")) {
templateFieldService.modifyTemplateField(Long.parseLong(position.replace("mod_id_", "")), attributes.get(i), values.get(i), units.isEmpty() ? "" : units.get(i));
template.setModified(true);
}
}
}
// adding all fields to the template
for (TemplateFieldForm tempFieldForm : addTemplateFields) {
DataGridTemplateField dataGridTempField = mapTempFieldFormToDataGridTemp(tempFieldForm);
dataGridTempField.setTemplate(template);
templateFieldService.createTemplateField(dataGridTempField);
template.setModified(true);
}
Set<DataGridTemplateField> currentTempFields = template.getFields();
// removing fields from the template
for (TemplateFieldForm tempFieldForm : removeTemplateFields) {
DataGridTemplateField dataGridTempField = mapTempFieldFormToDataGridTemp(tempFieldForm);
dataGridTempField.setTemplate(template);
template.setModified(true);
// removing template fields from template
if (currentTempFields.remove(dataGridTempField)) {
templateFieldService.deleteTemplateField(dataGridTempField);
logger.debug("Template removed from memory and database");
} else // template field wasn't removed
{
throw new Exception("Could not removed template field from memory.");
}
}
template.setFields(currentTempFields);
templateService.modifyTemplate(template);
// reseting the temporary fields to be added and removed from a template
addTemplateFields = new ArrayList<TemplateFieldForm>();
removeTemplateFields = new ArrayList<TemplateFieldForm>();
redirectAttributes.addFlashAttribute("templateModifiedSuccessfully", template.getTemplateName());
selectedTemplates.clear();
} catch (Exception e) {
logger.error("Could not modify template {}.", templateForm.getTemplateName());
redirectAttributes.addFlashAttribute("templateNotModifiedSuccessfully", templateForm.getTemplateName());
}
return "redirect:/templates/";
}
use of com.emc.metalnx.modelattribute.template.field.TemplateFieldForm in project metalnx-web by irods-contrib.
the class TemplateController method addNewTemplate.
@RequestMapping(value = "add/action/")
public String addNewTemplate(final Model model, @ModelAttribute final MetadataTemplateForm templateForm, final RedirectAttributes redirectAttributes) {
DataGridTemplate newTemplate = null;
try {
newTemplate = new DataGridTemplate();
newTemplate.setTemplateName(templateForm.getTemplateName());
newTemplate.setDescription(templateForm.getDescription());
newTemplate.setUsageInformation(templateForm.getUsageInformation());
newTemplate.setOwner(loggedUserUtils.getLoggedDataGridUser().getUsername());
newTemplate.setAccessType(templateForm.getAccessType().toString());
long templateID = templateService.createTemplate(newTemplate);
if (templateID > 0) {
redirectAttributes.addFlashAttribute("templateAddedSuccessfully", newTemplate.getTemplateName());
newTemplate.setId(templateID);
// adding all fields to the template
for (TemplateFieldForm tempFieldForm : addTemplateFields) {
DataGridTemplateField dataGridTempField = mapTempFieldFormToDataGridTemp(tempFieldForm);
dataGridTempField.setTemplate(newTemplate);
templateFieldService.createTemplateField(dataGridTempField);
}
// reseting the temporary fields to be added and removed from a
// template
addTemplateFields = new ArrayList<TemplateFieldForm>();
removeTemplateFields = new ArrayList<TemplateFieldForm>();
return "redirect:/templates/";
}
} catch (DataGridTooLongTemplateNameException e) {
redirectAttributes.addFlashAttribute("templateNotAddedSuccessfully", true);
redirectAttributes.addFlashAttribute("tooLongTemplateName", true);
} catch (Exception e) {
redirectAttributes.addFlashAttribute("templateNotAddedSuccessfully", true);
}
return "redirect:/templates/add/";
}
use of com.emc.metalnx.modelattribute.template.field.TemplateFieldForm in project metalnx-web by irods-contrib.
the class TemplateController method newTemplate.
@RequestMapping(value = "add/")
public String newTemplate(final Model model, final HttpServletRequest request) {
MetadataTemplateForm templateForm = new MetadataTemplateForm();
TemplateFieldForm templateFieldForm = new TemplateFieldForm();
if (addTemplateFields == null) {
addTemplateFields = new ArrayList<TemplateFieldForm>();
}
templateForm.setOwner(loggedUserUtils.getLoggedDataGridUser().getUsername());
model.addAttribute("uiMode", request.getSession().getAttribute("uiMode"));
model.addAttribute("accessTypes", MetadataTemplateAccessType.values());
model.addAttribute("metadataTemplateForm", templateForm);
model.addAttribute("templateFieldForm", templateFieldForm);
model.addAttribute("requestMapping", "/templates/add/action/");
model.addAttribute("requestMappingForTemplateField", "/templates/addFieldToCurrentTemplate");
return "template/templateForm";
}
use of com.emc.metalnx.modelattribute.template.field.TemplateFieldForm in project metalnx-web by irods-contrib.
the class TemplateController method addFieldToCurrentTemplate.
@RequestMapping(value = "/addFieldToCurrentTemplate")
public String addFieldToCurrentTemplate(final Model model, @ModelAttribute final TemplateFieldForm templateFieldForm) {
updateAddTemplateFieldsList();
boolean isAddFieldsEmpty = false;
try {
List<DataGridTemplateField> existingTemplateFields = templateService.listTemplateFields(templateFieldForm.getTemplateName());
DataGridTemplateField newDataGridField = mapTempFieldFormToDataGridTemp(templateFieldForm);
List<TemplateFieldForm> templateFields = new ArrayList<TemplateFieldForm>();
TemplateFieldForm newField = this.mapDataGridTempToFieldForm(newDataGridField, addTemplateFields.size());
templateFields.add(newField);
if (addTemplateFields.isEmpty()) {
isAddFieldsEmpty = true;
}
// prevent an AVU from being added twice to a template
if (!addTemplateFields.contains(newField) || addTemplateFields.contains(newField) && newField.getValue().equals("")) {
addTemplateFields.add(newField.getFormListPosition(), newField);
}
model.addAttribute("templateFields", templateFields);
model.addAttribute("resultSize", templateFields.size());
model.addAttribute("foundTemplateFields", templateFields.size() > 0);
if (isAddFieldsEmpty && existingTemplateFields.isEmpty()) {
return "template/templateFieldList";
}
} catch (DataGridTemplateAttrException e) {
logger.error(e.getMessage());
} catch (DataGridTemplateValueException e) {
logger.error(e.getMessage());
} catch (DataGridTemplateUnitException e) {
logger.error(e.getMessage());
}
return "template/templateFieldList :: avuRow";
}
Aggregations