ILIAS  trunk Revision v12.0_alpha-1329-g1094ddb0c33
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
 
ilAccessHandler $access
 
bool $write_access
 

Detailed Description

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

Constructor & Destructor Documentation

◆ __construct()

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

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

61 {
62 global $DIC;
63 $this->ctrl = $DIC->ctrl();
64 $this->access = $DIC->access();
65 $this->lng = $DIC->language();
66 $this->lng->loadLanguageModule('file');
67 $this->toolbar = $DIC->toolbar();
68 $this->main_tpl = $DIC->ui()->mainTemplate();
69 $this->ui_factory = $DIC->ui()->factory();
70 $this->ui_renderer = $DIC->ui()->renderer();
71 $this->http_request = $DIC->http()->request();
72 $this->wrapper = $DIC->http()->wrapper();
73 $this->refinery = $DIC->refinery();
74 $this->storage = $DIC->resourceStorage();
75 $this->icon_repo = new IconDatabaseRepository();
76 $this->file_service_settings = $DIC->fileServiceSettings();
77 $this->write_access = $this->access->checkAccess(
78 'write',
79 '',
80 (int) ($this->http_request->getQueryParams()['ref_id'] ?? 0)
81 );
82 }
global $DIC
Definition: shib_login.php:26

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

+ Here is the call graph for this function:

Member Function Documentation

◆ changeActivation()

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

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

156 : void
157 {
158 $to_str = $this->refinery->to()->string();
159 $rid = $this->wrapper->query()->has(self::P_RID) ? $rid = $this->wrapper->query()->retrieve(
160 self::P_RID,
161 $to_str
162 ) : "";
163 $icon = $this->icon_repo->getIconByRid($rid);
164 $suffixes = $icon->getSuffixes();
165 $icon->isActive();
166 $is_default_icon = $icon->isDefaultIcon();
167
168 if (!$icon->isActive()) {
169 // in case of a change from deactivated to activated no two icons with overlapping suffixes must be active at the same time
170 if ($this->icon_repo->causesNoActiveSuffixesConflict($suffixes, true, $icon)) {
171 $this->icon_repo->updateIcon($rid, true, $is_default_icon, $suffixes);
172
173 $this->main_tpl->setOnScreenMessage('success', $this->lng->txt('msg_success_icon_activated'), true);
174 } else {
175 $this->main_tpl->setOnScreenMessage(
176 'failure',
177 $this->lng->txt('msg_error_active_suffixes_conflict'),
178 true
179 );
180 }
181 } else {
182 $this->icon_repo->updateIcon($rid, false, $is_default_icon, $suffixes);
183 $this->main_tpl->setOnScreenMessage('success', $this->lng->txt('msg_success_icon_deactivated'), true);
184 }
185
186 $this->ctrl->redirect($this, self::CMD_INDEX);
187 }

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

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

+ 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 189 of file class.ilObjFileIconsOverviewGUI.php.

189 : void
190 {
191 $ui = new IconFormUI(new NullIcon(), IconFormUI::MODE_CREATE, $this->icon_repo);
192 $form = $ui->getIconForm();
193
194 if ($this->http_request->getMethod() === "POST") {
195 $form = $form->withRequest($this->http_request);
196 $result = $form->getData();
197
198 if ($result !== null) {
199 $rid = $result[0][IconFormUI::INPUT_ICON][0];
200 $active = $result[0][IconFormUI::INPUT_ACTIVE];
201 $suffixes = $result[0][IconFormUI::INPUT_SUFFIXES];
202
203 $this->icon_repo->createIcon($rid, $active, false, $suffixes);
204
205 // check if one of the suffixes is not whitelisted
206 if (array_diff($suffixes, $this->file_service_settings->getWhiteListedSuffixes()) !== []) {
207 $this->main_tpl->setOnScreenMessage(
208 'info',
209 $this->lng->txt('msg_error_active_suffixes_not_whitelisted'),
210 true
211 );
212 }
213
214 // check if one of the suffixes is blacklisted
215 if (array_intersect($suffixes, $this->file_service_settings->getBlackListedSuffixes()) !== []) {
216 $this->main_tpl->setOnScreenMessage(
217 'info',
218 $this->lng->txt('msg_error_active_suffixes_blacklisted'),
219 true
220 );
221 }
222
223 $this->main_tpl->setOnScreenMessage('success', $this->lng->txt('msg_success_icon_created'), true);
224 $this->ctrl->redirect($this, self::CMD_INDEX);
225 } else {
226 $this->main_tpl->setContent(
227 $this->ui_renderer->render([$form])
228 );
229 }
230 }
231 }

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().

+ 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 268 of file class.ilObjFileIconsOverviewGUI.php.

268 : void
269 {
270 $to_str = $this->refinery->to()->string();
271 $rid = $this->wrapper->query()->has(self::P_RID) ? $rid = $this->wrapper->query()->retrieve(
272 self::P_RID,
273 $to_str
274 ) : "";
275
276 // delete icon from irss
277 $is_deleted_from_irss = false;
278 $id = $this->storage->manage()->find($rid);
279 if ($id instanceof ResourceIdentification) {
280 $this->storage->manage()->remove($id, new ilObjFileIconStakeholder());
281 $is_deleted_from_irss = true;
282 }
283 // delete icon from db
284 $is_deleted_from_db = $this->icon_repo->deleteIconByRid($rid);
285
286 if ($is_deleted_from_irss && $is_deleted_from_db) {
287 $this->main_tpl->setOnScreenMessage('success', $this->lng->txt('msg_success_icon_deletion'), true);
288 } elseif ($is_deleted_from_irss) {
289 $this->main_tpl->setOnScreenMessage(
290 'failure',
291 $this->lng->txt('msg_error_icon_deletion') . " " . $this->lng->txt('msg_icon_missing_from_db'),
292 true
293 );
294 } elseif ($is_deleted_from_db) {
295 $this->main_tpl->setOnScreenMessage(
296 'failure',
297 $this->lng->txt('msg_error_icon_deletion') . " " . $this->lng->txt('msg_icon_missing_from_irss'),
298 true
299 );
300 } else {
301 $this->main_tpl->setOnScreenMessage(
302 'failure',
303 $this->lng->txt('msg_error_icon_deletion') . " " . $this->lng->txt(
304 'msg_icon_missing_from_db'
305 ) . " " . $this->lng->txt('msg_icon_missing_from_irss'),
306 true
307 );
308 }
309 $this->ctrl->redirect($this, self::CMD_INDEX);
310 }
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23

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

