diff options
Diffstat (limited to 'js/duplicates.js')
-rw-r--r-- | js/duplicates.js | 153 |
1 files changed, 0 insertions, 153 deletions
diff --git a/js/duplicates.js b/js/duplicates.js deleted file mode 100644 index ccad539e3..000000000 --- a/js/duplicates.js +++ /dev/null @@ -1,153 +0,0 @@ -/* 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 the Bugzilla Bug Tracking System. - * - * The Initial Developer of the Original Code is Netscape Communications - * Corporation. Portions created by Netscape are - * Copyright (C) 1998 Netscape Communications Corporation. All - * Rights Reserved. - * - * Contributor(s): Myk Melez <myk@mozilla.org> - */ - -// When the XUL window finishes loading, load the RDF data into it. -window.addEventListener('load', loadData, false); - -// The base URL of this Bugzilla installation; derived from the page's URL. -var gBaseURL = window.location.href.replace(/(jar:)?(.*?)duplicates\.(jar!|xul).*/, "$2"); - -function loadData() -{ - // Loads the duplicates data as an RDF data source, attaches it to the tree, - // and rebuilds the tree to display the data. - - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - // Get the RDF service so we can use it to load the data source. - var rdfService = - Components - .classes["@mozilla.org/rdf/rdf-service;1"] - .getService(Components.interfaces.nsIRDFService); - - // When a bug report loads in the content iframe, a 'load' event bubbles up - // to the browser window, which calls this load handler again, which reloads - // the RDF data, which causes the tree to lose the selection. To prevent - // this, we have to remove this handler. - window.removeEventListener('load', loadData, false); - - // The URL of the RDF file; by default for performance a static file - // generated by collectstats.pl, but a call to duplicates.cgi if the page's - // URL contains parameters (so we can dynamically generate the RDF data - // based on those parameters). - var dataURL = gBaseURL + "data/duplicates.rdf"; - if (window.location.href.search(/duplicates\.xul\?.+/) != -1) - dataURL = window.location.href.replace(/(duplicates\.jar!\/)?duplicates\.xul\?/, "duplicates.cgi?ctype=rdf&"); - - // Get the data source and add it to the XUL tree's database to populate - // the tree with the data. - var dataSource = rdfService.GetDataSource(dataURL); - - // If we're using the static file, add an observer that detects failed loads - // (in case this installation isn't generating the file nightly) and redirects - // to the CGI version when loading of the static version fails. - if (window.location.href.search(/duplicates\.xul\?.+/) == -1) - { - var sink = dataSource.QueryInterface(Components.interfaces.nsIRDFXMLSink); - sink.addXMLSinkObserver(StaticDataSourceObserver); - } - - // Add the data source to the tree, set the tree's "ref" attribute - // to the base URL of the data source, and rebuild the tree. - var resultsTree = document.getElementById('results-tree'); - resultsTree.database.AddDataSource(dataSource); - resultsTree.setAttribute('ref', gBaseURL + "data/duplicates.rdf"); - resultsTree.builder.rebuild(); -} - -function getBugURI() -{ - var tree = document.getElementById('results-tree'); - var index = tree.currentIndex; - - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - var builder = tree.builder.QueryInterface(Components.interfaces.nsIXULTreeBuilder); - var resource = builder.getResourceAtIndex(index); - - return resource.Value; -} - -function loadBugInWindow() -{ - // Loads the selected bug in the browser window, replacing the duplicates report - // with the bug report. - - var bugURI = getBugURI(); - window.location = bugURI; -} - -function loadBugInPane() -{ - // Loads the selected bug in the iframe-based content pane that is part of - // this XUL document. - - var splitter = document.getElementById('report-content-splitter'); - var state = splitter.getAttribute('state'); - if (state != "collapsed") - { - var bugURI = getBugURI(); - var browser = document.getElementById('content-browser'); - browser.setAttribute('src', bugURI); - } -} - -var StaticDataSourceObserver = { - onBeginLoad: function(aSink) { } , - onInterrupt: function(aSink) { } , - onResume: function(aSink) { } , - onEndLoad: function(aSink) - { - // Removes the observer from the data source so it doesn't stay around - // when duplicates.xul is reloaded from scratch. - - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - aSink.removeXMLSinkObserver(StaticDataSourceObserver); - } , - onError: function(aSink, aStatus, aErrorMsg) - { - // Tries the dynamic data source since the static one failed to load. - - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - // Get the RDF service so we can use it to load the data source. - var rdfService = - Components - .classes["@mozilla.org/rdf/rdf-service;1"] - .getService(Components.interfaces.nsIRDFService); - - // Remove the observer from the data source so it doesn't stay around - // when duplicates.xul is reloaded from scratch. - aSink.removeXMLSinkObserver(StaticDataSourceObserver); - - // Remove the static data source from the tree. - var oldDataSource = aSink.QueryInterface(Components.interfaces.nsIRDFDataSource); - var resultsTree = document.getElementById('results-tree'); - resultsTree.database.RemoveDataSource(oldDataSource); - - // Munge the URL to point to the CGI and load the data source. - var dataURL = gBaseURL + "duplicates.cgi?ctype=rdf"; - newDataSource = rdfService.GetDataSource(dataURL); - - // Add the data source to the tree and rebuild the tree with the new data. - resultsTree.database.AddDataSource(newDataSource); - resultsTree.builder.rebuild(); - } -}; |