1 | scheduler.form_blocks['combo']={
|
---|
2 | render:function(sns) {
|
---|
3 | var res = '';
|
---|
4 | res += "<div class='"+sns.type+"' style='height:"+(sns.height||20)+"px;' ></div>";
|
---|
5 | return res;
|
---|
6 | },
|
---|
7 | set_value:function(node,value,ev,config){
|
---|
8 | if(node._combo) {
|
---|
9 | node._combo.destructor();
|
---|
10 | }
|
---|
11 | window.dhx_globalImgPath = config.image_path||'/';
|
---|
12 | node._combo = new dhtmlXCombo(node, config.name, node.offsetWidth-8);
|
---|
13 | node._combo.enableFilteringMode(!!config.filtering, config.script_path||null, !!config.cache);
|
---|
14 |
|
---|
15 | if (!config.script_path) { // script-side filtration is used
|
---|
16 | var all_options = [];
|
---|
17 | for (var i = 0; i < config.options.length; i++) {
|
---|
18 | var single_option = [];
|
---|
19 | single_option.push(config.options[i].key);
|
---|
20 | single_option.push(config.options[i].label);
|
---|
21 | all_options.push(single_option);
|
---|
22 | }
|
---|
23 | node._combo.addOption(all_options);
|
---|
24 | if (ev[config.map_to]) {
|
---|
25 | var index = node._combo.getIndexByValue(ev[config.map_to]);
|
---|
26 | node._combo.selectOption(index);
|
---|
27 | }
|
---|
28 | } else { // server-side filtration is used
|
---|
29 | node._combo.setComboValue(ev[config.map_to]||null);
|
---|
30 | }
|
---|
31 | },
|
---|
32 | get_value:function(node,ev,config){
|
---|
33 | var selected_id = node._combo.getSelectedValue(); // value = key
|
---|
34 | return selected_id;
|
---|
35 | },
|
---|
36 | focus:function(node){
|
---|
37 | }
|
---|
38 | };
|
---|
39 |
|
---|
40 | scheduler.form_blocks['radio']={
|
---|
41 | render:function(sns) {
|
---|
42 | var res = '';
|
---|
43 | res += "<div class='"+sns.type+"' style='height:"+sns.height+"px;' >";
|
---|
44 | for (var i=0; i<sns.options.length; i++) {
|
---|
45 | var id = scheduler.uid();
|
---|
46 | res += "<input id='"+id+"' type='radio' name='"+sns.name+"' value='"+sns.options[i].key+"'><label for='"+id+"'>"+" "+sns.options[i].label+"</label>";
|
---|
47 | if(sns.vertical)
|
---|
48 | res += "<br/>";
|
---|
49 | }
|
---|
50 | res += "</div>";
|
---|
51 |
|
---|
52 | return res;
|
---|
53 | },
|
---|
54 | set_value:function(node,value,ev,config){
|
---|
55 | var radiobuttons = node.getElementsByTagName('input');
|
---|
56 | for (var i = 0; i < radiobuttons.length; i++) {
|
---|
57 | radiobuttons[i].checked = false;
|
---|
58 | if (radiobuttons[i].value == ev[config.map_to]) {
|
---|
59 | radiobuttons[i].checked = true;
|
---|
60 | }
|
---|
61 | }
|
---|
62 | },
|
---|
63 | get_value:function(node,ev,config){
|
---|
64 | var radiobuttons = node.getElementsByTagName('input');
|
---|
65 | for(var i=0; i<radiobuttons.length; i++) {
|
---|
66 | if(radiobuttons[i].checked) {
|
---|
67 | return radiobuttons[i].value;
|
---|
68 | }
|
---|
69 | }
|
---|
70 | },
|
---|
71 | focus:function(node){
|
---|
72 | }
|
---|
73 | };
|
---|
74 |
|
---|
75 | scheduler.form_blocks['checkbox']={
|
---|
76 | render:function(sns) {
|
---|
77 | return '';
|
---|
78 | },
|
---|
79 | set_value:function(node,value,ev,config){
|
---|
80 | var id = scheduler.uid();
|
---|
81 | var isChecked = false;
|
---|
82 | if (typeof config.checked_value != 'undefined' && ev[config.map_to] == config.checked_value) {
|
---|
83 | isChecked = true;
|
---|
84 | }
|
---|
85 | node.previousSibling.className += " dhx_cal_checkbox";
|
---|
86 | node.previousSibling.innerHTML="<input id='"+id+"' type='checkbox' value='true' name='"+config.name+"'"+((isChecked)?"checked='true'":'')+"'><label for='"+id+"'>"+(scheduler.locale.labels["section_"+config.name]||config.name)+"</label>";
|
---|
87 |
|
---|
88 | },
|
---|
89 | get_value:function(node,ev,config){
|
---|
90 | var checkbox = node.previousSibling.getElementsByTagName('input')[0]; // moved to the header
|
---|
91 | return (checkbox.checked)?(config.checked_value||true):(config.unchecked_value||false);
|
---|
92 | },
|
---|
93 | focus:function(node){
|
---|
94 | }
|
---|
95 | }; |
---|