summaryrefslogtreecommitdiffstats
path: root/extensions/MyDashboard/web/js/query.js
diff options
context:
space:
mode:
authorDave Lawrence <dlawrence@mozilla.com>2012-12-21 23:13:17 +0100
committerDave Lawrence <dlawrence@mozilla.com>2012-12-21 23:13:17 +0100
commit1e95913315c21a2ce181007d66294c5f1f975038 (patch)
treebd8424a67bed0a121478603999d44ee3cf63ce44 /extensions/MyDashboard/web/js/query.js
parent63ed510dfa9ac705d16df4344da5e41fcab6137e (diff)
downloadbugzilla-1e95913315c21a2ce181007d66294c5f1f975038.tar.gz
bugzilla-1e95913315c21a2ce181007d66294c5f1f975038.tar.xz
- Converted several pages to use the new ProdCompSearch extension
- Other MyDashboard improvements/fixes
Diffstat (limited to 'extensions/MyDashboard/web/js/query.js')
-rw-r--r--extensions/MyDashboard/web/js/query.js65
1 files changed, 38 insertions, 27 deletions
diff --git a/extensions/MyDashboard/web/js/query.js b/extensions/MyDashboard/web/js/query.js
index b9248bf6b..746717e75 100644
--- a/extensions/MyDashboard/web/js/query.js
+++ b/extensions/MyDashboard/web/js/query.js
@@ -10,12 +10,28 @@
YUI({
base: 'js/yui3/',
combine: false
-}).use("node", "datatable", "datatable-sort", "json-stringify",
- "datatable-datasource", "datasource-io", "datasource-jsonschema",
- "gallery-paginator-view", "gallery-datatable-paginator", function (Y) {
+}).use("node", "datatable", "datatable-sort", "datatable-message", "json-stringify",
+ "datatable-datasource", "datasource-io", "datasource-jsonschema", "cookie", function (Y) {
var counter = 0,
dataSource = null,
- dataTable = null;
+ dataTable = null,
+ default_query = "assignedbugs";
+
+ // Grab last used query name from cookie or use default
+ var query_cookie = Y.Cookie.get("my_dashboard_query");
+ if (query_cookie) {
+ var cookie_value_found = 0;
+ Y.one("#query").get("options").each( function() {
+ if (this.get("value") == query_cookie) {
+ this.set('selected', true);
+ default_query = query_cookie;
+ cookie_value_found = 1;
+ }
+ });
+ if (!cookie_value_found) {
+ Y.Cookie.set("my_dashboard_query", "");
+ }
+ }
var updateQueryTable = function(query_name) {
if (!query_name) return;
@@ -30,9 +46,7 @@ YUI({
Y.one("#query_bugs_found").setHTML(
'<a href="buglist.cgi?' + e.response.meta.buffer +
'">' + e.response.results.length + ' bugs found</a>');
- Y.one("#query_container .status").addClass('bz_default_hidden');
dataTable.set('data', e.response.results);
- dataTable.render("#query_table");
}
},
failure: function(o) {
@@ -50,7 +64,9 @@ YUI({
var stringified = Y.JSON.stringify(json_object);
- Y.one("#query_container .status").removeClass('bz_default_hidden');
+ dataTable.set('data', []);
+ dataTable.render("#query_table");
+ dataTable.showMessage('loadingMessage');
dataSource.sendRequest({
request: stringified,
@@ -63,6 +79,19 @@ YUI({
};
dataSource = new Y.DataSource.IO({ source: 'jsonrpc.cgi' });
+
+ dataSource.plug(Y.Plugin.DataSourceJSONSchema, {
+ schema: {
+ resultListLocator: "result.result.bugs",
+ resultFields: ["bug_id", "changeddate", "bug_status", "short_desc"],
+ metaFields: {
+ description: "result.result.description",
+ heading: "result.result.heading",
+ buffer: "result.result.buffer"
+ }
+ }
+ });
+
dataTable = new Y.DataTable({
columns: [
{ key:"bug_id", label:"Bug", sortable:true,
@@ -71,38 +100,20 @@ YUI({
{ key:"bug_status", label:"Status", sortable:true },
{ key:"short_desc", label:"Summary", sortable:true },
],
- strings: {
- emptyMessage: 'No query data found.',
- },
- paginator: new Y.PaginatorView({
- model: new Y.PaginatorModel({ itemsPerPage: 25 }),
- container: 'query_pagination_top',
- })
});
dataTable.plug(Y.Plugin.DataTableSort);
dataTable.plug(Y.Plugin.DataTableDataSource, {
datasource: dataSource,
- initialRequest: updateQueryTable("assignedbugs"),
- });
-
- dataSource.plug(Y.Plugin.DataSourceJSONSchema, {
- schema: {
- resultListLocator: "result.result.bugs",
- resultFields: ["bug_id", "changeddate", "bug_status", "short_desc"],
- metaFields: {
- description: "result.result.description",
- heading: "result.result.heading",
- buffer: "result.result.buffer"
- }
- }
+ initialRequest: updateQueryTable(default_query),
});
Y.one('#query').on('change', function(e) {
var index = e.target.get('selectedIndex');
var selected_value = e.target.get("options").item(index).getAttribute('value');
updateQueryTable(selected_value);
+ Y.Cookie.set("my_dashboard_query", selected_value, { expires: new Date("January 12, 2025") });
});
Y.one('#query_refresh').on('click', function(e) {