ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
ilObjStudyProgrammeTreeGUI Class Reference

Class ilObjStudyProgrammeTreeGUI Generates the manage view for ilTrainingProgramme-Repository objects. More...

+ Collaboration diagram for ilObjStudyProgrammeTreeGUI:

Public Member Functions

 __construct (protected ilGlobalTemplateInterface $tpl, protected ilCtrl $ctrl, protected ilAccess $access, protected ilToolbarGUI $toolbar, protected ilLanguage $lng, protected ilComponentLogger $log, protected ILIAS $ilias, protected ilSetting $ilSetting, protected ilTree $ilTree, protected ilRbacAdmin $rbacadmin, protected ILIAS\HTTP\Wrapper\WrapperFactory $http_wrapper, protected ILIAS\Refinery\Factory $refinery, protected ILIAS\UI\Factory $ui_factory)
 
 setRefId (int $ref_id)
 
 executeCommand ()
 Execute GUI-commands If there is a async request the response is sent as a json string. More...
 

Protected Member Functions

 initTree ()
 Initialize Tree Creates tree instance and set tree configuration. More...
 
 view ()
 Display the tree view. More...
 
 cancel ()
 Cancel operation. More...
 
 saveTreeOrder ()
 Saves tree node order Data is json encoded from the jstree component. More...
 
 createNewLeaf ()
 Creates a new leaf Currently only course references can be created. More...
 
 getContainerSelectionExplorer (bool $convert_to_string=true)
 Initialize the Course Explorer for creating a leaf. More...
 
 getCreationForm ()
 Returns the async creation form for StudyProgrammes. More...
 
 create ()
 Generates the modal window content for the creation form of nodes or leafs If there are already StudyProgramme-nodes in the parent, leaf creation is disabled and if there are already leafs, nodes can't be created. More...
 
 delete ()
 Show to delete confirmation dialog for objects in the tree. More...
 
 confirmedDelete ()
 Deletes a node or a leaf in the tree. More...
 
 cancelDelete ()
 Cancel deletion Return a json string for the async handling. More...
 
 initAsyncUIElements ()
 Initializes all elements used for async-interaction Adds HTML-skeleton for the bootstrap modal dialog, the notification mechanism and the Selection container. More...
 
 getToolbar ()
 Setup the toolbar. More...
 
 checkAccess (string $permission, int $ref_id=null)
 Checks permission of current tree or certain child of it. More...
 
 checkAccessOrFail (string $permission, int $ref_id=null)
 Checks permission of a object and throws an exception if they are not granted. More...
 

Protected Attributes

string $modal_id
 CSS-ID of the modal windows. More...
 
ilAsyncOutputHandler $async_output_handler
 
int $ref_id
 Ref-ID of the object. More...
 
ilObjStudyProgrammeTreeExplorerGUI $tree
 
ilObjStudyProgramme $object
 

Detailed Description

Class ilObjStudyProgrammeTreeGUI Generates the manage view for ilTrainingProgramme-Repository objects.

Handles all the async requests.

Author
Michael Herren mh@st.nosp@m.uder.nosp@m.-raim.nosp@m.ann..nosp@m.ch
Version
1.0.0

Definition at line 28 of file class.ilObjStudyProgrammeTreeGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilObjStudyProgrammeTreeGUI::__construct ( protected ilGlobalTemplateInterface  $tpl,
protected ilCtrl  $ctrl,
protected ilAccess  $access,
protected ilToolbarGUI  $toolbar,
protected ilLanguage  $lng,
protected ilComponentLogger  $log,
protected ILIAS  $ilias,
protected ilSetting  $ilSetting,
protected ilTree  $ilTree,
protected ilRbacAdmin  $rbacadmin,
protected ILIAS\HTTP\Wrapper\WrapperFactory  $http_wrapper,
protected ILIAS\Refinery\Factory  $refinery,
protected ILIAS\UI\Factory  $ui_factory 
)

