Adds subscriber position to groups (Closes #1511).
[platal.git] / htdocs / javascript / search.js
index feca64b..2c3c1c3 100644 (file)
@@ -21,7 +21,7 @@
 // {{{ Page initialization
 
 var baseurl = $.plURL('search/');
-var address_types = new Array('country', 'administrative_area_level_1', 'administrative_area_level_2', 'locality', 'sublocality');
+var address_types = new Array('country', 'administrative_area_level_1', 'administrative_area_level_2', 'locality', 'postal_code');
 var address_types_count = address_types.length;
 
 function load_advanced_search(request)
@@ -41,14 +41,11 @@ function load_advanced_search(request)
     $('.autocomplete').change(function() { $(this).removeClass('hidden_valid'); });
 
     if (request['country']) {
-        $("[name='country']").parent().load(baseurl + 'list/country', function() {
-            $("select[name='country']").attr('value', request['country']);
-        });
         setAddress(0, 1, new Array(request['country'],
                                    request['administrative_area_level_1'],
                                    request['administrative_area_level_2'],
                                    request['locality'],
-                                   request['sublocality'])
+                                   request['postal_code'])
         );
     } else {
         for (var i = 1; i < address_types_count; ++i) {
@@ -90,13 +87,17 @@ function load_advanced_search(request)
     $('.delete_address_component').click(function() {
         var field_name = $(this).attr('href');
         var hide = false;
+        var remove = false;
 
         for (var i = 1; i < address_types_count; ++i) {
             if (field_name == address_types[i]) {
                 hide = true;
             }
             if (hide) {
-                delete_address_component(address_types[i]);
+                if (field_name != address_types[i]) {
+                    remove = true;
+                }
+                delete_address_component(address_types[i], remove);
             }
         }
 
@@ -227,15 +228,14 @@ function setAddress(i, j, values)
     var next_type = address_types[j];
     var next_list = next_type + '_list';
 
-    if (j == 3) {
-        $('tr#locality_text').hide()
-            $("select[name='locality_text']").attr('value', '');
-    }
-
     $('#' + next_list).load(baseurl + 'list/' + next_type, { previous:prev_type, value:values[i] }, function() {
         if ($("select[name='" + next_type + "']").children("option").size() > 1) {
             $("tr#" + next_type).show();
             $("select[name='" + next_type + "']").attr('value', values[j]);
+            if (next_type == 'locality') {
+                $('tr#locality_text').hide();
+                $("select[name='locality_text']").attr('value', '');
+            }
             if (j < address_types_count) {
                 setAddress(j, j + 1, values);
             }
@@ -282,7 +282,7 @@ function changeAddressComponents(type, value)
     }
 
     for (var j = i + 1; j < address_types_count; ++j) {
-        delete_address_component(address_types[j]);
+        delete_address_component(address_types[j], true);
     }
 
     if (value != '' && i < address_types_count) {
@@ -291,15 +291,19 @@ function changeAddressComponents(type, value)
     }
 }
 
-function delete_address_component(field_name)
+function delete_address_component(field_name, remove)
 {
-    $('tr#' + field_name).hide();
-    $('#' + field_name + '_list').html('');
-    $("input[name='" + field_name + "']").val('');
+    if (remove || field_name == 'locality') {
+        $('tr#' + field_name).hide();
+        $('#' + field_name + '_list').html('');
 
-    if (field_name == 'locality') {
-        $("select[name='locality_text']").attr('value', '');
-        $('tr#locality_text').show();
+        if (field_name == 'locality') {
+            $("input[name='locality_text']").val('');
+            $('tr#locality_text').show();
+        }
+    } else {
+        $("select[name='" + field_name + "']").val('');
+        $("input[name='" + field_name + "']").val('');
     }
 }