summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java
diff options
context:
space:
mode:
authorJonathan Bauer2015-08-25 18:12:22 +0200
committerJonathan Bauer2015-08-25 18:12:22 +0200
commit0de80c6c89b36441778d39a2c32dcf0ce514d99f (patch)
tree697f4a5855d842c947af8af2976eeb64f61de288 /dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java
parent[client] fix description label beeing sucky (diff)
downloadtutor-module-0de80c6c89b36441778d39a2c32dcf0ce514d99f.tar.gz
tutor-module-0de80c6c89b36441778d39a2c32dcf0ce514d99f.tar.xz
tutor-module-0de80c6c89b36441778d39a2c32dcf0ce514d99f.zip
[client] reworked image base deletion from ImageListWindow
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java39
1 files changed, 39 insertions, 0 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java
index 192f8138..d12b7155 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java
@@ -6,6 +6,7 @@ import java.io.FileNotFoundException;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.security.NoSuchAlgorithmException;
+import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -16,9 +17,11 @@ import org.apache.thrift.TException;
import org.openslx.bwlp.thrift.iface.ImageBaseWrite;
import org.openslx.bwlp.thrift.iface.ImageDetailsRead;
import org.openslx.bwlp.thrift.iface.ImagePermissions;
+import org.openslx.bwlp.thrift.iface.ImageVersionDetails;
import org.openslx.bwlp.thrift.iface.ImageVersionWrite;
import org.openslx.bwlp.thrift.iface.LecturePermissions;
import org.openslx.bwlp.thrift.iface.LectureRead;
+import org.openslx.bwlp.thrift.iface.LectureSummary;
import org.openslx.bwlp.thrift.iface.LectureWrite;
import org.openslx.bwlp.thrift.iface.TAuthorizationException;
import org.openslx.bwlp.thrift.iface.TransferInformation;
@@ -478,6 +481,42 @@ public class ThriftActions {
*/
void isDeleted(boolean success);
}
+ public static void deleteBaseImage(final Frame frame, final String imageBaseId, final DeleteCallback callback) {
+ // first look if we have versions
+ ImageDetailsRead details = null;
+ List<LectureSummary> lecturesToBeDeleted = new ArrayList<>();
+ try {
+ details = ThriftManager.getSatClient().getImageDetails(Session.getSatelliteToken(), imageBaseId);
+ List<LectureSummary> lectureList = ThriftManager.getSatClient().getLectureList(Session.getSatelliteToken(), 100);
+ for (LectureSummary lecture : lectureList) {
+ if (lecture.getImageBaseId().equals(imageBaseId)) {
+ lecturesToBeDeleted.add(lecture);
+ }
+ }
+
+ } catch (TException e) {
+ ThriftError.showMessage(frame, LOGGER, e, "Fehler");
+ return;
+ }
+ String questionText = "Ausgewähltes Image hat folgende Veranstaltungen:\n";
+ if (details != null && lecturesToBeDeleted != null) {
+ for (LectureSummary lecture : lecturesToBeDeleted) {
+ questionText += lecture.getLectureName() + "\n";
+ }
+ questionText += "\nUnd folgende Versionen:\n";
+ for (ImageVersionDetails version : details.getVersions()) {
+ questionText += version.getVersionId() + "\n";
+ }
+ if (!userConfirmed(frame, questionText))
+ return;
+ try {
+ ThriftManager.getSatClient().deleteImageBase(Session.getSatelliteToken(), imageBaseId);
+ } catch (TException e) {
+ // TODO Auto-generated catch block
+ ThriftError.showMessage(frame, LOGGER, e, "Konnte Basis-Image nicht löschen!");
+ }
+ }
+ }
/**
* NON-BLOCKING
* Deletes either an image base or an image version depending on the parameters.