diff options
author | Stephan Schwaer | 2015-08-24 17:42:59 +0200 |
---|---|---|
committer | Stephan Schwaer | 2015-08-24 17:42:59 +0200 |
commit | 9168659e90149cffcabc2153ac1e132c4a8a3957 (patch) | |
tree | 48999980ea8dbfa2ac7f082c70ecb6ccb0774f36 /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) | |
download | tutor-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.java | 47 |
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 |