SEBSERV-259
This commit is contained in:
		
							parent
							
								
									7a71839124
								
							
						
					
					
						commit
						fad3810ba8
					
				
					 2 changed files with 37 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -572,6 +572,11 @@ public enum ActionDefinition {
 | 
			
		|||
            ImageIcon.IMPORT,
 | 
			
		||||
            ActionCategory.FORM),
 | 
			
		||||
 | 
			
		||||
    SEB_EXAM_CONFIG_COPY_CONFIG_FROM_LIST(
 | 
			
		||||
            new LocTextKey("sebserver.examconfig.action.copy"),
 | 
			
		||||
            ImageIcon.COPY,
 | 
			
		||||
            // PageStateDefinitionImpl.SEB_EXAM_CONFIG_PROP_EDIT,
 | 
			
		||||
            ActionCategory.SEB_EXAM_CONFIG_LIST),
 | 
			
		||||
    SEB_EXAM_CONFIG_COPY_CONFIG(
 | 
			
		||||
            new LocTextKey("sebserver.examconfig.action.copy"),
 | 
			
		||||
            ImageIcon.COPY,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,6 +13,7 @@ import org.springframework.beans.factory.annotation.Value;
 | 
			
		|||
import org.springframework.context.annotation.Lazy;
 | 
			
		||||
import org.springframework.stereotype.Component;
 | 
			
		||||
 | 
			
		||||
import ch.ethz.seb.sebserver.gbl.Constants;
 | 
			
		||||
import ch.ethz.seb.sebserver.gbl.api.EntityType;
 | 
			
		||||
import ch.ethz.seb.sebserver.gbl.model.Domain;
 | 
			
		||||
import ch.ethz.seb.sebserver.gbl.model.Entity;
 | 
			
		||||
| 
						 | 
				
			
			@ -68,6 +69,7 @@ public class SEBExamConfigList implements TemplateComposer {
 | 
			
		|||
 | 
			
		||||
    private final PageService pageService;
 | 
			
		||||
    private final SEBExamConfigImportPopup sebExamConfigImportPopup;
 | 
			
		||||
    private final SEBExamConfigCreationPopup sebExamConfigCreationPopup;
 | 
			
		||||
    private final CurrentUser currentUser;
 | 
			
		||||
    private final ResourceService resourceService;
 | 
			
		||||
    private final int pageSize;
 | 
			
		||||
| 
						 | 
				
			
			@ -75,10 +77,12 @@ public class SEBExamConfigList implements TemplateComposer {
 | 
			
		|||
    protected SEBExamConfigList(
 | 
			
		||||
            final PageService pageService,
 | 
			
		||||
            final SEBExamConfigImportPopup sebExamConfigImportPopup,
 | 
			
		||||
            final SEBExamConfigCreationPopup sebExamConfigCreationPopup,
 | 
			
		||||
            @Value("${sebserver.gui.list.page.size:20}") final Integer pageSize) {
 | 
			
		||||
 | 
			
		||||
        this.pageService = pageService;
 | 
			
		||||
        this.sebExamConfigImportPopup = sebExamConfigImportPopup;
 | 
			
		||||
        this.sebExamConfigCreationPopup = sebExamConfigCreationPopup;
 | 
			
		||||
        this.currentUser = pageService.getCurrentUser();
 | 
			
		||||
        this.resourceService = pageService.getResourceService();
 | 
			
		||||
        this.pageSize = pageSize;
 | 
			
		||||
| 
						 | 
				
			
			@ -149,7 +153,8 @@ public class SEBExamConfigList implements TemplateComposer {
 | 
			
		|||
                        .withSelectionListener(this.pageService.getSelectionPublisher(
 | 
			
		||||
                                pageContext,
 | 
			
		||||
                                ActionDefinition.SEB_EXAM_CONFIG_VIEW_PROP_FROM_LIST,
 | 
			
		||||
                                ActionDefinition.SEB_EXAM_CONFIG_MODIFY_PROP_FROM_LIST))
 | 
			
		||||
                                ActionDefinition.SEB_EXAM_CONFIG_MODIFY_PROP_FROM_LIST,
 | 
			
		||||
                                ActionDefinition.SEB_EXAM_CONFIG_COPY_CONFIG_FROM_LIST))
 | 
			
		||||
 | 
			
		||||
                        .compose(pageContext.copyOf(content));
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -160,14 +165,38 @@ public class SEBExamConfigList implements TemplateComposer {
 | 
			
		|||
                .publishIf(examConfigGrant::iw)
 | 
			
		||||
 | 
			
		||||
                .newAction(ActionDefinition.SEB_EXAM_CONFIG_VIEW_PROP_FROM_LIST)
 | 
			
		||||
                .withSelect(configTable::getSelection, PageAction::applySingleSelectionAsEntityKey,
 | 
			
		||||
                .withSelect(
 | 
			
		||||
                        configTable::getSelection,
 | 
			
		||||
                        PageAction::applySingleSelectionAsEntityKey,
 | 
			
		||||
                        EMPTY_SELECTION_TEXT_KEY)
 | 
			
		||||
                .publish(false)
 | 
			
		||||
 | 
			
		||||
                .newAction(ActionDefinition.SEB_EXAM_CONFIG_MODIFY_PROP_FROM_LIST)
 | 
			
		||||
                .withSelect(
 | 
			
		||||
                        configTable.getGrantedSelection(this.currentUser, NO_MODIFY_PRIVILEGE_ON_OTHER_INSTITUTION),
 | 
			
		||||
                        PageAction::applySingleSelectionAsEntityKey, EMPTY_SELECTION_TEXT_KEY)
 | 
			
		||||
                        PageAction::applySingleSelectionAsEntityKey,
 | 
			
		||||
                        EMPTY_SELECTION_TEXT_KEY)
 | 
			
		||||
                .publishIf(() -> examConfigGrant.im(), false)
 | 
			
		||||
 | 
			
		||||
                .newAction(ActionDefinition.SEB_EXAM_CONFIG_COPY_CONFIG_FROM_LIST)
 | 
			
		||||
                //.withEntityKey(entityKey)
 | 
			
		||||
                .withSelect(
 | 
			
		||||
                        configTable.getGrantedSelection(this.currentUser, NO_MODIFY_PRIVILEGE_ON_OTHER_INSTITUTION),
 | 
			
		||||
                        pageAction -> {
 | 
			
		||||
                            this.sebExamConfigCreationPopup.configCreationFunction(
 | 
			
		||||
                                    pageAction.pageContext()
 | 
			
		||||
                                            .withEntityKey(pageAction.getSingleSelection())
 | 
			
		||||
                                            .withAttribute(
 | 
			
		||||
                                                    PageContext.AttributeKeys.COPY_AS_TEMPLATE,
 | 
			
		||||
                                                    Constants.FALSE_STRING)
 | 
			
		||||
                                            .withAttribute(
 | 
			
		||||
                                                    PageContext.AttributeKeys.CREATE_FROM_TEMPLATE,
 | 
			
		||||
                                                    Constants.FALSE_STRING))
 | 
			
		||||
                                    .apply(pageAction);
 | 
			
		||||
                            return pageAction;
 | 
			
		||||
                        },
 | 
			
		||||
                        EMPTY_SELECTION_TEXT_KEY)
 | 
			
		||||
                .noEventPropagation()
 | 
			
		||||
                .publishIf(() -> examConfigGrant.im(), false)
 | 
			
		||||
 | 
			
		||||
                .newAction(ActionDefinition.SEB_EXAM_CONFIG_IMPORT_TO_NEW_CONFIG)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue