Bug 66910 - Do some refactoring
git-svn-id: svn://svn.office.custis.ru/3rdparty/bugzilla.org/trunk@1675 6955db30-a419-402b-8a0d-67ecbb4d7f56master
parent
1aeb072046
commit
9cf7f835f4
|
@ -679,7 +679,7 @@ sub run_create_validators
|
|||
# These are converted into IDs
|
||||
delete $params->{product};
|
||||
delete $params->{component};
|
||||
|
||||
|
||||
# used for keywords only
|
||||
delete $params->{keywords_description};
|
||||
|
||||
|
@ -1733,43 +1733,44 @@ sub _check_keywords {
|
|||
if (!ref $invocant) {
|
||||
return [] if !Bugzilla->user->in_group('editbugs', $product->id);
|
||||
}
|
||||
|
||||
|
||||
# CustIS Bug 66910 - Adding new keyword to DB
|
||||
my @keyword_descriptions;
|
||||
foreach my $kd (split(/[@]+/, trim($keyword_description_string))) {
|
||||
my @this_kd = split(/[=]+/, $kd);
|
||||
push @keyword_descriptions, { $this_kd[0] => $this_kd[1]};
|
||||
my @this_kd = split(/[=]+/, $kd);
|
||||
push @keyword_descriptions, { $this_kd[0] => $this_kd[1]};
|
||||
}
|
||||
|
||||
my %keywords;
|
||||
foreach my $keyword (split(/[\s,]+/, $keyword_string)) {
|
||||
next unless $keyword;
|
||||
my $obj = new Bugzilla::Keyword({ name => $keyword });
|
||||
# CustIS Bug 66910 - Adding new keyword to DB
|
||||
if (!$obj)
|
||||
{
|
||||
my $this_kd = "";
|
||||
foreach (@keyword_descriptions)
|
||||
{
|
||||
if (exists($_->{$keyword}))
|
||||
{
|
||||
$this_kd = $_->{$keyword};
|
||||
}
|
||||
}
|
||||
# CustIS Bug 66910 - Adding new keyword to DB
|
||||
|
||||
my $obj = Bugzilla::Keyword->create({
|
||||
name => $keyword,
|
||||
description => $this_kd
|
||||
});
|
||||
if (!$obj)
|
||||
{
|
||||
my $this_kd = "";
|
||||
foreach (@keyword_descriptions)
|
||||
{
|
||||
if (exists($_->{$keyword}))
|
||||
{
|
||||
$this_kd = $_->{$keyword};
|
||||
}
|
||||
}
|
||||
|
||||
my $obj = Bugzilla::Keyword->create({
|
||||
name => $keyword,
|
||||
description => $this_kd
|
||||
});
|
||||
$keywords{$obj->id} = $obj;
|
||||
}
|
||||
else
|
||||
{
|
||||
$keywords{$obj->id} = $obj;
|
||||
}
|
||||
else
|
||||
{
|
||||
$keywords{$obj->id} = $obj;
|
||||
}
|
||||
}
|
||||
|
||||
#ThrowUserError("unknown_keyword", { keyword => $keyword }) if !$obj;
|
||||
#$keywords{$obj->id} = $obj;
|
||||
#ThrowUserError("unknown_keyword", { keyword => $keyword }) if !$obj;
|
||||
#$keywords{$obj->id} = $obj;
|
||||
}
|
||||
return [values %keywords];
|
||||
}
|
||||
|
|
63
js/bug.js
63
js/bug.js
|
@ -229,7 +229,7 @@ function updateRemainingTime()
|
|||
|
||||
function changeform_onsubmit()
|
||||
{
|
||||
if (check_new_keywords() == false) return false;
|
||||
if (check_new_keywords(document.changeform) == false) return false;
|
||||
|
||||
var wtInput = document.changeform.work_time;
|
||||
if (!wtInput)
|
||||
|
@ -317,64 +317,3 @@ function att_file_onchange(e)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
// CustIS bug 66910 - check new keywords and requery description for its
|
||||
function check_new_keywords()
|
||||
{
|
||||
var non_exist_keywords = [];
|
||||
var cnt_exist_keywords = 0;
|
||||
var input_keywords = document.changeform.keywords.value.split(",");
|
||||
var exist_keywords = [];
|
||||
for(var i = 0; i < emptyKeywordsOptions.length; i++)
|
||||
{
|
||||
exist_keywords[i] = emptyKeywordsOptions[i].name.trim();
|
||||
}
|
||||
|
||||
for(var i = 0; i < input_keywords.length; i++)
|
||||
{
|
||||
if (input_keywords[i].trim() != "" && exist_keywords.indexOf(input_keywords[i].trim()) == -1)
|
||||
{
|
||||
non_exist_keywords[cnt_exist_keywords] = input_keywords[i].trim();
|
||||
cnt_exist_keywords++;
|
||||
}
|
||||
}
|
||||
|
||||
if (non_exist_keywords.length > 0)
|
||||
{
|
||||
var keywords_submit = true;
|
||||
var kd_container = document.getElementById("keywords_description_container");
|
||||
|
||||
if (kd_container.children[0] == undefined)
|
||||
{
|
||||
var desc_html = "";
|
||||
for(var i = 0; i < non_exist_keywords.length; i++)
|
||||
{
|
||||
desc_html += "<br /><label>Description for new item of keywords - <b>" + non_exist_keywords[i].trim() + "</b></label><br /><input type=\"text\" value=\"\" class=\"text_input\" name=\"kd\" id=\"keyword_description_" + i + "\" style=\"border: solid 1px red;\" /> <br/>";
|
||||
}
|
||||
kd_container.innerHTML = desc_html;
|
||||
keywords_submit = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
var kd_descriptions_val = "";
|
||||
var kd_descriptions = kd_container.getElementsByTagName("INPUT");
|
||||
for (var i = 0; i < kd_descriptions.length; i++)
|
||||
{
|
||||
if (kd_descriptions[i].value == "")
|
||||
{
|
||||
keywords_submit = false;
|
||||
}
|
||||
|
||||
if (kd_descriptions_val != "")
|
||||
{
|
||||
kd_descriptions_val += "@";
|
||||
}
|
||||
var this_id = kd_descriptions[i].getAttribute('id').replace("keyword_description_", "");
|
||||
kd_descriptions_val += non_exist_keywords[this_id].trim() + "=" + kd_descriptions[i].value;
|
||||
}
|
||||
kd_container.innerHTML = kd_container.innerHTML + "<input type=\"hidden\" value=\"" + kd_descriptions_val + "\" name=\"keywords_description\" />"
|
||||
}
|
||||
|
||||
return keywords_submit;
|
||||
}
|
||||
}
|
69
js/field.js
69
js/field.js
|
@ -267,3 +267,72 @@ function _value_id(field_name, id)
|
|||
{
|
||||
return 'v' + id + '_' + field_name;
|
||||
}
|
||||
|
||||
// CustIS bug 66910 - check new keywords and requery description for its
|
||||
function check_new_keywords(form)
|
||||
{
|
||||
var non_exist_keywords = [];
|
||||
var cnt_exist_keywords = 0;
|
||||
var input_keywords = form.keywords.value.split(",");
|
||||
var exist_keywords = [];
|
||||
for(var i = 0; i < emptyKeywordsOptions.length; i++)
|
||||
{
|
||||
exist_keywords[i] = emptyKeywordsOptions[i].name.trim();
|
||||
}
|
||||
|
||||
for(var i = 0; i < input_keywords.length; i++)
|
||||
{
|
||||
if (input_keywords[i].trim() != "" && exist_keywords.indexOf(input_keywords[i].trim()) == -1)
|
||||
{
|
||||
non_exist_keywords[cnt_exist_keywords] = input_keywords[i].trim();
|
||||
cnt_exist_keywords++;
|
||||
}
|
||||
}
|
||||
|
||||
if (non_exist_keywords.length > 0)
|
||||
{
|
||||
var keywords_submit = true;
|
||||
var kd_container = document.getElementById("keywords_description_container");
|
||||
|
||||
var desc_html = "";
|
||||
for(var i = 0; i < non_exist_keywords.length; i++)
|
||||
{
|
||||
var this_value = "";
|
||||
if (document.getElementById('kd_' + i) != undefined && document.getElementById('kd_' + i).value != "" && document.getElementById('kd_' + i).getAttribute('data-key') == non_exist_keywords[i].trim())
|
||||
{
|
||||
this_value = document.getElementById('kd_' + i).value;
|
||||
}
|
||||
desc_html += "<br /><label>Description for new item of keywords - <b>" + non_exist_keywords[i].trim() + "</b></label><br /><input type=\"text\" value=\"" + this_value + "\" class=\"text_input\" name=\"kd\" id=\"kd_" + i + "\" data-key=\"" + non_exist_keywords[i].trim() + "\" style=\"border: solid 1px red;\" /> <br/>";
|
||||
}
|
||||
kd_container.innerHTML = desc_html;
|
||||
|
||||
var kd_descriptions_val = "";
|
||||
var kd_descriptions = kd_container.getElementsByTagName("INPUT");
|
||||
for (var i = 0; i < kd_descriptions.length; i++)
|
||||
{
|
||||
if (kd_descriptions[i].value != "")
|
||||
{
|
||||
if (kd_descriptions_val != "")
|
||||
{
|
||||
kd_descriptions_val += "@";
|
||||
}
|
||||
var this_key = kd_descriptions[i].getAttribute('data-key');
|
||||
kd_descriptions_val += this_key + "=" + kd_descriptions[i].value;
|
||||
}
|
||||
else
|
||||
{
|
||||
keywords_submit = false;
|
||||
}
|
||||
}
|
||||
if (kd_descriptions_val != "")
|
||||
{
|
||||
kd_container.innerHTML = kd_container.innerHTML + "<input type=\"hidden\" value=\"" + kd_descriptions_val + "\" name=\"keywords_description\" />"
|
||||
}
|
||||
else
|
||||
{
|
||||
keywords_submit = false;
|
||||
}
|
||||
return keywords_submit;
|
||||
}
|
||||
return true;
|
||||
}
|
|
@ -338,7 +338,7 @@ if (defined $cgi->param('keywords')) {
|
|||
foreach my $b (@bug_objects) {
|
||||
my $return =
|
||||
$b->modify_keywords(scalar $cgi->param('keywords'),
|
||||
scalar $cgi->param('keywords_description'),
|
||||
scalar $cgi->param('keywords_description'),
|
||||
scalar $cgi->param('keywordaction'));
|
||||
$any_keyword_changes ||= $return;
|
||||
}
|
||||
|
|
|
@ -92,7 +92,7 @@ var noTimeTracking = [% product.notimetracking ? 'true' : 'false' %];
|
|||
|
||||
function validateEntryForm(theform)
|
||||
{
|
||||
if (check_new_keywords() == false) return false;
|
||||
if (check_new_keywords(document.Create) == false) return false;
|
||||
|
||||
if (theform.short_desc.value == '')
|
||||
{
|
||||
|
@ -129,68 +129,6 @@ function validateEntryForm(theform)
|
|||
return true;
|
||||
}
|
||||
|
||||
// CustIS bug 66910 - check new keywords and requery description for its
|
||||
function check_new_keywords()
|
||||
{
|
||||
var non_exist_keywords = [];
|
||||
var cnt_exist_keywords = 0;
|
||||
var input_keywords = document.Create.keywords.value.split(",");
|
||||
var exist_keywords = [];
|
||||
for(var i = 0; i < emptyKeywordsOptions.length; i++)
|
||||
{
|
||||
exist_keywords[i] = emptyKeywordsOptions[i].name.trim();
|
||||
}
|
||||
|
||||
for(var i = 0; i < input_keywords.length; i++)
|
||||
{
|
||||
if (input_keywords[i].trim() != "" && exist_keywords.indexOf(input_keywords[i].trim()) == -1)
|
||||
{
|
||||
non_exist_keywords[cnt_exist_keywords] = input_keywords[i].trim();
|
||||
cnt_exist_keywords++;
|
||||
}
|
||||
}
|
||||
|
||||
if (non_exist_keywords.length > 0)
|
||||
{
|
||||
var keywords_submit = true;
|
||||
var kd_container = document.getElementById("keywords_description_container");
|
||||
|
||||
if (kd_container.children[0] == undefined)
|
||||
{
|
||||
var desc_html = "";
|
||||
for(var i = 0; i < non_exist_keywords.length; i++)
|
||||
{
|
||||
desc_html += "<br /><label>Description for - <b>" + non_exist_keywords[i].trim() + "</b></label><br /><input type=\"text\" value=\"\" name=\"kd\" id=\"keyword_description_" + i + "\" style=\"border: solid 1px red; width: 296px;\" /> <br/>";
|
||||
}
|
||||
kd_container.innerHTML = desc_html;
|
||||
keywords_submit = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
var kd_descriptions_val = "";
|
||||
var kd_descriptions = kd_container.getElementsByTagName("INPUT");
|
||||
for (var i = 0; i < kd_descriptions.length; i++)
|
||||
{
|
||||
if (kd_descriptions[i].value == "")
|
||||
{
|
||||
keywords_submit = false;
|
||||
}
|
||||
|
||||
if (kd_descriptions_val != "")
|
||||
{
|
||||
kd_descriptions_val += "@";
|
||||
}
|
||||
var this_id = kd_descriptions[i].getAttribute('id').replace("keyword_description_", "");
|
||||
kd_descriptions_val += non_exist_keywords[this_id].trim() + "=" + kd_descriptions[i].value;
|
||||
kd_descriptions[i].value = kd_descriptions[i].value;
|
||||
}
|
||||
kd_container.innerHTML = kd_container.innerHTML + "<input type=\"hidden\" value=\"" + kd_descriptions_val + "\" name=\"keywords_description\" />"
|
||||
}
|
||||
|
||||
return keywords_submit;
|
||||
}
|
||||
}
|
||||
|
||||
function set_assign_to() {
|
||||
// Based on the selected component, fill the "Assign To:" field
|
||||
// with the default component owner, and the "QA Contact:" field
|
||||
|
|
Loading…
Reference in New Issue