+ Here is the call graph for this function:

◆ executeCommand()

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

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

84 : void
85 {
86 $next_class = $this->ctrl->getNextClass(self::class);
87 if ($next_class === strtolower(ilIconUploadHandlerGUI::class)) {
88 $upload_handler = new ilIconUploadHandlerGUI();
89 $this->ctrl->forwardCommand($upload_handler);
90 }
91
92 match ($cmd = $this->ctrl->getCmd(self::CMD_INDEX)) {
93 self::CMD_OPEN_CREATION_FORM => $this->openCreationForm(),
94 self::CMD_OPEN_UPDATING_FORM => $this->openUpdatingForm(),
95 self::CMD_CHANGE_ACTIVATION => $this->changeActivation(),
96 self::CMD_CREATE => $this->create(),
97 self::CMD_UPDATE => $this->update(),
98 self::CMD_DELETE => $this->delete(),
99 default => $this->index(),
100 };
101 }

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().

+ Here is the call graph for this function:

◆ index()

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

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

103 : void
104 {
105 // toolbar: add new icon button
106 if ($this->write_access) {
107 $btn_new_icon = $this->ui_factory->button()->standard(
108 $this->lng->txt('add_icon'),
109 $this->ctrl->getLinkTargetByClass(self::class, self::CMD_OPEN_CREATION_FORM)
110 );
111 $this->toolbar->addComponent($btn_new_icon);
112 }
113
114 // Listing of icons
115 $listing = new IconListingUI(
116 $this->icon_repo,
117 $this,
118 $this->write_access
119 );
120
121 $content = [];
122 $content[] = $listing->getFilter();
123 $content[] = $listing->getIconList();
124 $content[] = $listing->getDeletionModals();
125
126 $this->main_tpl->setContent(
127 $this->ui_renderer->render($content)
128 );
129 }

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

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

+ 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 131 of file class.ilObjFileIconsOverviewGUI.php.

131 : void
132 {
133 $icon_form_ui = new IconFormUI(new NullIcon('', true), IconFormUI::MODE_CREATE, $this->icon_repo);
134 $icon_form = $icon_form_ui->getIconForm();
135 $this->main_tpl->setContent(
136 $this->ui_renderer->render($icon_form)
137 );
138 }

References ILIAS\File\Icon\IconFormUI\MODE_CREATE.

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

+ Here is the caller graph for this function:

◆ openUpdatingForm()

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

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

140 : void
141 {
142 $to_str = $this->refinery->to()->string();
143 $rid = $this->wrapper->query()->has(self::P_RID) ? $rid = $this->wrapper->query()->retrieve(
144 self::P_RID,
145 $to_str
146 ) : "";
147 $this->ctrl->setParameter($this, self::P_RID, $rid); //store rid for giving icon to form in update function
148 $icon = $this->icon_repo->getIconByRid($rid);
149 $icon_form_ui = new IconFormUI($icon, IconFormUI::MODE_EDIT, $this->icon_repo);
150 $icon_form = $icon_form_ui->getIconForm();
151 $this->main_tpl->setContent(
152 $this->ui_renderer->render($icon_form)
153 );
154 }

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

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

+ 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 233 of file class.ilObjFileIconsOverviewGUI.php.

233 : void
234 {
235 $to_str = $this->refinery->to()->string();
236 $rid = $this->wrapper->query()->has(self::P_RID) ? $rid = $this->wrapper->query()->retrieve(
237 self::P_RID,
238 $to_str
239 ) : "";
240 $this->ctrl->saveParameter(
241 $this,
242 self::P_RID
243 ); //save rid to still have it when re-submitting a previously wrongly filled out form
244 $icon = $this->icon_repo->getIconByRid($rid);
245 $ui = new IconFormUI($icon, IconFormUI::MODE_EDIT, $this->icon_repo);
246 $form = $ui->getIconForm();
247
248 if ($this->http_request->getMethod() === "POST") {
249 $form = $form->withRequest($this->http_request);
250 $result = $form->getData();
251
252 if ($result !== null) {
253 $rid = $result[0][IconFormUI::INPUT_ICON][0];
254 $active = $result[0][IconFormUI::INPUT_ACTIVE];
255 $suffixes = $result[0][IconFormUI::INPUT_SUFFIXES];
256
257 $this->icon_repo->updateIcon($rid, $active, false, $suffixes);
258 $this->main_tpl->setOnScreenMessage('success', $this->lng->txt('msg_success_icon_updated'), true);
259 $this->ctrl->redirect($this, self::CMD_INDEX);
260 } else {
261 $this->main_tpl->setContent(
262 $this->ui_renderer->render([$form])
263 );
264 }
265 }
266 }

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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $access

ilAccessHandler ILIAS\File\Icon\ilObjFileIconsOverviewGUI::$access
private

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

◆ $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.

◆ $write_access

bool ILIAS\File\Icon\ilObjFileIconsOverviewGUI::$write_access
private

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