5 require_once(
"./Modules/DataCollection/classes/class.ilDataCollectionTable.php");
56 $this->parent_object = $a_parent_obj;
57 $this->obj_id = $a_parent_obj->obj_id;
58 $this->table_id =
$_GET[
'table_id'];
62 $this->ctrl->redirectByClass(
'ildatacollectionrecordlistgui',
'listRecords');
71 $cmd = $this->ctrl->getCmd();
72 $this->tpl->getStandardTemplate();
76 $this->
save(
"update");
93 $this->tpl->setContent($this->form->getHTML());
101 if (!$this->table_id) {
102 $this->ctrl->redirectByClass(
"ildatacollectionfieldeditgui",
"listFields");
110 $this->tpl->setContent($this->form->getHTML());
119 'title' => $this->table->getTitle(),
120 'add_perm' => (int) $this->table->getAddPerm(),
121 'edit_perm' => (int) $this->table->getEditPerm(),
122 'edit_perm_mode' => $this->table->getEditByOwner() ?
'own' :
'all',
123 'delete_perm' => (int) $this->table->getDeletePerm(),
124 'delete_perm_mode' => $this->table->getDeleteByOwner() ?
'own' :
'all',
125 'export_enabled' => $this->table->getExportEnabled(),
126 'limited' => $this->table->getLimited(),
127 'limit_start' => array(
"date" => substr($this->table->getLimitStart(), 0, 10),
"time" => substr($this->table->getLimitStart(), - 8) ),
128 'limit_end' => array(
"date" => substr($this->table->getLimitEnd(), 0, 10),
"time" => substr($this->table->getLimitEnd(), - 8) ),
129 'is_visible' => $this->table->getIsVisible(),
130 'default_sort_field' => $this->table->getDefaultSortField(),
131 'default_sort_field_order' => $this->table->getDefaultSortFieldOrder(),
132 'description' => $this->table->getDescription(),
133 'public_comments' => $this->table->getPublicCommentsEnabled(),
134 'view_own_records_perm' => $this->table->getViewOwnRecordsPerm(),
136 if (!$this->table->getLimitStart()) {
137 $values[
'limit_start'] = NULL;
139 if (!$this->table->getLimitEnd()) {
140 $values[
'limit_end'] = NULL;
142 $this->form->setValuesByArray($values);
155 'edit_perm_mode' =>
'all',
156 'delete_perm_mode' =>
'all',
158 'edit_by_owner' => 1,
159 'export_enabled' => 0,
161 'limit_start' => NULL,
164 $this->form->setValuesByArray($values);
172 $this->ctrl->redirectByClass(
"ilDataCollectionFieldListGUI",
"listFields");
182 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
187 $this->form->addItem($item);
190 if ($this->table_id != $this->parent_object->getDataCollectionObject()->getMainTableId()) {
192 $item->
setInfo($this->lng->txt(
'dcl_visible_desc'));
193 $this->form->addItem($item);
197 if ($a_mode !=
'create') {
198 $item =
new ilSelectInputGUI($this->lng->txt(
'dcl_default_sort_field'),
'default_sort_field');
199 $item->
setInfo($this->lng->txt(
'dcl_default_sort_field_desc'));
200 $fields = $this->table->getVisibleFields();
201 $options = array( 0 => $this->lng->txt(
'dcl_please_select') );
202 foreach ($fields as $field) {
203 $options[$field->getId()] = $field->getTitle();
206 $this->form->addItem($item);
208 $item =
new ilSelectInputGUI($this->lng->txt(
'dcl_default_sort_field_order'),
'default_sort_field_order');
209 $options = array(
'asc' => $this->lng->txt(
'dcl_asc'),
'desc' => $this->lng->txt(
'dcl_desc') );
210 $item->setOptions($options);
211 $this->form->addItem($item);
216 $item->setInfo($this->lng->txt(
'dcl_additional_info_desc'));
218 $item->setRteTagSet(
'mini');
219 $this->form->addItem($item);
221 $item =
new ilCheckboxInputGUI($this->lng->txt(
'dcl_public_comments'),
'public_comments');
222 $item->
setInfo($this->lng->txt(
'dcl_public_comments_desc'));
223 $this->form->addItem($item);
226 $section->setTitle($this->lng->txt(
'dcl_permissions_form'));
230 $item->setHtml($this->lng->txt(
'dcl_table_info'));
231 $item->setTitle($this->lng->txt(
'dcl_table_info_title'));
232 $this->form->addItem($item);
235 $item->
setInfo($this->lng->txt(
"dcl_add_perm_desc"));
236 $this->form->addItem($item);
240 $this->form->addItem($item);
243 $radios->addOption(
new ilRadioOption($this->lng->txt(
'dcl_all_entries'),
'all'));
244 $radios->addOption(
new ilRadioOption($this->lng->txt(
'dcl_own_entries'),
'own'));
245 $item->addSubItem($radios);
249 $this->form->addItem($item);
252 $radios->addOption(
new ilRadioOption($this->lng->txt(
'dcl_all_entries'),
'all'));
253 $radios->addOption(
new ilRadioOption($this->lng->txt(
'dcl_own_entries'),
'own'));
254 $item->addSubItem($radios);
256 $item =
new ilCheckboxInputGUI($this->lng->txt(
'dcl_view_own_records_perm'),
'view_own_records_perm');
258 $this->form->addItem($item);
260 $item =
new ilCheckboxInputGUI($this->lng->txt(
'dcl_export_enabled'),
'export_enabled');
261 $item->
setInfo($this->lng->txt(
'dcl_export_enabled_desc'));
262 $this->form->addItem($item);
266 $sitem1->setShowTime(
true);
269 $item->setInfo($this->lng->txt(
"dcl_limited_desc"));
270 $item->addSubItem($sitem1);
271 $item->addSubItem($sitem2);
272 $this->form->addItem($item);
274 if ($a_mode ==
"edit") {
275 $this->form->addCommandButton(
'update', $this->lng->txt(
'dcl_table_' . $a_mode));
277 $this->form->addCommandButton(
'save', $this->lng->txt(
'dcl_table_' . $a_mode));
280 $this->form->addCommandButton(
'cancel', $this->lng->txt(
'cancel'));
281 $this->form->setFormAction($this->ctrl->getFormAction($this, $a_mode));
282 if ($a_mode ==
"edit") {
283 $this->form->setTitle($this->lng->txt(
'dcl_edit_table'));
285 $this->form->setTitle($this->lng->txt(
'dcl_new_table'));
295 public function save($a_mode =
"create") {
303 $ilTabs->activateTab(
"id_fields");
307 if ($a_mode !=
"update") {
309 } elseif ($this->table_id) {
312 $this->ctrl->redirectByClass(
"ildatacollectionfieldeditgui",
"listFields");
315 $this->table->setTitle($this->form->getInput(
"title"));
316 $this->table->setObjId($this->obj_id);
317 $this->table->setIsVisible((
bool)$this->form->getInput(
"is_visible"));
318 $this->table->setAddPerm((
bool)$this->form->getInput(
"add_perm"));
319 $this->table->setEditPerm((
bool)$this->form->getInput(
"edit_perm"));
320 if ($this->table->getEditPerm()) {
321 $edit_by_owner = ($this->form->getInput(
'edit_perm_mode') ==
'own');
322 $this->table->setEditByOwner($edit_by_owner);
324 $this->table->setDeletePerm((
bool)$this->form->getInput(
"delete_perm"));
325 if ($this->table->getDeletePerm()) {
326 $delete_by_owner = ($this->form->getInput(
'delete_perm_mode') ==
'own');
327 $this->table->setDeleteByOwner($delete_by_owner);
329 $this->table->setViewOwnRecordsPerm($this->form->getInput(
'view_own_records_perm'));
330 $this->table->setExportEnabled($this->form->getInput(
"export_enabled"));
331 $this->table->setDefaultSortField($this->form->getInput(
"default_sort_field"));
332 $this->table->setDefaultSortFieldOrder($this->form->getInput(
"default_sort_field_order"));
333 $this->table->setPublicCommentsEnabled($this->form->getInput(
'public_comments'));
334 $this->table->setLimited($this->form->getInput(
"limited"));
335 $this->table->setDescription($this->form->getInput(
'description'));
336 $limit_start = $this->form->getInput(
"limit_start");
337 $limit_end = $this->form->getInput(
"limit_end");
338 $this->table->setLimitStart($limit_start[
"date"] .
" " . $limit_start[
"time"]);
339 $this->table->setLimitEnd($limit_end[
"date"] .
" " . $limit_end[
"time"]);
340 if ($a_mode ==
"update") {
341 $this->table->doUpdate();
343 $this->ctrl->redirectByClass(
"ildatacollectiontableeditgui",
"edit");
345 $this->table->doCreate();
347 $this->ctrl->setParameterByClass(
"ildatacollectionfieldlistgui",
"table_id", $this->table->getId());
348 $this->ctrl->redirectByClass(
"ildatacollectionfieldlistgui",
"listFields");
351 $this->form->setValuesByPost();
352 $this->tpl->setContent($this->form->getHTML());
365 $return = $this->form->checkInput();
368 if ($a_mode ==
'create') {
369 if ($title = $this->form->getInput(
'title')) {
371 $inputObj = $this->form->getItemByPostVar(
'title');
372 $inputObj->setAlert($this->lng->txt(
"dcl_table_title_unique"));
390 $this->tpl->setContent(
"Access denied.");
398 include_once
'./Services/Utilities/classes/class.ilConfirmationGUI.php';
400 $conf->setFormAction($this->ctrl->getFormAction($this));
401 $conf->setHeaderText($this->lng->txt(
'dcl_confirm_delete_table'));
403 $conf->addItem(
'table', (
int)$this->table->getId(), $this->table->getTitle());
405 $conf->setConfirm($this->lng->txt(
'delete'),
'delete');
406 $conf->setCancel($this->lng->txt(
'cancel'),
'cancelDelete');
408 $this->tpl->setContent($conf->getHTML());
416 $this->ctrl->redirectByClass(
"ildatacollectionfieldlistgui",
"listFields");
423 public function delete() {
424 $mainTableId = $this->table->getCollectionObject()->getMainTableId();
425 if ($mainTableId == $this->table->getId()) {
428 $this->ctrl->setParameterByClass(
"ildatacollectionfieldlistgui",
"table_id", $mainTableId);
431 $this->table->doDelete();
432 $this->ctrl->redirectByClass(
"ildatacollectionfieldlistgui",
"listFields");
440 $ref_id = $this->parent_object->getDataCollectionObject()->getRefId();
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
This class represents an option in a radio group.
create()
create table add form
save($a_mode="create")
save
getValues()
getFieldValues
__construct(ilObjDataCollectionGUI $a_parent_obj)
Constructor.
setUseRte($a_usert, $version='')
Set Use Rich Text Editing.
executeCommand()
execute command
Class ilObjDataCollectionGUI.
if(!is_array($argv)) $options
Class ilDataCollectionField.
cancelDelete()
cancelDelete
This class represents a text property in a property form.
static _hasTableByTitle($title, $obj_id)
Checks if a DataCollection has a table with a given title.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
This class represents a text area property in a property form.
confirmDelete()
confirmDelete
edit()
create field edit form
checkInput($a_mode)
Custom checks for the form input.
static checkActionForObjId($action, $obj_id)
static _hasWriteAccess($ref)
static getTableCache($table_id=0)
initForm($a_mode="create")
initEditCustomForm
Confirmation screen class.
getStandardValues()
getStandardValues