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(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());

@ -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);

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

@ -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)){