ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
class.ilObjOrgUnitGUI.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3
27{
28 const TAB_POSITIONS = 'positions';
29 const TAB_ORGU_TYPES = 'orgu_types';
30 const TAB_SETTINGS = "settings";
31 const TAB_STAFF = 'orgu_staff';
32 const TAB_GLOBAL_SETTINGS = 'global_settings';
33 const TAB_EXPORT = 'export';
37 public $ctrl;
41 public $tpl;
45 public $tabs_gui;
49 protected $ilAccess;
53 protected $toolbar;
57 protected $ilLocator;
61 public $tree;
65 public $object;
69 protected $ilLog;
73 public $ilias;
74 const CMD_EDIT_SETTINGS = 'editSettings';
75
76
77 public function __construct()
78 {
79 global $DIC;
80 $tpl = $DIC['tpl'];
81 $ilCtrl = $DIC['ilCtrl'];
82 $ilAccess = $DIC['ilAccess'];
83 $ilToolbar = $DIC['ilToolbar'];
84 $ilLocator = $DIC['ilLocator'];
85 $tree = $DIC['tree'];
86 $lng = $DIC['lng'];
87 $ilLog = $DIC['ilLog'];
88 $ilias = $DIC['ilias'];
89 parent::__construct(array(), $_GET["ref_id"], true, false);
90
91 $this->tpl = $tpl;
92 $this->ctrl = $ilCtrl;
93 $this->ilAccess = $ilAccess;
94 $this->ilLocator = $ilLocator;
95 $this->tree = $tree;
96 $this->toolbar = $ilToolbar;
97 $this->ilLog = $ilLog;
98 $this->ilias = $ilias;
99 $this->type = 'orgu';
100
101 $lng->loadLanguageModule("orgu");
102 $this->tpl->addCss('./Modules/OrgUnit/templates/default/orgu.css');
103 }
104
110 public function executeCommand()
111 {
112 $cmd = $this->ctrl->getCmd();
113 $next_class = $this->ctrl->getNextClass($this);
114 parent::prepareOutput();
115
116 //Otherwise move-Objects would not work
117 if ($cmd != "cut") {
118 $this->showTree();
119 }
120
121 switch ($next_class) {
122 case 'ilorgunitglobalsettingsgui':
123 $this->tabs_gui->activateTab(self::TAB_GLOBAL_SETTINGS);
124 $global_settings = new ilOrgUnitGlobalSettingsGUI();
125 $this->ctrl->forwardCommand($global_settings);
126 break;
127 case "illocalusergui":
129 ilUtil::sendFailure($this->lng->txt("permission_denied"), true);
130 $this->ctrl->redirect($this);
131 }
132 $this->tabs_gui->activateTab('administrate_users');
133 $ilLocalUserGUI = new ilLocalUserGUI($this);
134 $this->ctrl->forwardCommand($ilLocalUserGUI);
135 break;
136 case "ilorgunitsimpleimportgui":
137 $this->tabs_gui->activateTab("view");
138 $this->setContentSubTabs();
139 $this->tabs_gui->setSubTabActive('import');
140 $ilOrgUnitSimpleImportGUI = new ilOrgUnitSimpleImportGUI($this);
141 $this->ctrl->forwardCommand($ilOrgUnitSimpleImportGUI);
142 break;
143 case "ilorgunitsimpleuserimportgui":
144 $ilOrgUnitSimpleUserImportGUI = new ilOrgUnitSimpleUserImportGUI($this);
145 $this->ctrl->forwardCommand($ilOrgUnitSimpleUserImportGUI);
146 break;
147 case "ilorgunitstaffgui":
148 case "ilrepositorysearchgui":
149 $this->tabs_gui->activateTab(self::TAB_STAFF);
150 $ilOrgUnitStaffGUI = new ilOrgUnitStaffGUI($this);
151 $this->ctrl->forwardCommand($ilOrgUnitStaffGUI);
152 break;
153 case "ilobjusergui":
154 switch ($cmd) {
155 case "create":
156 $ilObjUserGUI = new ilObjUserGUI("", (int) $_GET['ref_id'], true, false);
157 $ilObjUserGUI->setCreationMode(true);
158 $this->ctrl->forwardCommand($ilObjUserGUI);
159 $this->tabs_gui->setBackTarget($this->lng->txt("back"), $this->ctrl->getLinkTargetByClass("illocalusergui", 'index'));
160 break;
161 case "save":
162 $ilObjUserGUI = new ilObjUserGUI("", $_GET['ref_id'], true, false);
163 $ilObjUserGUI->setCreationMode(true);
164 $this->ctrl->forwardCommand($ilObjUserGUI);
165 $this->tabs_gui->clearTargets();
166 $this->tabs_gui->setBackTarget($this->lng->txt("back"), $this->ctrl->getLinkTargetByClass("illocalusergui", 'index'));
167 break;
168 case "view":
169 case "update":
170 $ilObjUserGUI = new ilObjUserGUI("", (int) $_GET['obj_id'], false, false);
171 $ilObjUserGUI->setCreationMode(false);
172 $this->ctrl->forwardCommand($ilObjUserGUI);
173 $this->tabs_gui->clearTargets();
174 $this->tabs_gui->setBackTarget($this->lng->txt("back"), $this->ctrl->getLinkTargetByClass("illocalusergui", 'index'));
175 break;
176 case "cancel":
177 $this->ctrl->redirectByClass("illocalusergui", "index");
178 break;
179 }
180 break;
181 case "ilobjuserfoldergui":
182 switch ($cmd) {
183 case "view":
184 $this->ctrl->redirectByClass("illocalusergui", "index");
185 break;
186 default:
187 $ilObjUserFolderGUI = new ilObjUserFolderGUI("", (int) $_GET['ref_id'], true, false);
188 $ilObjUserFolderGUI->setUserOwnerId((int) $_GET['ref_id']);
189 $ilObjUserFolderGUI->setCreationMode(true);
190 $this->ctrl->forwardCommand($ilObjUserFolderGUI);
191 $this->tabs_gui->clearTargets();
192 $this->tabs_gui->setBackTarget($this->lng->txt("back"), $this->ctrl->getLinkTargetByClass("illocalusergui", 'index'));
193 break;
194 }
195 break;
196 case "ilinfoscreengui":
197 $this->tabs_gui->activateTab("info_short");
198 if (!$this->ilAccess->checkAccess("read", "", $this->ref_id) and !$this->ilAccess->checkAccess("visible", "", $this->ref_id)) {
199 $this->ilias->raiseError($this->lng->txt("msg_no_perm_read"), $this->ilias->error_obj->MESSAGE);
200 }
201 $info = new ilInfoScreenGUI($this);
202 $amd_gui = new ilAdvancedMDRecordGUI(ilAdvancedMDRecordGUI::MODE_INFO, 'orgu', $this->object->getId(), 'orgu_type', $this->object->getOrgUnitTypeId());
203 $amd_gui->setInfoObject($info);
204 $amd_gui->parse();
205 $this->ctrl->forwardCommand($info);
206 break;
207 case 'ilpermissiongui':
208 $this->tabs_gui->activateTab('perm_settings');
209 $ilPermissionGUI = new ilPermissionGUI($this);
210 $this->ctrl->forwardCommand($ilPermissionGUI);
211 break;
212 case "ilcommonactiondispatchergui":
214 $this->ctrl->forwardCommand($gui);
215 break;
216 case 'illearningprogressgui':
217 case 'illplistofprogressgui':
218 $this->tabs_gui->clearTargets();
219 $this->tabs_gui->setBackTarget($this->lng->txt('backto_staff'), $this->ctrl->getLinkTargetByClass(ilOrgUnitUserAssignmentGUI::class, ilOrgUnitUserAssignmentGUI::CMD_INDEX));
220 if (!ilObjOrgUnitAccess::_checkAccessToUserLearningProgress($this->object->getRefid(), $_GET['obj_id'])) {
221 ilUtil::sendFailure($this->lng->txt("permission_denied"), true);
222 $this->ctrl->redirectByClass("ilOrgUnitStaffGUI", "showStaff");
223 }
224 $this->ctrl->saveParameterByClass("illearningprogressgui", "obj_id");
225 $this->ctrl->saveParameterByClass("illearningprogressgui", "recursive");
227 $this->ctrl->forwardCommand($new_gui);
228 break;
229 case 'ilorgunitexportgui':
230 if (!ilObjOrgUnitAccess::_checkAccessExport((int) $_GET['ref_id'])) {
231 ilUtil::sendFailure($this->lng->txt("permission_denied"), true);
232 $this->ctrl->redirect($this);
233 }
234 $this->tabs_gui->activateTab(self::TAB_EXPORT);;
235 $ilOrgUnitExportGUI = new ilOrgUnitExportGUI($this);
236 $ilOrgUnitExportGUI->addFormat('xml');
237 $this->ctrl->forwardCommand($ilOrgUnitExportGUI);
238 break;
239 case strtolower(ilTranslationGUI::class):
240 $this->tabs_gui->activateTab(self::TAB_SETTINGS);
241 $this->setSubTabsSettings('edit_translations');
242 $ilTranslationGui = new ilTranslationGUI($this);
243 $this->ctrl->forwardCommand($ilTranslationGui);
244 break;
245 case strtolower(ilOrgUnitTypeGUI::class):
246 $this->tabs_gui->activateTab(self::TAB_ORGU_TYPES);
247 $types_gui = new ilOrgUnitTypeGUI($this);
248 $this->ctrl->forwardCommand($types_gui);
249 break;
250 case strtolower(ilOrgUnitPositionGUI::class):
251 $this->tabs_gui->activateTab(self::TAB_POSITIONS);
252 $types_gui = new ilOrgUnitPositionGUI($this);
253 $this->ctrl->forwardCommand($types_gui);
254 break;
255 case strtolower(ilOrgUnitUserAssignmentGUI::class):
256 $this->tabs_gui->activateTab(self::TAB_STAFF);
257 $ilOrgUnitUserAssignmentGUI = new ilOrgUnitUserAssignmentGUI();
258 $this->ctrl->forwardCommand($ilOrgUnitUserAssignmentGUI);
259 break;
260 default:
261 switch ($cmd) {
262 case '':
263 case 'view':
264 case 'render':
265 case 'cancel':
266 case 'cancelDelete':
267 $this->view();
268 break;
269 case 'performPaste':
270 case 'paste':
271 $this->performPaste();
272 break;
273 case 'performPasteIntoMultipleObjects':
275 break;
276 case 'keepObjectsInClipboard':
278 break;
279 case 'create':
280 parent::createObject();
281 break;
282 case 'save':
283 parent::saveObject();
284 break;
285 case 'delete':
286 $this->tabs_gui->clearTargets();
287 $this->tabs_gui->setBackTarget($this->lng->txt("back"), $this->ctrl->getLinkTarget($this));
288 $this->deleteObject();
289 break;
290 case 'confirmedDelete':
291 $this->confirmedDeleteObject();
292 break;
293 case 'cut':
294 $this->tabs_gui->clearTargets();
295 $this->tabs_gui->setBackTarget($this->lng->txt("back"), $this->ctrl->getLinkTarget($this));
296 parent::cutObject();
297 break;
298 case 'clear':
299 parent::clearObject();
300 break;
301 case 'enableAdministrationPanel':
302 parent::enableAdministrationPanelObject();
303 break;
304 case 'disableAdministrationPanel':
305 parent::disableAdministrationPanelObject();
306 break;
307 case 'getAsynchItemList':
308 parent::getAsynchItemListObject();
309 break;
311 $this->tabs_gui->activateTab(self::TAB_SETTINGS);
312 $this->setSubTabsSettings('edit_settings');
313 $this->editSettings();
314 break;
315 case 'updateSettings':
316 $this->tabs_gui->activateTab(self::TAB_SETTINGS);
317 $this->setSubTabsSettings('edit_settings');
318 $this->updateSettings();
319 break;
320 case 'editAdvancedSettings':
321 $this->tabs_gui->activateTab(self::TAB_SETTINGS);
322 $this->setSubTabsSettings('edit_advanced_settings');
323 $this->editAdvancedSettings();
324 break;
325 case 'updateAdvancedSettings':
326 $this->tabs_gui->activateTab(self::TAB_SETTINGS);
327 $this->setSubTabsSettings('edit_advanced_settings');
328 $this->updateAdvancedSettings();
329 break;
330 case 'importFile':
331 $this->importFileObject();
332 break;
333 case 'cancelMoveLink':
334 $this->cancelMoveLinkObject();
335 break;
336 }
337 break;
338 }
339 }
340
341
345 protected function afterSave(ilObject $a_new_object)
346 {
347 ilUtil::sendSuccess($this->lng->txt("object_added"), true);
348 $this->ctrl->setParameter($this, "ref_id", $a_new_object->getRefId());
349 ilUtil::redirect($this->getReturnLocation("save", $this->ctrl->getLinkTarget($this, self::CMD_EDIT_SETTINGS, "", false, false)));
350 }
351
352
353 public function view()
354 {
355 if (!$this->rbacsystem->checkAccess("read", $_GET["ref_id"])) {
356 if ($this->rbacsystem->checkAccess("visible", $_GET["ref_id"])) {
357 ilUtil::sendFailure($this->lng->txt("msg_no_perm_read"));
358 $this->ctrl->redirectByClass('ilinfoscreengui', '');
359 }
360
361 $this->ilias->raiseError($this->lng->txt("msg_no_perm_read"), $this->ilias->error_obj->WARNING);
362 }
363
364 parent::renderObject();
365 $this->tabs_gui->activateTab("view_content");
366 $this->tabs_gui->removeSubTab("page_editor");
367 $this->tabs_gui->removeSubTab("ordering"); // Mantis 0014728
368 }
369
370
381 protected function initCreationForms($a_new_type)
382 {
383 $forms = array(
384 self::CFORM_NEW => $this->initCreateForm($a_new_type),
385 self::CFORM_IMPORT => $this->initImportForm($a_new_type),
386 );
387
388 return $forms;
389 }
390
391
392 public function showPossibleSubObjects()
393 {
394 $gui = new ilObjectAddNewItemGUI($this->object->getRefId());
396 $gui->setCreationUrl("ilias.php?ref_id=" . $_GET["ref_id"] . "&admin_mode=settings&cmd=create&baseClass=ilAdministrationGUI");
397 $gui->render();
398 }
399
400
401 public function showTree()
402 {
403 $tree = new ilOrgUnitExplorerGUI("orgu_explorer", "ilObjOrgUnitGUI", "showTree", new ilTree(1));
404 $tree->setTypeWhiteList($this->getTreeWhiteList());
405 $tree->setNodeOpen(ilObjOrgUnit::getRootOrgRefId());
406
407 if (!$tree->handleCommand()) {
408 $this->tpl->setLeftNavContent($tree->getHTML());
409 }
410 $this->ctrl->setParameterByClass("ilObjOrgUnitGUI", "ref_id", $_GET["ref_id"]);
411 }
412
413
414 protected function getTreeWhiteList()
415 {
416 $whiteList = array( "orgu" );
417 $pls = ilOrgUnitExtension::getActivePluginIdsForTree();
418
419 return array_merge($whiteList, $pls);
420 }
421
422
426 public function setTitleAndDescription()
427 {
428 # all possible create permissions
429 parent::setTitleAndDescription();
430 if ($this->object->getTitle() == "__OrgUnitAdministration") {
431 $this->tpl->setTitle($this->lng->txt("objs_orgu"));
432 $this->tpl->setDescription($this->lng->txt("objs_orgu"));
433 }
434
435 // Check for custom icon of type
436 if ($this->ilias->getSetting('custom_icons')) {
437 $icons_cache = ilObjOrgUnit::getIconsCache();
438 $icon_file = (isset($icons_cache[$this->object->getId()])) ? $icons_cache[$this->object->getId()] : '';
439 if ($icon_file) {
440 $this->tpl->setTitleIcon($icon_file, $this->lng->txt("obj_" . $this->object->getType()));
441 }
442 }
443 }
444
445
449 protected function addAdminLocatorItems($a_do_not_add_object = false)
450 {
451 $path = $this->tree->getPathFull($_GET["ref_id"], ilObjOrgUnit::getRootOrgRefId());
452 // add item for each node on path
453 foreach ((array) $path as $key => $row) {
454 if ($row["title"] == "__OrgUnitAdministration") {
455 $row["title"] = $this->lng->txt("objs_orgu");
456 }
457 $this->ctrl->setParameterByClass("ilobjorgunitgui", "ref_id", $row["child"]);
458 $this->ilLocator->addItem($row["title"], $this->ctrl->getLinkTargetByClass("ilobjorgunitgui", "view"), ilFrameTargetInfo::_getFrame("MainContent"), $row["child"]);
459 $this->ctrl->setParameterByClass("ilobjorgunitgui", "ref_id", $_GET["ref_id"]);
460 }
461 }
462
463
468 protected function redirectToRefId($a_ref_id, $a_cmd = "")
469 {
470 $obj_type = ilObject::_lookupType($a_ref_id, true);
471 if ($obj_type != "orgu") {
472 parent::redirectToRefId($a_ref_id, $a_cmd);
473 } else {
474 $this->ctrl->setParameterByClass("ilObjOrgUnitGUI", "ref_id", $a_ref_id);
475 $this->ctrl->redirectByClass("ilObjOrgUnitGUI", $a_cmd);
476 }
477 }
478
479
483 public function getTabs()
484 {
485 $read_access_ref_id = $this->rbacsystem->checkAccess('visible,read', $this->object->getRefId());
486 if ($read_access_ref_id) {
487 $this->tabs_gui->addTab("view_content", $this->lng->txt("content"), $this->ctrl->getLinkTarget($this, ""));
488 $this->tabs_gui->addTab("info_short", "Info", $this->ctrl->getLinkTargetByClass("ilinfoscreengui", "showSummary"));
489 }
490
491 // Tabs for OrgUnits exclusive root!
492 if ($this->object->getRefId() != ilObjOrgUnit::getRootOrgRefId()) {
493 if (ilObjOrgUnitAccess::_checkAccessStaff($this->object->getRefId())) {
494 // $this->tabs_gui->addTab('legacy_staff', 'legacy_staff', $this->ctrl->getLinkTargetByClass("ilOrgUnitStaffGUI", "showStaff"));
495 $this->tabs_gui->addTab(self::TAB_STAFF, $this->lng->txt(self::TAB_STAFF), $this->ctrl->getLinkTargetByClass(ilOrgUnitUserAssignmentGUI::class, ilOrgUnitUserAssignmentGUI::CMD_INDEX));
496 }
497 if ($read_access_ref_id) {
498 $this->tabs_gui->addTab(self::TAB_SETTINGS, $this->lng->txt(self::TAB_SETTINGS), $this->ctrl->getLinkTarget($this, self::CMD_EDIT_SETTINGS));
499 $this->tabs_gui->addTab("administrate_users", $this->lng->txt("administrate_users"), $this->ctrl->getLinkTargetByClass("ilLocalUserGUI", "index"));
500 }
501 }
502
503 if ($read_access_ref_id) {
504 if ($this->object->getRefId() == ilObjOrgUnit::getRootOrgRefId()) {
505 $this->tabs_gui->addTab(self::TAB_GLOBAL_SETTINGS, $this->lng->txt('settings'), $this->ctrl->getLinkTargetByClass(ilOrgUnitGlobalSettingsGUI::class));
506 }
507 $this->tabs_gui->addTab(self::TAB_EXPORT, $this->lng->txt(self::TAB_EXPORT), $this->ctrl->getLinkTargetByClass(ilOrgUnitExportGUI::class));
508
509 // Add OrgUnit types and positions tabs
510 if ($this->object->getRefId() == ilObjOrgUnit::getRootOrgRefId()) {
511 $this->tabs_gui->addTab(self::TAB_ORGU_TYPES, $this->lng->txt(self::TAB_ORGU_TYPES), $this->ctrl->getLinkTargetByClass(ilOrgUnitTypeGUI::class));
512 $this->tabs_gui->addTab(self::TAB_POSITIONS, $this->lng->txt(self::TAB_POSITIONS), $this->ctrl->getLinkTargetByClass(ilOrgUnitPositionGUI::class));
513 }
514 }
515 parent::getTabs();
516 }
517
518
522 protected function setSubTabsSettings($active_tab_id)
523 {
524 $next_class = $this->ctrl->getNextClass($this);
525 $cmd = $this->ctrl->getCmd();
526 $this->tabs_gui->addSubTab('edit_settings', $this->lng->txt(self::TAB_SETTINGS), $this->ctrl->getLinkTarget($this, self::CMD_EDIT_SETTINGS));
527 $this->tabs_gui->addSubTab("edit_translations", $this->lng->txt("obj_multilinguality"), $this->ctrl->getLinkTargetByClass("iltranslationgui", "editTranslations"));
528
529 $ilOrgUnitType = $this->object->getOrgUnitType();
530 if ($ilOrgUnitType instanceof ilOrgUnitType) {
531 if (count($ilOrgUnitType->getAssignedAdvancedMDRecords(true))) {
532 $this->tabs_gui->addSubTab('edit_advanced_settings', $this->lng->txt('orgu_adv_settings'), $this->ctrl->getLinkTarget($this, 'editAdvancedSettings'));
533 }
534 }
535
536 $this->tabs_gui->setSubTabActive($active_tab_id);
537 switch ($next_class) {
538 case 'iltranslationgui':
539 $this->tabs_gui->setSubTabActive("edit_translations");
540 break;
541 case '':
542 switch ($cmd) {
544 $this->tabs_gui->setSubTabActive('edit_settings');
545 break;
546 case 'editAdvancedSettings':
547 case 'updateAdvancedSettings':
548 $this->tabs_gui->setSubTabActive('edit_advanced_settings');
549 break;
550 }
551 break;
552 }
553
554 return;
555 }
556
557
561 public function setContentSubTabs()
562 {
564 //only display the import tab at the first level
565 if ($this->rbacsystem->checkAccess("visible, read", $_GET["ref_id"]) and $this->object->getRefId() == ilObjOrgUnit::getRootOrgRefId()) {
566 $this->tabs_gui->addSubTab("import", $this->lng->txt("import"), $this->ctrl->getLinkTargetByClass("ilOrgUnitSimpleImportGUI", "chooseImport"));
567 }
568 }
569
570
576 protected function initAdvancedSettingsForm()
577 {
578 $form = new ilPropertyFormGUI();
579 $form->setFormAction($this->ctrl->getFormAction($this));
580 $form->addCommandButton('updateAdvancedSettings', $this->lng->txt('save'));
581 $form->addCommandButton(self::CMD_EDIT_SETTINGS, $this->lng->txt('cancel'));
582
583 return $form;
584 }
585
586
590 protected function editAdvancedSettings()
591 {
592 if (!$this->ilAccess->checkAccess("write", "", $this->ref_id)) {
593 ilUtil::sendFailure($this->lng->txt("permission_denied"), true);
594 $this->ctrl->redirect($this);
595 }
597 $gui = new ilAdvancedMDRecordGUI(ilAdvancedMDRecordGUI::MODE_EDITOR, 'orgu', $this->object->getId(), 'orgu_type', $this->object->getOrgUnitTypeId());
598 $gui->setPropertyForm($form);
599 $gui->parse();
600 $this->tpl->setContent($form->getHTML());
601 }
602
603
607 protected function updateAdvancedSettings()
608 {
609 if (!$this->ilAccess->checkAccess("write", "", $this->ref_id)) {
610 ilUtil::sendFailure($this->lng->txt("permission_denied"), true);
611 $this->ctrl->redirect($this);
612 }
614 $gui = new ilAdvancedMDRecordGUI(ilAdvancedMDRecordGUI::MODE_EDITOR, 'orgu', $this->object->getId(), 'orgu_type', $this->object->getOrgUnitTypeId());
615 $gui->setPropertyForm($form);
616 $form->checkInput();
617 $gui->parse();
618 if ($gui->importEditFormPostValues()) {
619 $gui->writeEditForm();
620 ilUtil::sendSuccess($this->lng->txt('settings_saved'), true);
621 $this->ctrl->redirect($this, 'editAdvancedSettings');
622 } else {
623 $this->tpl->setContent($form->getHTML());
624 }
625 }
626
627
628 public function editSettings()
629 {
630 if (!$this->ilAccess->checkAccess("write", "", $this->ref_id)) {
631 ilUtil::sendFailure($this->lng->txt("permission_denied"), true);
632 $this->ctrl->redirect($this);
633 }
634 $form = new ilObjOrgUnitSettingsFormGUI($this, $this->object);
635 $this->tpl->setContent($form->getHTML());
636 }
637
638
639 public function updateSettings()
640 {
641 if (!$this->ilAccess->checkAccess("write", "", $this->ref_id)) {
642 ilUtil::sendFailure($this->lng->txt("permission_denied"), true);
643 $this->ctrl->redirect($this);
644 }
645 $form = new ilObjOrgUnitSettingsFormGUI($this, $this->object);
646 if ($form->saveObject()) {
647 ilUtil::sendSuccess($this->lng->txt('msg_obj_modified'), true);
648 $this->ctrl->redirect($this, self::CMD_EDIT_SETTINGS);
649 } else {
650 $this->tpl->setContent($form->getHTML());
651 }
652 }
653
654
658 public function showAdministrationPanel()
659 {
660 parent::showAdministrationPanel();
661 global $DIC;
662 //an ugly encapsulation violation in order to remove the "verknüpfen"/"link" and copy button.
664 if (!$toolbar = $DIC->ui()->mainTemplate()->admin_panel_commands_toolbar) {
665 return;
666 }
667 if (is_array($toolbar->items)) {
668 foreach ($toolbar->items as $key => $item) {
669 if ($item["cmd"] == "link" || $item["cmd"] == "copy"
670 || $item["cmd"] == "download") {
671 unset($toolbar->items[$key]);
672 }
673 }
674 }
675 }
676
677
678 public static function _goto($ref_id)
679 {
680 global $DIC;
681 $ilCtrl = $DIC['ilCtrl'];
682 $ilCtrl->initBaseClass("ilAdministrationGUI");
683 $ilCtrl->setParameterByClass("ilObjOrgUnitGUI", "ref_id", $ref_id);
684 $ilCtrl->setParameterByClass("ilObjOrgUnitGUI", "admin_mode", self::TAB_SETTINGS);
685 $ilCtrl->setParameterByClass("IlObjPluginDispatchGUI", "admin_mode", self::TAB_SETTINGS);
686 $ilCtrl->redirectByClass(array( "ilAdministrationGUI", "ilObjOrgUnitGUI" ), "view");
687 }
688
689
690 protected function getTreeSelectorGUI($cmd)
691 {
692 global $DIC;
693 $tree = $DIC['tree'];
694 $explorer = new ilOrgUnitExplorerGUI("rep_exp_sel", $this, "showPasteTree", $tree);
695 $explorer->setAjax(false);
696 $explorer->setSelectMode('nodes[]', false);
697
698 return $explorer;
699 }
700
701
705 public function getAdminTabs()
706 {
707 $this->getTabs();
708 }
709
710
714 public function performPaste()
715 {
716 if (!in_array($_SESSION['clipboard']['cmd'], array( 'cut' ))) {
717 $message = __METHOD__ . ": cmd was not 'cut' ; may be a hack attempt!";
718 $this->ilias->raiseError($message, $this->ilias->error_obj->WARNING);
719 }
720 if ($_SESSION['clipboard']['cmd'] == 'cut') {
721 if (isset($_GET['ref_id']) && (int) $_GET['ref_id']) {
722 $this->pasteObject();
723 }
724 }
725 $this->ctrl->returnToParent($this);
726 }
727
728
732 public function doUserAutoCompleteObject()
733 {
734 }
735
736 //
737 // METHODS for local user administration.
738 //
743 public function &__initTableGUI()
744 {
745 return parent::__initTableGUI();
746 }
747
752 public function confirmedDeleteObject()
753 {
754 global $DIC;
755
756 $ids = filter_input(INPUT_POST, 'id', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY);
757 if (count($ids) > 0) {
759 ilUtil::sendSuccess($DIC->language()->txt("info_deleted"), true);
760 }
761 $this->ctrl->returnToParent($this);
762 }
763
764
771 public function deleteObject($a_error = false)
772 {
774 require_once("./Services/Repository/classes/class.ilRepUtilGUI.php");
775 $ru = new ilRepUtilGUI($this);
776
777 $arr_ref_ids = [];
778 //Delete via Manage (more than one)
779 if (is_array($_POST['id']) && count($_POST['id']) > 0) {
780 $arr_ref_ids = $_POST['id'];
781 } elseif ($_GET['item_ref_id'] > 0) {
782 $arr_ref_ids = [$_GET['item_ref_id']];
783 }
784
785 if (!$ru->showDeleteConfirmation($arr_ref_ids, false)) {
786 $ilCtrl->returnToParent($this);
787 }
788 }
789
790
795 public function __setTableGUIBasicData(&$tbl, &$result_set, $a_from = "")
796 {
797 return parent::__setTableGUIBasicData($tbl, $result_set, $a_from);
798 }
799
800
801 public function cancelMoveLinkObject()
802 {
803 global $DIC;
804 $parent_ref_id = $_SESSION["clipboard"]["parent"];
805 unset($_SESSION['clipboard']);
806 $DIC->ctrl()->setParameter($this, 'ref_id', $parent_ref_id);
807 $DIC->ctrl()->redirect($this);
808 }
809}
$path
Definition: aliased.php:25
$_GET["client_id"]
$_POST["username"]
$_SESSION["AccountId"]
An exception for terminatinating execution or to throw for unit testing.
Class ilAccessHandler.
checkAccess($a_permission, $a_cmd, $a_ref_id, $a_type="", $a_obj_id="", $a_tree_id="")
check access for an object (provide $a_type and $a_obj_id if available for better performance)
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
Class ilContainerGUI.
addStandardContainerSubTabs($a_include_view=true)
Add standar container subtabs for view, manage, oderdering and text/media editor link.
pasteObject()
paste object from clipboard to current place Depending on the chosen command the object(s) are linked...
keepObjectsInClipboardObject()
Keep objects in the clipboard.
showAdministrationPanel()
show administration panel
static _getFrame($a_class, $a_type='')
Get content frame name.
Class ilInfoScreenGUI.
Class ilObjUserTrackingGUI.
Class ilLocalUserGUI.
logging
Definition: class.ilLog.php:19
static _checkAccessToUserLearningProgress($ref_id, $usr_id)
static _checkAccessExport($ref_id)
static _checkAccessStaff($ref_id)
static _checkAccessAdministrateUsers($ref_id)
Class ilObjOrgUnit GUI class.
confirmedDeleteObject()
confirmed deletion of org units -> org units are deleted immediately, without putting them to the tra...
__setTableGUIBasicData(&$tbl, &$result_set, $a_from="")
redirectToRefId($a_ref_id, $a_cmd="")
afterSave(ilObject $a_new_object)
@inheritDoc
updateAdvancedSettings()
Update Advanced Metadata.
setContentSubTabs()
Set content sub tabs.
setTitleAndDescription()
called by prepare output
editAdvancedSettings()
Edit Advanced Metadata.
cancelMoveLinkObject()
Cancel move|link empty clipboard and return to parent.
addAdminLocatorItems($a_do_not_add_object=false)
showPossibleSubObjects()
show possible sub objects selection list
performPaste()
@description Prepare $_POST for the generic method performPasteIntoMultipleObjectsObject
setSubTabsSettings($active_tab_id)
deleteObject($a_error=false)
Display deletion confirmation screen for Org Units.
initCreationForms($a_new_type)
initCreationForms
initAdvancedSettingsForm()
Initialize the form for editing advanced meta data.
Class ilObjOrgUnitSettingsFormGUI.
static getRootOrgRefId()
Class ilObjUserFolderGUI.
Class ilObjUserGUI.
Render add new item selector.
initImportForm($a_new_type)
Init object import form.
importFileObject($parent_id=null, $a_catch_errors=true)
Import.
initCreateForm($a_new_type)
Init object creation form.
getReturnLocation($a_cmd, $a_location="")
get return location for command (command is method name without "Object", e.g.
Class ilObject Basic functions for all objects.
getRefId()
get reference id @access public
static _lookupType($a_id, $a_reference=false)
lookup object type
Class ilOrgUnitExplorerGUI.
Class ilOrgUnitExportGUI.
Class ilOrgUnitPositionGUI.
Class ilOrgUnitSimpleImportGUI.
Class ilOrgUnitSimpleUserImportGUI.
Class ilOrgUnitStaffGUI.
Class ilOrgUnitTypeGUI.
Class ilOrgUnitType.
Class ilOrgUnitUserAssignmentGUI.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
This class represents a property form user interface.
Repository GUI Utilities.
static removeObjectsFromSystem($a_ref_ids, $a_from_recovery_folder=false)
remove objects from trash bin and all entries therefore every object needs a specific deleteObject() ...
Class ilTranslationGUI.
Tree class data representation in hierachical trees using the Nested Set Model with Gaps by Joe Celco...
static redirect($a_script)
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$key
Definition: croninfo.php:18
$tbl
Definition: example_048.php:81
global $ilCtrl
Definition: ilias.php:18
catch(Exception $e) $message
$info
Definition: index.php:5
$row
redirection script todo: (a better solution should control the processing via a xml file)
if(isset($_POST['submit'])) $form
global $DIC
Definition: saml.php:7