Definition at line 43 of file class.ilObjStudyProgrammeTreeGUI.php.

References ILIAS\Repository\lng().

57  {
58  $this->modal_id = "tree_modal";
59  $this->async_output_handler = new ilAsyncOutputHandler();
60  $this->lng->loadLanguageModule("prg");
61  }
Class ilAsyncOutputHandler Handles the output for async-requests.
+ Here is the call graph for this function:

Member Function Documentation

◆ cancel()

ilObjStudyProgrammeTreeGUI::cancel ( )
protected

Cancel operation.

Definition at line 140 of file class.ilObjStudyProgrammeTreeGUI.php.

References ilAsyncOutputHandler\encodeAsyncResponse().

140  : string
141  {
143  }
static encodeAsyncResponse(array $data=array())
Encode data as json for async output.
+ Here is the call graph for this function:

◆ cancelDelete()

ilObjStudyProgrammeTreeGUI::cancelDelete ( )
protected

Cancel deletion Return a json string for the async handling.

Definition at line 498 of file class.ilObjStudyProgrammeTreeGUI.php.

References ilAsyncOutputHandler\encodeAsyncResponse().

498  : string
499  {
501  }
static encodeAsyncResponse(array $data=array())
Encode data as json for async output.
+ Here is the call graph for this function:

◆ checkAccess()

ilObjStudyProgrammeTreeGUI::checkAccess ( string  $permission,
int  $ref_id = null 
)
protected

Checks permission of current tree or certain child of it.

Definition at line 555 of file class.ilObjStudyProgrammeTreeGUI.php.

References $ref_id, and ILIAS\Repository\access().

Referenced by checkAccessOrFail(), and confirmedDelete().

555  : bool
556  {
557  if (is_null($ref_id)) {
559  }
560  return $this->access->checkAccess($permission, '', $ref_id);
561  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ checkAccessOrFail()

ilObjStudyProgrammeTreeGUI::checkAccessOrFail ( string  $permission,
int  $ref_id = null 
)
protected

Checks permission of a object and throws an exception if they are not granted.

Exceptions
ilException

Definition at line 568 of file class.ilObjStudyProgrammeTreeGUI.php.

References checkAccess().

Referenced by confirmedDelete(), create(), createNewLeaf(), delete(), and saveTreeOrder().

568  : void
569  {
570  if (!$this->checkAccess($permission, $ref_id)) {
571  throw new ilException("You have no permission for " . $permission . " Object with ref_id " . $ref_id . "!");
572  }
573  }
checkAccess(string $permission, int $ref_id=null)
Checks permission of current tree or certain child of it.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ confirmedDelete()

ilObjStudyProgrammeTreeGUI::confirmedDelete ( )
protected

Deletes a node or a leaf in the tree.

Exceptions
ilException

Definition at line 426 of file class.ilObjStudyProgrammeTreeGUI.php.

References $id, checkAccess(), checkAccessOrFail(), ilRepUtil\deleteObjects(), ilAsyncOutputHandler\encodeAsyncResponse(), ilObjStudyProgramme\getAllChildren(), ILIAS\Repository\lng(), ILIAS\Repository\refinery(), and ilObjectFactoryWrapper\singleton().

426  : string
427  {
428  $this->checkAccessOrFail("delete");
429 
430  if (
431  (!$this->http_wrapper->post()->has("id") || !$this->http_wrapper->post()->has("item_ref_id")) &&
432  is_array($this->http_wrapper->post()->retrieve(
433  "id[]",
434  $this->refinery->kindlyTo()->listOf($this->refinery->kindlyTo()->int())
435  ))
436  ) {
437  throw new ilException("No item select for deletion!");
438  }
439 
440  $ids = $this->http_wrapper->post()->retrieve(
441  "id",
442  $this->refinery->kindlyTo()->listOf($this->refinery->kindlyTo()->int())
443  );
444  $current_node = $this->http_wrapper->post()->retrieve("item_ref_id", $this->refinery->kindlyTo()->int());
445  $result = true;
446  $msg = '';
447 
448  foreach ($ids as $id) {
449  $obj = ilObjectFactoryWrapper::singleton()->getInstanceByRefId($id);
450 
451  $not_parent_of_current = true;
452  $not_root = true;
453 
454  // do some additional validation if it is a StudyProgramme
455  if ($obj instanceof ilObjStudyProgramme) {
456  //check if you are not deleting a parent element of the current element
457  $children_of_node = ilObjStudyProgramme::getAllChildren($obj->getRefId());
458  $get_ref_ids = static function (ilObjStudyProgramme $obj): int {
459  return $obj->getRefId();
460  };
461 
462  $children_ref_ids = array_map($get_ref_ids, $children_of_node);
463  $not_parent_of_current = (!in_array($current_node, $children_ref_ids));
464 
465  $not_root = ($obj->getRoot() != null);// TODO PHP8-REVIEW This is always true
466  }
467 
468  if (
469  $current_node != $id &&
470  $not_root &&
471  $not_parent_of_current &&
472  $this->checkAccess('delete', $obj->getRefId())
473  ) {
474  ilRepUtil::deleteObjects(0, [$id]);
475 
476  // deletes the tree-open-node-session storage
477  if (isset($children_of_node)) {
478  $this->tree->closeCertainNode($id);
479  foreach ($children_of_node as $child) {
480  $this->tree->closeCertainNode($child->getRefId());
481  }
482  }
483 
484  $msg = $this->lng->txt("prg_deleted_safely");
485  } else {
486  $msg = $this->lng->txt("prg_not_allowed_node_to_delete");
487  $result = false;
488  }
489  }
490 
491  return ilAsyncOutputHandler::encodeAsyncResponse(array('success' => $result, 'message' => $msg));
492  }
checkAccessOrFail(string $permission, int $ref_id=null)
Checks permission of a object and throws an exception if they are not granted.
checkAccess(string $permission, int $ref_id=null)
Checks permission of current tree or certain child of it.
static deleteObjects(int $a_cur_ref_id, array $a_ids)
Delete objects.
static encodeAsyncResponse(array $data=array())
Encode data as json for async output.
static getAllChildren(int $a_ref_id, bool $include_references=false)
Get a list of all ilObjStudyProgrammes in the subtree starting at $a_ref_id.
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
+ Here is the call graph for this function:

◆ create()

ilObjStudyProgrammeTreeGUI::create ( )
protected

Generates the modal window content for the creation form of nodes or leafs If there are already StudyProgramme-nodes in the parent, leaf creation is disabled and if there are already leafs, nodes can't be created.

Exceptions
ilException

Definition at line 322 of file class.ilObjStudyProgrammeTreeGUI.php.

References checkAccessOrFail(), ilAccordionGUI\FIRST_OPEN, getContainerSelectionExplorer(), getCreationForm(), ilUtil\getSystemMessageHTML(), ILIAS\Repository\lng(), ILIAS\Repository\refinery(), and ilObjectFactoryWrapper\singleton().

322  : void
323  {
324  $parent_id = null;
325  if ($this->http_wrapper->query()->has("ref_id")) {
326  $parent_id = $this->http_wrapper->query()->retrieve("ref_id", $this->refinery->kindlyTo()->int());
327  }
328  $this->checkAccessOrFail('create', $parent_id);
329 
330  $parent = ilObjectFactoryWrapper::singleton()->getInstanceByRefId($parent_id);// TODO PHP8-REVIEW `$parent_id` is NULL, an `int` is expected
331  $accordion = new ilAccordionGUI();
332 
333  $added_slides = 0;
334  $content = "";
335  if ($parent instanceof ilObjStudyProgramme) {
336  // only allow adding new StudyProgramme-Node if there are no lp-children
337  if (!$parent->hasLPChildren()) {
338  $content_new_node = $this->getCreationForm()->getHTML();
339  $accordion->addItem($this->lng->txt('prg_create_new_node'), $content_new_node);
340  $added_slides++;
341  }
342 
343  /* only allow adding new LP-Children if there are no other StudyProgrammes
344  * AND creating crs references is activated in administration
345  */
346  if (!$parent->hasChildren() && $this->ilSetting->get("obj_dis_creation_crsr") === "") {
347  $content_new_leaf = ilUtil::getSystemMessageHTML(
348  $this->lng->txt('prg_please_select_a_course_for_creating_a_leaf')
349  );
350  $content_new_leaf .= $this->getContainerSelectionExplorer();
351 
352  $accordion->addItem($this->lng->txt('prg_create_new_leaf'), $content_new_leaf);
353  $added_slides++;
354  }
355 
356  if ($added_slides === 1) {
357  $accordion->setBehaviour(ilAccordionGUI::FIRST_OPEN);
358  }
359 
360  $content = $accordion->getHTML(true);
361  }
362 
363  // creating modal window output
364  $this->async_output_handler->setHeading($this->lng->txt("prg_async_" . $this->ctrl->getCmd()));
365  $this->async_output_handler->setContent($content);
366  $this->async_output_handler->terminate();
367  }
static getSystemMessageHTML(string $a_txt, string $a_type="info")
Get HTML for a system message.
checkAccessOrFail(string $permission, int $ref_id=null)
Checks permission of a object and throws an exception if they are not granted.
getContainerSelectionExplorer(bool $convert_to_string=true)
Initialize the Course Explorer for creating a leaf.
getCreationForm()
Returns the async creation form for StudyProgrammes.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
+ Here is the call graph for this function:

◆ createNewLeaf()

ilObjStudyProgrammeTreeGUI::createNewLeaf ( )
protected

Creates a new leaf Currently only course references can be created.

Exceptions
ilException

Definition at line 232 of file class.ilObjStudyProgrammeTreeGUI.php.

References ilObject\_lookupObjectId(), checkAccessOrFail(), ilAsyncOutputHandler\encodeAsyncResponse(), ILIAS\Repository\lng(), ILIAS\Repository\refinery(), and ilContainerReference\TITLE_TYPE_REUSE.

232  : string
233  {
234  $this->checkAccessOrFail('create', $this->http_wrapper->post()->retrieve("parent_id", $this->refinery->kindlyTo()->int()));
235 
236  if (
237  $this->http_wrapper->post()->has("target_id") &&
238  $this->http_wrapper->post()->has("type") &&
239  $this->http_wrapper->post()->has("parent_id")
240  ) {
241  $target_id = $this->http_wrapper->post()->retrieve("target_id", $this->refinery->kindlyTo()->int());
242  $parent_id = $this->http_wrapper->post()->retrieve("parent_id", $this->refinery->kindlyTo()->int());
243 
244  // TODO: more generic way for implementing different type of leafs
245  $course_ref = new ilObjCourseReference();
246  $course_ref->setTitleType(ilContainerReference::TITLE_TYPE_REUSE);
247  $course_ref->setTargetRefId($target_id);
248 
249  $course_ref->create();
250  $course_ref->createReference();
251 
252  $course_ref->putInTree($parent_id);
253 
254  // This is how it's done in ILIAS. If you set the target ID before the creation, it won't work
255  $course_ref->setTargetId(ilObject::_lookupObjectId($target_id));
256  $course_ref->update();
257  }
258 
260  ['success' => true, 'message' => $this->lng->txt('prg_added_course_ref_successful')]
261  );
262  }
checkAccessOrFail(string $permission, int $ref_id=null)
Checks permission of a object and throws an exception if they are not granted.
static encodeAsyncResponse(array $data=array())
Encode data as json for async output.
static _lookupObjectId(int $ref_id)
+ Here is the call graph for this function:

