ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f870
class.ilDataCollectionFieldListGUI.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4require_once ("./Modules/DataCollection/classes/class.ilDataCollectionField.php");
5require_once ("./Modules/DataCollection/classes/class.ilDataCollectionTable.php");
6include_once("class.ilDataCollectionDatatype.php");
7require_once "class.ilDataCollectionCache.php";
8require_once('./Services/Utilities/classes/class.ilConfirmationGUI.php');
9
10
25{
26
30 protected $ctrl;
31
32
36 protected $lng;
37
41 protected $toolbar;
42
46 protected $tpl;
47
51 protected $tabs;
52
59 public function __construct(ilObjDataCollectionGUI $a_parent_obj, $table_id)
60 {
61 global $ilCtrl, $lng, $ilToolbar, $tpl, $ilTabs;
62
63 $this->main_table_id = $a_parent_obj->object->getMainTableId();
64 $this->table_id = $table_id;
65 $this->parent_obj = $a_parent_obj;
66 $this->obj_id = $a_parent_obj->obj_id;
67 $this->ctrl = $ilCtrl;
68 $this->lng = $lng;
69 $this->tpl = $tpl;
70 $this->tabs = $ilTabs;
71 $this->toolbar = $ilToolbar;
72 if ( ! $this->checkAccess()) {
73 ilUtil::sendFailure($this->lng->txt('permission_denied'), true);
74 $this->ctrl->redirectByClass('ildatacollectionrecordlistgui', 'listRecords');
75 }
76 }
77
78
82 public function executeCommand()
83 {
84 $cmd = $this->ctrl->getCmd();
85 switch($cmd) {
86 default:
87 $this->$cmd();
88 break;
89 }
90 }
91
95 public function deleteFields()
96 {
97 $field_ids = isset($_POST['dcl_field_ids']) ? $_POST['dcl_field_ids'] : array();
98 $table = ilDataCollectionCache::getTableCache($this->table_id);
99 foreach ($field_ids as $field_id) {
100 $table->deleteField($field_id);
101 }
102 ilUtil::sendSuccess($this->lng->txt('dcl_msg_fields_deleted'), true);
103 $this->ctrl->redirect($this, 'listFields');
104 }
105
109 public function confirmDeleteFields() {
110 $this->tabs->clearSubTabs();
111 $conf = new ilConfirmationGUI();
112 $conf->setFormAction($this->ctrl->getFormAction($this));
113 $conf->setHeaderText($this->lng->txt('dcl_confirm_delete_fields'));
114 $field_ids = isset($_POST['dcl_field_ids']) ? $_POST['dcl_field_ids'] : array();
115 foreach ($field_ids as $field_id) {
117 $field = ilDataCollectionCache::getFieldCache($field_id);
118 $conf->addItem('dcl_field_ids[]', $field_id, $field->getTitle());
119 }
120 $conf->setConfirm($this->lng->txt('delete'), 'deleteFields');
121 $conf->setCancel($this->lng->txt('cancel'), 'listFields');
122 $this->tpl->setContent($conf->getHTML());
123 }
124
125 /*
126 * save
127 */
128 public function save()
129 {
130 $table = ilDataCollectionCache::getTableCache($_GET['table_id']);
131 $fields = $table->getFields();
132
133 foreach($fields as $field)
134 {
135 $field->setVisible($_POST['visible'][$field->getId()] == "on");
136 $field->setEditable($_POST['editable'][$field->getId()] == "on");
137 $field->setFilterable($_POST['filterable'][$field->getId()] == "on");
138 $field->setLocked($_POST['locked'][$field->getId()] == "on");
139 $field->setExportable($_POST['exportable'][$field->getId()] == "on");
140 $field->setOrder($_POST['order'][$field->getId()]);
141 $field->doUpdate();
142 }
143 $table->buildOrderFields();
144 ilUtil::sendSuccess($this->lng->txt("dcl_table_settings_saved"));
145 $this->listFields();
146 }
147
151 public function listFields()
152 {
153 // Show tables
154 require_once("./Modules/DataCollection/classes/class.ilDataCollectionTable.php");
155 $tables = $this->parent_obj->object->getTables();
156
157 foreach($tables as $table)
158 {
159 $options[$table->getId()] = $table->getTitle();
160 }
161 include_once './Services/Form/classes/class.ilSelectInputGUI.php';
162 $table_selection = new ilSelectInputGUI('', 'table_id');
163 $table_selection->setOptions($options);
164 $table_selection->setValue($this->table_id);
165
166 $this->toolbar->setFormAction($this->ctrl->getFormActionByClass("ilDataCollectionFieldListGUI", "doTableSwitch"));
167 $this->toolbar->addText($this->lng->txt("dcl_table"));
168 $this->toolbar->addInputItem($table_selection);
169 $this->toolbar->addFormButton($this->lng->txt('change'),'doTableSwitch');
170 $this->toolbar->addSeparator();
171 $this->toolbar->addButton($this->lng->txt("dcl_add_new_table"), $this->ctrl->getLinkTargetByClass("ildatacollectiontableeditgui", "create"));
172 $this->toolbar->addSeparator();
173 $this->ctrl->setParameterByClass("ildatacollectiontableeditgui", "table_id", $this->table_id);
174 $this->toolbar->addButton($this->lng->txt("dcl_table_settings"), $this->ctrl->getLinkTargetByClass("ildatacollectiontableeditgui", "edit"));
175 $this->toolbar->addButton($this->lng->txt("dcl_delete_table"), $this->ctrl->getLinkTargetByClass("ildatacollectiontableeditgui", "confirmDelete"));
176 $this->toolbar->addButton($this->lng->txt("dcl_add_new_field"), $this->ctrl->getLinkTargetByClass("ildatacollectionfieldeditgui", "create"));
177
178 // requested not to implement this way...
179// $tpl->addJavaScript("Modules/DataCollection/js/fastTableSwitcher.js");
180
181 require_once('./Modules/DataCollection/classes/class.ilDataCollectionFieldListTableGUI.php');
182 $list = new ilDataCollectionFieldListTableGUI($this, $this->ctrl->getCmd(), $this->table_id);
183
184 $this->tpl->setContent($list->getHTML());
185
186 }
187
188 /*
189 * doTableSwitch
190 */
191 public function doTableSwitch()
192 {
193 $this->ctrl->setParameterByClass("ilObjDataCollectionGUI", "table_id", $_POST['table_id']);
194 $this->ctrl->redirectByClass("ilDataCollectionFieldListGUI", "listFields");
195 }
196
200 protected function checkAccess()
201 {
202 $ref_id = $this->parent_obj->getDataCollectionObject()->getRefId();
204 }
205
206}
207
208?>
$_GET["client_id"]
Confirmation screen class.
Class ilDataCollectionFieldListGUI.
__construct(ilObjDataCollectionGUI $a_parent_obj, $table_id)
Constructor.
Class ilObjDataCollectionGUI.
This class represents a selection list property in a property form.
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$_POST['username']
Definition: cron.php:12
global $ilCtrl
Definition: ilias.php:18
$cmd
Definition: sahs_server.php:35
$ref_id
Definition: sahs_server.php:39
if(!is_array($argv)) $options