summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java
diff options
context:
space:
mode:
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.java82
1 files changed, 44 insertions, 38 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 efe2e381..e8681c6e 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java
@@ -24,6 +24,8 @@ 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.TInternalServerError;
+import org.openslx.bwlp.thrift.iface.TNotFoundException;
import org.openslx.bwlp.thrift.iface.TransferInformation;
import org.openslx.bwlp.thrift.iface.UserInfo;
import org.openslx.dozmod.Config;
@@ -481,7 +483,7 @@ public class ThriftActions {
*/
void isDeleted(boolean success);
}
- public static void deleteBaseImage(final Frame frame, final String imageBaseId, final DeleteCallback callback) {
+ public static void deleteImageBase(final Frame frame, final String imageBaseId, final DeleteCallback callback) {
if (imageBaseId == null || imageBaseId.isEmpty())
return;
// first look if we have versions
@@ -500,7 +502,7 @@ public class ThriftActions {
ThriftError.showMessage(frame, LOGGER, e, "Fehler");
return;
}
- String questionText = "Ausgewähltes Image hat folgende Veranstaltungen:\n";
+ String questionText = "Dieses Image ist verknüpft zu folgende Veranstaltungen:\n";
if (details != null && lecturesToBeDeleted != null) {
for (LectureSummary lecture : lecturesToBeDeleted) {
questionText += lecture.getLectureName() + "\n";
@@ -534,47 +536,49 @@ public class ThriftActions {
* @param imageVersionId id of the image version to be deleted
* @param callback called to inform the GUI about the deletion status (see DeleteCallback interface)
*/
- public static void deleteImageBaseOrVersion(final Frame frame, final String imageBaseId,
- final String imageVersionId, final DeleteCallback callback) {
- String questionText;
- if (imageBaseId == null) {
+ public static void deleteImageVersion(final Frame frame, final String imageVersionId,
+ final DeleteCallback callback) {
+ // TODO async?
+ if (imageVersionId == null || imageVersionId.isEmpty())
return;
- } else {
- questionText = imageVersionId == null ?
- "Wollen Sie dieses Image wirklich löschen?" : "Wollen Sie diese Image-Version wirklich löschen?";
+ boolean success = false;
+ List<LectureSummary> lectureList = null;
+ try {
+ // fetch lectures
+ lectureList = ThriftManager.getSatClient().getLectureList(Session.getSatelliteToken(), 100);
+ } catch (TException e) {
+ ThriftError.showMessage(frame, LOGGER, e, "Fehler beim Holen der Liste der Veranstaltungen");
+ if (callback != null)
+ callback.isDeleted(success);
+ return;
+ }
+ String questionText = "Diese Version ist verknüpft zu folgende Veranstaltungen:\n";
+ if (lectureList != null) {
+ for (LectureSummary lecture : lectureList) {
+ if (lecture.getImageVersionId().equals(imageVersionId)) {
+ questionText += lecture.getLectureName() + "\n";
+ }
+ }
}
+ questionText += "\nWollen Sie diese Version samt Veranstaltungen löschen?\n";
if (!userConfirmed(frame, questionText))
return;
-
- // perform the deletion
- QuickTimer.scheduleOnce(new Task() {
- boolean success = false;
+ try {
+ ThriftManager.getSatClient().deleteImageVersion(Session.getSatelliteToken(), imageVersionId);
+ LOGGER.info("Deleted version '" + imageVersionId + "'.");
+ success = true;
+ } catch (TException e) {
+ ThriftError.showMessage(frame, LOGGER, e, "Fehler beim Löschen der Version");
+ if (callback != null)
+ callback.isDeleted(success);
+ return;
+ }
+ final boolean fSuccess = success;
+ Gui.asyncExec(new Runnable() {
@Override
- public void fire() {
- try {
- if (imageVersionId == null) {
- // deleting an image base
- ThriftManager.getSatClient().deleteImageBase(Session.getSatelliteToken(), imageBaseId);
- LOGGER.info("Deleted image with id '" + imageBaseId + "'");
- } else {
- // deleting an image version
- ThriftManager.getSatClient().deleteImageVersion(Session.getSatelliteToken(), imageVersionId);
- LOGGER.info("Deleted version '" + imageVersionId + "' of image '" + imageBaseId + "'.");
- }
- success = true;
- } catch (TException e) {
- ThriftError.showMessage(frame, LOGGER, e, "Löschen fehlgeschlagen");
- if (callback != null)
- callback.isDeleted(success);
- return;
- }
- Gui.asyncExec(new Runnable() {
- @Override
- public void run() {
- if (callback != null)
- callback.isDeleted(success);
- }
- });
+ public void run() {
+ if (callback != null)
+ callback.isDeleted(fSuccess);
}
});
}
@@ -748,6 +752,8 @@ public class ThriftActions {
void deleted(boolean success);
}
public static void deleteLecture(final Frame frame, final String lectureId, final DeleteLectureCallback callback) {
+ if (lectureId == null)
+ return;
QuickTimer.scheduleOnce(new Task() {
boolean success = false;
@Override