Commit 5dbb61cb53f9ea5cef4de2389019ea5fc063b83b
1 parent
faef3f48
allow radio buttons to act as checkbox by pressing the shift key
Showing
1 changed file
with
45 additions
and
19 deletions
Show diff stats
web/jQuery/CXM_jq_radio.anubis
| @@ -43,29 +43,42 @@ define String | @@ -43,29 +43,42 @@ define String | ||
| 43 | "radio.addClass('unchecked');". | 43 | "radio.addClass('unchecked');". |
| 44 | 44 | ||
| 45 | define String | 45 | define String |
| 46 | + multi_select_script | ||
| 47 | + ( | ||
| 48 | + Bool multi_select_with_shift, | ||
| 49 | + String script | ||
| 50 | + ) = | ||
| 51 | + if multi_select_with_shift then | ||
| 52 | + "if (!e.shiftKey) {" + script + "} else { window.getSelection().removeAllRanges(); radio.toggleClass('checked').toggleClass('unchecked'); }" | ||
| 53 | + else | ||
| 54 | + script. | ||
| 55 | + | ||
| 56 | +define String | ||
| 46 | radio_onclick_script | 57 | radio_onclick_script |
| 47 | ( | 58 | ( |
| 48 | String radio_id, | 59 | String radio_id, |
| 49 | RadioGroup radio_group, | 60 | RadioGroup radio_group, |
| 61 | + Bool multi_select_with_shift, | ||
| 50 | String on_script | 62 | String on_script |
| 51 | ) = | 63 | ) = |
| 52 | " | 64 | " |
| 53 | var radio = $('#" + radio_id + "'); | 65 | var radio = $('#" + radio_id + "'); |
| 54 | - if (radio.hasClass('checked')) return; | ||
| 55 | " + | 66 | " + |
| 67 | + multi_select_script(multi_select_with_shift, | ||
| 68 | + " if (radio.hasClass('checked')) return;" + | ||
| 56 | 69 | ||
| 57 | - if radio_group is | ||
| 58 | - { | ||
| 59 | - group(name) then | ||
| 60 | - with jq_selector = "$('.radio-group-" + name + ":not(#" + radio_id + ")')", | ||
| 61 | - jq_selector + ".addClass('unchecked').removeClass('checked');", | 70 | + if radio_group is |
| 71 | + { | ||
| 72 | + group(name) then | ||
| 73 | + with jq_selector = "$('.radio-group-" + name + ":not(#" + radio_id + ")')", | ||
| 74 | + jq_selector + ".addClass('unchecked').removeClass('checked');", | ||
| 62 | 75 | ||
| 63 | - none then | ||
| 64 | - "" | ||
| 65 | - } + | 76 | + none then |
| 77 | + "" | ||
| 78 | + } + | ||
| 66 | 79 | ||
| 67 | - "radio.removeClass('unchecked'); | ||
| 68 | - radio.addClass('checked');" + on_script. | 80 | + "radio.removeClass('unchecked').addClass('checked');" |
| 81 | + ) + on_script. | ||
| 69 | 82 | ||
| 70 | public define HTML_Partial_Content | 83 | public define HTML_Partial_Content |
| 71 | jq_img_radio | 84 | jq_img_radio |
| @@ -73,18 +86,31 @@ public define HTML_Partial_Content | @@ -73,18 +86,31 @@ public define HTML_Partial_Content | ||
| 73 | String radio_id, | 86 | String radio_id, |
| 74 | RadioGroup radio_group, | 87 | RadioGroup radio_group, |
| 75 | Bool initial_state, | 88 | Bool initial_state, |
| 76 | -//Bool multi_select_with_shift, | 89 | + Bool multi_select_with_shift, |
| 77 | String image_url, | 90 | String image_url, |
| 78 | String checkbox_label, | 91 | String checkbox_label, |
| 79 | String on_script, | 92 | String on_script, |
| 80 | Icon_orientation orientation | 93 | Icon_orientation orientation |
| 81 | ) = | 94 | ) = |
| 82 | - partial_content( | ||
| 83 | - [ | ||
| 84 | - js_inline(jquery_ready(radio_init_script(radio_id, radio_group, initial_state))) | ||
| 85 | - ], | ||
| 86 | - jquery_button(jquery_img_button(image_url, checkbox_label, radio_id, jQuery_actioner(same, jqscript, radio_onclick_script(radio_id, radio_group, on_script)), orientation)) | ||
| 87 | - ). | 95 | + partial_content( |
| 96 | + [ | ||
| 97 | + js_inline(jquery_ready(radio_init_script(radio_id, radio_group, initial_state))) | ||
| 98 | + ], | ||
| 99 | + jquery_button(jquery_img_button(image_url, checkbox_label, radio_id, jQuery_actioner(same, jqscript, radio_onclick_script(radio_id, radio_group, multi_select_with_shift, on_script)), orientation)) | ||
| 100 | + ). | ||
| 101 | + | ||
| 102 | +public define HTML_Partial_Content | ||
| 103 | + jq_img_radio | ||
| 104 | + ( | ||
| 105 | + String radio_id, | ||
| 106 | + RadioGroup radio_group, | ||
| 107 | + Bool initial_state, | ||
| 108 | + String image_url, | ||
| 109 | + String checkbox_label, | ||
| 110 | + String script, | ||
| 111 | + Icon_orientation orientation | ||
| 112 | + ) = | ||
| 113 | + jq_img_radio(radio_id, none, initial_state, false, image_url, checkbox_label, script, orientation). | ||
| 88 | 114 | ||
| 89 | public define HTML_Partial_Content | 115 | public define HTML_Partial_Content |
| 90 | jq_img_radio | 116 | jq_img_radio |
| @@ -96,4 +122,4 @@ public define HTML_Partial_Content | @@ -96,4 +122,4 @@ public define HTML_Partial_Content | ||
| 96 | String script, | 122 | String script, |
| 97 | Icon_orientation orientation | 123 | Icon_orientation orientation |
| 98 | ) = | 124 | ) = |
| 99 | - jq_img_radio(radio_id, none, initial_state, image_url, checkbox_label, script, orientation). | 125 | + jq_img_radio(radio_id, none, initial_state, false, image_url, checkbox_label, script, orientation). |