ILIAS  trunk Revision v11.0_alpha-1846-g895b5f47236
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
UploadPolicyFormUI Class Reference
+ Collaboration diagram for UploadPolicyFormUI:

Public Member Functions

 __construct (protected UploadPolicyDBRepository $upload_policy_db_repository, protected ilCtrlInterface $ctrl, protected HttpServices $http, protected ilLanguage $language, protected ilRbacReview $rbac_review, protected RefineryFactory $refinery, protected UIFactory $ui_factory)
 
 getForm ()
 

Data Fields

const INPUT_SECTION_GENERAL = "general_section"
 
const INPUT_SECTION_AUDIENCE = "audience_section"
 
const INPUT_SECTION_VALIDITY = "validity_section"
 
const HIDDEN_INPUT_POLICY_ID = "policy_id"
 
const INPUT_FIELD_TITLE = "title"
 
const INPUT_FIELD_UPLOAD_LIMIT = "upload_limit"
 
const INPUT_FIELD_AUDIENCE = "audience"
 
const INPUT_FIELD_AUDIENCE_TYPE = "audience_type"
 
const INPUT_FIELD_AUDIENCE_DATA = "audience_data"
 
const INPUT_OPTION_ALL_USERS = "all_users"
 
const INPUT_OPTION_GLOBAL_ROLES = "global_roles"
 
const INPUT_FIELD_GLOBAL_ROLES = "global_roles"
 
const INPUT_FIELD_VALID_UNTIL = "valid_until"
 
const INPUT_FIELD_ACTIVE = "active"
 

Protected Member Functions

 getGlobalRoles ()
 
 getAudienceTransformation ()
 

Protected Attributes

const LABEL_INPUT_SECTION_GENERAL = "general"
 
const LABEL_INPUT_SECTION_AUDIENCE = "policy_audience"
 
const LABEL_INPUT_SECTION_VALIDITY = "policy_validity"
 
const LABEL_INPUT_FIELD_TITLE = "title"
 
const LABEL_INPUT_FIELD_UPLOAD_LIMIT = "policy_upload_limit"
 
const LABEL_INPUT_FIELD_AUDIENCE = "policy_audience"
 
const LABEL_INPUT_OPTION_ALL_USERS = "all_users"
 
const LABEL_INPUT_OPTION_GLOBAL_ROLES = "all_global_roles"
 
const LABEL_INPUT_FIELD_GLOBAL_ROLES = "all_global_roles"
 
const LABEL_INPUT_FIELD_VALID_UNTIL = "policy_valid_until"
 
const LABEL_INPUT_FIELD_ACTIVE = "active"
 
const BYLINE_INPUT_FIELD_TITLE = "policy_title_desc"
 
const BYLINE_INPUT_FIELD_UPLOAD_LIMIT = "policy_upload_limit_desc"
 
const BYLINE_INPUT_OPTION_ALL_USERS = "policy_audience_all_users_option_desc"
 
const BYLINE_INPUT_OPTION_GLOBAL_ROLES = "policy_audience_global_roles_option_desc"
 
const BYLINE_INPUT_FIELD_VALID_UNTIL = "policy_valid_until_desc"
 
StandardForm $form
 

Detailed Description

Author
Lukas Zehnder lukas.nosp@m.@sr..nosp@m.solut.nosp@m.ions

Definition at line 30 of file UploadPolicyFormUI.php.

Constructor & Destructor Documentation

◆ __construct()

UploadPolicyFormUI::__construct ( protected UploadPolicyDBRepository  $upload_policy_db_repository,
protected ilCtrlInterface  $ctrl,
protected HttpServices  $http,
protected ilLanguage  $language,
protected ilRbacReview  $rbac_review,
protected RefineryFactory  $refinery,
protected UIFactory  $ui_factory 
)

Definition at line 71 of file UploadPolicyFormUI.php.

