# -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- # ***** BEGIN LICENSE BLOCK ***** # Version: MPL 1.1/GPL 2.0/LGPL 2.1 # # The contents of this file are subject to the Mozilla Public License Version # 1.1 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # http://www.mozilla.org/MPL/ # # Software distributed under the License is distributed on an "AS IS" basis, # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License # for the specific language governing rights and limitations under the # License. # # The Original Code is mozilla.org code. # # The Initial Developer of the Original Code is # Netscape Communications Corporation. # Portions created by the Initial Developer are Copyright (C) 1998 # the Initial Developer. All Rights Reserved. # # Contributor(s): # Alec Flett (original author of history.js) # Seth Spitzer (port to Places) # Asaf Romano # # Alternatively, the contents of this file may be used under the terms of # either the GNU General Public License Version 2 or later (the "GPL"), or # the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), # in which case the provisions of the GPL or the LGPL are applicable instead # of those above. If you wish to allow use of your version of this file only # under the terms of either the GPL or the LGPL, and not to allow others to # use your version of this file under the terms of the MPL, indicate your # decision by deleting the provisions above and replace them with the notice # and other provisions required by the GPL or the LGPL. If you do not delete # the provisions above, a recipient may use your version of this file under # the terms of any one of the MPL, the GPL or the LGPL. # # ***** END LICENSE BLOCK ***** var gHistoryTree; var gSearchBox; var gHistoryGrouping = ""; var gSearching = false; function HistorySidebarInit() { gHistoryTree = document.getElementById("historyTree"); gSearchBox = document.getElementById("search-box"); gHistoryGrouping = document.getElementById("viewButton"). getAttribute("selectedsort"); if (gHistoryGrouping == "site") document.getElementById("bysite").setAttribute("checked", "true"); else if (gHistoryGrouping == "visited") document.getElementById("byvisited").setAttribute("checked", "true"); else if (gHistoryGrouping == "lastvisited") document.getElementById("bylastvisited").setAttribute("checked", "true"); else if (gHistoryGrouping == "dayandsite") document.getElementById("bydayandsite").setAttribute("checked", "true"); else document.getElementById("byday").setAttribute("checked", "true"); initContextMenu(); searchHistory(""); } function initContextMenu() { // Insert "Bookmark This Link" right before the copy item document.getElementById("placesContext") .insertBefore(document.getElementById("addBookmarkContextItem"), document.getElementById("placesContext_copy")); } function GroupBy(groupingType) { gHistoryGrouping = groupingType; searchHistory(gSearchBox.value); } function historyAddBookmarks() { // no need to check gHistoryTree.view.selection.count // node will be null if there is a multiple selection // or if the selected item is not a URI node var node = gHistoryTree.selectedNode; if (node && PlacesUtils.nodeIsURI(node)) PlacesUIUtils.showMinimalAddBookmarkUI(PlacesUtils._uri(node.uri), node.title); } function searchHistory(aInput) { var query = PlacesUtils.history.getNewQuery(); var options = PlacesUtils.history.getNewQueryOptions(); const NHQO = Ci.nsINavHistoryQueryOptions; var sortingMode; var resultType; switch (gHistoryGrouping) { case "visited": resultType = NHQO.RESULTS_AS_URI; sortingMode = NHQO.SORT_BY_VISITCOUNT_DESCENDING; break; case "lastvisited": resultType = NHQO.RESULTS_AS_URI; sortingMode = NHQO.SORT_BY_DATE_DESCENDING; break; case "dayandsite": resultType = NHQO.RESULTS_AS_DATE_SITE_QUERY; break; case "site": resultType = NHQO.RESULTS_AS_SITE_QUERY; sortingMode = NHQO.SORT_BY_TITLE_ASCENDING; break; case "day": default: resultType = NHQO.RESULTS_AS_DATE_QUERY; break; } if (aInput) { query.searchTerms = aInput; if (gHistoryGrouping != "visited" && gHistoryGrouping != "lastvisited") { sortingMode = NHQO.SORT_BY_TITLE_ASCENDING; resultType = NHQO.RESULTS_AS_URI; } } options.sortingMode = sortingMode; options.resultType = resultType; // call load() on the tree manually // instead of setting the place attribute in history-panel.xul // otherwise, we will end up calling load() twice gHistoryTree.load([query], options); } window.addEventListener("SidebarFocused", function() gSearchBox.focus(), false);