diff --git a/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.java b/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.java index d214a2633f..00c8517224 100644 --- a/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.java +++ b/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.java @@ -39,7 +39,7 @@ public class AdminCheckListPage extends AbstractAdminPage { add(dialog); - add(cltdp = new CheckListTemplateDataPanel("datapanel", true) { + add(cltdp = new CheckListTemplateDataPanel("datapanel", false) { @Override public void onClick(IModel<CheckListTemplate> clicked, AjaxRequestTarget target) { System.out.println(clicked.getObject().getCreator()); diff --git a/src/main/java/se/su/dsv/scipro/datatables/checklist/CheckListTemplateDataPanel.java b/src/main/java/se/su/dsv/scipro/datatables/checklist/CheckListTemplateDataPanel.java index 8aeb42003a..1c11408b3d 100644 --- a/src/main/java/se/su/dsv/scipro/datatables/checklist/CheckListTemplateDataPanel.java +++ b/src/main/java/se/su/dsv/scipro/datatables/checklist/CheckListTemplateDataPanel.java @@ -20,6 +20,8 @@ import se.su.dsv.scipro.reusable.AjaxDropDown; import se.su.dsv.scipro.reusable.FilterBooleanPanel; import se.su.dsv.scipro.reusable.FilterStringPanel; import se.su.dsv.scipro.springdata.services.ChecklistTemplateService; +import se.su.dsv.scipro.util.JavascriptEventConfirmation; +import sun.plugin2.message.JavaScriptBaseMessage; import java.util.ArrayList; import java.util.Iterator; @@ -83,7 +85,14 @@ public abstract class CheckListTemplateDataPanel extends Panel { }; add(numberDropDown); - IColumn[] columns = new IColumn[5]; + IColumn[] columns; + if (adminPrivileges){ + columns = new IColumn[5]; + } + else { + columns = new IColumn[4]; + } + columns[0] = new ClickableTitleColumn<CheckListTemplate>(Model.of("Name"), "name", "name") { @Override @@ -108,14 +117,25 @@ public abstract class CheckListTemplateDataPanel extends Panel { } }; - columns[4] = new ClickableDeleteColumn<CheckListTemplate>(Model.of("Delete"), "name") { - @Override - protected void onClick(IModel<CheckListTemplate> clicked, AjaxRequestTarget target) { - checklistTemplateService.lowerTemplateNumbersAbove(clicked.getObject().getTemplateNumber()); - checklistTemplateService.delete(clicked.getObject().getId()); - target.addComponent(table); - } - }; + if (adminPrivileges){ + columns[4] = new ClickableDeleteColumn<CheckListTemplate>(Model.of("Delete"), "name") { + @Override + protected void onClick(IModel<CheckListTemplate> clicked, AjaxRequestTarget target) { + boolean isPeer = false; + for (ChecklistCategory clc : clicked.getObject().getCategories()){ + if (clc.getCategoryName().equalsIgnoreCase("peer")){ + isPeer = true; + } + } + if (!isPeer){ + checklistTemplateService.lowerTemplateNumbersAbove(clicked.getObject().getTemplateNumber()); + checklistTemplateService.delete(clicked.getObject().getId()); + } + target.addComponent(table); + } + }; + } + table = new DataTable<CheckListTemplate>("datatable", columns, checklistTemplateProvider = new ChecklistTemplateProvider(), 10); table.setOutputMarkupId(true); diff --git a/src/main/java/se/su/dsv/scipro/datatables/checklist/ClickableDeleteColumn.java b/src/main/java/se/su/dsv/scipro/datatables/checklist/ClickableDeleteColumn.java index 15c692f1ff..9e8138a875 100644 --- a/src/main/java/se/su/dsv/scipro/datatables/checklist/ClickableDeleteColumn.java +++ b/src/main/java/se/su/dsv/scipro/datatables/checklist/ClickableDeleteColumn.java @@ -51,7 +51,6 @@ public abstract class ClickableDeleteColumn<T> extends AbstractColumn<T> { }; add(link); link.add(new ImageObject("deleteicon", ImageObject.SIXTEEN + ImageObject.DELETE)); - } } } \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ChecklistTemplateServiceImpl.java b/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ChecklistTemplateServiceImpl.java index cdca2660d6..7450f5dcb6 100644 --- a/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ChecklistTemplateServiceImpl.java +++ b/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ChecklistTemplateServiceImpl.java @@ -108,6 +108,7 @@ public class ChecklistTemplateServiceImpl extends AbstractQueryService<CheckList return clt; } + @Transactional ( readOnly = false ) @Override public void lowerTemplateNumbersAbove(int templateNumber) { for (CheckListTemplate clt : checklistTemplateRepo.findAllByTemplateNumberGreaterThan(templateNumber)){