Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a7d1eaf5 authored by Scott Main's avatar Scott Main Committed by Android Git Automerger
Browse files

am 9b5fdb9c: docs: add checkbox to toggle the api level filter on and off;...

am 9b5fdb9c: docs: add checkbox to toggle the api level filter on and off; this includes some function renaming for the related scripts.

Merge commit '9b5fdb9c' into eclair

* commit '9b5fdb9c':
  docs: add checkbox to toggle the api level filter on and off;
parents 3fa11599 9b5fdb9c
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -73,9 +73,10 @@ def:custom_masthead() ?>
          call:default_search_box() ?><?cs 
    	 	  if:reference ?>
    			  <div id="api-level-toggle">
    			    <label for="apiLevelControl"><a href="<?cs var:toroot ?>guide/appendix/api-levels.html">Filter by API Level</a>: </label>
    			    <select id="apiLevelControl">
    			      <!-- option elements added by buildApiLevelToggle() -->
    			    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
    			    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
    			    <select id="apiLevelSelector">
    			      <!-- option elements added by buildApiLevelSelector() -->
    			    </select>
    			  </div>
    	 	    <script>
@@ -85,7 +86,7 @@ def:custom_masthead() ?>
                  if:!last(since) ?>, <?cs /if ?><?cs
                /each 
              ?> ];
              buildApiLevelToggle();
              buildApiLevelSelector();
            </script><?cs 
    			/if ?>
      </div><!-- headerRight -->
+2 −1
Original line number Diff line number Diff line
@@ -48,11 +48,12 @@ a:visited code {
}

input, select,
textarea, option {
textarea, option, label {
  font-family:inherit;
  font-size:inherit;
  padding:0;
  margin:0;
  vertical-align:middle;
}

option {
+3 −0
Original line number Diff line number Diff line
@@ -341,6 +341,9 @@ links to summary tables) */
#api-level-toggle {
  padding:0 10px;
  font-size:11px;
}

#api-level-toggle label.disabled {
  color:#999;
}

+1 −1
Original line number Diff line number Diff line
@@ -99,7 +99,7 @@ function readCookie(cookie) {
}

function writeCookie(cookie, val, section, expiration) {
  if (!val) return;  
  if (val==undefined) return;
  section = section == null ? "_" : "_"+section+"_";
  if (expiration == null) {
    var date = new Date();
+57 −28
Original line number Diff line number Diff line

/* API LEVEL TOGGLE */
addLoadEvent(changeApiLevel);

var API_LEVEL_ENABLED_COOKIE = "api_level_enabled";
var API_LEVEL_COOKIE = "api_level";
var minLevel = 1;

function buildApiLevelToggle() {
function toggleApiLevelSelector(checkbox) {
  var date = new Date();
  date.setTime(date.getTime()+(10*365*24*60*60*1000)); // keep this for 10 years
  var expiration = date.toGMTString();
  if (checkbox.checked) {
    $("#apiLevelSelector").removeAttr("disabled");
    $("#api-level-toggle label").removeClass("disabled");
    writeCookie(API_LEVEL_ENABLED_COOKIE, 1, null, expiration);
  } else {
    $("#apiLevelSelector").attr("disabled","disabled");
    $("#api-level-toggle label").addClass("disabled");
    writeCookie(API_LEVEL_ENABLED_COOKIE, 0, null, expiration);
  }
  changeApiLevel();
}

function buildApiLevelSelector() {
  var maxLevel = SINCE_DATA.length;
  var userApiLevelEnabled = readCookie(API_LEVEL_ENABLED_COOKIE);
  var userApiLevel = readCookie(API_LEVEL_COOKIE);

	if (userApiLevel != 0) {
		selectedLevel = userApiLevel;
  if (userApiLevelEnabled == 0) {
    $("#apiLevelSelector").attr("disabled","disabled");
  } else {
	  selectedLevel = maxLevel;
    $("#apiLevelCheckbox").attr("checked","checked");
    $("#api-level-toggle label").removeClass("disabled");
  }
	
  minLevel = $("body").attr("class");
	var select = $("#apiLevelControl").html("").change(changeApiLevel);
  var select = $("#apiLevelSelector").html("").change(changeApiLevel);
  for (var i = maxLevel-1; i >= 0; i--) {
    var option = $("<option />").attr("value",""+SINCE_DATA[i]).append(""+SINCE_DATA[i]);
  //  if (SINCE_DATA[i] < minLevel) option.addClass("absent"); // always false for strings (codenames)
@@ -23,17 +43,26 @@ function buildApiLevelToggle() {
  }
	
  // get the DOM element and use setAttribute cuz IE6 fails when using jquery .attr('selected',true)
	var selectedLevelItem = $("#apiLevelControl option[value='"+selectedLevel+"']").get(0); 
  var selectedLevelItem = $("#apiLevelSelector option[value='"+userApiLevel+"']").get(0); 
  selectedLevelItem.setAttribute('selected',true); 
}

function changeApiLevel() {
	var selectedLevel = $("#apiLevelControl option:selected").val();
  var maxLevel = SINCE_DATA.length;
  var userApiLevelEnabled = readCookie(API_LEVEL_ENABLED_COOKIE);
  var selectedLevel = maxLevel;	
	
  if (userApiLevelEnabled == 0) {
    toggleVisisbleApis(selectedLevel, "body");
  } else {
    selectedLevel = $("#apiLevelSelector option:selected").val();
    toggleVisisbleApis(selectedLevel, "body");
    
    var date = new Date();
  date.setTime(date.getTime()+(50*365*24*60*60*1000)); // keep this for 50 years
  writeCookie(API_LEVEL_COOKIE, selectedLevel, null, date);
    date.setTime(date.getTime()+(10*365*24*60*60*1000)); // keep this for 10 years
    var expiration = date.toGMTString();
    writeCookie(API_LEVEL_COOKIE, selectedLevel, null, expiration);
  }
  
  if (selectedLevel < minLevel) {
    var thing = ($("#jd-header").html().indexOf("package") != -1) ? "package" : "class";
@@ -156,7 +185,7 @@ function expand_node(me, node)
    node.expanded = true;
    
    // perform api level toggling because new nodes are new to the DOM 
	  var selectedLevel = $("#apiLevelControl option:selected").val();
	  var selectedLevel = $("#apiLevelSelector option:selected").val();
    toggleVisisbleApis(selectedLevel, "#side-nav");
  }
}
@@ -228,7 +257,7 @@ function init_default_navtree(toroot) {
  init_navtree("nav-tree", toroot, NAVTREE_DATA);
  
  // perform api level toggling because because the whole tree is new to the DOM 
	var selectedLevel = $("#apiLevelControl option:selected").val();
	var selectedLevel = $("#apiLevelSelector option:selected").val();
  toggleVisisbleApis(selectedLevel, "#side-nav");
}