ILIAS  trunk Revision v11.0_alpha-1866-gfa368f7776e
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
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
 
Factory $ui_factory
 
Renderer $ui_renderer
 
ilGlobalTemplateInterface $main_tpl
 
WrapperFactory $wrapper
 
RequestInterface $http_request
 
ILIAS Refinery Factory $refinery
 
Services $storage
 
IconRepositoryInterface $icon_repo
 
ilFileServicesSettings $file_service_settings
 

Detailed Description

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

Constructor & Destructor Documentation

◆ __construct()

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

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

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

59  {
60  global $DIC;
61  $this->ctrl = $DIC->ctrl();
62  $this->lng = $DIC->language();
63  $this->lng->loadLanguageModule('file');
64  $this->toolbar = $DIC->toolbar();
65  $this->main_tpl = $DIC->ui()->mainTemplate();
66  $this->ui_factory = $DIC->ui()->factory();
67  $this->ui_renderer = $DIC->ui()->renderer();
68  $this->http_request = $DIC->http()->request();
69  $this->wrapper = $DIC->http()->wrapper();
70  $this->refinery = $DIC->refinery();
71  $this->storage = $DIC->resourceStorage();
72  $this->icon_repo = new IconDatabaseRepository();
73  $this->file_service_settings = $DIC->fileServiceSettings();
74  }
global $DIC
Definition: shib_login.php:22
+ Here is the call graph for this function:

Member Function Documentation

◆ changeActivation()

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

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

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

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

145  : void
146  {
147  $to_str = $this->refinery->to()->string();
148  $rid = $this->wrapper->query()->has(self::P_RID) ? $rid = $this->wrapper->query()->retrieve(
149  self::P_RID,
150  $to_str
151  ) : "";
152  $icon = $this->icon_repo->getIconByRid($rid);
153  $suffixes = $icon->getSuffixes();
154  $icon->isActive();
155  $is_default_icon = $icon->isDefaultIcon();
156 
157  if (!$icon->isActive()) {
158  // in case of a change from deactivated to activated no two icons with overlapping suffixes must be active at the same time
159  if ($this->icon_repo->causesNoActiveSuffixesConflict($suffixes, true, $icon)) {
160  $this->icon_repo->updateIcon($rid, true, $is_default_icon, $suffixes);
161 
162  $this->main_tpl->setOnScreenMessage('success', $this->lng->txt('msg_success_icon_activated'), true);
163  } else {
164  $this->main_tpl->setOnScreenMessage(
165  'failure',
166  $this->lng->txt('msg_error_active_suffixes_conflict'),
167  true
168  );
169  }
170  } else {
171  $this->icon_repo->updateIcon($rid, false, $is_default_icon, $suffixes);
172  $this->main_tpl->setOnScreenMessage('success', $this->lng->txt('msg_success_icon_deactivated'), true);
173  }
174 
175  $this->ctrl->redirect($this, self::CMD_INDEX);
176  }
+ 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 178 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_CREATE, and null.

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

178  : void
179  {
180  $ui = new IconFormUI(new NullIcon(), IconFormUI::MODE_CREATE, $this->icon_repo);
181  $form = $ui->getIconForm();
182 
183  if ($this->http_request->getMethod() === "POST") {
184  $form = $form->withRequest($this->http_request);
185  $result = $form->getData();
186 
187  if ($result !== null) {
188  $rid = $result[0][IconFormUI::INPUT_ICON][0];
189  $active = $result[0][IconFormUI::INPUT_ACTIVE];
190  $suffixes = $result[0][IconFormUI::INPUT_SUFFIXES];
191 
192  $this->icon_repo->createIcon($rid, $active, false, $suffixes);
193 
194  // check if one of the suffixes is not whitelisted
195  if (array_diff($suffixes, $this->file_service_settings->getWhiteListedSuffixes()) !== []) {
196  $this->main_tpl->setOnScreenMessage(
197  'info',
198  $this->lng->txt('msg_error_active_suffixes_not_whitelisted'),
199  true
200  );
201  }
202 
203  // check if one of the suffixes is blacklisted
204  if (array_intersect($suffixes, $this->file_service_settings->getBlackListedSuffixes()) !== []) {
205  $this->main_tpl->setOnScreenMessage(
206  'info',
207  $this->lng->txt('msg_error_active_suffixes_blacklisted'),
208  true
209  );
210  }
211 
212  $this->main_tpl->setOnScreenMessage('success', $this->lng->txt('msg_success_icon_created'), true);
213  $this->ctrl->redirect($this, self::CMD_INDEX);
214  } else {
215  $this->main_tpl->setContent(
216  $this->ui_renderer->render([$form])
217  );
218  }
219  }
220  }
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
+ 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 257 of file class.ilObjFileIconsOverviewGUI.php.

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

257  : void
258  {
259  $to_str = $this->refinery->to()->string();
260  $rid = $this->wrapper->query()->has(self::P_RID) ? $rid = $this->wrapper->query()->retrieve(
261  self::P_RID,
262  $to_str
263  ) : "";
264 
265  // delete icon from irss
266  $is_deleted_from_irss = false;
267  $id = $this->storage->manage()->find($rid);
268  if ($id instanceof ResourceIdentification) {
269  $this->storage->manage()->remove($id, new ilObjFileIconStakeholder());
270  $is_deleted_from_irss = true;
271  }
272  // delete icon from db
273  $is_deleted_from_db = $this->icon_repo->deleteIconByRid($rid);
274 
275  if ($is_deleted_from_irss && $is_deleted_from_db) {
276  $this->main_tpl->setOnScreenMessage('success', $this->lng->txt('msg_success_icon_deletion'), true);
277  } elseif ($is_deleted_from_irss) {
278  $this->main_tpl->setOnScreenMessage(
279  'failure',
280  $this->lng->txt('msg_error_icon_deletion') . " " . $this->lng->txt('msg_icon_missing_from_db'),
281  true
282  );
283  } elseif ($is_deleted_from_db) {
284  $this->main_tpl->setOnScreenMessage(
285  'failure',
286  $this->lng->txt('msg_error_icon_deletion') . " " . $this->lng->txt('msg_icon_missing_from_irss'),
287  true
288  );
289  } else {
290  $this->main_tpl->setOnScreenMessage(
291  'failure',
292  $this->lng->txt('msg_error_icon_deletion') . " " . $this->lng->txt(
293  'msg_icon_missing_from_db'
294  ) . " " . $this->lng->txt('msg_icon_missing_from_irss'),
295  true
296  );
297  }
298  $this->ctrl->redirect($this, self::CMD_INDEX);
299  }
$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 76 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().

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

◆ index()

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

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

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

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

95  : void
96  {
97  // toolbar: add new icon button
98  $btn_new_icon = $this->ui_factory->button()->standard(
99  $this->lng->txt('add_icon'),
100  $this->ctrl->getLinkTargetByClass(self::class, self::CMD_OPEN_CREATION_FORM)
101  );
102  $this->toolbar->addComponent($btn_new_icon);
103 
104  // Listing of icons
105  $listing = new IconListingUI(
106  $this->icon_repo,
107  $this
108  );
109 
110  $content = [];
111  $content[] = $listing->getFilter();
112  $content[] = $listing->getIconList();
113  $content[] = $listing->getDeletionModals();
114 
115  $this->main_tpl->setContent(
116  $this->ui_renderer->render($content)
117  );
118  }
+ 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 120 of file class.ilObjFileIconsOverviewGUI.php.

References ILIAS\File\Icon\IconFormUI\MODE_CREATE.

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

120  : void
121  {
122  $icon_form_ui = new IconFormUI(new NullIcon('', true), IconFormUI::MODE_CREATE, $this->icon_repo);
123  $icon_form = $icon_form_ui->getIconForm();
124  $this->main_tpl->setContent(
125  $this->ui_renderer->render($icon_form)
126  );
127  }
+ Here is the caller graph for this function:

◆ openUpdatingForm()

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

Definition at line 129 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().

129  : void
130  {
131  $to_str = $this->refinery->to()->string();
132  $rid = $this->wrapper->query()->has(self::P_RID) ? $rid = $this->wrapper->query()->retrieve(
133  self::P_RID,
134  $to_str
135  ) : "";
136  $this->ctrl->setParameter($this, self::P_RID, $rid); //store rid for giving icon to form in update function
137  $icon = $this->icon_repo->getIconByRid($rid);
138  $icon_form_ui = new IconFormUI($icon, IconFormUI::MODE_EDIT, $this->icon_repo);
139  $icon_form = $icon_form_ui->getIconForm();
140  $this->main_tpl->setContent(
141  $this->ui_renderer->render($icon_form)
142  );
143  }
+ 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 222 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, null, and ILIAS\Repository\refinery().

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

222  : void
223  {
224  $to_str = $this->refinery->to()->string();
225  $rid = $this->wrapper->query()->has(self::P_RID) ? $rid = $this->wrapper->query()->retrieve(
226  self::P_RID,
227  $to_str
228  ) : "";
229  $this->ctrl->saveParameter(
230  $this,
231  self::P_RID
232  ); //save rid to still have it when re-submitting a previously wrongly filled out form
233  $icon = $this->icon_repo->getIconByRid($rid);
234  $ui = new IconFormUI($icon, IconFormUI::MODE_EDIT, $this->icon_repo);
235  $form = $ui->getIconForm();
236 
237  if ($this->http_request->getMethod() === "POST") {
238  $form = $form->withRequest($this->http_request);
239  $result = $form->getData();
240 
241  if ($result !== null) {
242  $rid = $result[0][IconFormUI::INPUT_ICON][0];
243  $active = $result[0][IconFormUI::INPUT_ACTIVE];
244  $suffixes = $result[0][IconFormUI::INPUT_SUFFIXES];
245 
246  $this->icon_repo->updateIcon($rid, $active, false, $suffixes);
247  $this->main_tpl->setOnScreenMessage('success', $this->lng->txt('msg_success_icon_updated'), true);
248  $this->ctrl->redirect($this, self::CMD_INDEX);
249  } else {
250  $this->main_tpl->setContent(
251  $this->ui_renderer->render([$form])
252  );
253  }
254  }
255  }
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
+ 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 45 of file class.ilObjFileIconsOverviewGUI.php.

◆ $file_service_settings

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

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

◆ $http_request

RequestInterface ILIAS\File\Icon\ilObjFileIconsOverviewGUI::$http_request
private

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

◆ $icon_repo

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

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

◆ $lng

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

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

◆ $main_tpl

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

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

◆ $refinery

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

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

◆ $storage

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

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

◆ $toolbar

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

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

◆ $ui_factory

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

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

◆ $ui_renderer

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

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

◆ $wrapper

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

Definition at line 51 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 37 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: