app/soc/views/helper/forms.py
changeset 1167 346117bd30cf
parent 970 8b5611d5b053
child 1307 091a21cf3627
equal deleted inserted replaced
1166:558bd62ee9d4 1167:346117bd30cf
    84 class SelectQueryArgForm(forms.Form):
    84 class SelectQueryArgForm(forms.Form):
    85   """URL query argument change control implemented as a Django form.
    85   """URL query argument change control implemented as a Django form.
    86   """
    86   """
    87 
    87 
    88   ONCHANGE_JAVASCRIPT_FMT = '''
    88   ONCHANGE_JAVASCRIPT_FMT = '''
    89 <script type="text/javascript"> 
    89 <script type="text/javascript">
    90   function changeArg_%(arg_name)s(item) 
    90   function changeArg_%(arg_name)s(item)
    91   {
    91   {
    92     var idx=item.selectedIndex;
    92     var idx=item.selectedIndex;
    93     item.selected=true;
    93     item.selected=true;
    94     var value=item.value 
    94     var value=item.value;
    95     var url = location.href 
    95     var url = location.href;
    96     var reg = /%(arg_name)s=\d+/ 
    96     var ourreg = /%(arg_name)s=\d+/;
    97     url = url.replace(reg, "%(arg_name)s="+value) 
    97     var anyreg = /\w+=\d+/;
    98     if(url.match(reg))
    98     if(url.match(ourreg))
    99       document.location.href = url 
    99       url = url.replace(ourreg, "%(arg_name)s="+value);
   100    else
   100     else if(url.match(anyreg))
   101       document.location.href = "%(page_path)s?%(arg_name)s="+value; 
   101       url = url + "&%(arg_name)s=" + value;
       
   102     else
       
   103       url = "%(page_path)s?%(arg_name)s="+value;
       
   104     document.location.href = url;
   102   }
   105   }
   103 </script>
   106 </script>
   104 '''
   107 '''
   105 
   108 
   106   def __init__(self, page_path, arg_name, choices, field_name,
   109   def __init__(self, page_path, arg_name, choices, field_name,