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");
226  $new_gui = new ilLearningProgressGUI(ilLearningProgressGUI::LP_CONTEXT_ORG_UNIT, $_GET["ref_id"], $_GET['obj_id']);
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;
310  case self::CMD_EDIT_SETTINGS:
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) {
543  case self::CMD_EDIT_SETTINGS:
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  }
596  $form = $this->initAdvancedSettingsForm();
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  }
613  $form = $this->initAdvancedSettingsForm();
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
setSubTabsSettings($active_tab_id)
Class ilInfoScreenGUI.
confirmedDeleteObject()
confirmed deletion of org units -> org units are deleted immediately, without putting them to the tra...
$_SESSION["AccountId"]
This class represents a property form user interface.
Class ilOrgUnitType.
global $DIC
Definition: saml.php:7
setPropertyForm($form)
set property form object
$_GET["client_id"]
$tbl
Definition: example_048.php:81
static _checkAccessStaff($ref_id)
afterSave(ilObject $a_new_object)
deleteObject($a_error=false)
Display deletion confirmation screen for Org Units.
__setTableGUIBasicData(&$tbl, &$result_set, $a_from="")
Class ilLocalUserGUI.
Class ilOrgUnitUserAssignmentGUI.
Class ilOrgUnitPositionGUI.
Class ilObjOrgUnit GUI class.
initCreationForms($a_new_type)
initCreationForms
logging
Definition: class.ilLog.php:18
Class ilOrgUnitSimpleImportGUI.
initAdvancedSettingsForm()
Initialize the form for editing advanced meta data.
Class ilAccessHandler.
Class ilOrgUnitExportGUI.
setContentSubTabs()
Set content sub tabs.
global $ilCtrl
Definition: ilias.php:18
pasteObject()
paste object from clipboard to current place Depending on the chosen command the object(s) are linked...
initImportForm($a_new_type)
Init object import form.
catch(Exception $e) $message
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)(option...
setInfoObject($info)
get info sections
if(isset($_POST['submit'])) $form
Class ilTranslationGUI.
updateAdvancedSettings()
Update Advanced Metadata.
Repository GUI Utilities.
setTitleAndDescription()
called by prepare output
static _checkAccessAdministrateUsers($ref_id)
redirection script todo: (a better solution should control the processing via a xml file) ...
importFileObject($parent_id=null, $a_catch_errors=true)
Import.
Class ilOrgUnitTypeGUI.
initCreateForm($a_new_type)
Init object creation form.
editAdvancedSettings()
Edit Advanced Metadata.
Tree class data representation in hierachical trees using the Nested Set Model with Gaps by Joe Celco...
static _lookupType($a_id, $a_reference=false)
lookup object type
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static getRootOrgRefId()
$row
performPaste()
Prepare $_POST for the generic method performPasteIntoMultipleObjectsObject
redirectToRefId($a_ref_id, $a_cmd="")
static _getFrame($a_class, $a_type='')
Get content frame name.
Class ilOrgUnitStaffGUI.
Render add new item selector.
Class ilObjOrgUnitSettingsFormGUI.
Class ilObjUserFolderGUI.
getRefId()
get reference id public
Class ilOrgUnitSimpleUserImportGUI.
Class ilOrgUnitExplorerGUI.
Class ilContainerGUI.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
showAdministrationPanel()
show administration panel
Class ilObjUserGUI.
$info
Definition: index.php:5
static redirect($a_script)
static _checkAccessExport($ref_id)
static _checkAccessToUserLearningProgress($ref_id, $usr_id)
$key
Definition: croninfo.php:18
Class ilObjUserTrackingGUI.
getReturnLocation($a_cmd, $a_location="")
get return location for command (command is method name without "Object", e.g.
$_POST["username"]
keepObjectsInClipboardObject()
Keep objects in the clipboard.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
addAdminLocatorItems($a_do_not_add_object=false)
addStandardContainerSubTabs($a_include_view=true)
Add standar container subtabs for view, manage, oderdering and text/media editor link.
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() ...