From 3248a01b2f9aad5375565d6d2b6d8519485370d4 Mon Sep 17 00:00:00 2001 From: JT Smith Date: Mon, 20 Sep 2004 17:37:34 +0000 Subject: [PATCH] several bug fixes --- docs/changelog/6.x.x.txt | 6 +++++- lib/WebGUI/Wobject/DataForm.pm | 17 ++++++++++++----- lib/WebGUI/Wobject/WSClient.pm | 10 ++++------ lib/WebGUI/i18n/English/DataForm.pm | 6 +++++- www/extras/addHTTP.js | 4 ++-- 5 files changed, 28 insertions(+), 15 deletions(-) diff --git a/docs/changelog/6.x.x.txt b/docs/changelog/6.x.x.txt index 02f6f1bd8..cc246ec21 100644 --- a/docs/changelog/6.x.x.txt +++ b/docs/changelog/6.x.x.txt @@ -1,7 +1,11 @@ 6.2.4 - Changed text processor to convert HTML tags into text rather than discarding them. - + - Fixed some bugs in the WS Client that were checked in with the new Caching + code. + - Fixed a bug in the URL checker javascript that wouldn't allow for relative + paths. + - bugfix [ 991205 ] 6.0.3 Data Form data field sequence problem (Steven Chan) 6.2.3 - Changed to new POD format. diff --git a/lib/WebGUI/Wobject/DataForm.pm b/lib/WebGUI/Wobject/DataForm.pm index 14a04295c..aec32e679 100644 --- a/lib/WebGUI/Wobject/DataForm.pm +++ b/lib/WebGUI/Wobject/DataForm.pm @@ -106,6 +106,12 @@ sub _tabAdminIcons { } +#------------------------------------------------------------------- +sub _tonull { + return $_[1] eq "0" ? (undef, undef) : @_ ; +} + + #------------------------------------------------------------------- sub _createTabInit { my $wid = $_[0]; @@ -642,6 +648,7 @@ sub www_editField { %field = WebGUI::SQL->quickHash("select * from DataForm_field where DataForm_fieldId=".quote($session{form}{fid})); } $tab = WebGUI::SQL->buildHashRef("select DataForm_tabId,label from DataForm_tab where wobjectId=".quote($_[0]->get("wobjectId"))); + $tab->{0} = $_[0]->i18n("no tab"); $output = helpIcon("data form fields add/edit",$_[0]->get("namespace")); $output .= '

'.WebGUI::International::get(20,$_[0]->get("namespace")).'

