~sahana-relief-team/sahana-agasti/trunk

« back to all changes in this revision

Viewing changes to inc/lib_location.inc

  • Committer: Ravith Botejue
  • Date: 2009-11-15 05:20:00 UTC
  • Revision ID: ravithb@gmail.com-20091115052000-5jex3idhwp1bwiik
Fixed bugs lp:480890 and lp:480921

Show diffs side-by-side

added added

removed removed

Lines of Context:
635
635
        // this will set the location as it is when a submision fails of a form.
636
636
        $value=(isset($value))?$value:shn_location_get_form_submit_loc();
637
637
 
638
 
        $range=shn_location_get_loc_range();
 
638
        if(isset($range)==false){
 
639
        $range=shn_location_get_loc_range();
 
640
    }
639
641
        $parent=shn_location_get_start_loc();
640
642
        $count=0;
641
643
        $keepparent=false;
793
795
                $loc=null;
794
796
                $lvl=1;
795
797
    }else{
796
 
                $lvl=shn_get_level($loc)+1;
 
798
        $lvl=shn_get_level($loc)+1;
 
799
 
 
800
        //bug fix can add locations out of range
 
801
        $range = shn_get_range();
 
802
        $max_lvl = $range['end'];
 
803
        
 
804
        if($lvl>$max_lvl){
 
805
            add_warning(_t("You've selected to add a location as a child of the last level, which falls out of the location range. Location was added at the last level. Please change the range if you need to add more levels."));
 
806
            $lvl=$lvl-1;
 
807
            $parents = array();
 
808
            shn_get_parents($loc, &$parents);
 
809
            if($parents && sizeof($parents) > 0){
 
810
                // get the level before the last
 
811
                $loc = $parents[1];
 
812
            }
 
813
        }
 
814
        // end of fix
797
815
    }
798
816
    $insert_array['opt_location_type']=$lvl;
799
817
    $insert_array['loc_uuid']= shn_create_uuid('location');
807
825
    }
808
826
    $msg= $_POST{"loc_name"}." Location was succesfully added as a ".$loc_lvl_name;
809
827
    add_confirmation($msg);
810
 
  
 
828
    
811
829
}
812
830
 
813
831
/**
959
977
all the divisions of that country will populate the next select box.  therefore in this case all the districts in 'Sri lanka' appear . From those select a district which will populate the village list in the next select box. So select 'dehiwala' and you have done it! 
960
978
please note that the levels can be customized, therefore it does not need to be ''->'district'->'village' ,always. Its configurable from the 'administration' section.");//display help icon only once
961
979
            }else
962
 
                $q = "select location.name,location.loc_uuid from location where location.opt_location_type=".$res->fields[0]." and parent_id='".$selection."'";
 
980
                $q = "select location.name,location.loc_uuid from location where location.opt_location_type=".$res->fields[0]." and parent_id='".$selection."' order by location.name";
963
981
                        $res_options=$db->Execute($q);
964
 
            $options=array();
965
 
            if(!$res_options->EOF){
966
 
                 $selection=array_pop($loc_arr);
967
 
            }
968
 
            $options[0]="";
969
 
            while(!$res_options->EOF){
970
 
            
971
 
                 $options[$res_options->fields["loc_uuid"]]=$res_options->fields['name'];
972
 
                 $res_options->MoveNext();
973
 
            }
974
 
            $select_opts='onChange=update_next_level(this.options[this.selectedIndex].value,'.$res->fields[0].')';
975
 
            $extra_opts['value']=$selection;
976
 
         //   $extra_opts['req']=true;
977
 
            shn_form_select($options,_lc($res->fields[1]).":","loc_select_".$res->fields[0],$select_opts,$extra_opts);
978
 
            $res->MoveNext();
979
 
        }
980
 
        $cur=$cur+1;
981
 
}
 
982
                $options=array();
 
983
                if(!$res_options->EOF){
 
984
                     $selection=array_pop($loc_arr);
 
985
                }
 
986
                $options[0]="";
 
987
                while(!$res_options->EOF){
 
988
 
 
989
                     $options[$res_options->fields["loc_uuid"]]=$res_options->fields['name'];
 
990
                     $res_options->MoveNext();
 
991
                }
 
992
                $select_opts='onChange=update_next_level(this.options[this.selectedIndex].value,'.$res->fields[0].')';
 
993
                $extra_opts['value']=$selection;
 
994
             //   $extra_opts['req']=true;
 
995
                shn_form_select($options,_lc($res->fields[1]).":","loc_select_".$res->fields[0],$select_opts,$extra_opts);
 
996
                $res->MoveNext();
 
997
            }
 
998
            $cur=$cur+1;
 
999
    }
982
1000
   
983
1001
    $from=$parent_level;
984
1002
    $cur=$from[0]+1;
1054
1072
"please note that the levels can be customized, therefore it does not need to be 'country'->'district'->'village' ,always. Its configurable from the 'administration' section.");//display help icon only once
1055
1073
            }else{
1056
1074
                        //now there is a parent, so select all the children
1057
 
                $q = "select location.name,location.loc_uuid from location where location.opt_location_type=".$res->fields[0]." and parent_id='".$selection."'";
 
1075
                $q = "select location.name,location.loc_uuid from location where location.opt_location_type=".$res->fields[0]." and parent_id='".$selection."' order by location.name";
1058
1076
                        unset($extra_opts['help']);
1059
1077
            }
1060
1078
            $res_options=$db->Execute($q);
1119
1137
all the divisions of that country will populate the next select box.  therefore in this case all the districts in 'Sri lanka' appear . From those select a district which will populate the village list in the next select box. So select 'dehiwala' and you have done it! 
1120
1138
please note that the levels can be customized, therefore it does not need to be 'country'->'district'->'village' ,always. Its configurable from the 'administration' section.");//display help icon only once
1121
1139
            }else
1122
 
                $q = "select location.name,location.loc_uuid from location where location.opt_location_type=".$res->fields[0]." and parent_id='".$selection."'";
 
1140
                $q = "select location.name,location.loc_uuid from location where location.opt_location_type=".$res->fields[0]." and parent_id='".$selection."' order by location.name";
1123
1141
            $res_options=$db->Execute($q);
1124
1142
            if($res_options==null){ return;}
1125
1143
            $options=array();