adding search filter preservation
authorAnthony Talarico <talarico@gaslightmedia.com>
Thu, 27 Apr 2017 19:48:25 +0000 (15:48 -0400)
committerAnthony Talarico <talarico@gaslightmedia.com>
Thu, 27 Apr 2017 19:48:25 +0000 (15:48 -0400)
using js to preserve category search options when a category is selected from the search header

js/app.js
js/custom/headerSearch.js

index fe74d93..b120116 100644 (file)
--- a/js/app.js
+++ b/js/app.js
@@ -31,7 +31,7 @@ $(document).ready(function () {
     
     // member info data on change
     counties.on('change', function(){
-        $('option:selected', this).attr('selected', 'selected');
+//        $('option:selected', this).attr('selected', 'selected');
         var county = this.value;
         if(county === ''){
             county = 'false';
@@ -49,7 +49,7 @@ $(document).ready(function () {
             success:function(data){
                 var county_data = data;
             
-                $('option:selected', this).attr('selected', 'selected');
+//                $('option:selected', this).attr('selected', 'selected');
                 option = {};
                 cities.empty();
                 cities.append($('<option>', {value: '', text: 'Select a City'}));
@@ -63,7 +63,7 @@ $(document).ready(function () {
         });
     });
     regions.on('change', function(){
-        $('option:selected', this).attr('selected', 'selected');
+//        $('option:selected', this).attr('selected', 'selected');
         var region = this.value;
         if(region === ''){
             region = 'false';
@@ -82,7 +82,7 @@ $(document).ready(function () {
                 var region_data = data;
        
                 
-                $('option:selected', this).attr('selected', 'selected');
+//                $('option:selected', this).attr('selected', 'selected');
                 option = {};
                 cities.empty();
                 cities.append($('<option>', {value: '', text: 'Select a City', 'data-taxonomy': 'default'}));
@@ -106,7 +106,7 @@ $(document).ready(function () {
     
     // categories on change
     activities.on('change', function(){
-       $('option:selected', this).attr('selected', 'selected');
+//       $('option:selected', this).attr('selected', 'selected');
        var activity = this.value;
         if(activity === ''){
             activity = 'false';
@@ -122,6 +122,32 @@ $(document).ready(function () {
             },
             success:function(data){
                var activity_data = data;
+                
+                option = {};
+                $('#destination-search option').not(':eq(0), :selected').remove();
+                var selected = $('#destination-search option:selected').val();
+                console.info(selected);
+//               counties.append($('<option>', {value: 'default', text: 'County', 'data-taxonomy': 'default'}));
+                $.each(activity_data.categories.Destinations,function(index,value){
+                    if(value.category !== selected){
+                        var option = $('<option>', {value: value.category, text: value.name});
+                        option.attr('data-id', value.id);
+                        destinations.append(option);
+                    }
+                });
+                
+                option = {};
+                $('#park-search option').not(':eq(0), :selected').remove();
+                var selected = $('#park-search option:selected').val();
+                console.info(selected);
+//               counties.append($('<option>', {value: 'default', text: 'County', 'data-taxonomy': 'default'}));
+                $.each(activity_data.categories.Parks,function(index,value){
+                    if(value.category !== selected){
+                        var option = $('<option>', {value: value.category, text: value.name});
+                        option.attr('data-id', value.id);
+                        parks.append(option);
+                    }
+                });
 //                option = {};
 //                $('#trail-counties option').not(':eq(0), :selected').remove();
 //                var selected = $('#trail-counties option:selected').val();
@@ -148,27 +174,31 @@ $(document).ready(function () {
 //                    }
 //                });
 
-
-                option = {};
-                parks.empty();
-                parks.append($('<option>', {value: '', text: 'Select a Park'}));
-                $.each(activity_data.categories.Parks, function(index, value) {
-                    var option = $('<option>', {value: value.category, text: value.name});
-                    parks.append(option);
-                });
-                option = {};
-                destinations.empty();
-                destinations.append($('<option>', {value: '', text: 'Select a Destination'}));
-                $.each(activity_data.categories.Destinations, function(index, value) {
-                    var option = $('<option>', {value: value.category, text: value.name});
-                    destinations.append(option);
-                });
+//                if( $('#park-search option:selected').val() === ''){
+//                   
+//                    option = {};
+//                    parks.empty();
+//                    parks.append($('<option>', {value: '', text: 'Select a Park'}));
+//                    $.each(activity_data.categories.Parks, function(index, value) {
+//                        var option = $('<option>', {value: value.category, text: value.name});
+//                        parks.append(option);
+//                    });
+//                }
+//                if( $('#destination-search option:selected').val() === ''){
+//                    option = {};
+//                    destinations.empty();
+//                    destinations.append($('<option>', {value: '', text: 'Select a Destination'}));
+//                    $.each(activity_data.categories.Destinations, function(index, value) {
+//                        var option = $('<option>', {value: value.category, text: value.name});
+//                        destinations.append(option);
+//                    });
+//                }
 
             }
         });
     });
     parks.on('change', function(){
-       $('option:selected', this).attr('selected', 'selected');
+//       $('option:selected', this).attr('selected', 'selected');
        var park = this.value;
         if(park === ''){
             park = 'false';
@@ -186,17 +216,31 @@ $(document).ready(function () {
             success:function(data){
                var park_data = data;
                 
-//                option = {};
-//                $('#trail-counties option').not(':eq(0), :selected').remove();
-//                var selected = $('#trail-counties option:selected').val();
-////               counties.append($('<option>', {value: 'default', text: 'County', 'data-taxonomy': 'default'}));
-//                $.each(activity_data.counties,function(index,value){
-//                    if(value.slug !== selected){
-//                        var option = $('<option>', {value: value.slug, text: value.name});
-//                        option.attr('data-id', value.id);
-//                        counties.append(option);
-//                    }
-//                });
+                option = {};
+                $('#destination-search option').not(':eq(0), :selected').remove();
+                var selected = $('#destination-search option:selected').val();
+                console.info(selected);
+//               counties.append($('<option>', {value: 'default', text: 'County', 'data-taxonomy': 'default'}));
+                $.each(park_data.categories.Destinations,function(index,value){
+                    if(value.category !== selected){
+                        var option = $('<option>', {value: value.category, text: value.name});
+                        option.attr('data-id', value.id);
+                        destinations.append(option);
+                    }
+                });
+                
+                option = {};
+                $('#activity-search option').not(':eq(0), :selected').remove();
+                var selected = $('#activity-search option:selected').val();
+                console.info(selected);
+//               counties.append($('<option>', {value: 'default', text: 'County', 'data-taxonomy': 'default'}));
+                $.each(park_data.categories.Activities,function(index,value){
+                    if(value.category !== selected){
+                        var option = $('<option>', {value: value.category, text: value.name});
+                        option.attr('data-id', value.id);
+                        activities.append(option);
+                    }
+                });
 
 
 //                option = {};
@@ -211,27 +255,30 @@ $(document).ready(function () {
 //                        cities.append(option);
 //                    }
 //                });
-
-                option = {};
-                destinations.empty();
-                destinations.append($('<option>', {value: '', text: 'Select a Destination'}));
-                $.each(park_data.categories.Destinations, function(index, value) {
-                    var option = $('<option>', {value: value.category, text: value.name});
-                    destinations.append(option);
-                });
-                
-                option = {};
-                activities.empty();
-                activities.append($('<option>', {value: '', text: 'Select an Activity'}));
-                $.each(park_data.categories.Activities, function(index, value) {
-                    var option = $('<option>', {value: value.category, text: value.name});
-                    activities.append(option);
-                });
+//                if( $('#destination-search option:selected').val() === ''){
+//                    console.log( $('#destination-search option:selected').val() );
+//                    option = {};
+//                    destinations.empty();
+//                    destinations.append($('<option>', {value: '', text: 'Select a Destination'}));
+//                    $.each(park_data.categories.Destinations, function(index, value) {
+//                        var option = $('<option>', {value: value.category, text: value.name});
+//                        destinations.append(option);
+//                    });
+//                }
+//                if( $('#activity-search option:selected').val() === ''){
+//                    option = {};
+//                    activities.empty();
+//                    activities.append($('<option>', {value: '', text: 'Select an Activity'}));
+//                    $.each(park_data.categories.Activities, function(index, value) {
+//                        var option = $('<option>', {value: value.category, text: value.name});
+//                        activities.append(option);
+//                    });
+//                }
             }
         });
     });
     destinations.on('change', function(){
-       $('option:selected', this).attr('selected', 'selected');
+//       $('option:selected', this).attr('selected', 'selected');
        var destination = this.value;
         if(destination === ''){
             destination = 'false';
@@ -273,25 +320,51 @@ $(document).ready(function () {
 //                        cities.append(option);
 //                    }
 //                });
-
-
                 option = {};
-                activities.empty();
-                activities.append($('<option>', {value: '', text: 'Select an Activity'}));
-                $.each(destination_data.categories.Activities, function(index, value) {
-                    console.log(value);
-                    var option = $('<option>', {value: value.category, text: value.name});
-                    activities.append(option);
+                $('#activity-search option').not(':eq(0), :selected').remove();
+                var selected = $('#activity-search option:selected').val();
+                console.info(selected);
+//               counties.append($('<option>', {value: 'default', text: 'County', 'data-taxonomy': 'default'}));
+                $.each(destination_data.categories.Activities,function(index,value){
+                    if(value.category !== selected){
+                        var option = $('<option>', {value: value.category, text: value.name});
+                        option.attr('data-id', value.id);
+                        activities.append(option);
+                    }
                 });
-                
                 option = {};
-                parks.empty();
-                parks.append($('<option>', {value: '', text: 'Select a Park'}));
-                $.each(destination_data.categories.Parks, function(index, value) {
-                    console.log(value);
-                    var option = $('<option>', {value: value.category, text: value.name});
-                    parks.append(option);
+                $('#park-search option').not(':eq(0), :selected').remove();
+                var selected = $('#park-search option:selected').val();
+                console.info(selected);
+//               counties.append($('<option>', {value: 'default', text: 'County', 'data-taxonomy': 'default'}));
+                $.each(destination_data.categories.Parks,function(index,value){
+                    if(value.category !== selected){
+                        var option = $('<option>', {value: value.category, text: value.name});
+                        option.attr('data-id', value.id);
+                        parks.append(option);
+                    }
                 });
+
+
+//                option = {};
+//                activities.empty();
+//                activities.append($('<option>', {value: '', text: 'Select an Activity'}));
+//                $.each(destination_data.categories.Activities, function(index, value) {
+//                    console.log(value);
+//                    var option = $('<option>', {value: value.category, text: value.name});
+//                    activities.append(option);
+//                });
+                
+//                if( $('#park-search option:selected').val() === ''){
+//                    option = {};
+//                    parks.empty();
+//                    parks.append($('<option>', {value: '', text: 'Select a Park'}));
+//                    $.each(destination_data.categories.Parks, function(index, value) {
+//                        console.log(value);
+//                        var option = $('<option>', {value: value.category, text: value.name});
+//                        parks.append(option);
+//                    });
+//                }
             }
         });
     });
index 2939ed9..a806db9 100644 (file)
@@ -22,7 +22,7 @@ $(document).ready(function () {
     
     // member info data on change
     counties.on('change', function(){
-        $('option:selected', this).attr('selected', 'selected');
+//        $('option:selected', this).attr('selected', 'selected');
         var county = this.value;
         if(county === ''){
             county = 'false';
@@ -40,7 +40,7 @@ $(document).ready(function () {
             success:function(data){
                 var county_data = data;
             
-                $('option:selected', this).attr('selected', 'selected');
+//                $('option:selected', this).attr('selected', 'selected');
                 option = {};
                 cities.empty();
                 cities.append($('<option>', {value: '', text: 'Select a City'}));
@@ -54,7 +54,7 @@ $(document).ready(function () {
         });
     });
     regions.on('change', function(){
-        $('option:selected', this).attr('selected', 'selected');
+//        $('option:selected', this).attr('selected', 'selected');
         var region = this.value;
         if(region === ''){
             region = 'false';
@@ -73,7 +73,7 @@ $(document).ready(function () {
                 var region_data = data;
        
                 
-                $('option:selected', this).attr('selected', 'selected');
+//                $('option:selected', this).attr('selected', 'selected');
                 option = {};
                 cities.empty();
                 cities.append($('<option>', {value: '', text: 'Select a City', 'data-taxonomy': 'default'}));
@@ -97,7 +97,7 @@ $(document).ready(function () {
     
     // categories on change
     activities.on('change', function(){
-       $('option:selected', this).attr('selected', 'selected');
+//       $('option:selected', this).attr('selected', 'selected');
        var activity = this.value;
         if(activity === ''){
             activity = 'false';
@@ -113,6 +113,32 @@ $(document).ready(function () {
             },
             success:function(data){
                var activity_data = data;
+                
+                option = {};
+                $('#destination-search option').not(':eq(0), :selected').remove();
+                var selected = $('#destination-search option:selected').val();
+                console.info(selected);
+//               counties.append($('<option>', {value: 'default', text: 'County', 'data-taxonomy': 'default'}));
+                $.each(activity_data.categories.Destinations,function(index,value){
+                    if(value.category !== selected){
+                        var option = $('<option>', {value: value.category, text: value.name});
+                        option.attr('data-id', value.id);
+                        destinations.append(option);
+                    }
+                });
+                
+                option = {};
+                $('#park-search option').not(':eq(0), :selected').remove();
+                var selected = $('#park-search option:selected').val();
+                console.info(selected);
+//               counties.append($('<option>', {value: 'default', text: 'County', 'data-taxonomy': 'default'}));
+                $.each(activity_data.categories.Parks,function(index,value){
+                    if(value.category !== selected){
+                        var option = $('<option>', {value: value.category, text: value.name});
+                        option.attr('data-id', value.id);
+                        parks.append(option);
+                    }
+                });
 //                option = {};
 //                $('#trail-counties option').not(':eq(0), :selected').remove();
 //                var selected = $('#trail-counties option:selected').val();
@@ -139,27 +165,31 @@ $(document).ready(function () {
 //                    }
 //                });
 
-
-                option = {};
-                parks.empty();
-                parks.append($('<option>', {value: '', text: 'Select a Park'}));
-                $.each(activity_data.categories.Parks, function(index, value) {
-                    var option = $('<option>', {value: value.category, text: value.name});
-                    parks.append(option);
-                });
-                option = {};
-                destinations.empty();
-                destinations.append($('<option>', {value: '', text: 'Select a Destination'}));
-                $.each(activity_data.categories.Destinations, function(index, value) {
-                    var option = $('<option>', {value: value.category, text: value.name});
-                    destinations.append(option);
-                });
+//                if( $('#park-search option:selected').val() === ''){
+//                   
+//                    option = {};
+//                    parks.empty();
+//                    parks.append($('<option>', {value: '', text: 'Select a Park'}));
+//                    $.each(activity_data.categories.Parks, function(index, value) {
+//                        var option = $('<option>', {value: value.category, text: value.name});
+//                        parks.append(option);
+//                    });
+//                }
+//                if( $('#destination-search option:selected').val() === ''){
+//                    option = {};
+//                    destinations.empty();
+//                    destinations.append($('<option>', {value: '', text: 'Select a Destination'}));
+//                    $.each(activity_data.categories.Destinations, function(index, value) {
+//                        var option = $('<option>', {value: value.category, text: value.name});
+//                        destinations.append(option);
+//                    });
+//                }
 
             }
         });
     });
     parks.on('change', function(){
-       $('option:selected', this).attr('selected', 'selected');
+//       $('option:selected', this).attr('selected', 'selected');
        var park = this.value;
         if(park === ''){
             park = 'false';
@@ -177,17 +207,31 @@ $(document).ready(function () {
             success:function(data){
                var park_data = data;
                 
-//                option = {};
-//                $('#trail-counties option').not(':eq(0), :selected').remove();
-//                var selected = $('#trail-counties option:selected').val();
-////               counties.append($('<option>', {value: 'default', text: 'County', 'data-taxonomy': 'default'}));
-//                $.each(activity_data.counties,function(index,value){
-//                    if(value.slug !== selected){
-//                        var option = $('<option>', {value: value.slug, text: value.name});
-//                        option.attr('data-id', value.id);
-//                        counties.append(option);
-//                    }
-//                });
+                option = {};
+                $('#destination-search option').not(':eq(0), :selected').remove();
+                var selected = $('#destination-search option:selected').val();
+                console.info(selected);
+//               counties.append($('<option>', {value: 'default', text: 'County', 'data-taxonomy': 'default'}));
+                $.each(park_data.categories.Destinations,function(index,value){
+                    if(value.category !== selected){
+                        var option = $('<option>', {value: value.category, text: value.name});
+                        option.attr('data-id', value.id);
+                        destinations.append(option);
+                    }
+                });
+                
+                option = {};
+                $('#activity-search option').not(':eq(0), :selected').remove();
+                var selected = $('#activity-search option:selected').val();
+                console.info(selected);
+//               counties.append($('<option>', {value: 'default', text: 'County', 'data-taxonomy': 'default'}));
+                $.each(park_data.categories.Activities,function(index,value){
+                    if(value.category !== selected){
+                        var option = $('<option>', {value: value.category, text: value.name});
+                        option.attr('data-id', value.id);
+                        activities.append(option);
+                    }
+                });
 
 
 //                option = {};
@@ -202,27 +246,30 @@ $(document).ready(function () {
 //                        cities.append(option);
 //                    }
 //                });
-
-                option = {};
-                destinations.empty();
-                destinations.append($('<option>', {value: '', text: 'Select a Destination'}));
-                $.each(park_data.categories.Destinations, function(index, value) {
-                    var option = $('<option>', {value: value.category, text: value.name});
-                    destinations.append(option);
-                });
-                
-                option = {};
-                activities.empty();
-                activities.append($('<option>', {value: '', text: 'Select an Activity'}));
-                $.each(park_data.categories.Activities, function(index, value) {
-                    var option = $('<option>', {value: value.category, text: value.name});
-                    activities.append(option);
-                });
+//                if( $('#destination-search option:selected').val() === ''){
+//                    console.log( $('#destination-search option:selected').val() );
+//                    option = {};
+//                    destinations.empty();
+//                    destinations.append($('<option>', {value: '', text: 'Select a Destination'}));
+//                    $.each(park_data.categories.Destinations, function(index, value) {
+//                        var option = $('<option>', {value: value.category, text: value.name});
+//                        destinations.append(option);
+//                    });
+//                }
+//                if( $('#activity-search option:selected').val() === ''){
+//                    option = {};
+//                    activities.empty();
+//                    activities.append($('<option>', {value: '', text: 'Select an Activity'}));
+//                    $.each(park_data.categories.Activities, function(index, value) {
+//                        var option = $('<option>', {value: value.category, text: value.name});
+//                        activities.append(option);
+//                    });
+//                }
             }
         });
     });
     destinations.on('change', function(){
-       $('option:selected', this).attr('selected', 'selected');
+//       $('option:selected', this).attr('selected', 'selected');
        var destination = this.value;
         if(destination === ''){
             destination = 'false';
@@ -264,25 +311,51 @@ $(document).ready(function () {
 //                        cities.append(option);
 //                    }
 //                });
-
-
                 option = {};
-                activities.empty();
-                activities.append($('<option>', {value: '', text: 'Select an Activity'}));
-                $.each(destination_data.categories.Activities, function(index, value) {
-                    console.log(value);
-                    var option = $('<option>', {value: value.category, text: value.name});
-                    activities.append(option);
+                $('#activity-search option').not(':eq(0), :selected').remove();
+                var selected = $('#activity-search option:selected').val();
+                console.info(selected);
+//               counties.append($('<option>', {value: 'default', text: 'County', 'data-taxonomy': 'default'}));
+                $.each(destination_data.categories.Activities,function(index,value){
+                    if(value.category !== selected){
+                        var option = $('<option>', {value: value.category, text: value.name});
+                        option.attr('data-id', value.id);
+                        activities.append(option);
+                    }
                 });
-                
                 option = {};
-                parks.empty();
-                parks.append($('<option>', {value: '', text: 'Select a Park'}));
-                $.each(destination_data.categories.Parks, function(index, value) {
-                    console.log(value);
-                    var option = $('<option>', {value: value.category, text: value.name});
-                    parks.append(option);
+                $('#park-search option').not(':eq(0), :selected').remove();
+                var selected = $('#park-search option:selected').val();
+                console.info(selected);
+//               counties.append($('<option>', {value: 'default', text: 'County', 'data-taxonomy': 'default'}));
+                $.each(destination_data.categories.Parks,function(index,value){
+                    if(value.category !== selected){
+                        var option = $('<option>', {value: value.category, text: value.name});
+                        option.attr('data-id', value.id);
+                        parks.append(option);
+                    }
                 });
+
+
+//                option = {};
+//                activities.empty();
+//                activities.append($('<option>', {value: '', text: 'Select an Activity'}));
+//                $.each(destination_data.categories.Activities, function(index, value) {
+//                    console.log(value);
+//                    var option = $('<option>', {value: value.category, text: value.name});
+//                    activities.append(option);
+//                });
+                
+//                if( $('#park-search option:selected').val() === ''){
+//                    option = {};
+//                    parks.empty();
+//                    parks.append($('<option>', {value: '', text: 'Select a Park'}));
+//                    $.each(destination_data.categories.Parks, function(index, value) {
+//                        console.log(value);
+//                        var option = $('<option>', {value: value.category, text: value.name});
+//                        parks.append(option);
+//                    });
+//                }
             }
         });
     });