aboutsummaryrefslogtreecommitdiffstats
path: root/docs/html/overview-summary-bzpage.js.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/html/overview-summary-bzpage.js.html')
-rw-r--r--docs/html/overview-summary-bzpage.js.html915
1 files changed, 0 insertions, 915 deletions
diff --git a/docs/html/overview-summary-bzpage.js.html b/docs/html/overview-summary-bzpage.js.html
deleted file mode 100644
index d5a478d..0000000
--- a/docs/html/overview-summary-bzpage.js.html
+++ /dev/null
@@ -1,915 +0,0 @@
-<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<title>
- Overview
-</title>
-<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
-<script>
-function asd() {
-
- parent.document.title="bzpage.js Overview";
-
-}
-</script>
-</head>
-<body bgcolor="white" onload="asd();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
- <tr align="center" valign="top">
-
-
- <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a>&nbsp;</td>
- <td bgcolor="#FFFFFF" class="NavBarCell1Rev"> &nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
-
-
- <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
- <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
- <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
- <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
- </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top">
-<em>
-<b></b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- <a href="index.html" target="_top"><b>FRAMES</b></a> &nbsp;
-&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-&nbsp;&nbsp;
-<script>
- <!--
- if(window==top) {
- document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
- }
- //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<center>
-
- <h2>bzpage.js</h2>
-
-</center>
-
-
-
-
-<h4>Summary</h4>
-<p>
-
- No overview generated for 'bzpage.js'<BR/><BR/>
-
-</p>
-
-<hr>
-
-
- <table border="1" cellpadding="3" cellspacing="0" width="100%">
- <tr bgcolor="#CCCCFF" class="TableHeadingColor">
- <td colspan=2><font size="+2">
-
- <b>Class Summary</b>
-
- </font></td>
- </tr>
-
- <tr bgcolor="white" class="TableRowColor">
- <td width="15%"><b><a href="BZPage.html">BZPage</a></b></td>
- <td>&nbsp;</td>
- </tr>
-
- </table>
- <hr/>
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<!-- ========== END METHOD SUMMARY =========== -->
-
-
- <pre class="sourceview"><span class="comment">/*jslint onevar: false, browser: true, evil: true, laxbreak: true, undef: true, nomen: true, eqeqeq: true, bitwise: true, maxerr: 1000, immed: false, white: false, plusplus: false, regexp: false, undef: false */</span>
-<span class="comment">// Released under the MIT/X11 license</span>
-<span class="comment">// http://www.opensource.org/licenses/mit-license.php</span>
-<span class="literal">"use strict"</span>;
-var util = require(<span class="literal">"util"</span>);
-var apiUtils = require(<span class="literal">"api-utils"</span>);
-var simpleStorage = require(<span class="literal">"simple-storage"</span>);
-var preferences = require(<span class="literal">"preferences-service"</span>);
-var Color = require(<span class="literal">"color"</span>).Color;
-
-var TriagedDistro = 13;
-var NumberOfFrames = 7;
-var bugURL = <span class="literal">"https://bugzilla.redhat.com/show_bug.cgi?id="</span>;
-
-<span class="comment">// ====================================================================================</span>
-<span class="comment">// BZPage's methods</span>
-var BZPage = <span class="reserved">function</span> BZPage(win, config) {
- var keys = <span class="literal">""</span>;
- <span class="reserved">for</span> (var key in config) {
- keys += key + <span class="literal">", "</span>;
- }
- console.log(<span class="literal">"config keys = "</span> + keys);
-
- <span class="comment">// constants</span>
- <span class="reserved">this</span>.SalmonPink = new Color(255, 224, 176); <span class="comment">// RGB 255, 224, 176; HSL 36, 2,</span>
- <span class="comment">// 85</span>
- <span class="reserved">this</span>.ReporterColor = new Color(255, 255, 166); <span class="comment">// RGB 255, 255, 166; HSL 60, 2,</span>
- <span class="comment">// 83</span>
- <span class="comment">// initialize dynamic properties</span>
- <span class="reserved">this</span>.win = win;
- <span class="reserved">this</span>.doc = win.document;
- <span class="reserved">this</span>.packages = <span class="reserved">this</span>.getInstalledPackages(config);
-
- <span class="reserved">if</span> (<span class="literal">"commentStrings"</span> in config.gJSONData) {
- <span class="reserved">this</span>.commentStrings = config.gJSONData.commentStrings;
- }
-
- <span class="reserved">if</span> (<span class="literal">"constantData"</span> in config.gJSONData) {
- <span class="reserved">this</span>.constantData = config.gJSONData.constantData;
- }
-
- <span class="reserved">if</span> (<span class="literal">"CCmaintainer"</span> in config.gJSONData.constantData) {
- <span class="reserved">this</span>.defBugzillaMaintainerArr = config.gJSONData.constantData.CCmaintainer;
- }
-
- <span class="reserved">if</span> (<span class="literal">"suspiciousComponents"</span> in config.gJSONData.configData) {
- <span class="reserved">this</span>.suspiciousComponents = config.gJSONData.configData.suspiciousComponents;
- }
-
- <span class="reserved">if</span> (<span class="literal">"submitsLogging"</span> in config.gJSONData.configData &amp;&amp;
- config.gJSONData.configData.submitsLogging) {
- <span class="reserved">this</span>.log = config.logger;
- console.log(<span class="literal">"length of this.log.store = "</span> + <span class="reserved">this</span>.log.getLength());
- <span class="reserved">this</span>.setUpLogging();
- }
-
- <span class="reserved">this</span>.submitHandlerInstalled = false;
- <span class="reserved">this</span>.bugNo = util.getBugNo(<span class="reserved">this</span>.doc.location.toString());
-
- <span class="reserved">this</span>.reporter = <span class="reserved">this</span>.getReporter();
- <span class="reserved">this</span>.product = <span class="reserved">this</span>.getOptionValue(<span class="literal">"product"</span>);
- <span class="reserved">this</span>.component = <span class="reserved">this</span>.getOptionValue(<span class="literal">"component"</span>);
- <span class="reserved">this</span>.version = <span class="reserved">this</span>.getVersion();
- <span class="reserved">this</span>.title = <span class="reserved">this</span>.doc.getElementById(<span class="literal">"short_desc_nonedit_display"</span>).textContent;
- <span class="reserved">this</span>.CCList = <span class="reserved">this</span>.getCCList();
-
- <span class="comment">// Prepare for query buttons</span>
- <span class="comment">// FIXME getting null for commentArea sometimes</span>
- var commentArea = <span class="reserved">this</span>.doc.getElementById(<span class="literal">"comment_status_commit"</span>);
- <span class="reserved">if</span> (commentArea) {
- var brElementPlacer = commentArea.getElementsByTagName(<span class="literal">"br"</span>);
- brElementPlacer = brElementPlacer[0];
- <span class="reserved">if</span> (brElementPlacer) {
- brElementPlacer.setAttribute(<span class="literal">"id"</span>,<span class="literal">"brElementPlacer_location"</span>);
- brElementPlacer.parentNode.insertBefore(<span class="reserved">this</span>.doc.createElement(<span class="literal">"br"</span>),
- brElementPlacer);
- }
- } <span class="reserved">else</span> {
- console.log(<span class="literal">"Cannot find element with 'comment_status_commit' ID!"</span>);
- }
-
- <span class="reserved">this</span>.generateButtons();
-};
-
-<span class="comment">/**
- * Get the ID of the bug.
- *
- * <span class="attrib">@return</span> string
- */</span>
-BZPage.<span class="reserved">prototype</span>.getBugId = <span class="reserved">function</span> getBugId () {
- <span class="reserved">return</span> util.getBugNo(<span class="reserved">this</span>.doc.location.href);
-};
-
-<span class="comment">/**
- *
- */</span>
-BZPage.<span class="reserved">prototype</span>.getInstalledPackages = <span class="reserved">function</span> getInstalledPackages(cfg) {
- var installedPackages = {};
-
- <span class="reserved">if</span> (cfg.gJSONData &amp;&amp; (<span class="literal">"commentPackages"</span> in cfg.gJSONData)) {
- <span class="comment">// TODO: Temporary hack ... should be replaced by a proper configuration</span>
- <span class="comment">// when replacement for jetpack.storage.settings lands</span>
- var enabledPackages = cfg.gJSONData.configData.enabledPacks.split(/[, ]/);
- enabledPackages.forEach(<span class="reserved">function</span> (pkg, idx, arr) {
- <span class="reserved">if</span> (pkg in cfg.gJSONData.commentPackages) {
- installedPackages[pkg] = cfg.gJSONData.commentPackages[pkg];
- }
- });
- }
- <span class="reserved">return</span> installedPackages;
-};
-
-<span class="comment">/**
- * Actual execution function
- *
- * <span class="attrib">@param</span> cmdLabel String with the name of the command to be executed
- * <span class="attrib">@param</span> cmdParams Object with the appropriate parameters for the command
- */</span>
-BZPage.<span class="reserved">prototype</span>.centralCommandDispatch = <span class="reserved">function</span> centralCommandDispatch (cmdLabel, cmdParams) {
- switch (cmdLabel) {
- case <span class="literal">"resolution"</span>:
- case <span class="literal">"product"</span>:
- case <span class="literal">"component"</span>:
- case <span class="literal">"version"</span>:
- case <span class="literal">"priority"</span>:
- <span class="reserved">this</span>.selectOption(cmdLabel, cmdParams);
- break;
- case <span class="literal">"status"</span>:
- <span class="reserved">this</span>.selectOption(<span class="literal">"bug_status"</span>, cmdParams);
- break;
- case <span class="literal">"platform"</span>:
- <span class="reserved">this</span>.selectOption(<span class="literal">"rep_platform"</span>, cmdParams);
- break;
- case <span class="literal">"os"</span>:
- <span class="reserved">this</span>.selectOption(<span class="literal">"op_sys"</span>, cmdParams);
- break;
- case <span class="literal">"severity"</span>:
- <span class="reserved">this</span>.selectOption(<span class="literal">"bug_severity"</span>, cmdParams);
- break;
- case <span class="literal">"target"</span>:
- <span class="reserved">this</span>.selectOption(<span class="literal">"target_milestone"</span>, cmdParams);
- break;
- case <span class="literal">"addKeyword"</span>:
- <span class="reserved">this</span>.addStuffToTextBox(<span class="literal">"keywords"</span>,cmdParams);
- break;
- case <span class="literal">"removeKeyword"</span>:
- <span class="reserved">this</span>.removeStuffFromTextBox(<span class="literal">"keywords"</span>, cmdParams);
- break;
- case <span class="literal">"addWhiteboard"</span>:
- <span class="reserved">this</span>.addStuffToTextBox(<span class="literal">"status_whiteboard"</span>,cmdParams);
- break;
- case <span class="literal">"removeWhiteboard"</span>:
- <span class="reserved">this</span>.removeStuffFromTextBox(<span class="literal">"status_whiteboard"</span>,cmdParams);
- break;
- case <span class="literal">"assignee"</span>:
- <span class="reserved">this</span>.changeAssignee(cmdParams);
- break;
- case <span class="literal">"qacontact"</span>:
- <span class="reserved">this</span>.clickMouse(<span class="literal">"bz_qa_contact_edit_action"</span>);
- <span class="reserved">this</span>.doc.getElementById(<span class="literal">"qa_contact"</span>).value = cmdParams;
- break;
- case <span class="literal">"url"</span>:
- <span class="reserved">this</span>.clickMouse(<span class="literal">"bz_url_edit_action"</span>);
- <span class="reserved">this</span>.doc.getElementById(<span class="literal">"bug_file_loc"</span>).value = cmdParams;
- break;
- <span class="comment">// TODO dependson/blocked doesn't work. Find out why.</span>
- case <span class="literal">"addDependsOn"</span>:
- <span class="reserved">this</span>.clickMouse(<span class="literal">"dependson_edit_action"</span>);
- <span class="reserved">this</span>.addStuffToTextBox(<span class="literal">"dependson"</span>, cmdParams);
- break;
- case <span class="literal">"removeDependsOn"</span>:
- <span class="reserved">this</span>.clickMouse(<span class="literal">"dependson_edit_action"</span>);
- <span class="reserved">this</span>.removeStuffFromTextBox(<span class="literal">"dependson"</span>, cmdParams);
- break;
- case <span class="literal">"addBlocks"</span>:
- <span class="reserved">this</span>.clickMouse(<span class="literal">"blocked_edit_action"</span>);
- <span class="reserved">this</span>.addStuffToTextBox(<span class="literal">"blocked"</span>, cmdParams);
- break;
- case <span class="literal">"removeBlocks"</span>:
- <span class="reserved">this</span>.clickMouse(<span class="literal">"blocked_edit_action"</span>);
- <span class="reserved">this</span>.removeStuffFromTextBox(<span class="literal">"blocked"</span>, cmdParams);
- break;
- case <span class="literal">"comment"</span>:
- <span class="reserved">this</span>.addStuffToTextBox(<span class="literal">"comment"</span>, cmdParams);
- break;
- case <span class="literal">"commentIdx"</span>:
- var commentText = <span class="reserved">this</span>.commentStrings[cmdParams];
- <span class="reserved">this</span>.addStuffToTextBox(<span class="literal">"comment"</span>, commentText);
- break;
- case <span class="literal">"setNeedinfo"</span>:
- <span class="comment">// cmdParams are actually ignored for now; we may in future</span>
- <span class="comment">// distinguish different actors to be target of needinfo</span>
- <span class="reserved">this</span>.setNeedinfoReporter();
- break;
- case <span class="literal">"addCC"</span>:
- <span class="reserved">this</span>.addToCCList(cmdParams);
- break;
- <span class="comment">// TODO flags, see also</span>
-
- case <span class="literal">"commit"</span>:
- <span class="reserved">if</span> (cmdParams) {
- <span class="comment">// Directly commit the form</span>
- <span class="reserved">this</span>.doc.forms.namedItem(<span class="literal">"changeform"</span>).submit();
- }
- break;
- }
-};
-
-<span class="comment">/**
- * Take the ID of the package/id combination, and execute it
- *
- * <span class="attrib">@param</span> String combined package + "//" + id combination
- * Fetches the command object from this.installedPackages and then
- * goes through all commands contained in it, and calls
- * this.centralCommandDispatch to execute them.
- */</span>
-BZPage.<span class="reserved">prototype</span>.executeCommand = <span class="reserved">function</span> executeCommand (cmd) {
- var cmdArr = cmd.split(<span class="literal">"//"</span>);
- var commentObj = <span class="reserved">this</span>.packages[cmdArr[0]][cmdArr[1]];
-
- <span class="reserved">for</span> (var key in commentObj) {
- <span class="reserved">this</span>.centralCommandDispatch(key,commentObj[key]);
- }
-};
-
-<span class="comment">/**
- * Add XGL to the CC list
- *
- * <span class="attrib">@param</span> evt Event which made this function active
- * <span class="attrib">@return</span> none
- */</span>
-BZPage.<span class="reserved">prototype</span>.changeAssignee = <span class="reserved">function</span> changeAssignee (newAssignee) {
- var defAssigneeButton = null;
- <span class="reserved">this</span>.addToCCList(<span class="reserved">this</span>.owner);
- <span class="reserved">if</span> (newAssignee === null) {
- <span class="reserved">this</span>.doc.getElementById(<span class="literal">"set_default_assignee"</span>).removeAttribute(
- <span class="literal">"checked"</span>);
- <span class="reserved">return</span> ;
- }
-
- <span class="reserved">if</span> (<span class="reserved">this</span>.getDefaultAssignee) {
- <span class="reserved">if</span> (newAssignee === <span class="literal">"default"</span>) {
- var defAss = <span class="reserved">this</span>.getDefaultAssignee();
- <span class="reserved">if</span> (defAss) {
- newAssignee = defAss;
- } <span class="reserved">else</span> {
- <span class="reserved">return</span> ;
- }
- }
- }
-
- <span class="reserved">if</span> (newAssignee) {
- <span class="reserved">this</span>.clickMouse(<span class="literal">"bz_assignee_edit_action"</span>);
- <span class="reserved">this</span>.doc.getElementById(<span class="literal">"assigned_to"</span>).value = newAssignee;
- <span class="reserved">this</span>.doc.getElementById(<span class="literal">"set_default_assignee"</span>).checked = false;
- defAssigneeButton = <span class="reserved">this</span>.doc.getElementById(<span class="literal">"setDefaultAssignee_btn"</span>);
- <span class="reserved">if</span> (defAssigneeButton) {
- defAssigneeButton.style.display = <span class="literal">"none"</span>;
- }
- }
-};
-
-<span class="comment">/**
- * Adds new option to the 'comment_action' scroll down box
- *
- * <span class="attrib">@param</span> pkg String package name
- * <span class="attrib">@param</span> cmd String with the name of the command
- * If the 'comment_action' scroll down box doesn't exist, this
- * function will set up new one.
- */</span>
-BZPage.<span class="reserved">prototype</span>.addToCommentsDropdown = <span class="reserved">function</span> addToCommentsDropdown (pkg, cmd) {
- var select = <span class="reserved">this</span>.doc.getElementById(<span class="literal">"comment_action"</span>);
- <span class="reserved">if</span> (!select) {
- var that = <span class="reserved">this</span>;
- <span class="reserved">this</span>.doc.getElementById(<span class="literal">"comments"</span>).innerHTML +=
- <span class="literal">"&lt;div id='make_bugzilla_comment_action'&gt;"</span> +
- <span class="literal">" &lt;label for='comment_action'&gt;Add Comment: &lt;/label&gt;"</span> +
- <span class="literal">" &lt;select id='comment_action'&gt;"</span> +
- <span class="literal">" &lt;option value=''&gt;-- Select Comment from List --&lt;/option&gt;"</span> +
- <span class="literal">"&lt;/div&gt;"</span>;
- select = <span class="reserved">this</span>.doc.getElementById(<span class="literal">"comment_action"</span>);
- select.addEventListener(<span class="literal">"change"</span>, <span class="reserved">function</span> () {
- var value = <span class="literal">""</span>;
- var valueElement = that.doc.getElementById(<span class="literal">"comment_action"</span>);
- <span class="reserved">if</span> (valueElement) {
- value = valueElement.getAttribute(<span class="literal">"value"</span>);
- } <span class="reserved">else</span> {
- <span class="reserved">return</span>;
- }
- that.executeCommand(value);
- }, false);
- }
-
- var opt = <span class="reserved">this</span>.doc.createElement(<span class="literal">"option"</span>);
- opt.value = pkg + <span class="literal">"//"</span> + cmd;
- opt.textContent = <span class="reserved">this</span>.packages[pkg][cmd].name;
- select.appendChild(opt);
-};
-
-<span class="comment">/**
- * Generic function to add new button to the page. Actually copies new button
- * from the old one (in order to have the same look-and-feel, etc.
- *
- * <span class="attrib">@param</span> location Object around which the new button will be added
- * <span class="attrib">@param</span> after Boolean before or after location ?
- * <span class="attrib">@param</span> pkg String which package to take the command from
- * <span class="attrib">@param</span> id String which command to take
- * <span class="attrib">@return</span> none
- */</span>
-BZPage.<span class="reserved">prototype</span>.createNewButton = <span class="reserved">function</span> createNewButton (location, after, pkg, id) {
- var that = <span class="reserved">this</span>;
- var cmdObj = <span class="reserved">this</span>.packages[pkg][id];
- var newId = id + <span class="literal">"_btn"</span>;
- var label = cmdObj.name;
-
- <span class="comment">// protection against double-firings</span>
- <span class="reserved">if</span> (<span class="reserved">this</span>.doc.getElementById(newId)) {
- console.log(<span class="literal">"Element with id "</span> + newId + <span class="literal">"already exists!"</span>);
- <span class="reserved">return</span> ;
- }
-
- <span class="comment">// creation of button might be conditional on existence of data in constantData</span>
- <span class="reserved">if</span> (<span class="literal">"ifExist"</span> in cmdObj) {
- <span class="reserved">if</span> (!(cmdObj.ifExist in <span class="reserved">this</span>.constantData)) {
- <span class="reserved">return</span> ;
- }
- }
-
- var newButton = <span class="reserved">this</span>.doc.createElement(<span class="literal">"input"</span>);
- newButton.setAttribute(<span class="literal">"id"</span>, newId);
- newButton.setAttribute(<span class="literal">"type"</span>, <span class="literal">"button"</span>);
- newButton.value = label;
- newButton.addEventListener(<span class="literal">"click"</span>, <span class="reserved">function</span>(evt) {
- that.executeCommand(pkg + <span class="literal">"//"</span> + id);
- }, false);
-
- var originalLocation = <span class="reserved">this</span>.doc.getElementById(location);
-
- <span class="reserved">if</span> (after) {
- originalLocation.parentNode.insertBefore(newButton,
- originalLocation.nextSibling);
- originalLocation.parentNode.insertBefore(<span class="reserved">this</span>.doc
- .createTextNode(<span class="literal">"\u00A0"</span>), newButton);
- } <span class="reserved">else</span> {
- originalLocation.parentNode.insertBefore(newButton, originalLocation);
- originalLocation.parentNode.insertBefore(<span class="reserved">this</span>.doc
- .createTextNode(<span class="literal">"\u00A0"</span>), originalLocation);
- }
-};
-
-<span class="comment">/**
- *
- */</span>
-BZPage.<span class="reserved">prototype</span>.generateButtons = <span class="reserved">function</span> generateButtons () {
- var topRowPosition = <span class="literal">"topRowPositionID"</span>;
- var bottomRowPosition = <span class="literal">"commit"</span>;
-
- <span class="comment">// create anchor for the top toolbar</span>
- var commentBox = <span class="reserved">this</span>.doc.getElementById(<span class="literal">"comment"</span>);
- var brElement = <span class="reserved">this</span>.doc.createElement(<span class="literal">"br"</span>);
- brElement.setAttribute(<span class="literal">"id"</span>,topRowPosition);
- commentBox.parentNode.normalize();
- commentBox.parentNode.insertBefore(brElement, commentBox);
-
- <span class="reserved">for</span> (var pkg in <span class="reserved">this</span>.packages) {
- <span class="reserved">for</span> (var cmdIdx in <span class="reserved">this</span>.packages[pkg]) {
- var cmdObj = <span class="reserved">this</span>.packages[pkg][cmdIdx];
- switch (cmdObj.position) {
- case <span class="literal">"topRow"</span>:
- <span class="reserved">this</span>.createNewButton(topRowPosition, false, pkg, cmdIdx);
- break;
- case <span class="literal">"bottomRow"</span>:
- <span class="reserved">this</span>.createNewButton(bottomRowPosition, false, pkg, cmdIdx);
- break;
- case <span class="literal">"dropDown"</span>:
- <span class="reserved">this</span>.addToCommentsDropdown(pkg,cmdIdx);
- break;
- default: <span class="comment">// [+-]ID</span>
- var firstChr = cmdObj.position.charAt(0);
- var newId = cmdObj.position.substr(1);
- <span class="reserved">this</span>.createNewButton(newId, firstChr === <span class="literal">"+"</span>, pkg, cmdIdx);
- break;
- }
- }
- }
-};
-
-<span class="comment">/**
- * Get the current email of the reporter of the bug.
- *
- * <span class="attrib">@return</span> string
- */</span>
-BZPage.<span class="reserved">prototype</span>.getReporter = <span class="reserved">function</span> getReporter () {
- var reporterElement = <span class="reserved">this</span>.doc.
- querySelector(<span class="literal">"#bz_show_bug_column_2 &gt; table .vcard:first-of-type &gt; a"</span>);
- <span class="reserved">if</span> (reporterElement) {
- <span class="reserved">return</span> reporterElement.textContent;
- }
- <span class="reserved">return</span> <span class="literal">""</span>;
-};
-
-<span class="comment">/**
- * Get the current version of the Fedora release ... even if changed meanwhile
- * by bug triager.
- *
- * <span class="attrib">@return</span> string (integer for released Fedora, float for RHEL, rawhide)
- */</span>
-BZPage.<span class="reserved">prototype</span>.getVersion = <span class="reserved">function</span> getVersion () {
- var verStr = <span class="reserved">this</span>.getOptionValue(<span class="literal">"version"</span>).toLowerCase();
- var verNo = 0;
- <span class="reserved">if</span> (/rawhide/.test(verStr)) {
- verNo = 999;
- } <span class="reserved">else</span> {
- verNo = Number(verStr);
- }
- <span class="reserved">return</span> verNo;
-};
-
-BZPage.<span class="reserved">prototype</span>.commentsWalker = <span class="reserved">function</span> commentsWalker (fce) {
- var comments = <span class="reserved">this</span>.doc.getElementById(<span class="literal">"comments"</span>).getElementsByClassName(
- <span class="literal">"bz_comment"</span>);
- Array.forEach(comments, <span class="reserved">function</span>(item) {
- fce(item);
- }, <span class="reserved">this</span>);
-};
-
-<span class="comment">/**
- * Set background color of all comments made by reporter in ReporterColor color
- *
- */</span>
-BZPage.<span class="reserved">prototype</span>.checkComments = <span class="reserved">function</span> checkComments () {
- var that = <span class="reserved">this</span>;
- <span class="reserved">this</span>.commentsWalker(<span class="reserved">function</span>(x) {
- var email = x.getElementsByClassName(<span class="literal">"vcard"</span>)[0]
- .getElementsByTagName(<span class="literal">"a"</span>)[0].textContent;
- <span class="reserved">if</span> (new RegExp(that.reporter).test(email)) {
- x.style.backgroundColor = that.ReporterColor.toString();
- }
- });
-};
-
-BZPage.<span class="reserved">prototype</span>.collectComments = <span class="reserved">function</span> collectComments () {
- var outStr = <span class="literal">""</span>;
- <span class="reserved">this</span>.commentsWalker(<span class="reserved">function</span>(x) {
- outStr += x.getElementsByTagName(<span class="literal">"pre"</span>)[0].textContent + <span class="literal">"\n"</span>;
- });
- <span class="reserved">return</span> outStr.trim();
-};
-
-
-<span class="comment">/**
- * Select option with given label on the &lt;SELECT&gt; element with given id.
- *
- * Also execute change HTMLEvent, so that the form behaves accordingly.
- *
- * <span class="attrib">@param</span> id
- * <span class="attrib">@param</span> label
- * <span class="attrib">@return</span> none
- *
- * FIXME bugzilla-comments version has this signature:
- * selectOption = function selectOption(select, value) {
- var doc = select[0].ownerDocument;
- select.val(value);
- */</span>
-BZPage.<span class="reserved">prototype</span>.selectOption = <span class="reserved">function</span> selectOption (id, label) {
- var sel = <span class="reserved">this</span>.doc.getElementById(id);
- sel.value = label;
- var intEvent = <span class="reserved">this</span>.doc.createEvent(<span class="literal">"HTMLEvents"</span>);
- intEvent.initEvent(<span class="literal">"change"</span>, true, true);
- sel.dispatchEvent(intEvent);
-};
-
-<span class="comment">/**
- * Send mouse click to the specified element
- *
- * <span class="attrib">@param</span> String ID of the element to send mouseclick to
- * <span class="attrib">@return</span> None
- */</span>
-BZPage.<span class="reserved">prototype</span>.clickMouse = <span class="reserved">function</span> clickMouse (targetID) {
- var localEvent = <span class="reserved">this</span>.doc.createEvent(<span class="literal">"MouseEvents"</span>);
- localEvent.initMouseEvent(<span class="literal">"click"</span>, true, true, <span class="reserved">this</span>.doc.defaultView, 0, 0,
- 0, 0, 0, false, false, false, false, 0, null);
- <span class="reserved">this</span>.doc.getElementById(targetID).dispatchEvent(localEvent);
-};
-
-<span class="comment">/**
- * Add object to the text box (comment box or status whiteboard)
- *
- * <span class="attrib">@param</span> id String with the id of the element
- * <span class="attrib">@param</span> stuff String/Array to be added to the comment box
- *
- * <span class="attrib">@return</span> none
- */</span>
-BZPage.<span class="reserved">prototype</span>.addStuffToTextBox = <span class="reserved">function</span> addStuffToTextBox (id, stuff) {
- var textBox = <span class="reserved">this</span>.doc.getElementById(id);
- <span class="reserved">if</span> (textBox.tagName.toLowerCase() === <span class="literal">"textarea"</span>) {
- stuff = textBox.value ? <span class="literal">"\n\n"</span> + stuff : stuff;
- textBox.value += stuff;
- } <span class="reserved">else</span> {
- textBox.value = util.addCSVValue(textBox.value,stuff);
- }
-};
-
-<span class="comment">/**
- * Remove a keyword from the element if it is there
- *
- * <span class="attrib">@param</span> id String with the id of the element
- * <span class="attrib">@param</span> stuff String/Array with keyword(s) to be removed
- */</span>
-BZPage.<span class="reserved">prototype</span>.removeStuffFromTextBox = <span class="reserved">function</span> removeStuffFromTextBox (id, stuff) {
- var changedElement = <span class="reserved">this</span>.getElementById(id);
- changedElement.value = util.removeCSVValue(changedElement.value,stuff);
-};
-
-<span class="comment">/**
- * generalized hasKeyword ... search in the value of the box with given id
- *
- * <span class="attrib">@param</span> id String with ID of the element we want to check
- * <span class="attrib">@param</span> str String to be searched for
- * <span class="attrib">@return</span> Boolean found?
- */</span>
-BZPage.<span class="reserved">prototype</span>.idContainsWord = <span class="reserved">function</span> idContainsWord (id, str) {
- var kwd = <span class="literal">""</span>;
- try {
- kwd = <span class="reserved">this</span>.doc.getElementById(id).value;
- } catch (e) {
- <span class="comment">// For those who don't have particular element at all or if it is empty</span>
- <span class="reserved">return</span> false;
- }
- <span class="reserved">return</span> (kwd.trim().indexOf(str) !== -1);
-};
-
-<span class="comment">/**
- * Check for the presence of a keyword
- *
- * <span class="attrib">@param</span> str String with the keyword
- * <span class="attrib">@return</span> Boolean
- */</span>
-BZPage.<span class="reserved">prototype</span>.hasKeyword = <span class="reserved">function</span> hasKeyword (str) {
- <span class="reserved">return</span> (<span class="reserved">this</span>.idContainsWord(<span class="literal">'keywords'</span>, str));
-};
-
-<span class="comment">/**
- *
- */</span>
-BZPage.<span class="reserved">prototype</span>.getOptionValue = <span class="reserved">function</span> getOptionValue (id) {
- <span class="comment">// Some special bugs don't have version for example</span>
- var element = <span class="reserved">this</span>.doc.getElementById(id);
- <span class="reserved">if</span> (element) {
- <span class="reserved">return</span> element.value;
- } <span class="reserved">else</span> {
- console.error(<span class="literal">"Failed to find element with id = "</span> + id);
- <span class="reserved">return</span> <span class="literal">"#NA"</span>;
- }
-};
-
-<span class="comment">/**
- * Set the bug to NEEDINFO state
- *
- * Working function.
- * <span class="attrib">@return</span> none
- * <span class="attrib">@todo</span> TODO we may extend this to general setNeedinfo function
- * with parameter [reporter|assignee|general-email-address]
- */</span>
-BZPage.<span class="reserved">prototype</span>.setNeedinfoReporter = <span class="reserved">function</span> setNeedinfoReporter () {
- <span class="reserved">this</span>.clickMouse(<span class="literal">"needinfo"</span>);
- <span class="reserved">this</span>.selectOption(<span class="literal">"needinfo_role"</span>, <span class="literal">"reporter"</span>);
-};
-
-<span class="comment">/**
- *
- */</span>
-BZPage.<span class="reserved">prototype</span>.getOwner = <span class="reserved">function</span> getOwner () {
- var priorityParent = <span class="reserved">this</span>.doc.querySelector(<span class="literal">"label[for~='target_milestone']"</span>)
- .parentNode.parentNode.parentNode;
- var assigneeAElement = priorityParent.querySelector(<span class="literal">"tr:nth-of-type(1) a.email"</span>);
- var assgineeHref = decodeURI(assigneeAElement.getAttribute(<span class="literal">"href"</span>));
- var email = assgineeHref.split(<span class="literal">":"</span>)[1];
- <span class="reserved">return</span> email;
-};
-
-<span class="comment">/**
- * Get login of the currently logged-in user.
- *
- * <span class="attrib">@return</span> String with the login name of the currently logged-in user
- */</span>
-BZPage.<span class="reserved">prototype</span>.getLogin = <span class="reserved">function</span> getLogin () {
- var lastLIElement = <span class="reserved">this</span>.doc.querySelector(<span class="literal">"#header ul.links li:last-of-type"</span>);
- var loginArr = lastLIElement.textContent.split(<span class="literal">"\n"</span>);
- var loginStr = loginArr[loginArr.length - 1].trim();
- <span class="reserved">return</span> loginStr;
-};
-
-<span class="comment">/**
- * Return maintainer which is per default by bugzilla
- * (which is not necessarily the one who is default maintainer per component)
- *
- * <span class="attrib">@return</span> String with the maintainer's email address
- */</span>
-BZPage.<span class="reserved">prototype</span>.getDefaultBugzillaMaintainer = <span class="reserved">function</span> getDefaultBugzillaMaintainer (component) {
- var address = util.filterByRegexp(<span class="reserved">this</span>.defBugzillaMaintainerArr, component);
- <span class="reserved">return</span> address;
-};
-
-<span class="comment">/**
- * collect the list of attachments in a structured format
- *
- * <span class="attrib">@return</span> Array of arrays, one for each attachments;
- * each record has string name of the attachment, integer its id number,
- * string of MIME type, integer of size in kilobytes, and the whole
- * element itself
- */</span>
-BZPage.<span class="reserved">prototype</span>.getAttachments = <span class="reserved">function</span> getAttachments () {
- var outAtts = [];
- var atts = <span class="reserved">this</span>.doc.getElementById(<span class="literal">"attachment_table"</span>)
- .getElementsByTagName(<span class="literal">"tr"</span>);
- <span class="reserved">for</span> ( var i = 1, ii = atts.length - 1; i &lt; ii; i++) {
- outAtts.push(<span class="reserved">this</span>.parseAttachmentLine(atts[i]));
- }
- <span class="reserved">return</span> outAtts;
-};
-
-<span class="comment">/**
- * returns password from the current storage, or if there isn't
- * one, then it will ask user for it.
- *
- * <span class="attrib">@return</span> String with the password
- */</span>
-BZPage.<span class="reserved">prototype</span>.getPassword = <span class="reserved">function</span> getPassword () {
- <span class="reserved">if</span> (preferences.isSet(<span class="literal">"BZpassword"</span>)) {
- <span class="reserved">return</span> preferences.get(<span class="literal">"BZpassword"</span>,undefined);
- } <span class="reserved">else</span> {
- var passwordText = util.getPassword();
- <span class="reserved">if</span> (passwordText) {
- preferences.set(<span class="literal">"BZpassword"</span>, passwordText);
- }
- }
-};
-
-<span class="comment">/**
- *
- */</span>
-BZPage.<span class="reserved">prototype</span>.setUpLogging = <span class="reserved">function</span> setUpLogging () {
- <span class="comment">// Protection against double-call</span>
- <span class="reserved">if</span> (<span class="reserved">this</span>.doc.getElementById(<span class="literal">"generateTSButton"</span>)) {
- console.log(<span class="literal">"Logging has been already set up!"</span>);
- <span class="reserved">return</span> ;
- }
-
- <span class="comment">// For adding additional buttons to the top toolbar</span>
- var additionalButtons = <span class="reserved">this</span>.doc.querySelector(<span class="literal">"#bugzilla-body *.related_actions"</span>);
- var that = <span class="reserved">this</span>;
-
- <span class="comment">// logging all submits for timesheet</span>
- <span class="comment">// FIXME we should merge in functionality of RHBugzillaPage.submitCallback</span>
- <span class="comment">// and actually make it working</span>
- <span class="comment">// Maybe rewriting whole offline capability into a separate object?</span>
- <span class="reserved">if</span> (!<span class="reserved">this</span>.submitHandlerInstalled) {
- console.log(<span class="literal">"Installing submit callback!"</span>);
- <span class="reserved">this</span>.doc.forms.namedItem(<span class="literal">"changeform"</span>).addEventListener(<span class="literal">"submit"</span>,<span class="reserved">function</span> (evt) {
- console.log(<span class="literal">"Submit callback!"</span>);
-
- var resp = that.log.addLogRecord(that);
- <span class="reserved">if</span> (resp === null) {
- console.log(<span class="literal">"Avoiding submitting!"</span>);
- <span class="comment">// FIXME doesn't work ... still submitting'</span>
- evt.stopPropagation();
- evt.preventDefault();
- }
- }, false);
- <span class="reserved">this</span>.submitHandlerInstalled = true;
- }
-
- var generateTimeSheetUI = <span class="reserved">this</span>.doc.createElement(<span class="literal">"li"</span>);
- generateTimeSheetUI.innerHTML = <span class="literal">"\u00A0-\u00A0&lt;a href='#' id='generateTSButton'&gt;"</span>
- + <span class="literal">"Generate timesheet&lt;/a&gt;"</span>;
- additionalButtons.appendChild(generateTimeSheetUI);
- <span class="reserved">this</span>.doc.getElementById(<span class="literal">"generateTSButton"</span>).addEventListener(
- <span class="literal">"click"</span>,
- <span class="reserved">function</span>(evt) {
- that.log.createBlankPage.call(that.log, <span class="literal">"TimeSheet"</span>,
- that.log.generateTimeSheet);
- evt.stopPropagation();
- evt.preventDefault();
- }, false);
-
- var clearLogsUI = <span class="reserved">this</span>.doc.createElement(<span class="literal">"li"</span>);
- clearLogsUI.innerHTML = <span class="literal">"\u00A0-\u00A0&lt;a href='#' id='clearLogs'&gt;"</span>
- + <span class="literal">"Clear logs&lt;/a&gt;"</span>;
- additionalButtons.appendChild(clearLogsUI);
- var clearLogAElem = <span class="reserved">this</span>.doc.getElementById(<span class="literal">"clearLogs"</span>);
- clearLogAElem.addEventListener(<span class="literal">"click"</span>, <span class="reserved">function</span>() {
- that.log.store = {};
- <span class="reserved">this</span>.style.color = that.log.EmptyLogsColor;
- <span class="reserved">this</span>.style.fontWeight = <span class="literal">"normal"</span>;
- console.log(<span class="literal">"this.store wiped out!"</span>);
- }, false);
-
- <span class="reserved">if</span> (<span class="reserved">this</span>.log.store.length &gt; 0) {
- clearLogAElem.style.color = <span class="reserved">this</span>.log.FullLogsColor;
- clearLogAElem.style.fontWeight = <span class="literal">"bolder"</span>;
- } <span class="reserved">else</span> {
- clearLogAElem.style.color = <span class="reserved">this</span>.log.EmptyLogsColor;
- clearLogAElem.style.fontWeight = <span class="literal">"normal"</span>;
- }
-};
-
-<span class="comment">/**
- * adds a person to the CC list, if it isn't already there
- *
- * <span class="attrib">@param</span> who String with email address or "self" if the current user
- * of the bugzilla should be added
- */</span>
-BZPage.<span class="reserved">prototype</span>.addToCCList = <span class="reserved">function</span> addToCCList (who) {
- <span class="reserved">if</span> (!who) {
- <span class="reserved">return</span> ;
- }
- <span class="reserved">if</span> (who === <span class="literal">"self"</span>) {
- <span class="reserved">this</span>.doc.getElementById(<span class="literal">"addselfcc"</span>).checked = true;
- } <span class="reserved">else</span> {
- <span class="reserved">this</span>.clickMouse(<span class="literal">"cc_edit_area_showhide"</span>);
- <span class="reserved">if</span> (!util.isInList(who, <span class="reserved">this</span>.CCList)) {
- <span class="reserved">this</span>.addStuffToTextBox(<span class="literal">"newcc"</span>,who);
- }
- }
-};
-
-<span class="comment">/**
- * a collect a list of emails on CC list
- *
- * <span class="attrib">@return</span> Array with email addresses as Strings.
- */</span>
-BZPage.<span class="reserved">prototype</span>.getCCList = <span class="reserved">function</span> getCCList () {
- var CCListSelect = <span class="reserved">this</span>.doc.getElementById(<span class="literal">"cc"</span>);
- outCCList = [];
- <span class="reserved">if</span> (CCListSelect) {
- outCCList = Array.map(CCListSelect.options, <span class="reserved">function</span>(item) {
- <span class="reserved">return</span> item.value;
- });
- }
- <span class="reserved">return</span> outCCList;
-};
-
-<span class="comment">// exports.BZPage = apiUtils.publicConstructor(BZPage);</span>
-exports.BZPage = BZPage;</pre>
- <hr>
-
-
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-<table border="0" width="100%" cellpadding="1" cellspacing="0">
-<tr>
-<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
-<a name="navbar_top_firstrow"><!-- --></a>
-<table border="0" cellpadding="0" cellspacing="3">
- <tr align="center" valign="top">
-
-
- <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a>&nbsp;</td>
- <td bgcolor="#FFFFFF" class="NavBarCell1Rev"> &nbsp;<font class="NavBarFont1Rev"><b>File</b></font>&nbsp;</td>
-
-
- <td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font>&nbsp;</td>
- <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a>&nbsp;</td>
- <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a>&nbsp;</td>
- <td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
- </tr>
-</table>
-</td>
-<td bgcolor="#EEEEFF" align="right" valign="top"><em>
-<b></b></em>
-</td>
-</tr>
-
-<tr>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</font></td>
-<td bgcolor="white" class="NavBarCell2"><font size="-2">
- <a href="index.html" target="_top"><b>FRAMES</b></a> &nbsp;
-&nbsp;<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
-&nbsp;&nbsp;
-<script>
- <!--
- if(window==top) {
- document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
- }
- //-->
-</script>
-<noscript>
-<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
-</noscript>
-</font></td>
-</tr>
-</table>
-<!-- =========== END OF NAVBAR =========== -->
-
-<hr>
-<font size="-1">
-
-</font>
-<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Wed Jun 23 09:33:14 2010</div>
-</body>
-</html>