From d6c10b6532b45b6f59ec3777fb49d7184db68384 Mon Sep 17 00:00:00 2001 From: Sebastin Santy Date: Tue, 18 Jul 2017 21:35:42 +0530 Subject: Bug 1381749 - Add keywords to new-bug --- extensions/BugModal/lib/WebService.pm | 17 +++++++++++------ extensions/BugModal/web/new_bug.js | 30 +++++++++++++++++++++--------- 2 files changed, 32 insertions(+), 15 deletions(-) (limited to 'extensions/BugModal') diff --git a/extensions/BugModal/lib/WebService.pm b/extensions/BugModal/lib/WebService.pm index 99d0383cc..b69d609dd 100644 --- a/extensions/BugModal/lib/WebService.pm +++ b/extensions/BugModal/lib/WebService.pm @@ -30,9 +30,9 @@ sub rest_resources { return [ # return all the products accessible by the user. # required by new-bug - qr{^/bug_modal/products}, { + qr{^/bug_modal/initial_field_values}, { GET => { - method => 'products' + method => 'initial_field_values' }, }, @@ -82,9 +82,12 @@ sub rest_resources { ] } -sub products { +sub initial_field_values { my $user = Bugzilla->user; - return { products => _name($user->get_enterable_products) }; + return { + products => _name($user->get_enterable_products), + keywords => _name([Bugzilla::Keyword->get_all()]), + }; } sub product_info { @@ -103,8 +106,10 @@ sub product_info { description => $_->description, } } @{ $product->components }; - my @versions = map { { name => $_->name } } grep { $_->is_active } @{ $product->versions }; - return { components => \@components, versions => \@versions }; + return { + components => \@components, + versions => _name($product->versions), + }; } # everything we need for edit mode in a single call, returning just the fields diff --git a/extensions/BugModal/web/new_bug.js b/extensions/BugModal/web/new_bug.js index cd471fc2e..d00770e3a 100644 --- a/extensions/BugModal/web/new_bug.js +++ b/extensions/BugModal/web/new_bug.js @@ -1,20 +1,18 @@ +var initial = {} var comp_desc = {} -function load_products(query, callback) { +$(document).ready(function() { bugzilla_ajax( { - url: 'rest/bug_modal/products' + url: 'rest/bug_modal/initial_field_values' }, function(data) { - callback(data.products); + initial = data }, function() { - callback(); + alert("Network issues. Please refresh the page and try again"); } ); -} - -$(document).ready(function() { var product_sel = $("#product").selectize({ valueField: 'name', labelField: 'name', @@ -22,7 +20,9 @@ $(document).ready(function() { options: [], preload: true, create: false, - load: load_products + load: function(query, callback) { + callback(initial.products); + } }); var component_sel = $("#component").selectize({ valueField: 'name', @@ -38,6 +38,19 @@ $(document).ready(function() { options: [], }); + var keywords_sel = $("#keywords").selectize({ + delimiter: ', ', + valueField: 'name', + labelField: 'name', + searchField: 'name', + options: [], + preload: true, + create: false, + load: function(query, callback) { + callback(initial.keywords); + } + }); + product_sel.on("change", function () { $('#product-throbber').show(); $('#component').attr('disabled', true); @@ -46,7 +59,6 @@ $(document).ready(function() { url: 'rest/bug_modal/product_info?product=' + encodeURIComponent($('#product').val()) }, function(data) { - product_info = data; $('#product-throbber').hide(); $('#component').attr('disabled', false); $('#comp_desc').text('Select a component to read its description.'); -- cgit v1.2.3-24-g4f1b