'; $f = WebGUI::HTMLForm->new; @@ -662,7 +669,7 @@ sub www_editField { -name=>"tid", -options=>$tab, -label=>WebGUI::International::get(104,$_[0]->get("namespace")), - -value=>[ $field{DataForm_tabId}] + -value=>[ $field{DataForm_tabId}] || [0] ); $f->text( -name=>"subtext", @@ -750,8 +757,8 @@ sub www_editFieldSave { rows=>$session{form}{rows}, vertical=>$session{form}{vertical}, extras=>$session{form}{extras}, - }, "1","1", "DataForm_tabId",$session{form}{tid}); - $_[0]->reorderCollateral("DataForm_field","DataForm_fieldId", "DataForm_tabId",$session{form}{tid}) if ($session{form}{fid} ne "new"); + }, "1","1", _tonull("DataForm_tabId",$session{form}{tid})); + $_[0]->reorderCollateral("DataForm_field","DataForm_fieldId", _tonull("DataForm_tabId",$session{form}{tid})) if ($session{form}{fid} ne "new"); if ($session{form}{proceed} eq "addField") { $session{form}{fid} = "new"; return $_[0]->www_editField(); @@ -846,14 +853,14 @@ sub www_exportTab { #------------------------------------------------------------------- sub www_moveFieldDown { return WebGUI::Privilege::insufficient() unless ($_[0]->canEdit); - $_[0]->moveCollateralDown("DataForm_field","DataForm_fieldId",$session{form}{fid},"DataForm_tabId",$session{form}{tid}); + $_[0]->moveCollateralDown("DataForm_field","DataForm_fieldId",$session{form}{fid},_tonull("DataForm_tabId",$session{form}{tid})); return ""; } #------------------------------------------------------------------- sub www_moveFieldUp { return WebGUI::Privilege::insufficient() unless ($_[0]->canEdit); - $_[0]->moveCollateralUp("DataForm_field","DataForm_fieldId",$session{form}{fid},"DataForm_tabId",$session{form}{tid}); + $_[0]->moveCollateralUp("DataForm_field","DataForm_fieldId",$session{form}{fid},_tonull("DataForm_tabId",$session{form}{tid})); return ""; } diff --git a/lib/WebGUI/Wobject/WSClient.pm b/lib/WebGUI/Wobject/WSClient.pm index 6806764cb..e9fe918f8 100644 --- a/lib/WebGUI/Wobject/WSClient.pm +++ b/lib/WebGUI/Wobject/WSClient.pm @@ -261,11 +261,9 @@ sub www_view { $url = WebGUI::URL::page("func=view&wid=" . $self->get("wobjectId")); # snag our SOAP call and preprocess if needed - $call = WebGUI::Macro::process($self->get('call')); - $param_str = WebGUI::Macro::process($self->get('params')); if ($self->get('preprocessMacros')) { - WebGUI::Macro::process($call); - WebGUI::Macro::process($param_str); + $call = WebGUI::Macro::process($self->get("call")); + $param_str = WebGUI::Macro::process($self->get("params")); } # see if we can shortcircuit this whole process @@ -289,10 +287,10 @@ sub www_view { # check to see if this exact query has already been cached, using either # a cache specific to this session, or a shared global cache - $cache_key = $_[0]->get('sharedCache') + $cache_key = $self->get('sharedCache') ? Digest::MD5::md5_hex($call, $param_str) : Digest::MD5::md5_hex($call, $param_str, $session{'var'}{'sessionId'}); - WebGUI::ErrorHandler::warn(($_[0]->get('sharedCache')?'shared':'session') + WebGUI::ErrorHandler::warn(($self->get('sharedCache')?'shared':'session') . " cache_key=$cache_key md5_hex($call, $param_str)"); $cache = WebGUI::Cache->new($cache_key, WebGUI::International::get(4, $self->get('namespace'))); diff --git a/lib/WebGUI/i18n/English/DataForm.pm b/lib/WebGUI/i18n/English/DataForm.pm index f5875e3e5..f723d7d13 100644 --- a/lib/WebGUI/i18n/English/DataForm.pm +++ b/lib/WebGUI/i18n/English/DataForm.pm @@ -613,7 +613,11 @@ A conditional indicating whether this field exists for the mail subsystem of the message => q|Displayed|, lastUpdated => 1031514049 }, - + 'no tab' =>{ + message =>q|No Tab|, + lastUpdated=>1095701013, + context=>q|Tells the user that there is no tab to set the field to.| + }, }; diff --git a/www/extras/addHTTP.js b/www/extras/addHTTP.js index b19c7780e..af9f9bc94 100644 --- a/www/extras/addHTTP.js +++ b/www/extras/addHTTP.js @@ -1,9 +1,9 @@ function addHTTP(element) { if (element.value != "") { - if (!element.value.match(/^\w+:\/\//)) { + if (!element.value.match(/^\w+:\/\//) && !element.value.match(/^\^/) && !element.value.match(/^\//)) { element.value = "http://"+element.value; } - if (!element.value.match(/^\w+:\/\/.+\..+/)){ + if (!element.value.match(/^\w+:\/\/.+\..+/) && !element.value.match(/^\^/) && !element.value.match(/^\//)){ alert("That does not look like a proper URL. Please check if it is correct."); } }