From 5c849ad08765322010064f482fd2dea11482c114 Mon Sep 17 00:00:00 2001 From: Sebastin Santy Date: Fri, 18 Aug 2017 02:53:01 +0530 Subject: Bug 1383500 - Allow giving a default product in the URL in new-bug --- extensions/BugModal/web/new_bug.js | 110 ++++++++++++++++++------------ template/en/default/bug/new_bug.html.tmpl | 5 +- 2 files changed, 68 insertions(+), 47 deletions(-) diff --git a/extensions/BugModal/web/new_bug.js b/extensions/BugModal/web/new_bug.js index 87a43eee7..7298b1d20 100644 --- a/extensions/BugModal/web/new_bug.js +++ b/extensions/BugModal/web/new_bug.js @@ -1,30 +1,77 @@ var initial = {} var comp_desc = {} +var product_name = ''; + +var component_load = function(product) { + $('#product-throbber').show(); + $('#component').attr('disabled', true); + bugzilla_ajax( + { + url: 'rest/bug_modal/product_info?product=' + encodeURIComponent(product) + }, + function(data) { + $('#product-throbber').hide(); + $('#component').attr('disabled', false); + $('#comp_desc').text('Select a component to read its description.'); + var selectize = $("#component")[0].selectize; + selectize.clear(); + selectize.clearOptions(); + selectize.load(function(callback) { + callback(data.components) + }); + + for (var i in data.components) + comp_desc[data.components[i]["name"]] = data.components[i]["description"]; + + selectize = $("#version")[0].selectize; + selectize.clear(); + selectize.clearOptions(); + selectize.load(function(callback) { + callback(data.versions); + }); + }, + function() { + alert("Network issues. Please refresh the page and try again"); + } + ); +} $(document).ready(function() { + var product_name = window.location.hash? window.location.hash.substr(1) : null; bugzilla_ajax( { url: 'rest/bug_modal/initial_field_values' }, function(data) { initial = data + if (product_name) { + for (product in initial.products) { + if (initial.products[product].name.toLowerCase() === product_name.toLowerCase()) { + $("#product_wrap").html('

Hello

') + $("#product").val(initial.products[product].name); + $("#product_name_heading").text(initial.products[product].name); + component_load(initial.products[product].name); + return; + } + } + } + var $product_sel = $("#product").selectize({ + valueField: 'name', + labelField: 'name', + placeholder: 'Product', + searchField: 'name', + options: [], + preload: true, + create: false, + load: function(query, callback) { + callback(initial.products); + } + }); }, function() { alert("Network issues. Please refresh the page and try again"); } ); - var product_sel = $("#product").selectize({ - valueField: 'name', - labelField: 'name', - placeholder: 'Product', - searchField: 'name', - options: [], - preload: true, - create: false, - load: function(query, callback) { - callback(initial.products); - } - }); var component_sel = $("#component").selectize({ valueField: 'name', labelField: 'name', @@ -54,39 +101,9 @@ $(document).ready(function() { callback(initial.keywords); } }); - - product_sel.on("change", function () { - $('#product-throbber').show(); - $('#component').attr('disabled', true); - bugzilla_ajax( - { - url: 'rest/bug_modal/product_info?product=' + encodeURIComponent($('#product').val()) - }, - function(data) { - $('#product-throbber').hide(); - $('#component').attr('disabled', false); - $('#comp_desc').text('Select a component to read its description.'); - var selectize = $("#component")[0].selectize; - selectize.clear(); - selectize.clearOptions(); - selectize.load(function(callback) { - callback(data.components) - }); - - for (var i in data.components) - comp_desc[data.components[i]["name"]] = data.components[i]["description"]; - - selectize = $("#version")[0].selectize; - selectize.clear(); - selectize.clearOptions(); - selectize.load(function(callback) { - callback(data.versions); - }); - }, - function() { - alert("Network issues. Please refresh the page and try again"); - } - ); + + $("#product").on("change", function () { + component_load($("#product").val()); }); component_sel.on("change", function () { @@ -132,4 +149,7 @@ $(document).ready(function() { $(this).css("background-color", "#eee"); }); $('#comment-edit-tab').click(); + window.onhashchange = function() { + location.reload(); + } }); diff --git a/template/en/default/bug/new_bug.html.tmpl b/template/en/default/bug/new_bug.html.tmpl index d064398c5..bed0c5578 100644 --- a/template/en/default/bug/new_bug.html.tmpl +++ b/template/en/default/bug/new_bug.html.tmpl @@ -75,7 +75,7 @@ [% can_edit_product = bug.check_can_change_field("product", 0, 1) %] [% filtered_product = bug.product_obj.name FILTER uri %] [% filtered_component = bug.component_obj.name FILTER uri %] - +
[% WRAPPER bug_modal/field.html.tmpl field = bug_fields.product field_type = constants.FIELD_TYPE_SINGLE_SELECT @@ -83,6 +83,7 @@ editable = 1 help = "describecomponents.cgi?product=$filtered_product" %] + @@ -95,7 +96,7 @@
[% END %] - + [% WRAPPER bug_modal/field.html.tmpl field = bug_fields.product field_type = constants.FIELD_TYPE_SINGLE_SELECT -- cgit v1.2.3-24-g4f1b