diff options
| author | Tom Christie | 2013-08-29 20:35:59 +0100 | 
|---|---|---|
| committer | Tom Christie | 2013-08-29 20:35:59 +0100 | 
| commit | 1fa2d823cc9f2dcf301b0e3ce7f47acfcdfcb305 (patch) | |
| tree | 3d9d42444a3bdbc6c59116f355e6bb7f0f699537 /rest_framework/static | |
| parent | c7f3b8bebef33093d4e949f797565c4cbcd2695d (diff) | |
| download | django-rest-framework-1fa2d823cc9f2dcf301b0e3ce7f47acfcdfcb305.tar.bz2 | |
Preserve tab preference in cookies.
Diffstat (limited to 'rest_framework/static')
| -rw-r--r-- | rest_framework/static/rest_framework/js/default.js | 45 | 
1 files changed, 44 insertions, 1 deletions
diff --git a/rest_framework/static/rest_framework/js/default.js b/rest_framework/static/rest_framework/js/default.js index c74829d7..a57b1cb8 100644 --- a/rest_framework/static/rest_framework/js/default.js +++ b/rest_framework/static/rest_framework/js/default.js @@ -1,13 +1,56 @@ +function getCookie(c_name) +{ +    // From http://www.w3schools.com/js/js_cookies.asp +    var c_value = document.cookie; +    var c_start = c_value.indexOf(" " + c_name + "="); +    if (c_start == -1) { +        c_start = c_value.indexOf(c_name + "="); +    } +    if (c_start == -1) { +        c_value = null; +    } else { +        c_start = c_value.indexOf("=", c_start) + 1; +        var c_end = c_value.indexOf(";", c_start); +        if (c_end == -1) { +            c_end = c_value.length; +        } +        c_value = unescape(c_value.substring(c_start,c_end)); +    } +    return c_value; +} + +// JSON highlighting.  prettyPrint(); +// Bootstrap tooltips.  $('.js-tooltip').tooltip({      delay: 1000  }); +// Deal with rounded tab styling after tab clicks.  $('a[data-toggle="tab"]:first').on('shown', function (e) {      $(e.target).parents('.tabbable').addClass('first-tab-active');  });  $('a[data-toggle="tab"]:not(:first)').on('shown', function (e) {      $(e.target).parents('.tabbable').removeClass('first-tab-active');  }); -$('.form-switcher a:first').tab('show'); + +$('a[data-toggle="tab"]').click(function(){ +    document.cookie="tab=" + this.name; +}); + +// Store tab preference in cookies & display appropriate tab on load. +var selectedTab = null; +var selectedTabName = getCookie('tab'); + +if (selectedTabName) { +    selectedTab = $('.form-switcher a[name=' + selectedTabName + ']'); +} + +if (selectedTab && selectedTab.length > 0) { +    // Display whichever tab is selected. +    selectedTab.tab('show'); +} else { +    // If no tab selected, display rightmost tab. +    $('.form-switcher a:first').tab('show'); +}  | 