◆ delete()

ilObjStudyProgrammeTreeGUI::delete ( )
protected

Show to delete confirmation dialog for objects in the tree.

Exceptions
ilException

Definition at line 374 of file class.ilObjStudyProgrammeTreeGUI.php.

References ilObject\_getIcon(), ilObject\_lookupObjectId(), ilObject\_lookupType(), checkAccessOrFail(), ILIAS\Repository\ctrl(), ilObjectFactory\getClassByType(), ILIAS\Repository\lng(), and ILIAS\Repository\refinery().

374  : void
375  {
376  $this->checkAccessOrFail("delete");
377 
378  if (!$this->http_wrapper->query()->has("ref_id") || !$this->http_wrapper->query()->has("item_ref_id")) {
379  throw new ilException("Nothing to delete!");
380  }
381 
382  $element_ref_id = $this->http_wrapper->query()->retrieve("ref_id", $this->refinery->kindlyTo()->int());
383 
384  $cgui = new ilConfirmationGUI();
385 
386  $msg = $this->lng->txt("info_delete_sure");
387  if (!$this->ilSetting->get('enable_trash')) {
388  $msg .= "<br/>" . $this->lng->txt("info_delete_warning_no_trash");
389  }
390  $cgui->setHeaderText($msg);
391  $cgui->setFormAction($this->ctrl->getFormAction($this, 'confirmedDelete', '', true));
392  $cgui->setCancel($this->lng->txt("cancel"), "cancelDelete");
393  $cgui->setConfirm($this->lng->txt("confirm"), "confirmedDelete");
394  $cgui->setFormName('async_form');
395 
396  $obj_id = ilObject::_lookupObjectId((int) $element_ref_id);
397  $type = ilObject::_lookupType($obj_id);
398  $title = call_user_func(array(ilObjectFactory::getClassByType($type),'_lookupTitle'), $obj_id);
399  $alt = $this->lng->txt("icon") . " " . $this->lng->txt("obj_" . $type);
400 
401  $cgui->addItem(
402  "id[]",
403  (string)$element_ref_id,
404  $title,
405  ilObject::_getIcon($obj_id, "small", $type),
406  $alt
407  );
408  $cgui->addHiddenItem(
409  'item_ref_id',
410  $this->http_wrapper->query()->retrieve("item_ref_id", $this->refinery->kindlyTo()->string())
411  );
412 
413  $content = $cgui->getHTML();
414 
415  // creating the modal window output
416  $this->async_output_handler->setHeading($msg);
417  $this->async_output_handler->setContent($content);
418  $this->async_output_handler->terminate();
419  }
static _getIcon(int $obj_id=0, string $size="big", string $type="", bool $offline=false)
Get icon for repository item.
checkAccessOrFail(string $permission, int $ref_id=null)
Checks permission of a object and throws an exception if they are not granted.
static _lookupObjectId(int $ref_id)
static getClassByType(string $obj_type)
static _lookupType(int $id, bool $reference=false)
+ Here is the call graph for this function:

