From 1e95913315c21a2ce181007d66294c5f1f975038 Mon Sep 17 00:00:00 2001 From: Dave Lawrence Date: Fri, 21 Dec 2012 17:13:17 -0500 Subject: - Converted several pages to use the new ProdCompSearch extension - Other MyDashboard improvements/fixes --- extensions/MyDashboard/web/js/query.js | 65 ++++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 27 deletions(-) (limited to 'extensions/MyDashboard/web/js/query.js') 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( '' + e.response.results.length + ' bugs found'); - 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) { -- cgit v1.2.3-24-g4f1b