ILIAS  release_7 Revision v7.30-3-g800a261c036
class.ilChatroomFormFactory.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2013 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4require_once 'Services/Form/classes/class.ilPropertyFormGUI.php';
5
13{
17 protected $lng;
18
22 protected $user;
23
27 public function __construct()
28 {
29 global $DIC;
30
31 $this->lng = $DIC->language();
32 $this->user = $DIC->user();
33 }
34
40 public static function applyValues(ilPropertyFormGUI $form, array $values)
41 {
42 $form->setValuesByArray($values);
43 }
44
51 public function getCreationForm()
52 {
53 $form = new ilPropertyFormGUI();
54 $title = new ilTextInputGUI($this->lng->txt('title'), 'title');
55 $title->setRequired(true);
56 $form->addItem($title);
57
58 $description = new ilTextAreaInputGUI($this->lng->txt('description'), 'desc');
59 $form->addItem($description);
60
61 return $this->addDefaultBehaviour($form);
62 }
63
69 private function addDefaultBehaviour(ilPropertyFormGUI $form)
70 {
71 $form->addCommandButton('create-save', $this->lng->txt('create'));
72 $form->addCommandButton('cancel', $this->lng->txt('cancel'));
73
74 return $form;
75 }
76
80 public function getSettingsForm()
81 {
82 $this->lng->loadLanguageModule('rep');
83
84 $form = new ilPropertyFormGUI();
85 $title = new ilTextInputGUI($this->lng->txt('title'), 'title');
86 $title->setRequired(true);
87 $form->addItem($title);
88
89 $description = new ilTextAreaInputGUI($this->lng->txt('description'), 'desc');
90 $form->addItem($description);
91
92 $cb = new ilCheckboxInputGUI($this->lng->txt('allow_anonymous'), 'allow_anonymous');
93 $cb->setInfo($this->lng->txt('anonymous_hint'));
94
95 $txt = new ilTextInputGUI($this->lng->txt('autogen_usernames'), 'autogen_usernames');
96 $txt->setRequired(true);
97 $txt->setInfo($this->lng->txt('autogen_usernames_info'));
98 $cb->addSubItem($txt);
99 $form->addItem($cb);
100
101 $cb = new ilCheckboxInputGUI($this->lng->txt('allow_custom_usernames'), 'allow_custom_usernames');
102 $form->addItem($cb);
103
104 $cb_history = new ilCheckboxInputGUI($this->lng->txt('enable_history'), 'enable_history');
105 $form->addItem($cb_history);
106
107 $num_msg_history = new ilNumberInputGUI($this->lng->txt('display_past_msgs'), 'display_past_msgs');
108 $num_msg_history->setInfo($this->lng->txt('hint_display_past_msgs'));
109 $num_msg_history->setMinValue(0);
110 $num_msg_history->setMaxValue(100);
111 $form->addItem($num_msg_history);
112
113 $cb = new ilCheckboxInputGUI($this->lng->txt('private_rooms_enabled'), 'private_rooms_enabled');
114 $cb->setInfo($this->lng->txt('private_rooms_enabled_info'));
115 $form->addItem($cb);
116
118 $section->setTitle($this->lng->txt('rep_activation_availability'));
119 $form->addItem($section);
120
121 $online = new ilCheckboxInputGUI($this->lng->txt('rep_activation_online'), 'online_status');
122 $online->setInfo($this->lng->txt('chtr_activation_online_info'));
123 $form->addItem($online);
124
125 require_once 'Services/Form/classes/class.ilDateDurationInputGUI.php';
126 $dur = new ilDateDurationInputGUI($this->lng->txt('rep_time_period'), 'access_period');
127 $dur->setShowTime(true);
128 $form->addItem($dur);
129
130 $visible = new ilCheckboxInputGUI($this->lng->txt('rep_activation_limited_visibility'), 'access_visibility');
131 $visible->setValue(1);
132 $visible->setInfo($this->lng->txt('chtr_activation_limited_visibility_info'));
133 $dur->addSubItem($visible);
134
135 return $form;
136 }
137
142 public function getFileUploadForm()
143 {
144 $form = new ilPropertyFormGUI();
145 $file_input = new ilFileInputGUI();
146
147 $file_input->setPostVar('file_to_upload');
148 $file_input->setTitle($this->lng->txt('upload'));
149 $form->addItem($file_input);
150 $form->addCommandButton('UploadFile-uploadFile', $this->lng->txt('submit'));
151
152 $form->setTarget('_blank');
153
154 return $form;
155 }
156
161 public function getPeriodForm()
162 {
163 $form = new ilPropertyFormGUI();
164 $form->setPreventDoubleSubmission(false);
165
166 require_once 'Services/Form/classes/class.ilDateDurationInputGUI.php';
167 $duration = new ilDateDurationInputGUI($this->lng->txt('period'), 'timeperiod');
168
169 $duration->setStartText($this->lng->txt('duration_from'));
170 $duration->setEndText($this->lng->txt('duration_to'));
171 $duration->setShowTime(true);
172 $duration->setRequired(true);
173 $form->addItem($duration);
174
175 return $form;
176 }
177
183 public function getUserChatNameSelectionForm(array $name_options)
184 {
185 $form = new ilPropertyFormGUI();
186
187 $radio = new ilRadioGroupInputGUI($this->lng->txt('select_custom_username'), 'custom_username_radio');
188
189 foreach ($name_options as $key => $option) {
190 $opt = new ilRadioOption($option, $key);
191 $radio->addOption($opt);
192 }
193
194 $custom_opt = new ilRadioOption($this->lng->txt('custom_username'), 'custom_username');
195 $radio->addOption($custom_opt);
196
197 $txt = new ilTextInputGUI($this->lng->txt('custom_username'), 'custom_username_text');
198 $custom_opt->addSubItem($txt);
199 $form->addItem($radio);
200
201 if ($this->user->isAnonymous()) {
202 $radio->setValue('anonymousName');
203 } else {
204 $radio->setValue('fullname');
205 }
206
207 return $form;
208 }
209
215 public function getSessionForm(array $sessions)
216 {
217 $form = new ilPropertyFormGUI();
218 $form->setPreventDoubleSubmission(false);
219 $list = new ilSelectInputGUI($this->lng->txt('session'), 'session');
220
221 $options = array();
222
223 foreach ($sessions as $session) {
224 $start = new ilDateTime($session['connected'], IL_CAL_UNIX);
225 $end = new ilDateTime($session['disconnected'], IL_CAL_UNIX);
226
227 $options[$session['connected'] . ',' .
228 $session['disconnected']] = ilDatePresentation::formatPeriod($start, $end);
229 }
230
231 $list->setOptions($options);
232 $list->setRequired(true);
233
234 $form->addItem($list);
235
236 return $form;
237 }
238
242 public function getClientSettingsForm()
243 {
244 $form = new ilPropertyFormGUI();
245
246 $enable_chat = new ilCheckboxInputGUI($this->lng->txt('chat_enabled'), 'chat_enabled');
247 $form->addItem($enable_chat);
248
249 $enable_osc = new ilCheckboxInputGUI($this->lng->txt('chatroom_enable_osc'), 'enable_osc');
250 $enable_osc->setInfo($this->lng->txt('chatroom_enable_osc_info'));
251 $enable_chat->addSubItem($enable_osc);
252
253 $oscBrowserNotificationStatus = new \ilCheckboxInputGUI(
254 $this->lng->txt('osc_adm_browser_noti_label'),
255 'enable_browser_notifications'
256 );
257 $oscBrowserNotificationStatus->setInfo($this->lng->txt('osc_adm_browser_noti_info'));
258 $oscBrowserNotificationStatus->setValue(1);
259 $enable_osc->addSubItem($oscBrowserNotificationStatus);
260
261 $oscBrowserNotificationIdleTime = new \ilNumberInputGUI(
262 $this->lng->txt('osc_adm_conv_idle_state_threshold_label'),
263 'conversation_idle_state_in_minutes'
264 );
265 $oscBrowserNotificationIdleTime->allowDecimals(false);
266 $oscBrowserNotificationIdleTime->setSuffix($this->lng->txt('minutes'));
267 $oscBrowserNotificationIdleTime->setMinValue(1);
268 $oscBrowserNotificationIdleTime->setSize(5);
269 $oscBrowserNotificationIdleTime->setInfo($this->lng->txt('osc_adm_conv_idle_state_threshold_info'));
270 $enable_osc->addSubItem($oscBrowserNotificationIdleTime);
271
272 $osd = new ilCheckboxInputGUI($this->lng->txt('enable_osd'), 'enable_osd');
273 $osd->setInfo($this->lng->txt('hint_osd'));
274 $enable_chat->addSubItem($osd);
275
276 $interval = new ilNumberInputGUI($this->lng->txt('osd_intervall'), 'osd_intervall');
277 $interval->setMinValue(1);
278 $interval->setRequired(true);
279 $interval->setSuffix($this->lng->txt('seconds'));
280 $interval->setSize(5);
281 $interval->setInfo($this->lng->txt('hint_osd_interval'));
282 $osd->addSubItem($interval);
283
284 $play_sound = new ilCheckboxInputGUI($this->lng->txt('play_invitation_sound'), 'play_invitation_sound');
285 $play_sound->setInfo($this->lng->txt('play_invitation_sound_info'));
286 $osd->addSubItem($play_sound);
287
288 $enable_smilies = new ilCheckboxInputGUI($this->lng->txt('enable_smilies'), 'enable_smilies');
289 $enable_smilies->setInfo($this->lng->txt('hint_enable_smilies'));
290 $enable_chat->addSubItem($enable_smilies);
291
292 $name = new \ilTextInputGUI($this->lng->txt('chatroom_client_name'), 'client_name');
293 $name->setInfo($this->lng->txt('chatroom_client_name_info'));
294 $name->setRequired(true);
295 $name->setMaxLength(100);
296 $enable_chat->addSubItem($name);
297
298 require_once 'Modules/Chatroom/classes/class.ilChatroomAuthInputGUI.php';
299 $auth = new ilChatroomAuthInputGUI($this->lng->txt('chatroom_auth'), 'auth');
300 $auth->setInfo($this->lng->txt('chat_auth_token_info'));
301 $auth->setCtrlPath(array('iladministrationgui', 'ilobjchatroomgui', 'ilpropertyformgui', 'ilformpropertydispatchgui', 'ilchatroomauthinputgui'));
302 $auth->setRequired(true);
303 $enable_chat->addSubItem($auth);
304
305 return $form;
306 }
307}
user()
Definition: user.php:4
$section
Definition: Utf8Test.php:83
An exception for terminatinating execution or to throw for unit testing.
const IL_CAL_UNIX
Class ilChatroomAuthInputGUI.
Class ilChatroomFormFactory.
static applyValues(ilPropertyFormGUI $form, array $values)
Applies given values to field in given form.
getSessionForm(array $sessions)
Returns session form with period set by given $sessions.
getPeriodForm()
Returns period form.
getFileUploadForm()
Prepares Fileupload form and returns it.
addDefaultBehaviour(ilPropertyFormGUI $form)
Adds 'create-save' and 'cancel' button to given $form and returns it.
getUserChatNameSelectionForm(array $name_options)
Returns chatname selection form.
getCreationForm()
Instantiates and returns ilPropertyFormGUI containing ilTextInputGUI and ilTextAreaInputGUI.
This class represents a checkbox property in a property form.
input GUI for a time span (start and end date)
static formatPeriod(ilDateTime $start, ilDateTime $end, $a_skip_starting_day=false)
Format a period of two date Shows: 14.
@classDescription Date and time handling
This class represents a file property in a property form.
This class represents a section header in a property form.
This class represents a number property in a property form.
This class represents a property form user interface.
addCommandButton($a_cmd, $a_text, $a_id="")
Add Command button.
setValuesByArray($a_values, $a_restrict_to_value_keys=false)
Set form values from an array.
This class represents a property in a property form.
This class represents an option in a radio group.
This class represents a selection list property in a property form.
This class represents a text area property in a property form.
This class represents a text property in a property form.
$txt
Definition: error.php:13
global $DIC
Definition: goto.php:24
if($format !==null) $name
Definition: metadata.php:230
$auth
Definition: metadata.php:59
$session