References UploadPolicy\AUDIENCE_TYPE_GLOBAL_ROLE, ilUploadLimitsOverviewGUI\CMD_SAVE_UPLOAD_POLICY, ILIAS\Repository\ctrl(), ILIAS\Repository\form(), getAudienceTransformation(), getGlobalRoles(), ILIAS\GlobalScreen\Scope\Footer\Factory\getTitle(), ILIAS\FileDelivery\http(), ILIAS\UI\examples\Symbol\Glyph\Language\language(), null, UploadPolicy\POLICY_ID, ILIAS\Repository\refinery(), ILIAS\UI\Implementation\Component\Input\ViewControl\withAdditionalTransformation(), and ILIAS\UI\Implementation\Component\Input\withValue().

79  {
80  $policy_id = null;
81  $upload_policy = null;
82 
83  // Retrieve upload_policy if request contains policy_id
84  if ($this->http->wrapper()->query()->has(UploadPolicy::POLICY_ID)) {
85  $policy_id = $this->http->wrapper()->query()->retrieve(
87  $this->refinery->kindlyTo()->int()
88  );
89  $upload_policy = $this->upload_policy_db_repository->get($policy_id);
90  }
91 
92  // Create hidden input (policy_id)
93  $policy_id_hidden_input = $this->ui_factory->input()->field()->hidden()->withValue((string) $policy_id);
94 
95  // Create general section and its inputs (title and upload_limit)
96  $policy_title_input = $this->ui_factory->input()->field()->text(
97  $this->language->txt(self::LABEL_INPUT_FIELD_TITLE),
98  $this->language->txt(self::BYLINE_INPUT_FIELD_TITLE)
99  )->withValue(
100  $upload_policy?->getTitle() ?? ""
101  )->withRequired(true);
102  $upload_limit_input = $this->ui_factory->input()->field()->numeric(
103  $this->language->txt(self::LABEL_INPUT_FIELD_UPLOAD_LIMIT),
104  $this->language->txt(self::BYLINE_INPUT_FIELD_UPLOAD_LIMIT)
105  )->withValue(
106  $upload_policy?->getUploadLimitInMB()
107  )->withRequired(true);
108  $general_section = $this->ui_factory->input()->field()->section(
109  [
110  self::INPUT_FIELD_TITLE => $policy_title_input,
111  self::INPUT_FIELD_UPLOAD_LIMIT => $upload_limit_input
112  ],
113  $this->language->txt(self::LABEL_INPUT_SECTION_GENERAL)
114  );
115 
116  // Create audience section and its input (audience)
117  $all_users_option = $this->ui_factory->input()->field()->group(
118  [],
119  $this->language->txt(self::LABEL_INPUT_OPTION_ALL_USERS),
120  $this->language->txt(self::BYLINE_INPUT_OPTION_ALL_USERS)
121  );
122  $global_role_input = $this->ui_factory->input()->field()->multiSelect(
123  $this->language->txt(self::LABEL_INPUT_FIELD_GLOBAL_ROLES) . ":",
124  $this->getGlobalRoles()
125  )->withValue(
126  $upload_policy?->getAudience()['global_roles'] ?? []
127  );
128  $global_roles_option = $this->ui_factory->input()->field()->group(
129  [
130  self::INPUT_FIELD_GLOBAL_ROLES => $global_role_input
131  ],
132  $this->language->txt(self::LABEL_INPUT_OPTION_GLOBAL_ROLES),
133  $this->language->txt(self::BYLINE_INPUT_OPTION_GLOBAL_ROLES)
134  );
135  $audience_input = $this->ui_factory->input()->field()->switchableGroup(
136  [
137  self::INPUT_OPTION_ALL_USERS => $all_users_option,
138  self::INPUT_OPTION_GLOBAL_ROLES => $global_roles_option
139  ],
140  $this->language->txt(self::LABEL_INPUT_FIELD_AUDIENCE)
141  )->withValue(
142  ($upload_policy?->getAudienceType() === UploadPolicy::AUDIENCE_TYPE_GLOBAL_ROLE) ? self::INPUT_OPTION_GLOBAL_ROLES : self::INPUT_OPTION_ALL_USERS
143  )->withRequired(true);
144  $audience_section = $this->ui_factory->input()->field()->section(
145  [
146  self::INPUT_FIELD_AUDIENCE => $audience_input
147  ],
148  $this->language->txt(self::LABEL_INPUT_SECTION_AUDIENCE)
151  );
152 
153  // Create validity section and its inputs (valid_until and active)
154  $valid_until_input = $this->ui_factory->input()->field()->dateTime(
155  $this->language->txt(self::LABEL_INPUT_FIELD_VALID_UNTIL),
156  $this->language->txt(self::BYLINE_INPUT_FIELD_VALID_UNTIL)
157  )->withValue(
158  $upload_policy?->getValidUntil()
159  );
160  $active_input = $this->ui_factory->input()->field()->checkbox(
161  $this->language->txt(self::LABEL_INPUT_FIELD_ACTIVE)
162  )->withValue(
163  $upload_policy?->isActive()
164  );
165  $validity_section = $this->ui_factory->input()->field()->section(
166  [
167  self::INPUT_FIELD_VALID_UNTIL => $valid_until_input,
168  self::INPUT_FIELD_ACTIVE => $active_input
169  ],
170  $this->language->txt(self::LABEL_INPUT_SECTION_VALIDITY)
171  );
172 
173  // Create form
174  $this->form = $this->ui_factory->input()->container()->form()->standard(
175  $this->ctrl->getLinkTargetByClass(ilUploadLimitsOverviewGUI::class, ilUploadLimitsOverviewGUI::CMD_SAVE_UPLOAD_POLICY),
176  [
177  self::INPUT_SECTION_GENERAL => $general_section,
178  self::INPUT_SECTION_AUDIENCE => $audience_section,
179  self::INPUT_SECTION_VALIDITY => $validity_section,
180  self::HIDDEN_INPUT_POLICY_ID => $policy_id_hidden_input,
181  ]
182  );
183  }
const AUDIENCE_TYPE_GLOBAL_ROLE
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
static http()
Fetches the global http state from ILIAS.
withValue($value)
Get an input like this with another value displayed on the client side.
Definition: Group.php:61
form( $class_path, string $cmd, string $submit_caption="")
language()
description: > Example for rendring a language glyph.
Definition: language.php:41
+ Here is the call graph for this function:

Member Function Documentation

◆ getAudienceTransformation()

UploadPolicyFormUI::getAudienceTransformation ( )
protected

Definition at line 207 of file UploadPolicyFormUI.php.

References UploadPolicy\AUDIENCE_TYPE_ALL_USERS, UploadPolicy\AUDIENCE_TYPE_GLOBAL_ROLE, and ILIAS\Repository\refinery().

Referenced by __construct().

208  {
209  return $this->refinery->custom()->transformation(function (array $audience_section): array {
210  $audience_type = match ($audience_section[self::INPUT_FIELD_AUDIENCE][0]) {
211  self::INPUT_OPTION_GLOBAL_ROLES => UploadPolicy::AUDIENCE_TYPE_GLOBAL_ROLE,
213  };
214 
215  return [
216  self::INPUT_FIELD_AUDIENCE_TYPE => $audience_type,
217  self::INPUT_FIELD_AUDIENCE_DATA => $audience_section[self::INPUT_FIELD_AUDIENCE][1]
218  ];
219  });
220  }
const AUDIENCE_TYPE_GLOBAL_ROLE
const AUDIENCE_TYPE_ALL_USERS
A transformation is a function from one datatype to another.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getForm()

UploadPolicyFormUI::getForm ( )

Definition at line 186 of file UploadPolicyFormUI.php.

References $form.

186  : StandardForm
187  {
188  return $this->form;
189  }

◆ getGlobalRoles()

UploadPolicyFormUI::getGlobalRoles ( )
protected

Definition at line 192 of file UploadPolicyFormUI.php.

Referenced by __construct().

192  : array
193  {
194  $global_roles = $this->rbac_review->getRolesForIDs(
195  $this->rbac_review->getGlobalRoles(),
196  false
197  );
198 
199  $roles = [];
200  foreach ($global_roles as $global_role) {
201  $roles[$global_role['rol_id']] = $global_role['title'];
202  }
203 
204  return $roles;
205  }
+ Here is the caller graph for this function:

