ILIAS  release_7 Revision v7.30-3-g800a261c036
All Data Structures Namespaces Files Functions Variables Modules Pages
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 
4 require_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 }
getPeriodForm()
Returns period form.
This class represents an option in a radio group.
getSessionForm(array $sessions)
Returns session form with period set by given $sessions.
This class represents a property form user interface.
This class represents a section header in a property form.
This class represents a file property in a property form.
$session
This class represents a checkbox property in a property form.
const IL_CAL_UNIX
user()
Definition: user.php:4
Class ilChatroomFormFactory.
setInfo($a_info)
Set Information Text.
$section
Definition: Utf8Test.php:83
$auth
Definition: metadata.php:59
if($format !==null) $name
Definition: metadata.php:230
input GUI for a time span (start and end date)
This class represents a property in a property form.
setMinValue($a_minvalue, $a_display_always=false)
Set Minimum Value.
This class represents a number property in a property form.
getFileUploadForm()
Prepares Fileupload form and returns it.
setValue($a_value)
Set Value.
global $DIC
Definition: goto.php:24
addCommandButton($a_cmd, $a_text, $a_id="")
Add Command button.
getUserChatNameSelectionForm(array $name_options)
Returns chatname selection form.
Class ilChatroomAuthInputGUI.
setShowTime($a_showtime)
Set Show Time Information.
$txt
Definition: error.php:13
setStartText($a_txt)
Set text, which will be shown before the start date.
getCreationForm()
Instantiates and returns ilPropertyFormGUI containing ilTextInputGUI and ilTextAreaInputGUI.
static formatPeriod(ilDateTime $start, ilDateTime $end, $a_skip_starting_day=false)
Format a period of two date Shows: 14.
This class represents a text area property in a property form.
static applyValues(ilPropertyFormGUI $form, array $values)
Applies given values to field in given form.
setValuesByArray($a_values, $a_restrict_to_value_keys=false)
Set form values from an array.
addDefaultBehaviour(ilPropertyFormGUI $form)
Adds &#39;create-save&#39; and &#39;cancel&#39; button to given $form and returns it.