delete column only added if adminprivileges

This commit is contained in:
fred-fri 2012-05-11 15:43:17 +09:00
parent c49837da53
commit 246f13b7f6
4 changed files with 31 additions and 11 deletions
src/main/java/se/su/dsv/scipro

@ -39,7 +39,7 @@ public class AdminCheckListPage extends AbstractAdminPage {
add(dialog); add(dialog);
add(cltdp = new CheckListTemplateDataPanel("datapanel", true) { add(cltdp = new CheckListTemplateDataPanel("datapanel", false) {
@Override @Override
public void onClick(IModel<CheckListTemplate> clicked, AjaxRequestTarget target) { public void onClick(IModel<CheckListTemplate> clicked, AjaxRequestTarget target) {
System.out.println(clicked.getObject().getCreator()); System.out.println(clicked.getObject().getCreator());

@ -20,6 +20,8 @@ import se.su.dsv.scipro.reusable.AjaxDropDown;
import se.su.dsv.scipro.reusable.FilterBooleanPanel; import se.su.dsv.scipro.reusable.FilterBooleanPanel;
import se.su.dsv.scipro.reusable.FilterStringPanel; import se.su.dsv.scipro.reusable.FilterStringPanel;
import se.su.dsv.scipro.springdata.services.ChecklistTemplateService; 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.ArrayList;
import java.util.Iterator; import java.util.Iterator;
@ -83,7 +85,14 @@ public abstract class CheckListTemplateDataPanel extends Panel {
}; };
add(numberDropDown); 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") { columns[0] = new ClickableTitleColumn<CheckListTemplate>(Model.of("Name"), "name", "name") {
@Override @Override
@ -108,14 +117,25 @@ public abstract class CheckListTemplateDataPanel extends Panel {
} }
}; };
columns[4] = new ClickableDeleteColumn<CheckListTemplate>(Model.of("Delete"), "name") { if (adminPrivileges){
@Override columns[4] = new ClickableDeleteColumn<CheckListTemplate>(Model.of("Delete"), "name") {
protected void onClick(IModel<CheckListTemplate> clicked, AjaxRequestTarget target) { @Override
checklistTemplateService.lowerTemplateNumbersAbove(clicked.getObject().getTemplateNumber()); protected void onClick(IModel<CheckListTemplate> clicked, AjaxRequestTarget target) {
checklistTemplateService.delete(clicked.getObject().getId()); boolean isPeer = false;
target.addComponent(table); 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 = new DataTable<CheckListTemplate>("datatable", columns, checklistTemplateProvider = new ChecklistTemplateProvider(), 10);
table.setOutputMarkupId(true); table.setOutputMarkupId(true);

@ -51,7 +51,6 @@ public abstract class ClickableDeleteColumn<T> extends AbstractColumn<T> {
}; };
add(link); add(link);
link.add(new ImageObject("deleteicon", ImageObject.SIXTEEN + ImageObject.DELETE)); link.add(new ImageObject("deleteicon", ImageObject.SIXTEEN + ImageObject.DELETE));
} }
} }
} }

@ -108,6 +108,7 @@ public class ChecklistTemplateServiceImpl extends AbstractQueryService<CheckList
return clt; return clt;
} }
@Transactional ( readOnly = false )
@Override @Override
public void lowerTemplateNumbersAbove(int templateNumber) { public void lowerTemplateNumbersAbove(int templateNumber) {
for (CheckListTemplate clt : checklistTemplateRepo.findAllByTemplateNumberGreaterThan(templateNumber)){ for (CheckListTemplate clt : checklistTemplateRepo.findAllByTemplateNumberGreaterThan(templateNumber)){