From: <jon...@us...> - 2012-07-12 19:40:05
|
Revision: 42365 http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=42365&view=rev Author: jonnybradley Date: 2012-07-12 19:39:59 +0000 (Thu, 12 Jul 2012) Log Message: ----------- [FIX] registration group choice: Hide captcha rows until group form is displayed, add the validation rules from the tracker to the form and try and make the table look similar (it's close now!) Modified Paths: -------------- branches/9.x/group_tracker_ajax.php branches/9.x/templates/register-groupchoice.tpl Modified: branches/9.x/group_tracker_ajax.php =================================================================== --- branches/9.x/group_tracker_ajax.php 2012-07-12 18:29:31 UTC (rev 42364) +++ branches/9.x/group_tracker_ajax.php 2012-07-12 19:39:59 UTC (rev 42365) @@ -33,12 +33,21 @@ foreach($headerlib->js as $rank) { foreach($rank as $js) { if (strpos($js, 'ajaxTrackerFormInit_group') !== false) { - $json_data['res'] .= $headerlib->wrap_js($js); + if (preg_match('/validate\(([\s\S]*?\})\);/s', $js, $m)) { // get the rules and messages from the js function + $m = preg_replace('/\s(?:ignore|submitHandler).*/', '', $m[1]); // lose a couple of duplicate options + $m = preg_replace('/,\s*\}\s*$/m', '}', $m); // a trailing comma + $o = preg_replace_callback('/(\w*):/', 'group_tracker_ajax_quote', $m); // surround properties with double quotes + $json_data['validation'] = json_decode($o); + } } } } } +function group_tracker_ajax_quote($matches) { + return '"' . $matches[1] . '":'; +} + header('Content-Type: application/json'); $access->output_serialized($json_data); Modified: branches/9.x/templates/register-groupchoice.tpl =================================================================== --- branches/9.x/templates/register-groupchoice.tpl 2012-07-12 18:29:31 UTC (rev 42364) +++ branches/9.x/templates/register-groupchoice.tpl 2012-07-12 19:39:59 UTC (rev 42365) @@ -19,22 +19,6 @@ {/if} {else} {* Groups *} - {jq} -$("input[name='chosenGroup']").change(function() { - $("#registerTracker").modal("{tr}Loading...{/tr}"); - var gr = $("input[name='chosenGroup']:checked").val(); - $.getJSON('group_tracker_ajax.php',{chosenGroup:gr}, function(data) { - if ($("#registerTracker").children().length === 0) { - $(".trackerplugindesc").parents("tr").remove(); - } - $("#registerTracker").html(data['res']).modal(); - $("#registerTracker").parents('form').attr('id', '#editItemForm1'); - if (typeof ajaxTrackerFormInit_group == 'function') { - ajaxTrackerFormInit_group(); - } - }); -}){{if !empty($smarty.post.chosenGroup)}}.change(){{/if}}; - {/jq} {if isset($theChoiceGroup)} <input type="hidden" name="chosenGroup" value="{$theChoiceGroup|escape}" /> {jq} @@ -65,5 +49,25 @@ </td> </tr> <tr><td colspan="2"><div id="registerTracker"></div></td></tr> + {jq} +$("input[name='chosenGroup']").change(function() { + $("#registerTracker").modal("{tr}Loading...{/tr}"); + var gr = $("input[name='chosenGroup']:checked").val(); + $.getJSON('group_tracker_ajax.php',{chosenGroup:gr}, function(data) { + if ($("#registerTracker").children().length === 0) { + $(".trackerplugindesc").parents("tr").remove(); + } + $("#registerTracker").html(data['res']).modal(); + $("input[name^=captcha]").parents("tr").show(); + if (data['validation']) { + var $v = $("#registerTracker").parents('form').validate(); + $.extend( true, $v.settings, data['validation'] ); + } + $("#registerTracker").parents("table:first").css({borderSpacing:"0 !important",borderCollapse:"collapse !important"}); + $("tr td:first", "#registerTracker").width($("#registerTracker").parents('table:first').find("td:first").width()); + }); +}){{if !empty($smarty.post.chosenGroup)}}.change(){{/if}}; +$("input[name^=captcha]").parents("tr").hide(); + {/jq} {/if} {/if} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |