MDL-14493 First checkin of Feedback module into HEAD.
[moodle.git] / mod / feedback / edit_form.php
1 <?php // $Id$
2 /**
3 * prints the forms to choose an item-typ to create items and to choose a template to use
4 *
5 * @version $Id$
6 * @author Andreas Grabs
7 * @license http://www.gnu.org/copyleft/gpl.html GNU Public License
8 * @package feedback
9 */
11 require_once $CFG->libdir.'/formslib.php';
13 class feedback_edit_add_question_form extends moodleform {
14     function definition() {
15         $mform =& $this->_form;
17         //headline
18         $mform->addElement('header', 'general', get_string('add_items', 'feedback'));
19         // visible elements
20         // $feedback_names = feedback_load_feedback_items('mod/feedback/item');
21         // $feedback_names_options = array();
22         // $feedback_names_options[' '] = get_string('select');
23         // foreach($feedback_names as $fn) {
24             // $feedback_names_options[$fn] = get_string($fn,'feedback');
25         // }
26         $feedback_names_options = feedback_load_feedback_items_options();
27         
28         $attributes = 'onChange="this.form.submit()"';
29         $mform->addElement('select', 'typ', '', $feedback_names_options, $attributes);
31         // hidden elements
32         $mform->addElement('hidden', 'id');
33         $mform->addElement('hidden', 'position');
34 //-------------------------------------------------------------------------------
35         // buttons
36         $mform->addElement('submit', 'add_item', get_string('add_item', 'feedback'));
37     }
38 }
40 class feedback_edit_use_template_form extends moodleform {
41     var $feedbackdata;
42     
43     function definition() {
44         $this->feedbackdata = new object();
45         //this function can not be called, because not all data are available at this time
46         //I use set_form_elements instead
47     }
48     
49     //this function set the data used in set_form_elements()
50     //in this form the only value have to set is course
51     //eg: array('course' => $course)
52     function set_feedbackdata($data) {
53         if(is_array($data)) {
54             foreach($data as $key => $val) {
55                 $this->feedbackdata->{$key} = $val;
56             }
57         }
58     }
59     
60     //here the elements will be set
61     //this function have to be called manually
62     //the advantage is that the data are already set
63     function set_form_elements(){
64         $mform =& $this->_form;
65         
66         $elementgroup = array();
67         //headline
68         $mform->addElement('header', '', get_string('using_templates', 'feedback'));
69         // hidden elements
70         $mform->addElement('hidden', 'id');
71         
72         // visible elements
73         $templates_options = array();
74         if($templates = feedback_get_template_list($this->feedbackdata->course)){//get the templates
75             $templates_options[' '] = get_string('select');
76             foreach($templates as $template) {
77                 $templates_options[$template->id] = $template->name;
78             }
79             $attributes = 'onChange="this.form.submit()"';
80             $elementgroup[] =& $mform->createElement('select', 'templateid', '', $templates_options, $attributes);
81             // buttons
82             $elementgroup[] =& $mform->createElement('submit', 'use_template', get_string('use_this_template', 'feedback'));
83         }else {
84             $mform->addElement('static', 'info', get_string('no_templates_available_yet', 'feedback'));
85         }
86         $mform->addGroup($elementgroup, 'elementgroup', '', array(' '), false);
87         
88     //-------------------------------------------------------------------------------
89     }
90 }
92 class feedback_edit_create_template_form extends moodleform {
93     var $feedbackdata;
94     
95     function definition() {
96     }
97     
98     function data_preprocessing(&$default_values){
99         $default_values['templatename'] = '';
100     }
101     
102     function set_feedbackdata($data) {
103         if(is_array($data)) {
104             foreach($data as $key => $val) {
105                 $this->feedbackdata->{$key} = $val;
106             }
107         }
108     }
109     
110     function set_form_elements(){
111         $mform =& $this->_form;
112         $capabilities = $this->feedbackdata->capabilities;
114         // hidden elements
115         $mform->addElement('hidden', 'id');
116         $mform->addElement('hidden', 'do_show');
117         $mform->addElement('hidden', 'savetemplate', 1);
119         //headline
120         $mform->addElement('header', '', get_string('creating_templates', 'feedback'));
121         
122         // visible elements
123         $elementgroup = array();
124         
125         $elementgroup[] =& $mform->createElement('static', 'templatenamelabel', get_string('name', 'feedback'));
126         $elementgroup[] =& $mform->createElement('text', 'templatename', get_string('name', 'feedback'), array('size'=>'40', 'maxlength'=>'200'));
127         if($capabilities->createpublictemplate) {
128             $elementgroup[] =& $mform->createElement('checkbox', 'ispublic', get_string('public', 'feedback'), get_string('public', 'feedback'));
129         }
130         
131         // buttons
132         $elementgroup[] =& $mform->createElement('submit', 'create_template', get_string('save_as_new_template', 'feedback'));
133         $mform->addGroup($elementgroup, 'elementgroup', get_string('name', 'feedback'), array(' '), false);
134         
135         $mform->setType('templatename', PARAM_TEXT);
136         
137 //-------------------------------------------------------------------------------
138     }
140 ?>