mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-14 22:43:57 +00:00
Bug 5085: initial version of template creation dialogs
This commit is contained in:
1 parent
f5aea750e2
commit
cb0191dbe1
12 files changed
+389
-14
No files matched your search
+129
@@ -0,0 +1,129 @@
|
||||
package com.sap.sailing.gwt.ui.adminconsole.coursecreation;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
import com.google.gwt.user.client.ui.FocusWidget;
|
||||
import com.google.gwt.user.client.ui.Grid;
|
||||
import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.user.client.ui.SuggestBox;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.domain.common.PassingInstruction;
|
||||
import com.sap.sailing.gwt.ui.adminconsole.coursecreation.ControlPointEditDialog.ControlPointEditDTO;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.shared.courseCreation.MarkTemplateDTO;
|
||||
import com.sap.sse.gwt.client.dialog.DataEntryDialog;
|
||||
|
||||
public class ControlPointEditDialog extends DataEntryDialog<ControlPointEditDTO> {
|
||||
private final StringMessages stringMessages;
|
||||
|
||||
private final SuggestBox suggestMarkTemplate1;
|
||||
private final SuggestBox suggestMarkTemplate2Optional;
|
||||
private final SuggestBox suggestPassingInstruction;
|
||||
|
||||
private MarkTemplateSuggestOracle markTemplateOracle;
|
||||
|
||||
public ControlPointEditDialog(final SailingServiceAsync sailingServiceAsync, final StringMessages stringMessages,
|
||||
ControlPointEditDTO courseTemplateToEdit, DialogCallback<ControlPointEditDTO> callback) {
|
||||
super(stringMessages.edit() + " " + stringMessages.waypoints(), null, stringMessages.ok(),
|
||||
stringMessages.cancel(), new Validator<ControlPointEditDTO>() {
|
||||
@Override
|
||||
public String getErrorMessage(ControlPointEditDTO valueToValidate) {
|
||||
String result = null;
|
||||
|
||||
if (valueToValidate.getPassingInstruction() == null) {
|
||||
result = stringMessages.pleaseSelectAValidPassingInstruction();
|
||||
} else {
|
||||
if (valueToValidate.getMarkTemplate1() == null) {
|
||||
result = stringMessages.pleaseSelectAValidMarkTemplate();
|
||||
}
|
||||
if (valueToValidate.getPassingInstruction().applicability[0] == 2
|
||||
&& !valueToValidate.getMarkTemplate2().isPresent()) {
|
||||
result = stringMessages.pleaseSelectAValidMarkTemplate() + " (2)";
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}, /* animationEnabled */true, callback);
|
||||
this.ensureDebugId("CourseTemplateToEditEditDialog");
|
||||
this.stringMessages = stringMessages;
|
||||
|
||||
markTemplateOracle = new MarkTemplateSuggestOracle(sailingServiceAsync, stringMessages);
|
||||
suggestMarkTemplate1 = new SuggestBox(markTemplateOracle);
|
||||
suggestMarkTemplate2Optional = new SuggestBox(markTemplateOracle);
|
||||
|
||||
suggestPassingInstruction = new SuggestBox(new PassingInstructionSuggestOracle());
|
||||
|
||||
suggestPassingInstruction.getValueBox().addChangeHandler(e -> validateAndUpdate());
|
||||
suggestPassingInstruction.getValueBox().addKeyUpHandler(e -> validateAndUpdate());
|
||||
suggestPassingInstruction.getValueBox().addBlurHandler(e -> validateAndUpdate());
|
||||
suggestMarkTemplate2Optional.getValueBox().addChangeHandler(e -> validateAndUpdate());
|
||||
suggestMarkTemplate2Optional.getValueBox().addKeyUpHandler(e -> validateAndUpdate());
|
||||
suggestMarkTemplate2Optional.getValueBox().addBlurHandler(e -> validateAndUpdate());
|
||||
suggestMarkTemplate1.getValueBox().addChangeHandler(e -> validateAndUpdate());
|
||||
suggestMarkTemplate1.getValueBox().addKeyUpHandler(e -> validateAndUpdate());
|
||||
suggestMarkTemplate1.getValueBox().addBlurHandler(e -> validateAndUpdate());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected FocusWidget getInitialFocusWidget() {
|
||||
return suggestMarkTemplate1.getValueBox();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ControlPointEditDTO getResult() {
|
||||
PassingInstruction passingInstruction = null;
|
||||
try {
|
||||
passingInstruction = PassingInstruction.valueOfIgnoringCase(suggestPassingInstruction.getValue());
|
||||
} catch (IllegalArgumentException e) {
|
||||
// use null -> fail during validation
|
||||
}
|
||||
|
||||
final MarkTemplateDTO markTemplate1 = markTemplateOracle.fromString(suggestMarkTemplate1.getValue());
|
||||
final MarkTemplateDTO markTemplate2 = markTemplateOracle.fromString(suggestMarkTemplate2Optional.getValue());
|
||||
return new ControlPointEditDTO(markTemplate1, markTemplate2, passingInstruction);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Widget getAdditionalWidget() {
|
||||
final Grid result = new Grid(3, 2);
|
||||
result.setWidget(0, 0, new Label(stringMessages.markTemplate()));
|
||||
result.setWidget(0, 1, suggestMarkTemplate1);
|
||||
result.setWidget(1, 0, new Label(stringMessages.markTemplate2Optional()));
|
||||
result.setWidget(1, 1, suggestMarkTemplate2Optional);
|
||||
result.setWidget(2, 0, new Label(stringMessages.passingInstructions()));
|
||||
result.setWidget(2, 1, suggestPassingInstruction);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static class ControlPointEditDTO {
|
||||
private MarkTemplateDTO markTemplate1;
|
||||
private Optional<MarkTemplateDTO> markTemplate2;
|
||||
private PassingInstruction passingInstruction;
|
||||
|
||||
public ControlPointEditDTO() {
|
||||
|
||||
}
|
||||
|
||||
public ControlPointEditDTO(MarkTemplateDTO markTemplate1, MarkTemplateDTO markTemplate2,
|
||||
PassingInstruction passingInstruction) {
|
||||
super();
|
||||
this.markTemplate1 = markTemplate1;
|
||||
this.markTemplate2 = Optional.ofNullable(markTemplate2);
|
||||
this.passingInstruction = passingInstruction;
|
||||
}
|
||||
|
||||
public MarkTemplateDTO getMarkTemplate1() {
|
||||
return markTemplate1;
|
||||
}
|
||||
|
||||
public Optional<MarkTemplateDTO> getMarkTemplate2() {
|
||||
return markTemplate2;
|
||||
}
|
||||
|
||||
public PassingInstruction getPassingInstruction() {
|
||||
return passingInstruction;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
+78
-3
@@ -1,20 +1,44 @@
|
||||
package com.sap.sailing.gwt.ui.adminconsole.coursecreation;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.google.gwt.cell.client.TextCell;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.user.cellview.client.CellTable;
|
||||
import com.google.gwt.user.cellview.client.Column;
|
||||
import com.google.gwt.user.client.ui.Button;
|
||||
import com.google.gwt.user.client.ui.FocusWidget;
|
||||
import com.google.gwt.user.client.ui.Grid;
|
||||
import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.user.client.ui.TextBox;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.ui.adminconsole.coursecreation.ControlPointEditDialog.ControlPointEditDTO;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.shared.courseCreation.CourseTemplateDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.courseCreation.MarkTemplateDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.courseCreation.WaypointTemplateDTO;
|
||||
import com.sap.sse.gwt.adminconsole.AdminConsoleTableResources;
|
||||
import com.sap.sse.gwt.client.celltable.BaseCelltable;
|
||||
import com.sap.sse.gwt.client.dialog.DataEntryDialog;
|
||||
|
||||
public class CourseTemplateEditDialog extends DataEntryDialog<CourseTemplateDTO> {
|
||||
private static AdminConsoleTableResources tableResources = GWT.create(AdminConsoleTableResources.class);
|
||||
|
||||
private final TextBox nameTextBox;
|
||||
private final StringMessages stringMessages;
|
||||
private final Button addWaypointTemplate;
|
||||
|
||||
public CourseTemplateEditDialog(final StringMessages stringMessages, CourseTemplateDTO courseTemplateToEdit,
|
||||
DialogCallback<CourseTemplateDTO> callback) {
|
||||
private CellTable<WaypointTemplateDTO> waypointTemplatesTable;
|
||||
private Collection<WaypointTemplateDTO> waypointTemplates = new ArrayList<>();
|
||||
|
||||
public CourseTemplateEditDialog(final SailingServiceAsync sailingService, final StringMessages stringMessages,
|
||||
CourseTemplateDTO courseTemplateToEdit, DialogCallback<CourseTemplateDTO> callback) {
|
||||
super(stringMessages.edit() + " " + stringMessages.courseTemplates(), null, stringMessages.ok(),
|
||||
stringMessages.cancel(), new Validator<CourseTemplateDTO>() {
|
||||
@Override
|
||||
@@ -32,6 +56,56 @@ public class CourseTemplateEditDialog extends DataEntryDialog<CourseTemplateDTO>
|
||||
|
||||
this.nameTextBox = createTextBox(courseTemplateToEdit.getName());
|
||||
|
||||
addWaypointTemplate = new Button(stringMessages.add());
|
||||
addWaypointTemplate.addClickHandler(c -> {
|
||||
ControlPointEditDialog dialog = new ControlPointEditDialog(sailingService, stringMessages,
|
||||
new ControlPointEditDTO(), new DialogCallback<ControlPointEditDTO>() {
|
||||
@Override
|
||||
public void ok(ControlPointEditDTO editedObject) {
|
||||
// create list with one or two elements based on passing instruction
|
||||
final Collection<MarkTemplateDTO> markTemplates = editedObject
|
||||
.getPassingInstruction().applicability[0] == 2
|
||||
? Arrays.asList(editedObject.getMarkTemplate1(),
|
||||
editedObject.getMarkTemplate2().get())
|
||||
: Collections.singletonList(editedObject.getMarkTemplate1());
|
||||
waypointTemplates
|
||||
.add(new WaypointTemplateDTO(markTemplates, editedObject.getPassingInstruction()));
|
||||
refreshWaypointsTable();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel() {
|
||||
// nothing to do
|
||||
}
|
||||
});
|
||||
|
||||
dialog.show();
|
||||
});
|
||||
createWaypointTemplateTable();
|
||||
waypointTemplates.addAll(courseTemplateToEdit.getWaypointTemplates());
|
||||
refreshWaypointsTable();
|
||||
nameTextBox.addKeyUpHandler(e -> validateAndUpdate());
|
||||
}
|
||||
|
||||
private void refreshWaypointsTable() {
|
||||
waypointTemplatesTable.setRowCount(waypointTemplates.size());
|
||||
waypointTemplatesTable.setRowData(0, (List<? extends WaypointTemplateDTO>) waypointTemplates);
|
||||
}
|
||||
|
||||
private void createWaypointTemplateTable() {
|
||||
waypointTemplatesTable = new BaseCelltable<>(1000, tableResources);
|
||||
waypointTemplatesTable.setWidth("100%");
|
||||
|
||||
Column<WaypointTemplateDTO, String> waypointTemplateColumn = new Column<WaypointTemplateDTO, String>(
|
||||
new TextCell()) {
|
||||
@Override
|
||||
public String getValue(WaypointTemplateDTO waypointTemplate) {
|
||||
return waypointTemplate.getMarkTemplatesForControlPoint().stream().map(m -> m.getName())
|
||||
.collect(Collectors.joining("-"));
|
||||
}
|
||||
};
|
||||
waypointTemplatesTable.addColumn(waypointTemplateColumn, stringMessages.name());
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -39,7 +113,6 @@ public class CourseTemplateEditDialog extends DataEntryDialog<CourseTemplateDTO>
|
||||
return nameTextBox;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected CourseTemplateDTO getResult() {
|
||||
// TODO: implement
|
||||
@@ -51,6 +124,8 @@ public class CourseTemplateEditDialog extends DataEntryDialog<CourseTemplateDTO>
|
||||
Grid result = new Grid(6, 2);
|
||||
result.setWidget(0, 0, new Label(stringMessages.name()));
|
||||
result.setWidget(0, 1, nameTextBox);
|
||||
result.setWidget(1, 0, addWaypointTemplate);
|
||||
result.setWidget(1, 1, waypointTemplatesTable);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -278,7 +278,8 @@ public class CourseTemplatePanel extends FlowPanel {
|
||||
}
|
||||
|
||||
void openEditCourseTemplateDialog(final CourseTemplateDTO originalCourseTemplate) {
|
||||
final CourseTemplateEditDialog dialog = new CourseTemplateEditDialog(stringMessages, originalCourseTemplate,
|
||||
final CourseTemplateEditDialog dialog = new CourseTemplateEditDialog(sailingService, stringMessages,
|
||||
originalCourseTemplate,
|
||||
new DialogCallback<CourseTemplateDTO>() {
|
||||
@Override
|
||||
public void ok(CourseTemplateDTO courseTemplate) {
|
||||
|
||||
+90
@@ -0,0 +1,90 @@
|
||||
package com.sap.sailing.gwt.ui.adminconsole.coursecreation;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.google.gwt.user.client.Window;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.shared.courseCreation.MarkTemplateDTO;
|
||||
import com.sap.sse.common.Util;
|
||||
import com.sap.sse.gwt.client.suggestion.AbstractListSuggestOracle;
|
||||
import com.sap.sse.security.ui.client.i18n.StringMessages;
|
||||
|
||||
/**
|
||||
* Suggest oracle for use in {@link CourseTemplateEditDialog} which oracles the visible mark templates.
|
||||
*/
|
||||
public class MarkTemplateSuggestOracle extends AbstractListSuggestOracle<MarkTemplateDTO> {
|
||||
|
||||
private final Collection<MarkTemplateDTO> allTemplates = new ArrayList<>();
|
||||
private final SailingServiceAsync sailingServiceAsync;
|
||||
private final StringMessages stringMessages;
|
||||
|
||||
public MarkTemplateSuggestOracle(final SailingServiceAsync sailingServiceAsync,
|
||||
final StringMessages stringMessages) {
|
||||
this.sailingServiceAsync = sailingServiceAsync;
|
||||
this.stringMessages = stringMessages;
|
||||
refresh();
|
||||
}
|
||||
|
||||
public void refresh() {
|
||||
sailingServiceAsync.getMarkTemplates(new AsyncCallback<Iterable<MarkTemplateDTO>>() {
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
Window.alert(stringMessages.couldNotLoadMarkTemplates());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(Iterable<MarkTemplateDTO> result) {
|
||||
allTemplates.clear();
|
||||
Util.addAll(result, allTemplates);
|
||||
setSelectableValues(allTemplates);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears the oracle suggestions, adds all existing templates and finally removes the existing templates from the
|
||||
* oracle.
|
||||
*/
|
||||
public void resetAndRemoveExistingTemplates(Iterable<String> existingTemplates) {
|
||||
Collection<MarkTemplateDTO> templates = new ArrayList<>(allTemplates);
|
||||
templates = templates.stream().filter(u -> !Util.contains(existingTemplates, u.getName()))
|
||||
.collect(Collectors.toList());
|
||||
super.setSelectableValues(templates);
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns a {@link MarkTemplateDTO}-object from the current selectable values of this oracle, which is associated
|
||||
* with the given template name.
|
||||
*/
|
||||
public MarkTemplateDTO fromString(final String templateName) {
|
||||
if (this.getSelectableValues() == null) {
|
||||
throw new NullPointerException("Mark Templates are not loaded yet or could not be loaded.");
|
||||
}
|
||||
|
||||
for (MarkTemplateDTO template : this.getSelectableValues()) {
|
||||
if (template.getName().equals(templateName)) {
|
||||
return template;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String createSuggestionKeyString(MarkTemplateDTO value) {
|
||||
return value.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String createSuggestionAdditionalDisplayString(MarkTemplateDTO value) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Iterable<String> getMatchingStrings(MarkTemplateDTO value) {
|
||||
return this.getSelectableValues().stream().map(r -> createSuggestionKeyString(r)).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
package com.sap.sailing.gwt.ui.adminconsole.coursecreation;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.sap.sailing.domain.common.PassingInstruction;
|
||||
import com.sap.sse.common.Util;
|
||||
import com.sap.sse.gwt.client.suggestion.AbstractListSuggestOracle;
|
||||
|
||||
/**
|
||||
* Suggest oracle for use in {@link ControlPointEditDialog} which oracles the available passing instructions.
|
||||
*/
|
||||
public class PassingInstructionSuggestOracle extends AbstractListSuggestOracle<PassingInstruction> {
|
||||
|
||||
private final Collection<PassingInstruction> allPassingInstructions;
|
||||
|
||||
public PassingInstructionSuggestOracle() {
|
||||
allPassingInstructions = Arrays.asList(PassingInstruction.relevantValues());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Clears the oracle suggestions, adds all existing passing instructions and finally removes the existing passing
|
||||
* instructions from the oracle.
|
||||
*/
|
||||
public void resetAndRemoveExistingPassingInstructions(Iterable<String> passingInstructions) {
|
||||
Collection<PassingInstruction> users = new ArrayList<>(allPassingInstructions);
|
||||
users = users.stream().filter(u -> !Util.contains(passingInstructions, u.name())).collect(Collectors.toList());
|
||||
super.setSelectableValues(users);
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns a {@link PassingInstruction}-object from the current selectable values of this oracle, which is
|
||||
* associated with the given name.
|
||||
*/
|
||||
public PassingInstruction fromString(final String passingInstructionName) {
|
||||
for (PassingInstruction instruction : this.getSelectableValues()) {
|
||||
if (instruction.name().equals(passingInstructionName)) {
|
||||
return instruction;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String createSuggestionKeyString(PassingInstruction value) {
|
||||
return value.name();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String createSuggestionAdditionalDisplayString(PassingInstruction value) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Iterable<String> getMatchingStrings(PassingInstruction value) {
|
||||
return this.getSelectableValues().stream().map(r -> createSuggestionKeyString(r)).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
+6
-2
@@ -2270,8 +2270,12 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages,
|
||||
String markTemplates();
|
||||
String filterMarkPropertiesByName();
|
||||
String markProperties();
|
||||
|
||||
String filterCourseTemplateByName();
|
||||
|
||||
String courseTemplates();
|
||||
String markTemplate();
|
||||
String markTemplate2Optional();
|
||||
|
||||
String pleaseSelectAValidPassingInstruction();
|
||||
|
||||
String pleaseSelectAValidMarkTemplate();
|
||||
}
|
||||
+5
-1
@@ -2275,4 +2275,8 @@ markTemplates=Mark Templates
|
||||
filterMarkPropertiesByName=Filter mark properties
|
||||
markProperties=Mark Properties
|
||||
filterCourseTemplateByName=Filter course templates
|
||||
courseTemplates=Course Templates
|
||||
courseTemplates=Course Templates
|
||||
markTemplate=Mark Template 1
|
||||
markTemplate2Optional=Mark Template 2 (optional)
|
||||
pleaseSelectAValidMarkTemplate=Please select a valid mark template
|
||||
pleaseSelectAValidPassingInstruction=Please select a valid passing instruction
|
||||
+9
-5
@@ -2262,9 +2262,13 @@ startMode=Startmodus
|
||||
gateOpeningTime=Torstart Öffnungsdauer
|
||||
protestTimeInMinutes=Protestzeit in Minuten
|
||||
courseCreation=Kurserstellung
|
||||
filterMarkTemplateByName=Markvorlagen filter
|
||||
markTemplates=Markvorlagen
|
||||
filterMarkPropertiesByName=Markeigenschaften filter
|
||||
markProperties=Markeigenschaften
|
||||
filterMarkTemplateByName=Bahnmarkenvorlagen filter
|
||||
markTemplates=Bahnmarkenvorlagen
|
||||
filterMarkPropertiesByName=Bahnmarkeneigenschaften filter
|
||||
markProperties=Bahnmarkeneigenschaften
|
||||
filterCourseTemplateByName=Kursvorlagen filtern
|
||||
courseTemplates=Kursvorlagen
|
||||
courseTemplates=Kursvorlagen
|
||||
markTemplate=Bahnmarkenvorlage 1
|
||||
markTemplate2Optional=Bahnmarkenvorlage 2 (optional)
|
||||
pleaseSelectAValidMarkTemplate=Bitte eine gültige Bahnmarkenvorlage auswählen
|
||||
pleaseSelectAValidPassingInstruction=Bitte eine gültige Passieranweisung auswählen
|
||||
+4
@@ -11,6 +11,10 @@ public class WaypointTemplateDTO {
|
||||
|
||||
private PassingInstruction passingInstruction;
|
||||
|
||||
public WaypointTemplateDTO() {
|
||||
|
||||
}
|
||||
|
||||
public WaypointTemplateDTO(Iterable<MarkTemplateDTO> markTemplatesForControlPoint,
|
||||
PassingInstruction passingInstruction) {
|
||||
super();
|
||||
|
||||
+1
@@ -185,4 +185,5 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages {
|
||||
|
||||
String editRolesAndPermissionsForUser(String username);
|
||||
String permissionType();
|
||||
String couldNotLoadMarkTemplates();
|
||||
}
|
||||
+2
-1
@@ -189,4 +189,5 @@ filterPermission = Filter permission
|
||||
permission=Permission
|
||||
nullUserGroup=<Anonymous UserGroup>
|
||||
editRolesAndPermissionsForUser=Edit roles and permissions for user {0}
|
||||
permissionType: Permission Type
|
||||
permissionType: Permission Type
|
||||
couldNotLoadMarkTemplates=Could not load mark templates.
|
||||
+2
-1
@@ -189,4 +189,5 @@ filterPermission = Berechtigungen filtern
|
||||
permission=Berechtigung
|
||||
nullUserGroup=<Anonyme Usergruppe>
|
||||
editRolesAndPermissionsForUser=Rollen und Berechtigungen für Benutzer {0} editieren
|
||||
permissionType=Berechtigungstyp
|
||||
permissionType=Berechtigungstyp
|
||||
couldNotLoadMarkTemplates=Markvorlagen konnten nicht geladen werden.
|
||||
Reference in new issue
Block a user