ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
ILIAS\File\Icon\ilObjFileIconsOverviewGUI Class Reference
+ Collaboration diagram for ILIAS\File\Icon\ilObjFileIconsOverviewGUI:

Public Member Functions

 __construct ()
 
 executeCommand ()
 
 changeActivation ()
 
 create ()
 
 update ()
 
 delete ()
 

Data Fields

const CMD_INDEX = 'index'
 
const CMD_OPEN_CREATION_FORM = 'openCreationForm'
 
const CMD_OPEN_UPDATING_FORM = 'openUpdatingForm'
 
const CMD_CHANGE_ACTIVATION = 'changeActivation'
 
const CMD_CREATE = 'create'
 
const CMD_UPDATE = 'update'
 
const CMD_DELETE = 'delete'
 
const P_RID = 'rid'
 

Private Member Functions

 index ()
 
 openCreationForm ()
 
 openUpdatingForm ()
 

Private Attributes

ilCtrl $ctrl
 
ilLanguage $lng
 
ilToolbarGUI $toolbar
 
ILIAS UI Factory $ui_factory
 
ILIAS UI Renderer $ui_renderer
 
ilGlobalTemplateInterface $main_tpl
 
ILIAS HTTP Wrapper WrapperFactory $wrapper
 
Psr Http Message RequestInterface $http_request
 
ILIAS Refinery Factory $refinery
 
ILIAS ResourceStorage Services $storage
 
IconRepositoryInterface $icon_repo
 
ilFileServicesSettings $file_service_settings
 

Detailed Description

Definition at line 27 of file class.ilObjFileIconsOverviewGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\File\Icon\ilObjFileIconsOverviewGUI::__construct ( )
final

Definition at line 51 of file class.ilObjFileIconsOverviewGUI.php.

References $DIC, ILIAS\Repository\ctrl(), ILIAS\Repository\lng(), ILIAS\Repository\refinery(), and ILIAS\Repository\toolbar().

52  {
53  global $DIC;
54  $this->ctrl = $DIC->ctrl();
55  $this->lng = $DIC->language();
56  $this->lng->loadLanguageModule('file');
57  $this->toolbar = $DIC->toolbar();
58  $this->main_tpl = $DIC->ui()->mainTemplate();
59  $this->ui_factory = $DIC->ui()->factory();
60  $this->ui_renderer = $DIC->ui()->renderer();
61  $this->http_request = $DIC->http()->request();
62  $this->wrapper = $DIC->http()->wrapper();
63  $this->refinery = $DIC->refinery();
64  $this->storage = $DIC->resourceStorage();
65  $this->icon_repo = new IconDatabaseRepository();
66  $this->file_service_settings = $DIC->fileServiceSettings();
67  }
global $DIC
Definition: feed.php:28
+ Here is the call graph for this function:

Member Function Documentation

◆ changeActivation()

ILIAS\File\Icon\ilObjFileIconsOverviewGUI::changeActivation ( )

Definition at line 138 of file class.ilObjFileIconsOverviewGUI.php.

References ILIAS\Repository\ctrl(), ILIAS\Repository\lng(), and ILIAS\Repository\refinery().

Referenced by ILIAS\File\Icon\ilObjFileIconsOverviewGUI\executeCommand().

138  : void
139  {
140  $to_str = $this->refinery->to()->string();
141  $rid = $this->wrapper->query()->has(self::P_RID) ? $rid = $this->wrapper->query()->retrieve(
142  self::P_RID,
143  $to_str
144  ) : "";
145  $icon = $this->icon_repo->getIconByRid($rid);
146  $suffixes = $icon->getSuffixes();
147  $icon->isActive();
148  $is_default_icon = $icon->isDefaultIcon();
149 
150  if (!$icon->isActive()) {
151  // in case of a change from deactivated to activated no two icons with overlapping suffixes must be active at the same time
152  if ($this->icon_repo->causesNoActiveSuffixesConflict($suffixes, true, $icon)) {
153  $this->icon_repo->updateIcon($rid, true, $is_default_icon, $suffixes);
154 
155  $this->main_tpl->setOnScreenMessage('success', $this->lng->txt('msg_success_icon_activated'), true);
156  } else {
157  $this->main_tpl->setOnScreenMessage(
158  'failure',
159  $this->lng->txt('msg_error_active_suffixes_conflict'),
160  true
161  );
162  }
163  } else {
164  $this->icon_repo->updateIcon($rid, false, $is_default_icon, $suffixes);
165  $this->main_tpl->setOnScreenMessage('success', $this->lng->txt('msg_success_icon_deactivated'), true);
166  }
167 
168  $this->ctrl->redirect($this, self::CMD_INDEX);
169  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ create()

ILIAS\File\Icon\ilObjFileIconsOverviewGUI::create ( )

Definition at line 171 of file class.ilObjFileIconsOverviewGUI.php.

References ILIAS\Repository\ctrl(), ILIAS\File\Icon\IconFormUI\INPUT_ACTIVE, ILIAS\File\Icon\IconFormUI\INPUT_ICON, ILIAS\File\Icon\IconFormUI\INPUT_SUFFIXES, ILIAS\Repository\lng(), and ILIAS\File\Icon\IconFormUI\MODE_CREATE.

Referenced by ILIAS\File\Icon\ilObjFileIconsOverviewGUI\executeCommand().

171  : void
172  {
173  $ui = new IconFormUI(new NullIcon(), IconFormUI::MODE_CREATE, $this->icon_repo);
174  $form = $ui->getIconForm();
175 
176  if ($this->http_request->getMethod() === "POST") {
177  $form = $form->withRequest($this->http_request);
178  $result = $form->getData();
179 
180  if ($result !== null) {
181  $rid = $result[0][IconFormUI::INPUT_ICON][0];
182  $active = $result[0][IconFormUI::INPUT_ACTIVE];
183  $suffixes = $result[0][IconFormUI::INPUT_SUFFIXES];
184 
185  $this->icon_repo->createIcon($rid, $active, false, $suffixes);
186 
187  // check if one of the suffixes is not whitelisted
188  if (array_diff($suffixes, $this->file_service_settings->getWhiteListedSuffixes()) !== []) {
189  $this->main_tpl->setOnScreenMessage(
190  'info',
191  $this->lng->txt('msg_error_active_suffixes_not_whitelisted'),
192  true
193  );
194  }
195 
196  // check if one of the suffixes is blacklisted
197  if (array_intersect($suffixes, $this->file_service_settings->getBlackListedSuffixes()) !== []) {
198  $this->main_tpl->setOnScreenMessage(
199  'info',
200  $this->lng->txt('msg_error_active_suffixes_blacklisted'),
201  true
202  );
203  }
204 
205  $this->main_tpl->setOnScreenMessage('success', $this->lng->txt('msg_success_icon_created'), true);
206  $this->ctrl->redirect($this, self::CMD_INDEX);
207  } else {
208  $this->main_tpl->setContent(
209  $this->ui_renderer->render([$form])
210  );
211  }
212  }
213  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ delete()

ILIAS\File\Icon\ilObjFileIconsOverviewGUI::delete ( )

Definition at line 250 of file class.ilObjFileIconsOverviewGUI.php.

References $id, ILIAS\Repository\ctrl(), ILIAS\Repository\lng(), and ILIAS\Repository\refinery().

250  : void
251  {
252  $to_str = $this->refinery->to()->string();
253  $rid = $this->wrapper->query()->has(self::P_RID) ? $rid = $this->wrapper->query()->retrieve(
254  self::P_RID,
255  $to_str
256  ) : "";
257 
258  // delete icon from irss
259  $is_deleted_from_irss = false;
260  $id = $this->storage->manage()->find($rid);
261  if ($id instanceof \ILIAS\ResourceStorage\Identification\ResourceIdentification) {
262  $this->storage->manage()->remove($id, new ilObjFileIconStakeholder());
263  $is_deleted_from_irss = true;
264  }
265  // delete icon from db
266  $is_deleted_from_db = $this->icon_repo->deleteIconByRid($rid);
267 
268  if ($is_deleted_from_irss && $is_deleted_from_db) {
269  $this->main_tpl->setOnScreenMessage('success', $this->lng->txt('msg_success_icon_deletion'), true);
270  } elseif ($is_deleted_from_irss) {
271  $this->main_tpl->setOnScreenMessage(
272  'failure',
273  $this->lng->txt('msg_error_icon_deletion') . " " . $this->lng->txt('msg_icon_missing_from_db'),
274  true
275  );
276  } elseif ($is_deleted_from_db) {
277  $this->main_tpl->setOnScreenMessage(
278  'failure',
279  $this->lng->txt('msg_error_icon_deletion') . " " . $this->lng->txt('msg_icon_missing_from_irss'),
280  true
281  );
282  } else {
283  $this->main_tpl->setOnScreenMessage(
284  'failure',
285  $this->lng->txt('msg_error_icon_deletion') . " " . $this->lng->txt(
286  'msg_icon_missing_from_db'
287  ) . " " . $this->lng->txt('msg_icon_missing_from_irss'),
288  true
289  );
290  }
291  $this->ctrl->redirect($this, self::CMD_INDEX);
292  }
Class ChatMainBarProvider .
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
+ Here is the call graph for this function:

◆ executeCommand()

ILIAS\File\Icon\ilObjFileIconsOverviewGUI::executeCommand ( )
final

Definition at line 69 of file class.ilObjFileIconsOverviewGUI.php.

References ILIAS\File\Icon\ilObjFileIconsOverviewGUI\changeActivation(), ILIAS\File\Icon\ilObjFileIconsOverviewGUI\create(), ILIAS\Repository\ctrl(), ILIAS\File\Icon\ilObjFileIconsOverviewGUI\index(), ILIAS\File\Icon\ilObjFileIconsOverviewGUI\openCreationForm(), ILIAS\File\Icon\ilObjFileIconsOverviewGUI\openUpdatingForm(), and ILIAS\File\Icon\ilObjFileIconsOverviewGUI\update().

69  : void
70  {
71  $next_class = $this->ctrl->getNextClass(self::class);
72  if ($next_class === strtolower(ilIconUploadHandlerGUI::class)) {
73  $upload_handler = new ilIconUploadHandlerGUI();
74  $this->ctrl->forwardCommand($upload_handler);
75  }
76 
77  match ($cmd = $this->ctrl->getCmd(self::CMD_INDEX)) {
78  self::CMD_OPEN_CREATION_FORM => $this->openCreationForm(),
79  self::CMD_OPEN_UPDATING_FORM => $this->openUpdatingForm(),
80  self::CMD_CHANGE_ACTIVATION => $this->changeActivation(),
81  self::CMD_CREATE => $this->create(),
82  self::CMD_UPDATE => $this->update(),
83  self::CMD_DELETE => $this->delete(),
84  default => $this->index(),
85  };
86  }
+ Here is the call graph for this function:

◆ index()

ILIAS\File\Icon\ilObjFileIconsOverviewGUI::index ( )
private

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

References ILIAS\Repository\ctrl(), ILIAS\Repository\lng(), and ILIAS\Repository\toolbar().

Referenced by ILIAS\File\Icon\ilObjFileIconsOverviewGUI\executeCommand().

88  : void
89  {
90  // toolbar: add new icon button
91  $btn_new_icon = $this->ui_factory->button()->standard(
92  $this->lng->txt('add_icon'),
93  $this->ctrl->getLinkTargetByClass(self::class, self::CMD_OPEN_CREATION_FORM)
94  );
95  $this->toolbar->addComponent($btn_new_icon);
96 
97  // Listing of icons
98  $listing = new IconListingUI(
99  $this->icon_repo,
100  $this
101  );
102 
103  $content = [];
104  $content[] = $listing->getFilter();
105  $content[] = $listing->getIconList();
106  $content[] = $listing->getDeletionModals();
107 
108  $this->main_tpl->setContent(
109  $this->ui_renderer->render($content)
110  );
111  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ openCreationForm()

ILIAS\File\Icon\ilObjFileIconsOverviewGUI::openCreationForm ( )
private

Definition at line 113 of file class.ilObjFileIconsOverviewGUI.php.

References ILIAS\File\Icon\IconFormUI\MODE_CREATE.

Referenced by ILIAS\File\Icon\ilObjFileIconsOverviewGUI\executeCommand().

113  : void
114  {
115  $icon_form_ui = new IconFormUI(new NullIcon('', true), IconFormUI::MODE_CREATE, $this->icon_repo);
116  $icon_form = $icon_form_ui->getIconForm();
117  $this->main_tpl->setContent(
118  $this->ui_renderer->render($icon_form)
119  );
120  }
+ Here is the caller graph for this function:

◆ openUpdatingForm()

ILIAS\File\Icon\ilObjFileIconsOverviewGUI::openUpdatingForm ( )
private

Definition at line 122 of file class.ilObjFileIconsOverviewGUI.php.

References ILIAS\Repository\ctrl(), ILIAS\File\Icon\IconFormUI\MODE_EDIT, and ILIAS\Repository\refinery().

Referenced by ILIAS\File\Icon\ilObjFileIconsOverviewGUI\executeCommand().

122  : void
123  {
124  $to_str = $this->refinery->to()->string();
125  $rid = $this->wrapper->query()->has(self::P_RID) ? $rid = $this->wrapper->query()->retrieve(
126  self::P_RID,
127  $to_str
128  ) : "";
129  $this->ctrl->setParameter($this, self::P_RID, $rid); //store rid for giving icon to form in update function
130  $icon = $this->icon_repo->getIconByRid($rid);
131  $icon_form_ui = new IconFormUI($icon, IconFormUI::MODE_EDIT, $this->icon_repo);
132  $icon_form = $icon_form_ui->getIconForm();
133  $this->main_tpl->setContent(
134  $this->ui_renderer->render($icon_form)
135  );
136  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ update()

ILIAS\File\Icon\ilObjFileIconsOverviewGUI::update ( )

Definition at line 215 of file class.ilObjFileIconsOverviewGUI.php.

References ILIAS\Repository\ctrl(), ILIAS\File\Icon\IconFormUI\INPUT_ACTIVE, ILIAS\File\Icon\IconFormUI\INPUT_ICON, ILIAS\File\Icon\IconFormUI\INPUT_SUFFIXES, ILIAS\Repository\lng(), ILIAS\File\Icon\IconFormUI\MODE_EDIT, and ILIAS\Repository\refinery().

Referenced by ILIAS\File\Icon\ilObjFileIconsOverviewGUI\executeCommand().

215  : void
216  {
217  $to_str = $this->refinery->to()->string();
218  $rid = $this->wrapper->query()->has(self::P_RID) ? $rid = $this->wrapper->query()->retrieve(
219  self::P_RID,
220  $to_str
221  ) : "";
222  $this->ctrl->saveParameter(
223  $this,
224  self::P_RID
225  ); //save rid to still have it when re-submitting a previously wrongly filled out form
226  $icon = $this->icon_repo->getIconByRid($rid);
227  $ui = new IconFormUI($icon, IconFormUI::MODE_EDIT, $this->icon_repo);
228  $form = $ui->getIconForm();
229 
230  if ($this->http_request->getMethod() === "POST") {
231  $form = $form->withRequest($this->http_request);
232  $result = $form->getData();
233 
234  if ($result !== null) {
235  $rid = $result[0][IconFormUI::INPUT_ICON][0];
236  $active = $result[0][IconFormUI::INPUT_ACTIVE];
237  $suffixes = $result[0][IconFormUI::INPUT_SUFFIXES];
238 
239  $this->icon_repo->updateIcon($rid, $active, false, $suffixes);
240  $this->main_tpl->setOnScreenMessage('success', $this->lng->txt('msg_success_icon_updated'), true);
241  $this->ctrl->redirect($this, self::CMD_INDEX);
242  } else {
243  $this->main_tpl->setContent(
244  $this->ui_renderer->render([$form])
245  );
246  }
247  }
248  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $ctrl

ilCtrl ILIAS\File\Icon\ilObjFileIconsOverviewGUI::$ctrl
private

Definition at line 38 of file class.ilObjFileIconsOverviewGUI.php.

◆ $file_service_settings

ilFileServicesSettings ILIAS\File\Icon\ilObjFileIconsOverviewGUI::$file_service_settings
private

Definition at line 49 of file class.ilObjFileIconsOverviewGUI.php.

◆ $http_request

Psr Http Message RequestInterface ILIAS\File\Icon\ilObjFileIconsOverviewGUI::$http_request
private

Definition at line 45 of file class.ilObjFileIconsOverviewGUI.php.

◆ $icon_repo

IconRepositoryInterface ILIAS\File\Icon\ilObjFileIconsOverviewGUI::$icon_repo
private

Definition at line 48 of file class.ilObjFileIconsOverviewGUI.php.

◆ $lng

ilLanguage ILIAS\File\Icon\ilObjFileIconsOverviewGUI::$lng
private

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

◆ $main_tpl

ilGlobalTemplateInterface ILIAS\File\Icon\ilObjFileIconsOverviewGUI::$main_tpl
private

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

◆ $refinery

ILIAS Refinery Factory ILIAS\File\Icon\ilObjFileIconsOverviewGUI::$refinery
private

Definition at line 46 of file class.ilObjFileIconsOverviewGUI.php.

◆ $storage

ILIAS ResourceStorage Services ILIAS\File\Icon\ilObjFileIconsOverviewGUI::$storage
private

Definition at line 47 of file class.ilObjFileIconsOverviewGUI.php.

◆ $toolbar

ilToolbarGUI ILIAS\File\Icon\ilObjFileIconsOverviewGUI::$toolbar
private

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

◆ $ui_factory

ILIAS UI Factory ILIAS\File\Icon\ilObjFileIconsOverviewGUI::$ui_factory
private

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

◆ $ui_renderer

ILIAS UI Renderer ILIAS\File\Icon\ilObjFileIconsOverviewGUI::$ui_renderer
private

Definition at line 42 of file class.ilObjFileIconsOverviewGUI.php.

◆ $wrapper

ILIAS HTTP Wrapper WrapperFactory ILIAS\File\Icon\ilObjFileIconsOverviewGUI::$wrapper
private

Definition at line 44 of file class.ilObjFileIconsOverviewGUI.php.

◆ CMD_CHANGE_ACTIVATION

const ILIAS\File\Icon\ilObjFileIconsOverviewGUI::CMD_CHANGE_ACTIVATION = 'changeActivation'

◆ CMD_CREATE

const ILIAS\File\Icon\ilObjFileIconsOverviewGUI::CMD_CREATE = 'create'

◆ CMD_DELETE

const ILIAS\File\Icon\ilObjFileIconsOverviewGUI::CMD_DELETE = 'delete'

◆ CMD_INDEX

const ILIAS\File\Icon\ilObjFileIconsOverviewGUI::CMD_INDEX = 'index'

◆ CMD_OPEN_CREATION_FORM

const ILIAS\File\Icon\ilObjFileIconsOverviewGUI::CMD_OPEN_CREATION_FORM = 'openCreationForm'

Definition at line 30 of file class.ilObjFileIconsOverviewGUI.php.

◆ CMD_OPEN_UPDATING_FORM

const ILIAS\File\Icon\ilObjFileIconsOverviewGUI::CMD_OPEN_UPDATING_FORM = 'openUpdatingForm'

◆ CMD_UPDATE

const ILIAS\File\Icon\ilObjFileIconsOverviewGUI::CMD_UPDATE = 'update'

◆ P_RID

const ILIAS\File\Icon\ilObjFileIconsOverviewGUI::P_RID = 'rid'

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