◆ executeCommand()

ilObjStudyProgrammeTreeGUI::executeCommand ( )

Execute GUI-commands If there is a async request the response is sent as a json string.

Exceptions
ilException

Definition at line 88 of file class.ilObjStudyProgrammeTreeGUI.php.

References ILIAS\Repository\ctrl(), exit, getToolbar(), ilAsyncOutputHandler\handleAsyncOutput(), and initTree().

88  : void
89  {
90  $this->initTree();
91  $cmd = $this->ctrl->getCmd();
92 
93  $this->getToolbar();
94 
95  if ($cmd === "" || $cmd === null) {
96  $cmd = "view";
97  }
98 
99  // handles tree commands ("openNode", "closeNode", "getNodeAsync")
100  if ($this->tree->handleCommand()) {
101  exit();
102  }
103 
104  switch ($cmd) {
105  case "view":
106  case "create":
107  case "save":
108  case "cancel":
109  case "delete":
110  case "confirmedDelete":
111  case "cancelDelete":
112  case "getContainerSelectionExplorer":
113  case "saveTreeOrder":
114  case "createNewLeaf":
115 
116  $content = $this->$cmd();
117  break;
118  default:
119  throw new ilException("ilObjStudyProgrammeTreeGUI: " .
120  "Command not supported: $cmd");
121  }
122 
124  }
exit
Definition: login.php:29
static handleAsyncOutput(string $normal_content, string $async_content=null, bool $apply_to_tpl=true)
Handles async output.
initTree()
Initialize Tree Creates tree instance and set tree configuration.
+ Here is the call graph for this function:

◆ getContainerSelectionExplorer()

ilObjStudyProgrammeTreeGUI::getContainerSelectionExplorer ( bool  $convert_to_string = true)
protected

Initialize the Course Explorer for creating a leaf.

Parameters
bool$convert_to_stringIf set to true, the getOutput function is already called
Returns
ilAsyncContainerSelectionExplorer|string

Definition at line 271 of file class.ilObjStudyProgrammeTreeGUI.php.

References ILIAS\Repository\ctrl(), ILIAS\Repository\refinery(), ROOT_FOLDER_ID, and ilExplorer\setId().

Referenced by create().

272  {
273  $create_leaf_form = new ilAsyncContainerSelectionExplorer(
274  rawurldecode($this->ctrl->getLinkTarget($this, 'createNewLeaf', '', true)),
275  $this->refinery,
276  $this->http_wrapper->query()
277  );
278  $create_leaf_form->setId("select_course_explorer");
279 
280  $ref_expand = ROOT_FOLDER_ID;
281  if ($this->http_wrapper->query()->has("ref_repexpand")) {
282  $ref_expand = $this->http_wrapper->query()->retrieve("ref_repexpand", $this->refinery->kindlyTo()->int());
283  }
284 
285  $create_leaf_form->setExpand($ref_expand);
286  $create_leaf_form->setExpandTarget($this->ctrl->getLinkTarget($this, 'getContainerSelectionExplorer'));
287  $create_leaf_form->setAsynchExpanding(true);
288  $create_leaf_form->setTargetGet('target_id');
289  $create_leaf_form->setFrameTarget("_self");
290  $create_leaf_form->setClickable('crs', true);
291  $create_leaf_form->setTargetType('crs');
292  $create_leaf_form->setOutput(0);
293 
294  if ($convert_to_string) {
295  return $create_leaf_form->getOutput();
296  }
297 
298  return $create_leaf_form;
299  }
const ROOT_FOLDER_ID
Definition: constants.php:32
setId(string $a_val)
Class ilAsyncContainerSelectionExplorer A class for async ilContainerSelectionExplorer which triggers...
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getCreationForm()

ilObjStudyProgrammeTreeGUI::getCreationForm ( )
protected

Returns the async creation form for StudyProgrammes.

Definition at line 304 of file class.ilObjStudyProgrammeTreeGUI.php.

References ILIAS\Repository\ctrl().

Referenced by create().

305  {
306  $tmp_obj = new ilObjStudyProgrammeGUI();
307 
308  $create_node_form = $tmp_obj->getAsyncCreationForm();
309  $create_node_form->setTitle("");
310  $this->ctrl->setParameterByClass("ilobjstudyprogrammegui", "new_type", "prg");
311  $create_node_form->setFormAction($this->ctrl->getFormActionByClass("ilobjstudyprogrammegui", "save"));
312 
313  return $create_node_form;
314  }
Class ilObjStudyProgrammeGUI class ilObjStudyProgrammeGUI: ilPermissionGUI ilObjStudyProgrammeGUI: ...
Class ilAsyncPropertyFormGUI.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getToolbar()

ilObjStudyProgrammeTreeGUI::getToolbar ( )
protected

Setup the toolbar.