Field Documentation

◆ $form

StandardForm UploadPolicyFormUI::$form
protected

Definition at line 68 of file UploadPolicyFormUI.php.

Referenced by getForm().

◆ BYLINE_INPUT_FIELD_TITLE

const UploadPolicyFormUI::BYLINE_INPUT_FIELD_TITLE = "policy_title_desc"
protected

Definition at line 61 of file UploadPolicyFormUI.php.

◆ BYLINE_INPUT_FIELD_UPLOAD_LIMIT

const UploadPolicyFormUI::BYLINE_INPUT_FIELD_UPLOAD_LIMIT = "policy_upload_limit_desc"
protected

Definition at line 62 of file UploadPolicyFormUI.php.

◆ BYLINE_INPUT_FIELD_VALID_UNTIL

const UploadPolicyFormUI::BYLINE_INPUT_FIELD_VALID_UNTIL = "policy_valid_until_desc"
protected

Definition at line 65 of file UploadPolicyFormUI.php.

◆ BYLINE_INPUT_OPTION_ALL_USERS

const UploadPolicyFormUI::BYLINE_INPUT_OPTION_ALL_USERS = "policy_audience_all_users_option_desc"
protected

Definition at line 63 of file UploadPolicyFormUI.php.

◆ BYLINE_INPUT_OPTION_GLOBAL_ROLES

const UploadPolicyFormUI::BYLINE_INPUT_OPTION_GLOBAL_ROLES = "policy_audience_global_roles_option_desc"
protected

Definition at line 64 of file UploadPolicyFormUI.php.

◆ HIDDEN_INPUT_POLICY_ID

const UploadPolicyFormUI::HIDDEN_INPUT_POLICY_ID = "policy_id"

Definition at line 36 of file UploadPolicyFormUI.php.

Referenced by ilUploadLimitsOverviewGUI\saveUploadPolicy().

◆ INPUT_FIELD_ACTIVE

const UploadPolicyFormUI::INPUT_FIELD_ACTIVE = "active"

Definition at line 46 of file UploadPolicyFormUI.php.

Referenced by ilUploadLimitsOverviewGUI\saveUploadPolicy().

◆ INPUT_FIELD_AUDIENCE

const UploadPolicyFormUI::INPUT_FIELD_AUDIENCE = "audience"

Definition at line 39 of file UploadPolicyFormUI.php.

◆ INPUT_FIELD_AUDIENCE_DATA

const UploadPolicyFormUI::INPUT_FIELD_AUDIENCE_DATA = "audience_data"

Definition at line 41 of file UploadPolicyFormUI.php.

Referenced by ilUploadLimitsOverviewGUI\saveUploadPolicy().

◆ INPUT_FIELD_AUDIENCE_TYPE

const UploadPolicyFormUI::INPUT_FIELD_AUDIENCE_TYPE = "audience_type"

Definition at line 40 of file UploadPolicyFormUI.php.

Referenced by ilUploadLimitsOverviewGUI\saveUploadPolicy().

◆ INPUT_FIELD_GLOBAL_ROLES

const UploadPolicyFormUI::INPUT_FIELD_GLOBAL_ROLES = "global_roles"

Definition at line 44 of file UploadPolicyFormUI.php.

◆ INPUT_FIELD_TITLE

const UploadPolicyFormUI::INPUT_FIELD_TITLE = "title"

Definition at line 37 of file UploadPolicyFormUI.php.

Referenced by ilUploadLimitsOverviewGUI\saveUploadPolicy().

◆ INPUT_FIELD_UPLOAD_LIMIT

const UploadPolicyFormUI::INPUT_FIELD_UPLOAD_LIMIT = "upload_limit"

Definition at line 38 of file UploadPolicyFormUI.php.

Referenced by ilUploadLimitsOverviewGUI\saveUploadPolicy().

◆ INPUT_FIELD_VALID_UNTIL

const UploadPolicyFormUI::INPUT_FIELD_VALID_UNTIL = "valid_until"

Definition at line 45 of file UploadPolicyFormUI.php.

