mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-16 10:48:47 +00:00
bug6233: added handler to check permissions fo UPDATE and REMOVE
This commit is contained in:
+24
-3
@@ -32,9 +32,12 @@ import com.google.gwt.user.cellview.client.Header;
|
||||
import com.google.gwt.user.client.Command;
|
||||
import com.google.gwt.user.client.Window;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.ui.Button;
|
||||
import com.google.gwt.user.client.ui.FlowPanel;
|
||||
import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.view.client.ListDataProvider;
|
||||
import com.google.gwt.view.client.SelectionChangeEvent;
|
||||
import com.google.gwt.view.client.SelectionChangeEvent.Handler;
|
||||
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
||||
import com.sap.sailing.domain.common.media.MediaTrack;
|
||||
import com.sap.sailing.domain.common.media.MediaTrackWithSecurityDTO;
|
||||
@@ -174,12 +177,12 @@ public class MediaPanel extends FlowPanel implements FilterablePanelProvider<Med
|
||||
}).center();
|
||||
}
|
||||
});
|
||||
buttonAndFilterPanel.addUpdateAction(stringMessages.multiUrlChangeMediaTrack(),
|
||||
final Button multiUrlChange = buttonAndFilterPanel.addUpdateAction(stringMessages.multiUrlChangeMediaTrack(),
|
||||
refreshableSelectionModel,
|
||||
new Command() {
|
||||
@Override
|
||||
public void execute() {
|
||||
Set<MediaTrackWithSecurityDTO> selected = refreshableSelectionModel.getSelectedSet();
|
||||
final Set<MediaTrackWithSecurityDTO> selected = refreshableSelectionModel.getSelectedSet();
|
||||
if (selected.isEmpty()) {
|
||||
Notification.notify(stringMessages.noSelection(), NotificationType.ERROR);
|
||||
} else {
|
||||
@@ -192,7 +195,7 @@ public class MediaPanel extends FlowPanel implements FilterablePanelProvider<Med
|
||||
}
|
||||
}
|
||||
});
|
||||
buttonAndFilterPanel.addRemoveAction(stringMessages.remove(), refreshableSelectionModel,
|
||||
final Button remove = buttonAndFilterPanel.addRemoveAction(stringMessages.remove(), refreshableSelectionModel,
|
||||
/* with confirmation */ true, new Command() {
|
||||
@Override
|
||||
public void execute() {
|
||||
@@ -201,6 +204,24 @@ public class MediaPanel extends FlowPanel implements FilterablePanelProvider<Med
|
||||
}
|
||||
}
|
||||
});
|
||||
refreshableSelectionModel.addSelectionChangeHandler(new Handler() {
|
||||
@Override
|
||||
public void onSelectionChange(final SelectionChangeEvent event) {
|
||||
final Set<MediaTrackWithSecurityDTO> selected = refreshableSelectionModel.getSelectedSet();
|
||||
boolean canDeleteAllSelected = true;
|
||||
boolean canUpdateAllSelected = true;
|
||||
for (final MediaTrackWithSecurityDTO track : selected) {
|
||||
if (!userService.hasPermission(track, DefaultActions.DELETE)) {
|
||||
canDeleteAllSelected = false;
|
||||
}
|
||||
if (!userService.hasPermission(track, DefaultActions.UPDATE)) {
|
||||
canUpdateAllSelected = false;
|
||||
}
|
||||
}
|
||||
remove.setEnabled(!selected.isEmpty() && canDeleteAllSelected);
|
||||
multiUrlChange.setEnabled(!selected.isEmpty() && canUpdateAllSelected);
|
||||
}
|
||||
});
|
||||
buttonAndFilterPanel.addUnsecuredWidget(lblFilterRaces);
|
||||
createMediaTracksTable(userService);
|
||||
filterableMediaTracks.getTextBox().ensureDebugId("MediaTracksFilterTextBox");
|
||||
|
||||
Reference in New Issue
Block a user