Definition at line 541 of file class.ilObjStudyProgrammeTreeGUI.php.

References $id, ILIAS\Repository\lng(), ILIAS\Repository\toolbar(), and ILIAS\UI\Implementation\Component\withOnLoadCode().

Referenced by executeCommand().

541  : void
542  {
543  $save_order_btn = $this->ui_factory->button()->standard($this->lng->txt('prg_save_tree_order'), '')
544  ->withOnLoadCode(fn ($id) => "$(\"#$id\").click( () => $('body').trigger('study_programme-save_order'));");
545  $cancel_order_btn = $this->ui_factory->button()->standard($this->lng->txt('prg_cancel_tree_order'), '')
546  ->withOnLoadCode(fn ($id) => "$(\"#$id\").click( () => $('body').trigger('study_programme-cancel_order'));");
547 
548  $this->toolbar->addComponent($save_order_btn);
549  $this->toolbar->addComponent($cancel_order_btn);
550  }
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initAsyncUIElements()

ilObjStudyProgrammeTreeGUI::initAsyncUIElements ( )
protected

Initializes all elements used for async-interaction Adds HTML-skeleton for the bootstrap modal dialog, the notification mechanism and the Selection container.

Definition at line 507 of file class.ilObjStudyProgrammeTreeGUI.php.

References ilAsyncContainerSelectionExplorer\addJavascript(), ilAsyncPropertyFormGUI\addJavaScript(), ilAccordionGUI\addJavaScript(), ILIAS\Repository\ctrl(), ilModalGUI\getInstance(), ilAsyncContainerSelectionExplorer\initJs(), ILIAS\Repository\refinery(), and ilModalGUI\TYPE_LARGE.

Referenced by view().

