summaryrefslogtreecommitdiffstats
path: root/extensions/MyDashboard
diff options
context:
space:
mode:
authorDave Lawrence <dlawrence@mozilla.com>2012-08-16 22:26:46 +0200
committerDave Lawrence <dlawrence@mozilla.com>2012-08-16 22:26:46 +0200
commit2b11e4ce9253bf543bde87c16bd9b6d90446cff6 (patch)
tree8eefcc04c9273e8cd170c0b820395a66a8aa6b6e /extensions/MyDashboard
parentae3016495ffde3e71d879109e35437dbeff0747f (diff)
downloadbugzilla-2b11e4ce9253bf543bde87c16bd9b6d90446cff6.tar.gz
bugzilla-2b11e4ce9253bf543bde87c16bd9b6d90446cff6.tar.xz
Dashboard improvements
Diffstat (limited to 'extensions/MyDashboard')
-rw-r--r--extensions/MyDashboard/Extension.pm12
-rw-r--r--extensions/MyDashboard/template/en/default/pages/mydashboard.html.tmpl27
-rw-r--r--extensions/MyDashboard/web/js/mydashboard.js48
3 files changed, 50 insertions, 37 deletions
diff --git a/extensions/MyDashboard/Extension.pm b/extensions/MyDashboard/Extension.pm
index d1bbc17f1..e5f022dec 100644
--- a/extensions/MyDashboard/Extension.pm
+++ b/extensions/MyDashboard/Extension.pm
@@ -187,6 +187,18 @@ sub _standard_saved_queries {
### Saved query definitions
### These are enabled through the userprefs.cgi UI
+
+ if ($user->showmybugslink) {
+ my $query = Bugzilla->params->{mybugstemplate};
+ $query =~ s/%userid%/$user->login/;
+ push(@query_defs, {
+ name => 'mybugs',
+ heading => "My Bugs",
+ saved => 1,
+ params => $query,
+ });
+ }
+
foreach my $q (@{$user->queries}) {
next if !$q->in_mydashboard;
push(@query_defs, { name => $q->name,
diff --git a/extensions/MyDashboard/template/en/default/pages/mydashboard.html.tmpl b/extensions/MyDashboard/template/en/default/pages/mydashboard.html.tmpl
index 50f31550e..ade7002be 100644
--- a/extensions/MyDashboard/template/en/default/pages/mydashboard.html.tmpl
+++ b/extensions/MyDashboard/template/en/default/pages/mydashboard.html.tmpl
@@ -17,22 +17,22 @@
yui = [ "datatable", "paginator", "autocomplete" ]
javascript_urls = [ "extensions/MyDashboard/web/js/mydashboard.js",
"extensions/MyDashboard/web/js/prod_comp_search.js" ]
- onload = "showQuerySection();"
+ onload = "MD.showQuerySection();"
%]
<script type="text/javascript">
<!--
[%# Set up severities list for proper sorting %]
- var severities = new Array();
+ MD.severities = new Array();
[% sort_count = 0 %]
[% FOREACH s = severities %]
- severities['[% s FILTER js %]'] = [% sort_count FILTER js %];
+ MD.severities['[% s FILTER js %]'] = [% sort_count FILTER js %];
[% sort_count = sort_count + 1 %]
[% END %]
- var full_query_list = [];
+ MD.full_query_list = [];
[% FOREACH r = results %]
- full_query_list.push('[% r.name FILTER js %]');
+ MD.full_query_list.push('[% r.name FILTER js %]');
[% END %]
-->
</script>
@@ -49,7 +49,7 @@
<div id="left">
<div id="query_list_container">
Choose query:
- <select id="query" name="query" onchange="showQuerySection();">
+ <select id="query" name="query" onchange="MD.showQuerySection();">
<optgroup id="standard_queries" label="Standard">
[% FOREACH r = standard_results %]
<option value="[% r.name FILTER html %]">[% r.heading FILTER html %]</option>
@@ -120,9 +120,8 @@
</div>
<script>
<!--
- addStatListener("requestee_table_container", "requestee_table", requestee_column_defs, requestee_fields, {
- paginator: new YAHOO.widget.Paginator({ rowsPerPage: 25, alwaysVisible: false })
- });
+ MD.addStatListener("requestee_table_container", "requestee_table",
+ MD.requestee_column_defs, MD.requestee_fields, MD.options);
-->
</script>
@@ -166,9 +165,8 @@
</div>
<script>
<!--
- addStatListener("requester_table_container", "requester_table", requester_column_defs, requester_fields, {
- paginator: new YAHOO.widget.Paginator({ rowsPerPage: 25, alwaysVisible: false })
- });
+ MD.addStatListener("requester_table_container", "requester_table",
+ MD.requester_column_defs, MD.requester_fields, MD.options);
-->
</script>
</div>
@@ -213,9 +211,8 @@
</div>
<script>
<!--
- addStatListener("[% r.name FILTER js %]_table_container", "[% r.name FILTER js %]_table", query_column_defs, query_fields, {
- paginator: new YAHOO.widget.Paginator({ rowsPerPage: 25, alwaysVisible: false })
- });
+ MD.addStatListener("[% r.name FILTER js %]_table_container", "[% r.name FILTER js %]_table",
+ MD.query_column_defs, MD.query_fields, MD.options);
-->
</script>
</div>
diff --git a/extensions/MyDashboard/web/js/mydashboard.js b/extensions/MyDashboard/web/js/mydashboard.js
index 59b198cff..25529d8c8 100644
--- a/extensions/MyDashboard/web/js/mydashboard.js
+++ b/extensions/MyDashboard/web/js/mydashboard.js
@@ -6,7 +6,11 @@
* defined by the Mozilla Public License, v. 2.0.
*/
-var showQuerySection = function () {
+YAHOO.namespace('MyDashboard');
+
+var MD = YAHOO.MyDashboard;
+
+MD.showQuerySection = function () {
var query_select = YAHOO.util.Dom.get('query');
var selected_value = '';
for (var i = 0, l = query_select.options.length; i < l; i++) {
@@ -14,9 +18,9 @@ var showQuerySection = function () {
selected_value = query_select.options[i].value;
}
}
- for (var i = 0, l = full_query_list.length; i < l; i++) {
- var query = full_query_list[i];
- if (selected_value == full_query_list[i]) {
+ for (var i = 0, l = MD.full_query_list.length; i < l; i++) {
+ var query = MD.full_query_list[i];
+ if (selected_value == MD.full_query_list[i]) {
YAHOO.util.Dom.removeClass(query + '_container', 'bz_default_hidden');
}
else {
@@ -25,63 +29,63 @@ var showQuerySection = function () {
}
}
-var query_column_defs = [
- { key:"id", label:"ID", sortable:true, sortOptions:{ sortFunction:sortBugIdLinks } },
+MD.query_column_defs = [
+ { key:"id", label:"ID", sortable:true, sortOptions:{ sortFunction: MD.sortBugIdLinks } },
{ key:"updated", label:"Updated", sortable:true },
{ key:"bug_status", label:"Status", sortable:true },
{ key:"summary", label:"Summary", sortable:true },
];
-var query_fields = [
+MD.query_fields = [
{ key:"id" },
{ key:"updated" },
{ key:"bug_status" },
{ key:"summary" }
];
-var requestee_column_defs = [
+MD.requestee_column_defs = [
{ key:"requester", label:"Requester", sortable:true },
{ key:"flag", label:"Flag", sortable:true },
{ key:"bug", label:"Bug", sortable:true },
{ key:"created", label:"Created", sortable:true }
];
-var requestee_fields = [
+MD.requestee_fields = [
{ key:"requester" },
{ key:"flag" },
{ key:"bug" },
{ key:"created" }
];
-var requester_column_defs = [
+MD.requester_column_defs = [
{ key:"requestee", label:"Requestee", sortable:true },
{ key:"flag", label:"Flag", sortable:true },
{ key:"bug", label:"Bug", sortable:true },
{ key:"created", label:"Created", sortable:true }
];
-var requester_fields = [
+MD.requester_fields = [
{ key:"requestee" },
{ key:"flag" },
{ key:"bug" },
{ key:"created" }
];
-function addStatListener (div_name, table_name, column_defs, fields, options) {
+MD.addStatListener = function (div_name, table_name, column_defs, fields, options) {
YAHOO.util.Event.addListener(window, "load", function() {
YAHOO.example.StatsFromMarkup = new function() {
this.myDataSource = new YAHOO.util.DataSource(YAHOO.util.Dom.get(table_name));
this.myDataSource.responseType = YAHOO.util.DataSource.TYPE_HTMLTABLE;
this.myDataSource.responseSchema = { fields:fields };
this.myDataTable = new YAHOO.widget.DataTable(div_name, column_defs, this.myDataSource, options);
- this.myDataTable.subscribe("rowMouseoverEvent", this.myDataTable.onEventHighlightRow);
- this.myDataTable.subscribe("rowMouseoutEvent", this.myDataTable.onEventUnhighlightRow);
+ this.myDataTable.subscribe("rowMouseoverEvent", this.myDataTable.onEventHighlightRow);
+ this.myDataTable.subscribe("rowMouseoutEvent", this.myDataTable.onEventUnhighlightRow);
};
});
}
// Custom sort handler to sort by bug id inside an anchor tag
-var sortBugIdLinks = function(a, b, desc) {
+MD.sortBugIdLinks = function (a, b, desc) {
// Deal with empty values
if (!YAHOO.lang.isValue(a)) {
return (!YAHOO.lang.isValue(b)) ? 0 : 1;
@@ -113,17 +117,17 @@ var sortBugIdLinks = function(a, b, desc) {
}
// Custom sort handler for bug severities
-var sortBugSeverity = function(a, b, desc) {
+MD.sortBugSeverity = function (a, b, desc) {
// Deal with empty values
if (!YAHOO.lang.isValue(a)) {
- return (!YAHOO.lang.isValue(b)) ? 0 : 1;
+ return (!YAHOO.lang.isValue(b)) ? 0 : 1;
}
else if(!YAHOO.lang.isValue(b)) {
return -1;
}
- var new_a = new Number(severities[YAHOO.lang.trim(a.getData('bug_severity'))]);
- var new_b = new Number(severities[YAHOO.lang.trim(b.getData('bug_severity'))]);
+ var new_a = new Number(MD.severities[YAHOO.lang.trim(a.getData('bug_severity'))]);
+ var new_b = new Number(MD.severities[YAHOO.lang.trim(b.getData('bug_severity'))]);
if (!desc) {
return YAHOO.util.Sort.compare(new_a, new_b);
@@ -134,7 +138,7 @@ var sortBugSeverity = function(a, b, desc) {
}
// Custom sort handler for bug priorities
-var sortBugPriority = function(a, b, desc) {
+MD.sortBugPriority = function (a, b, desc) {
// Deal with empty values
if (!YAHOO.lang.isValue(a)) {
return (!YAHOO.lang.isValue(b)) ? 0 : 1;
@@ -143,8 +147,8 @@ var sortBugPriority = function(a, b, desc) {
return -1;
}
- var new_a = new Number(priorities[YAHOO.lang.trim(a.getData('priority'))]);
- var new_b = new Number(priorities[YAHOO.lang.trim(b.getData('priority'))]);
+ var new_a = new Number(MD.priorities[YAHOO.lang.trim(a.getData('priority'))]);
+ var new_b = new Number(MD.priorities[YAHOO.lang.trim(b.getData('priority'))]);
if (!desc) {
return YAHOO.util.Sort.compare(new_a, new_b);