summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java
diff options
context:
space:
mode:
authorStephan Schwaer2015-08-24 17:42:59 +0200
committerStephan Schwaer2015-08-24 17:42:59 +0200
commit9168659e90149cffcabc2153ac1e132c4a8a3957 (patch)
tree48999980ea8dbfa2ac7f082c70ecb6ccb0774f36 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java
parent[client] remove logged in user from the user list for custom permissions (diff)
downloadtutor-module-9168659e90149cffcabc2153ac1e132c4a8a3957.tar.gz
tutor-module-9168659e90149cffcabc2153ac1e132c4a8a3957.tar.xz
tutor-module-9168659e90149cffcabc2153ac1e132c4a8a3957.zip
[client] Included new permission options into lecture details.
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java47
1 files changed, 29 insertions, 18 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java
index 02d6f233..33ac3627 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java
@@ -36,6 +36,7 @@ import org.openslx.dozmod.gui.helper.UiFeedback;
import org.openslx.dozmod.gui.window.UserListWindow.UserAddedCallback;
import org.openslx.dozmod.gui.window.layout.LectureDetailsWindowLayout;
import org.openslx.dozmod.permissions.LecturePerms;
+import org.openslx.dozmod.permissions.PermissionDefaultToCustomLink;
import org.openslx.dozmod.thrift.Session;
import org.openslx.dozmod.thrift.ThriftActions;
import org.openslx.dozmod.thrift.ThriftActions.LectureMetaCallback;
@@ -81,6 +82,11 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements
* Image, that the lecture is linked to.
*/
private ImageDetailsRead image = null;
+
+ /**
+ * Whether the custom permission window has been used.
+ */
+ private boolean permissionsChanged = false;
private Task dateChecker;
@@ -137,10 +143,18 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements
}, "Besitzer festlegen");
}
});
- btnCustomPermissions.addActionListener(new ActionListener() {
+ btnPermissions.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
- LectureCustomPermissionWindow.open(JOptionPane.getFrameForComponent(me), permissionMap, lecture.defaultPermissions, lecture.lectureId);
+ LOGGER.info(permissionMap);
+ LOGGER.info(lecture.defaultPermissions);
+ PermissionDefaultToCustomLink<LecturePermissions> pl = LectureCustomPermissionWindow.open(JOptionPane.getFrameForComponent(me), permissionMap, lecture.defaultPermissions);
+ if (pl != null && pl.defaultPermissions != null && pl.customPermissions != null){
+ lecture.defaultPermissions = pl.defaultPermissions;
+ permissionMap = pl.customPermissions;
+ permissionsChanged = true;
+ }
+ reactToChange();
}
});
btnSaveChanges.addActionListener(new ActionListener() {
@@ -174,12 +188,15 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements
synchronized (me) {
lecture = lectureDetails;
image = imageDetails;
+ permissionMap = ThriftActions.getLecturePermissions(JOptionPane.getFrameForComponent(me), lecture.lectureId);
}
fill();
}
@Override
public void fetchedLecturePermissions(Map<String, LecturePermissions> permissions) { return; }
});
+
+
}
/**
@@ -318,6 +335,14 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements
callback.updated(true);
return;
}
+ if(permissionsChanged){
+ try {
+ ThriftManager.getSatClient().writeLecturePermissions(Session.getSatelliteToken(), lecture.lectureId, permissionMap);
+ permissionsChanged = false;
+ } catch (TException e) {
+ LOGGER.error("Fehler beim Übertragen der Berechtigungen: ", e);
+ }
+ }
btnSaveChanges.setEnabled(true);
refresh(true);
callback.updated(true);
@@ -363,24 +388,11 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements
reactToChange();
}
};
- chkCustomPermAdmin.addActionListener(checkBoxListener);
- chkCustomPermEdit.addActionListener(checkBoxListener);
btnAutoUpdate.addActionListener(checkBoxListener);
btnIsExam.addActionListener(checkBoxListener);
btnHasInternetAccess.addActionListener(checkBoxListener);
btnIsActive.addActionListener(checkBoxListener);
- final ActionListener dateTimeListener = new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- if (!isPeriodValid(DateTimeHelper.getDateFrom(startDate, startTime), DateTimeHelper.getDateFrom(endDate, endTime), false))
- return;
- reactToChange();
- }
- };
-
- startDate.addActionListener(dateTimeListener);
- endDate.addActionListener(dateTimeListener);
dateChecker = new Task() {
@Override
public void fire() {
@@ -438,9 +450,7 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements
changed = true;
} else if (btnIsActive.isSelected() != lecture.isEnabled) {
changed = true;
- } else if (chkCustomPermAdmin.isSelected() != lecture.defaultPermissions.admin) {
- changed = true;
- } else if (chkCustomPermEdit.isSelected() != lecture.defaultPermissions.edit) {
+ } else if (permissionsChanged) {
changed = true;
}
@@ -460,6 +470,7 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements
btnAutoUpdate.setEnabled(editable);
cboVersions.setEnabled(editable && !lecture.autoUpdate);
btnChangeOwner.setEnabled(editable && LecturePerms.canAdmin(lecture));
+ btnPermissions.setEnabled(editable && LecturePerms.canAdmin(lecture));
startDate.setEnabled(editable); // TODO
startTime.setEnabled(editable);
endDate.setEnabled(editable); // TODO