Referenced by ilUploadLimitsOverviewGUI\saveUploadPolicy().

◆ INPUT_OPTION_ALL_USERS

const UploadPolicyFormUI::INPUT_OPTION_ALL_USERS = "all_users"

Definition at line 42 of file UploadPolicyFormUI.php.

◆ INPUT_OPTION_GLOBAL_ROLES

const UploadPolicyFormUI::INPUT_OPTION_GLOBAL_ROLES = "global_roles"

Definition at line 43 of file UploadPolicyFormUI.php.

◆ INPUT_SECTION_AUDIENCE

const UploadPolicyFormUI::INPUT_SECTION_AUDIENCE = "audience_section"

Definition at line 33 of file UploadPolicyFormUI.php.

Referenced by ilUploadLimitsOverviewGUI\saveUploadPolicy().

◆ INPUT_SECTION_GENERAL

const UploadPolicyFormUI::INPUT_SECTION_GENERAL = "general_section"

Definition at line 32 of file UploadPolicyFormUI.php.

Referenced by ilUploadLimitsOverviewGUI\saveUploadPolicy().

◆ INPUT_SECTION_VALIDITY

const UploadPolicyFormUI::INPUT_SECTION_VALIDITY = "validity_section"

Definition at line 34 of file UploadPolicyFormUI.php.

Referenced by ilUploadLimitsOverviewGUI\saveUploadPolicy().

◆ LABEL_INPUT_FIELD_ACTIVE

const UploadPolicyFormUI::LABEL_INPUT_FIELD_ACTIVE = "active"
protected

Definition at line 59 of file UploadPolicyFormUI.php.

◆ LABEL_INPUT_FIELD_AUDIENCE

const UploadPolicyFormUI::LABEL_INPUT_FIELD_AUDIENCE = "policy_audience"
protected

Definition at line 54 of file UploadPolicyFormUI.php.

◆ LABEL_INPUT_FIELD_GLOBAL_ROLES

const UploadPolicyFormUI::LABEL_INPUT_FIELD_GLOBAL_ROLES = "all_global_roles"
protected

Definition at line 57 of file UploadPolicyFormUI.php.

◆ LABEL_INPUT_FIELD_TITLE

const UploadPolicyFormUI::LABEL_INPUT_FIELD_TITLE = "title"
protected

Definition at line 52 of file UploadPolicyFormUI.php.

◆ LABEL_INPUT_FIELD_UPLOAD_LIMIT

const UploadPolicyFormUI::LABEL_INPUT_FIELD_UPLOAD_LIMIT = "policy_upload_limit"
protected

Definition at line 53 of file UploadPolicyFormUI.php.

◆ LABEL_INPUT_FIELD_VALID_UNTIL

const UploadPolicyFormUI::LABEL_INPUT_FIELD_VALID_UNTIL = "policy_valid_until"
protected

Definition at line 58 of file UploadPolicyFormUI.php.

◆ LABEL_INPUT_OPTION_ALL_USERS

const UploadPolicyFormUI::LABEL_INPUT_OPTION_ALL_USERS = "all_users"
protected

Definition at line 55 of file UploadPolicyFormUI.php.

◆ LABEL_INPUT_OPTION_GLOBAL_ROLES

const UploadPolicyFormUI::LABEL_INPUT_OPTION_GLOBAL_ROLES = "all_global_roles"
protected

Definition at line 56 of file UploadPolicyFormUI.php.

◆ LABEL_INPUT_SECTION_AUDIENCE

const UploadPolicyFormUI::LABEL_INPUT_SECTION_AUDIENCE = "policy_audience"
protected

Definition at line 49 of file UploadPolicyFormUI.php.

◆ LABEL_INPUT_SECTION_GENERAL

const UploadPolicyFormUI::LABEL_INPUT_SECTION_GENERAL = "general"
protected

Definition at line 48 of file UploadPolicyFormUI.php.

◆ LABEL_INPUT_SECTION_VALIDITY

const UploadPolicyFormUI::LABEL_INPUT_SECTION_VALIDITY = "policy_validity"
protected

Definition at line 50 of file UploadPolicyFormUI.php.


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