507  : string
508  {
509  // add js files
513 
514  // add bootstrap modal
515  $settings_modal = ilModalGUI::getInstance();
516  $settings_modal->setId($this->modal_id);
517  $settings_modal->setType(ilModalGUI::TYPE_LARGE);
518  $this->tpl->addOnLoadCode('$("#' . $this->modal_id . '").study_programme_modal();');
519 
520  $content = $settings_modal->getHTML();
521 
522  // init js notifications
523  $notifications = new ilAsyncNotifications();
524  $notifications->addJsConfig('events', array('success' => array('study_programme-show_success')));
525  $notifications->initJs();
526 
527  // init tree selection explorer
528  $async_explorer = new ilAsyncContainerSelectionExplorer(
529  rawurldecode($this->ctrl->getLinkTarget($this, 'createNewLeaf', '', true)),
530  $this->refinery,
531  $this->http_wrapper->query()
532  );
533  $async_explorer->initJs();
534 
535  return $content;
536  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static addJavaScript(bool $add_form_loader=false, string $js_base_path=null)
Adds all needed js By default is called by ilAsyncPropertyFormGUI::getHTML()
static addJavaScript(ilGlobalTemplate $main_tpl=null)
Add javascript files that are necessary to run accordion.
static addJavascript()
Adds the javascript to template.
static getInstance()
Class ilAsyncContainerSelectionExplorer A class for async ilContainerSelectionExplorer which triggers...
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initTree()

ilObjStudyProgrammeTreeGUI::initTree ( )
protected

Initialize Tree Creates tree instance and set tree configuration.

Definition at line 72 of file class.ilObjStudyProgrammeTreeGUI.php.

References ILIAS\Repository\ctrl().

Referenced by executeCommand().

72  : void
73  {
74  $this->tree = new ilObjStudyProgrammeTreeExplorerGUI($this->ref_id, $this->modal_id, "prg_tree", $this, 'view');
75 
76  $js_url = rawurldecode($this->ctrl->getLinkTarget($this, 'saveTreeOrder', '', true));
77  $this->tree->addJsConf('save_tree_url', $js_url);
78  $this->tree->addJsConf('save_button_id', 'save_order_button');
79  $this->tree->addJsConf('cancel_button_id', 'cancel_order_button');
80  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ saveTreeOrder()

ilObjStudyProgrammeTreeGUI::saveTreeOrder ( )
protected

Saves tree node order Data is json encoded from the jstree component.

Exceptions
ilException

Definition at line 151 of file class.ilObjStudyProgrammeTreeGUI.php.

References $id, $ref_id, ilContainerSorting\_getInstance(), ilObject\_lookupObjectId(), checkAccessOrFail(), ilAsyncOutputHandler\encodeAsyncResponse(), ILIAS\Repository\lng(), ILIAS\Repository\refinery(), ilObjectFactoryWrapper\singleton(), and ilUtil\stripSlashes().

151  : string
152  {
153  $this->checkAccessOrFail('write');
154 
155  $tree = "";
156  if ($this->http_wrapper->post()->has("tree")) {
157  $tree = $this->http_wrapper->post()->retrieve("tree", $this->refinery->kindlyTo()->string());
158  }
159  $treeAsJson = ilUtil::stripSlashes($tree);
160  $treeData = json_decode($treeAsJson, false, 512, JSON_THROW_ON_ERROR);
161 
162  if (!is_array($treeData) || [] === $treeData) {
163  throw new ilStudyProgrammeTreeException("There is no tree data to save!");
164  }
165 
166  // saves order recursive
167  $this->storeTreeOrder($treeData);
168 
170  ['success' => true, 'message' => $this->lng->txt('prg_saved_order_successful')]
171  );
172  }
checkAccessOrFail(string $permission, int $ref_id=null)
Checks permission of a object and throws an exception if they are not granted.
static stripSlashes(string $a_str, bool $a_strip_html=true, string $a_allow="")
static encodeAsyncResponse(array $data=array())
Encode data as json for async output.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ilObjStudyProgrammeTreeExplorerGUI $tree
+ Here is the call graph for this function:

◆ setRefId()

ilObjStudyProgrammeTreeGUI::setRefId ( int  $ref_id)

Definition at line 63 of file class.ilObjStudyProgrammeTreeGUI.php.

References $ref_id.

63  : void
64  {
65  $this->ref_id = $ref_id;
66  }

◆ view()

ilObjStudyProgrammeTreeGUI::view ( )
protected

Display the tree view.

Definition at line 129 of file class.ilObjStudyProgrammeTreeGUI.php.

References initAsyncUIElements().

129  : string
130  {
131  $output = $this->tree->getHTML();
132  $output .= $this->initAsyncUIElements();
133 
134  return $output;
135  }
initAsyncUIElements()
Initializes all elements used for async-interaction Adds HTML-skeleton for the bootstrap modal dialog...
+ Here is the call graph for this function:

Field Documentation

◆ $async_output_handler

ilAsyncOutputHandler ilObjStudyProgrammeTreeGUI::$async_output_handler
protected

Definition at line 34 of file class.ilObjStudyProgrammeTreeGUI.php.

◆ $modal_id

string ilObjStudyProgrammeTreeGUI::$modal_id
protected

CSS-ID of the modal windows.

Definition at line 33 of file class.ilObjStudyProgrammeTreeGUI.php.

◆ $object

ilObjStudyProgramme ilObjStudyProgrammeTreeGUI::$object
protected

Definition at line 41 of file class.ilObjStudyProgrammeTreeGUI.php.

◆ $ref_id

int ilObjStudyProgrammeTreeGUI::$ref_id
protected

Ref-ID of the object.

Definition at line 39 of file class.ilObjStudyProgrammeTreeGUI.php.

Referenced by checkAccess(), saveTreeOrder(), and setRefId().

◆ $tree

ilObjStudyProgrammeTreeExplorerGUI ilObjStudyProgrammeTreeGUI::$tree
protected

Definition at line 40 of file class.ilObjStudyProgrammeTreeGUI.php.


The documentation for this class was generated from the following file: