Bug 40933

Bug 16361
Wiki-Testopia integration


git-svn-id: svn://svn.office.custis.ru/3rdparty/bugzilla.org/trunk@258 6955db30-a419-402b-8a0d-67ecbb4d7f56
master
vfilippov 2009-08-18 14:41:22 +00:00
parent e8fcddfbda
commit 854a645e20
7 changed files with 255 additions and 285 deletions

View File

@ -113,6 +113,13 @@ sub get_param_list {
choices => ['ON', 'OFF', 'Developer'],
default => 'OFF'
},
{
name => 'test_case_wiki_action_iframe',
type => 't',
default => '<iframe src="$URL?useskin=chick" width="100%" height="100%"></iframe>',
},
# {
# name => 'new-testrun-email-notif',
# type => 'l',

View File

@ -688,7 +688,7 @@ NewCaseForm = function(plan_ids, product_id, run_id){
title: 'Create a New Test Case',
bodyStyle:'padding:5px 5px 0',
width: 1050,
height: 670,
height: 514,
items: [{
layout:'table',
layoutConfig: {
@ -813,99 +813,98 @@ NewCaseForm = function(plan_ids, product_id, run_id){
},{
xtype: 'tabpanel',
id: 'ncf_tabs',
height: 356,
activeItem: 1,
height: 200,
activeItem: 0,
items:[{
layout: 'column',
title: 'Setup Procedures',
items: [{
columnWidth: 0.5,
items:[{
title: 'Setup',
layout: 'fit',
items: [{
id: 'ncf-setup_doc',
name: 'tcsetup',
xtype:'htmleditor',
scrollable:true
}]
}]
},{
columnWidth: 0.5,
items:[{
title: 'Break Down',
layout: 'fit',
items: [{
id: 'ncf-breakdown_doc',
name: 'tcbreakdown',
xtype:'htmleditor',
scrollable:true
}]
}]
}]
},{
layout: 'column',
title: 'Actions',
layout: 'anchor',
title: 'Description',
id: 'ncf_action_panel',
items: [{
columnWidth: 1.0,
id: 'ncf_action_editor_col',
items:[{
title: 'Action',
layout: 'fit',
items: [{
id: 'ncf-action',
name: 'tcaction',
xtype:'htmleditor',
scrollable:true,
listeners:{'initialize':function(h){
if (!h.getValue()) {
var httpRequest = new Ext.data.Connection();
httpRequest.request({
url: 'tr_quicksearch.cgi',
params: {
action: 'get_action'
},
success: function(d){
h.setValue(d.responseText);
},
failure: testopiaError
});
}
}}
}]
}]
},{
columnWidth: 0.5,
id: 'ncf_effect_editor_col',
style:{
display: 'none',
xtype: 'checkbox',
id: 'ncf-usefromwiki',
name: 'tcusefromwiki',
boxLabel: 'Use from Wiki',
checked: true,
value: 1,
listeners: {
check: function(h, t) {
document.getElementById('ncf_action_effect_editors').style.display = t ? 'none' : '';
Ext.getCmp('ncf_action_panel').doLayout();
if (t)
document.getElementById('ncf-action-field').value = '';
else
document.getElementById('ncf-action-field').value = Ext.getCmp('ncf-action').value;
},
},
items:[{
title: 'Expected Results',
layout: 'fit',
items: [{
id: 'ncf-effect',
name: 'tceffect',
xtype:'htmleditor',
scrollable:true,
height:340,
listeners:{'initialize':function(h){
if(!h.getValue()){
var httpRequest = new Ext.data.Connection();
httpRequest.request({
url: 'tr_quicksearch.cgi',
params:{
action: 'get_effect'
},
success:function(d){
h.setValue(d.responseText);
},
failure: testopiaError
});
}
}}
},{
layout: 'column',
id: 'ncf_action_effect_editors',
style: { display: 'none' },
items: [{
columnWidth: 0.5,
id: 'ncf_action_editor_col',
items:[{
title: 'Action',
layout: 'fit',
items: [{
id: 'ncf-action',
xtype:'htmleditor',
scrollable:true,
listeners:{'initialize':function(h){
if (!h.getValue()) {
var httpRequest = new Ext.data.Connection();
httpRequest.request({
url: 'tr_quicksearch.cgi',
params: {
action: 'get_action'
},
success: function(d){
h.setValue(d.responseText);
},
failure: testopiaError
});
}
},
'change':function(h){
if (!h._hid)
h._hid = document.getElementById('ncf-action-field');
h._hid.value = h.value;
}}
},{
tag: 'input',
type: 'hidden',
name: 'tcaction',
value: '',
id: 'ncf-action-field',
}]
}]
},{
columnWidth: 0.5,
id: 'ncf_effect_editor_col',
items:[{
title: 'Expected Results',
layout: 'fit',
items: [{
id: 'ncf-effect',
name: 'tceffect',
xtype:'htmleditor',
scrollable:true,
listeners:{'initialize':function(h){
if(!h.getValue()){
var httpRequest = new Ext.data.Connection();
httpRequest.request({
url: 'tr_quicksearch.cgi',
params:{
action: 'get_effect'
},
success:function(d){
h.setValue(d.responseText);
},
failure: testopiaError
});
}
}}
}]
}]
}]
}]
@ -915,7 +914,7 @@ NewCaseForm = function(plan_ids, product_id, run_id){
{
title: 'Components',
id: 'component_picker',
height: 250,
height: 200,
layout: 'fit',
xtype: 'grid',
store: new ComponentStore({product_id: product_id}, true),
@ -988,26 +987,6 @@ NewCaseForm = function(plan_ids, product_id, run_id){
}
catch (err){}
}
},{
text: 'Show Results Edit',
id: 'ncf_showhide_results_btn',
handler: function(){
d = document.getElementById('ncf_effect_editor_col');
if (d.style.display != 'none')
{
Ext.getCmp('ncf_action_editor_col').columnWidth=1.0;
Ext.getCmp('ncf_action_panel').doLayout();
Ext.getCmp('ncf_showhide_results_btn').setText('Show Results Edit');
d.style.display = 'none';
}
else
{
Ext.getCmp('ncf_action_editor_col').columnWidth=0.5;
Ext.getCmp('ncf_action_panel').doLayout();
Ext.getCmp('ncf_showhide_results_btn').setText('Hide Results Edit');
d.style.display = '';
}
}
}]
});
Ext.getCmp('comp_product_combo').on('select', function(c,r,i){

View File

@ -3706,7 +3706,7 @@ NewCaseForm = function(plan_ids, product_id, run_id){
title: 'Create a New Test Case',
bodyStyle:'padding:5px 5px 0',
width: 1050,
height: 670,
height: 514,
items: [{
layout:'table',
layoutConfig: {
@ -3831,99 +3831,98 @@ NewCaseForm = function(plan_ids, product_id, run_id){
},{
xtype: 'tabpanel',
id: 'ncf_tabs',
height: 356,
activeItem: 1,
height: 200,
activeItem: 0,
items:[{
layout: 'column',
title: 'Setup Procedures',
items: [{
columnWidth: 0.5,
items:[{
title: 'Setup',
layout: 'fit',
items: [{
id: 'ncf-setup_doc',
name: 'tcsetup',
xtype:'htmleditor',
scrollable:true
}]
}]
},{
columnWidth: 0.5,
items:[{
title: 'Break Down',
layout: 'fit',
items: [{
id: 'ncf-breakdown_doc',
name: 'tcbreakdown',
xtype:'htmleditor',
scrollable:true
}]
}]
}]
},{
layout: 'column',
title: 'Actions',
layout: 'anchor',
title: 'Description',
id: 'ncf_action_panel',
items: [{
columnWidth: 1.0,
id: 'ncf_action_editor_col',
items:[{
title: 'Action',
layout: 'fit',
items: [{
id: 'ncf-action',
name: 'tcaction',
xtype:'htmleditor',
scrollable:true,
listeners:{'initialize':function(h){
if (!h.getValue()) {
var httpRequest = new Ext.data.Connection();
httpRequest.request({
url: 'tr_quicksearch.cgi',
params: {
action: 'get_action'
},
success: function(d){
h.setValue(d.responseText);
},
failure: testopiaError
});
}
}}
}]
}]
},{
columnWidth: 0.5,
id: 'ncf_effect_editor_col',
style:{
display: 'none',
xtype: 'checkbox',
id: 'ncf-usefromwiki',
name: 'tcusefromwiki',
boxLabel: 'Use from Wiki',
checked: true,
value: 1,
listeners: {
check: function(h, t) {
document.getElementById('ncf_action_effect_editors').style.display = t ? 'none' : '';
Ext.getCmp('ncf_action_panel').doLayout();
if (t)
document.getElementById('ncf-action-field').value = '';
else
document.getElementById('ncf-action-field').value = Ext.getCmp('ncf-action').value;
},
},
items:[{
title: 'Expected Results',
layout: 'fit',
items: [{
id: 'ncf-effect',
name: 'tceffect',
xtype:'htmleditor',
scrollable:true,
height:340,
listeners:{'initialize':function(h){
if(!h.getValue()){
var httpRequest = new Ext.data.Connection();
httpRequest.request({
url: 'tr_quicksearch.cgi',
params:{
action: 'get_effect'
},
success:function(d){
h.setValue(d.responseText);
},
failure: testopiaError
});
}
}}
},{
layout: 'column',
id: 'ncf_action_effect_editors',
style: { display: 'none' },
items: [{
columnWidth: 0.5,
id: 'ncf_action_editor_col',
items:[{
title: 'Action',
layout: 'fit',
items: [{
id: 'ncf-action',
xtype:'htmleditor',
scrollable:true,
listeners:{'initialize':function(h){
if (!h.getValue()) {
var httpRequest = new Ext.data.Connection();
httpRequest.request({
url: 'tr_quicksearch.cgi',
params: {
action: 'get_action'
},
success: function(d){
h.setValue(d.responseText);
},
failure: testopiaError
});
}
},
'change':function(h){
if (!h._hid)
h._hid = document.getElementById('ncf-action-field');
h._hid.value = h.value;
}}
},{
tag: 'input',
type: 'hidden',
name: 'tcaction',
value: '',
id: 'ncf-action-field',
}]
}]
},{
columnWidth: 0.5,
id: 'ncf_effect_editor_col',
items:[{
title: 'Expected Results',
layout: 'fit',
items: [{
id: 'ncf-effect',
name: 'tceffect',
xtype:'htmleditor',
scrollable:true,
listeners:{'initialize':function(h){
if(!h.getValue()){
var httpRequest = new Ext.data.Connection();
httpRequest.request({
url: 'tr_quicksearch.cgi',
params:{
action: 'get_effect'
},
success:function(d){
h.setValue(d.responseText);
},
failure: testopiaError
});
}
}}
}]
}]
}]
}]
@ -3933,7 +3932,7 @@ NewCaseForm = function(plan_ids, product_id, run_id){
{
title: 'Components',
id: 'component_picker',
height: 250,
height: 200,
layout: 'fit',
xtype: 'grid',
store: new ComponentStore({product_id: product_id}, true),
@ -4006,26 +4005,6 @@ NewCaseForm = function(plan_ids, product_id, run_id){
}
catch (err){}
}
},{
text: 'Show Results Edit',
id: 'ncf_showhide_results_btn',
handler: function(){
d = document.getElementById('ncf_effect_editor_col');
if (d.style.display != 'none')
{
Ext.getCmp('ncf_action_editor_col').columnWidth=1.0;
Ext.getCmp('ncf_action_panel').doLayout();
Ext.getCmp('ncf_showhide_results_btn').setText('Show Results Edit');
d.style.display = 'none';
}
else
{
Ext.getCmp('ncf_action_editor_col').columnWidth=0.5;
Ext.getCmp('ncf_action_panel').doLayout();
Ext.getCmp('ncf_showhide_results_btn').setText('Hide Results Edit');
d.style.display = '';
}
}
}]
});
Ext.getCmp('comp_product_combo').on('select', function(c,r,i){

View File

@ -3329,7 +3329,7 @@ frame:true,
title: 'Create a New Test Case',
bodyStyle:'padding:5px 5px 0',
width: 1050,
height: 670,
height: 514,
items: [{
layout:'table',
layoutConfig: {
@ -3452,49 +3452,41 @@ name: 'tcdependson'
},{
xtype: 'tabpanel',
id: 'ncf_tabs',
height: 356,
activeItem: 1,
height: 200,
activeItem: 0,
items:[{
layout: 'column',
title: 'Setup Procedures',
items: [{
columnWidth: 0.5,
items:[{
title: 'Setup',
layout: 'fit',
items: [{
id: 'ncf-setup_doc',
name: 'tcsetup',
xtype:'htmleditor',
scrollable:true
}]
}]
},{
columnWidth: 0.5,
items:[{
title: 'Break Down',
layout: 'fit',
items: [{
id: 'ncf-breakdown_doc',
name: 'tcbreakdown',
xtype:'htmleditor',
scrollable:true
}]
}]
}]
},{
layout: 'column',
title: 'Actions',
layout: 'anchor',
title: 'Description',
id: 'ncf_action_panel',
items: [{
columnWidth: 1.0,
xtype: 'checkbox',
id: 'ncf-usefromwiki',
name: 'tcusefromwiki',
boxLabel: 'Use from Wiki',
checked: true,
value: 1,
listeners: {
check: function(h, t) {
document.getElementById('ncf_action_effect_editors').style.display = t ? 'none' : '';
Ext.getCmp('ncf_action_panel').doLayout();
if (t)
document.getElementById('ncf-action-field').value = '';
else
document.getElementById('ncf-action-field').value = Ext.getCmp('ncf-action').value;
},
},
},{
layout: 'column',
id: 'ncf_action_effect_editors',
style: { display: 'none' },
items: [{
columnWidth: 0.5,
id: 'ncf_action_editor_col',
items:[{
title: 'Action',
layout: 'fit',
items: [{
id: 'ncf-action',
name: 'tcaction',
xtype:'htmleditor',
scrollable:true,
listeners:{'initialize':function(h){
@ -3510,16 +3502,24 @@ h.setValue(d.responseText);
},
failure: testopiaError
});
}
}
},
'change':function(h){
if (!h._hid)
h._hid = document.getElementById('ncf-action-field');
h._hid.value = h.value;
}}
},{
tag: 'input',
type: 'hidden',
name: 'tcaction',
value: '',
id: 'ncf-action-field',
}]
}]
},{
columnWidth: 0.5,
id: 'ncf_effect_editor_col',
style:{
display: 'none',
},
items:[{
title: 'Expected Results',
layout: 'fit',
@ -3528,7 +3528,6 @@ id: 'ncf-effect',
name: 'tceffect',
xtype:'htmleditor',
scrollable:true,
height:340,
listeners:{'initialize':function(h){
if(!h.getValue()){
var httpRequest = new Ext.data.Connection();
@ -3547,12 +3546,13 @@ failure: testopiaError
}]
}]
}]
}]
},
new AttachForm(),
{
title: 'Components',
id: 'component_picker',
height: 250,
height: 200,
layout: 'fit',
xtype: 'grid',
store: new ComponentStore({product_id: product_id}, true),
@ -3625,26 +3625,6 @@ window.location = 'tr_show_product.cgi';
}
catch (err){}
}
},{
text: 'Show Results Edit',
id: 'ncf_showhide_results_btn',
handler: function(){
d = document.getElementById('ncf_effect_editor_col');
if (d.style.display != 'none')
{
Ext.getCmp('ncf_action_editor_col').columnWidth=1.0;
Ext.getCmp('ncf_action_panel').doLayout();
Ext.getCmp('ncf_showhide_results_btn').setText('Show Results Edit');
d.style.display = 'none';
}
else
{
Ext.getCmp('ncf_action_editor_col').columnWidth=0.5;
Ext.getCmp('ncf_action_panel').doLayout();
Ext.getCmp('ncf_showhide_results_btn').setText('Hide Results Edit');
d.style.display = '';
}
}
}]
});
Ext.getCmp('comp_product_combo').on('select', function(c,r,i){

10
testopia/ycomp.pl Executable file
View File

@ -0,0 +1,10 @@
#!/usr/bin/perl
$/ = undef;
while(<>)
{
s!/\*.*?\*/!!gso;
s!^\s+!!gmo;
s!^(//.*)?(\n|$)!!gmo;
print;
}

3
testopia/ycomp.sh Executable file
View File

@ -0,0 +1,3 @@
#!/bin/sh
perl ycomp.pl testopia.all.js > testopia.all.ycomp.js

View File

@ -99,6 +99,18 @@ ThrowUserError('testopia-create-category', {'plan' => $plans[0] }) if scalar @ca
if ($action eq 'add'){
Bugzilla->error_mode(ERROR_MODE_AJAX);
my @comps = split(',', $cgi->param("components"));
my $tcaction = $cgi->param('tcaction') || '';
my $summary = $cgi->param('summary') || '';
if ($cgi->param('tcusefromwiki'))
{
my $wiki_url;
$wiki_url ||= Bugzilla::Component->check({ id => $comps[0] })->wiki_url if @comps;
$wiki_url ||= $plans[0]->product->wiki_url if @plans;
$wiki_url ||= Bugzilla->params->{wiki_url};
$wiki_url .= url_quote(trim($summary));
$tcaction = Bugzilla->params->{test_case_wiki_action_iframe};
$tcaction =~ s/\$URL/$wiki_url/gs;
}
my $case = Bugzilla::Testopia::TestCase->create({
'alias' => $cgi->param('alias') || '',
'case_status_id' => $cgi->param('status') || '',
@ -108,11 +120,11 @@ if ($action eq 'add'){
'estimated_time' => $cgi->param("estimated_time") || '',
'script' => $cgi->param("script") || '',
'arguments' => $cgi->param("arguments") || '',
'summary' => $cgi->param("summary") || '',
'summary' => $summary,
'requirement' => $cgi->param("requirement") || '',
'default_tester_id' => $cgi->param("tester") || '',
'author_id' => Bugzilla->user->id || '',
'action' => $cgi->param("tcaction") || '',
'action' => $tcaction,
'effect' => $cgi->param("tceffect") || '',
'setup' => $cgi->param("tcsetup") || '',
'breakdown' => $cgi->param("tcbreakdown") || '',