diff --git a/lib/WebGUI/Auth/Facebook.pm b/lib/WebGUI/Auth/Facebook.pm
index d1307cf49..427411225 100644
--- a/lib/WebGUI/Auth/Facebook.pm
+++ b/lib/WebGUI/Auth/Facebook.pm
@@ -69,16 +69,16 @@ sub editUserSettingsForm {
my ( $setting ) = $session->quick(qw( setting ));
my $i18n = WebGUI::International->new( $session, 'Auth_Facebook' );
- my $f = WebGUI::HTMLForm->new( $session );
+ my $f = WebGUI::FormBuilder->new( $session );
- $f->yesNo(
+ $f->addField( "yesNo",
name => 'facebookAuthEnabled',
value => $setting->get( 'facebookAuthEnabled' ),
label => $i18n->get('enabled'),
hoverHelp => $i18n->get('enabled help'),
);
- $f->text(
+ $f->addField( "text",
name => 'facebookAuthAppId',
value => $setting->get( 'facebookAuthAppId' ),
label => $i18n->get('app id'),
@@ -86,14 +86,14 @@ sub editUserSettingsForm {
subtext => $i18n->get('get app id'),
);
- $f->text(
+ $f->addField( "text",
name => 'facebookAuthSecret',
value => $setting->get( 'facebookAuthSecret' ),
label => $i18n->get('secret'),
hoverHelp => $i18n->get('secret help'),
);
- $f->template(
+ $f->addField( "template",
name => 'facebookAuthTemplateIdChooseUsername',
value => $setting->get( 'facebookAuthTemplateIdChooseUsername' ),
label => $i18n->get('choose username template'),
@@ -101,7 +101,7 @@ sub editUserSettingsForm {
namespace => 'Auth/Facebook/ChooseUsername',
);
- return $f->printRowsOnly;
+ return $f;
}
#----------------------------------------------------------------------------
diff --git a/lib/WebGUI/Auth/LDAP.pm b/lib/WebGUI/Auth/LDAP.pm
index 9d9fc1cef..68e189e38 100644
--- a/lib/WebGUI/Auth/LDAP.pm
+++ b/lib/WebGUI/Auth/LDAP.pm
@@ -12,7 +12,7 @@ package WebGUI::Auth::LDAP;
use strict;
use WebGUI::Auth;
-use WebGUI::HTMLForm;
+use WebGUI::FormBuilder;
use WebGUI::Form;
use WebGUI::LDAPLink;
use WebGUI::Workflow;
@@ -327,21 +327,9 @@ sub editUserFormSave {
sub editUserSettingsForm {
my $self = shift;
- my $f = WebGUI::HTMLForm->new($self->session);
- my $ldapConnection = WebGUI::Form::selectBox($self->session, {
- name=>"ldapConnection",
- options=>WebGUI::LDAPLink->getList($self->session,),
- value=>[$self->session->setting->get("ldapConnection")]
- });
- my $i18n = WebGUI::International->new($self->session,'AuthLDAP');
- my $ldapConnectionLabel = $i18n->get("ldapConnection");
- my $buttons = "";
- if($self->session->setting->get("ldapConnection")) {
- $buttons = $self->session->icon->edit("op=editLDAPLink;returnUrl=".$self->session->url->escape($self->session->url->page("op=editSettings")).";llid=".$self->session->setting->get("ldapConnection"));
- }
- $buttons .= $self->session->icon->manage("op=listLDAPLinks;returnUrl=".$self->session->url->escape($self->session->url->page("op=editSettings")));
- $f->raw(qq|
| $ldapConnectionLabel | $ldapConnection $buttons |
|);
- return $f->printRowsOnly;
+ my $f = WebGUI::FormBuilder->new($self->session);
+ $f->addField( "LdapLink", name => "ldapConnection" );
+ return $f;
}
#-------------------------------------------------------------------
diff --git a/lib/WebGUI/Auth/Twitter.pm b/lib/WebGUI/Auth/Twitter.pm
index d8df7e63f..dec1a7e9f 100644
--- a/lib/WebGUI/Auth/Twitter.pm
+++ b/lib/WebGUI/Auth/Twitter.pm
@@ -69,16 +69,16 @@ sub editUserSettingsForm {
my $keyUrl = 'http://dev.twitter.com/apps/new';
- my $f = WebGUI::HTMLForm->new( $session );
+ my $f = WebGUI::FormBuilder->new( $session );
- $f->yesNo(
+ $f->addField( "yesNo",
name => 'twitterEnabled',
value => $setting->get( 'twitterEnabled' ),
label => $i18n->get('enabled'),
hoverHelp => $i18n->get('enabled help'),
);
- $f->text(
+ $f->addField( "text",
name => 'twitterConsumerKey',
value => $setting->get( 'twitterConsumerKey' ),
label => $i18n->get('consumer key'),
@@ -86,14 +86,14 @@ sub editUserSettingsForm {
subtext => sprintf( $i18n->get('get key'), ($keyUrl) x 2 ),
);
- $f->text(
+ $f->addField( "text",
name => 'twitterConsumerSecret',
value => $setting->get( 'twitterConsumerSecret' ),
label => $i18n->get('consumer secret'),
hoverHelp => $i18n->get('consumer secret help'),
);
- $f->template(
+ $f->addField( "template",
name => 'twitterTemplateIdChooseUsername',
value => $setting->get( 'twitterTemplateIdChooseUsername' ),
label => $i18n->get('choose username template'),
@@ -101,7 +101,7 @@ sub editUserSettingsForm {
namespace => 'Auth/Twitter/ChooseUsername',
);
- return $f->printRowsOnly;
+ return $f;
}
#----------------------------------------------------------------------------
diff --git a/lib/WebGUI/Auth/WebGUI.pm b/lib/WebGUI/Auth/WebGUI.pm
index b704f1f18..fb5dedf19 100644
--- a/lib/WebGUI/Auth/WebGUI.pm
+++ b/lib/WebGUI/Auth/WebGUI.pm
@@ -15,7 +15,7 @@ use strict;
use URI;
use WebGUI::Asset::Template;
use WebGUI::Auth;
-use WebGUI::HTMLForm;
+use WebGUI::FormBuilder;
use WebGUI::Macro;
use WebGUI::Mail::Send;
use WebGUI::Storage;
@@ -154,39 +154,39 @@ or an empty string if the check was successful.
sub editUserForm {
my $self = shift;
my $userData = $self->get;
- my $f = WebGUI::HTMLForm->new($self->session);
+ my $f = WebGUI::FormBuilder->new($self->session);
my $i18n = WebGUI::International->new($self->session);
- $f->password(
+ $f->addField( "password",
name=>"authWebGUI.identifier",
label=>$i18n->get(51),
value=>"password",
extras=>'autocomplete="off"',
);
- $f->interval(
- -name=>"authWebGUI.passwordTimeout",
- -label=>$i18n->get(16,'AuthWebGUI'),
- -value=>$userData->{passwordTimeout},
- -defaultValue=>$self->session->setting->get("webguiPasswordTimeout")
+ $f->addField( "interval",
+ name=>"authWebGUI.passwordTimeout",
+ label=>$i18n->get(16,'AuthWebGUI'),
+ value=>$userData->{passwordTimeout},
+ defaultValue=>$self->session->setting->get("webguiPasswordTimeout")
);
my $userChange = $self->session->setting->get("webguiChangeUsername");
if($userChange || $userChange eq "0"){
$userChange = $userData->{changeUsername};
}
- $f->yesNo(
- -name=>"authWebGUI.changeUsername",
- -value=>$userChange,
- -label=>$i18n->get(21,'AuthWebGUI')
+ $f->addField( "yesNo",
+ name=>"authWebGUI.changeUsername",
+ value=>$userChange,
+ label=>$i18n->get(21,'AuthWebGUI')
);
my $passwordChange = $self->session->setting->get("webguiChangePassword");
if($passwordChange || $passwordChange eq "0"){
$passwordChange = $userData->{changePassword};
}
- $f->yesNo(
- -name=>"authWebGUI.changePassword",
- -value=>$passwordChange,
- -label=>$i18n->get(20,'AuthWebGUI')
+ $f->addField( "yesNo",
+ name=>"authWebGUI.changePassword",
+ value=>$passwordChange,
+ label=>$i18n->get(20,'AuthWebGUI')
);
- return $f->printRowsOnly;
+ return $f;
}
#-------------------------------------------------------------------
@@ -233,165 +233,165 @@ sub editUserFormSave {
sub editUserSettingsForm {
my $self = shift;
my $i18n = WebGUI::International->new($self->session,'AuthWebGUI');
- my $f = WebGUI::HTMLForm->new($self->session);
+ my $f = WebGUI::FormBuilder->new($self->session);
- $f->integer(
- -name => "webguiPasswordLength",
- -value => $self->session->setting->get("webguiPasswordLength"),
- -label => $i18n->get(15),
- -hoverHelp => $i18n->get('15 help'),
+ $f->addField( "integer",
+ name => "webguiPasswordLength",
+ value => $self->session->setting->get("webguiPasswordLength"),
+ label => $i18n->get(15),
+ hoverHelp => $i18n->get('15 help'),
);
- $f->integer(
- -name => "webguiRequiredDigits",
- -label => $i18n->get('setting webguiRequiredDigits'),
- -value => $self->session->setting->get("webguiRequiredDigits"),
- -hoverHelp => $i18n->get('setting webguiRequiredDigits help'),
+ $f->addField( "integer",
+ name => "webguiRequiredDigits",
+ label => $i18n->get('setting webguiRequiredDigits'),
+ value => $self->session->setting->get("webguiRequiredDigits"),
+ hoverHelp => $i18n->get('setting webguiRequiredDigits help'),
);
- $f->integer(
- -name => "webguiNonWordCharacters",
- -label => $i18n->get('setting webguiNonWordCharacters'),
- -value => $self->session->setting->get("webguiNonWordCharacters"),
- -hoverHelp => $i18n->get('setting webguiNonWordCharacters help'),
+ $f->addField( "integer",
+ name => "webguiNonWordCharacters",
+ label => $i18n->get('setting webguiNonWordCharacters'),
+ value => $self->session->setting->get("webguiNonWordCharacters"),
+ hoverHelp => $i18n->get('setting webguiNonWordCharacters help'),
);
- $f->integer(
- -name => "webguiRequiredMixedCase",
- -label => $i18n->get('setting webguiRequiredMixedCase'),
- -value => $self->session->setting->get("webguiRequiredMixedCase"),
- -hoverHelp => $i18n->get('setting webguiRequiredMixedCase help'),
+ $f->addField( "integer",
+ name => "webguiRequiredMixedCase",
+ label => $i18n->get('setting webguiRequiredMixedCase'),
+ value => $self->session->setting->get("webguiRequiredMixedCase"),
+ hoverHelp => $i18n->get('setting webguiRequiredMixedCase help'),
);
- $f->interval(
- -name => "webguiPasswordTimeout",
- -label => $i18n->get(16),
- -value => $self->session->setting->get("webguiPasswordTimeout"),
- -hoverHelp => $i18n->get('16 help'),
+ $f->addField( "interval",
+ name => "webguiPasswordTimeout",
+ label => $i18n->get(16),
+ value => $self->session->setting->get("webguiPasswordTimeout"),
+ hoverHelp => $i18n->get('16 help'),
);
- $f->yesNo(
- -name => "webguiExpirePasswordOnCreation",
- -value => $self->session->setting->get("webguiExpirePasswordOnCreation"),
- -label => $i18n->get(9),
- -hoverHelp => $i18n->get('9 help')
+ $f->addField( "yesNo",
+ name => "webguiExpirePasswordOnCreation",
+ value => $self->session->setting->get("webguiExpirePasswordOnCreation"),
+ label => $i18n->get(9),
+ hoverHelp => $i18n->get('9 help')
);
- $f->yesNo(
- -name => "webguiSendWelcomeMessage",
- -value => $self->session->setting->get("webguiSendWelcomeMessage"),
- -label => $i18n->get(868,'WebGUI'),
- -hoverHelp => $i18n->get('868 help','WebGUI'),
+ $f->addField( "yesNo",
+ name => "webguiSendWelcomeMessage",
+ value => $self->session->setting->get("webguiSendWelcomeMessage"),
+ label => $i18n->get(868,'WebGUI'),
+ hoverHelp => $i18n->get('868 help','WebGUI'),
);
- $f->HTMLArea(
- -name => "webguiWelcomeMessage",
- -value => $self->session->setting->get("webguiWelcomeMessage"),
- -label => $i18n->get(869,'WebGUI'),
- -hoverHelp => $i18n->get('869 help','WebGUI'),
+ $f->addField( "HTMLArea",
+ name => "webguiWelcomeMessage",
+ value => $self->session->setting->get("webguiWelcomeMessage"),
+ label => $i18n->get(869,'WebGUI'),
+ hoverHelp => $i18n->get('869 help','WebGUI'),
);
- $f->yesNo(
- -name => "webguiUseEmailAsUsername",
- -value => $self->session->setting->get("webguiUseEmailAsUsername"),
- -label => $i18n->get('use email as username label'),
- -hoverHelp => $i18n->get('use email as username description'),
+ $f->addField( "yesNo",
+ name => "webguiUseEmailAsUsername",
+ value => $self->session->setting->get("webguiUseEmailAsUsername"),
+ label => $i18n->get('use email as username label'),
+ hoverHelp => $i18n->get('use email as username description'),
);
- $f->yesNo(
- -name => "webguiChangeUsername",
- -value => $self->session->setting->get("webguiChangeUsername"),
- -label => $i18n->get(19),
- -hoverHelp => $i18n->get('19 help'),
+ $f->addField( "yesNo",
+ name => "webguiChangeUsername",
+ value => $self->session->setting->get("webguiChangeUsername"),
+ label => $i18n->get(19),
+ hoverHelp => $i18n->get('19 help'),
);
- $f->yesNo(
- -name => "webguiChangePassword",
- -value => $self->session->setting->get("webguiChangePassword"),
- -label => $i18n->get(18),
- -hoverHelp => $i18n->get('18 help'),
+ $f->addField( "yesNo",
+ name => "webguiChangePassword",
+ value => $self->session->setting->get("webguiChangePassword"),
+ label => $i18n->get(18),
+ hoverHelp => $i18n->get('18 help'),
);
- $f->selectList(
- -name => "webguiPasswordRecovery",
- -value => $self->session->setting->get("webguiPasswordRecovery"),
- -label => $i18n->get(6),
- -hoverHelp => $i18n->get('webguiPasswordRecovery hoverHelp'),
- -options => $self->getPasswordRecoveryTypesAvailable,
- -size => 1,
- -multiple => 0,
+ $f->addField( "selectList",
+ name => "webguiPasswordRecovery",
+ value => $self->session->setting->get("webguiPasswordRecovery"),
+ label => $i18n->get(6),
+ hoverHelp => $i18n->get('webguiPasswordRecovery hoverHelp'),
+ options => $self->getPasswordRecoveryTypesAvailable,
+ size => 1,
+ multiple => 0,
);
- $f->yesNo(
- -name => "webguiPasswordRecoveryRequireUsername",
- -value => $self->session->setting->get("webguiPasswordRecoveryRequireUsername"),
- -label => $i18n->get('require username for password recovery'),
- -hoverHelp => $i18n->get('webguiPasswordRecoveryRequireUsername hoverHelp'),
+ $f->addField( "yesNo",
+ name => "webguiPasswordRecoveryRequireUsername",
+ value => $self->session->setting->get("webguiPasswordRecoveryRequireUsername"),
+ label => $i18n->get('require username for password recovery'),
+ hoverHelp => $i18n->get('webguiPasswordRecoveryRequireUsername hoverHelp'),
);
- $f->yesNo(
- -name => "webguiValidateEmail",
- -value => $self->session->setting->get("webguiValidateEmail"),
- -label => $i18n->get('validate email'),
- -hoverHelp => $i18n->get('validate email help'),
+ $f->addField( "yesNo",
+ name => "webguiValidateEmail",
+ value => $self->session->setting->get("webguiValidateEmail"),
+ label => $i18n->get('validate email'),
+ hoverHelp => $i18n->get('validate email help'),
);
- $f->yesNo(
- -name => "webguiUseCaptcha",
- -value => $self->session->setting->get("webguiUseCaptcha"),
- -label => $i18n->get('use captcha'),
- -hoverHelp => $i18n->get('use captcha help'),
+ $f->addField( "yesNo",
+ name => "webguiUseCaptcha",
+ value => $self->session->setting->get("webguiUseCaptcha"),
+ label => $i18n->get('use captcha'),
+ hoverHelp => $i18n->get('use captcha help'),
);
- $f->template(
- -name => "webguiAccountTemplate",
- -value => $self->session->setting->get("webguiAccountTemplate"),
- -namespace => "Auth/WebGUI/Account",
- -label => $i18n->get("account template"),
- -hoverHelp => $i18n->get("account template help"),
+ $f->addField( "template",
+ name => "webguiAccountTemplate",
+ value => $self->session->setting->get("webguiAccountTemplate"),
+ namespace => "Auth/WebGUI/Account",
+ label => $i18n->get("account template"),
+ hoverHelp => $i18n->get("account template help"),
);
- $f->template(
- -name => "webguiCreateAccountTemplate",
- -value => $self->session->setting->get("webguiCreateAccountTemplate"),
- -namespace => "Auth/WebGUI/Create",
- -label => $i18n->get("create account template"),
- -hoverHelp => $i18n->get("create account template help"),
+ $f->addField( "template",
+ name => "webguiCreateAccountTemplate",
+ value => $self->session->setting->get("webguiCreateAccountTemplate"),
+ namespace => "Auth/WebGUI/Create",
+ label => $i18n->get("create account template"),
+ hoverHelp => $i18n->get("create account template help"),
);
- $f->template(
- -name => "webguiDeactivateAccountTemplate",
- -value => $self->session->setting->get("webguiDeactivateAccountTemplate"),
- -namespace => "Auth/WebGUI/Deactivate",
- -label => $i18n->get("deactivate account template"),
- -hoverHelp => $i18n->get("deactivate account template help"),
+ $f->addField( "template",
+ name => "webguiDeactivateAccountTemplate",
+ value => $self->session->setting->get("webguiDeactivateAccountTemplate"),
+ namespace => "Auth/WebGUI/Deactivate",
+ label => $i18n->get("deactivate account template"),
+ hoverHelp => $i18n->get("deactivate account template help"),
);
- $f->template(
- -name => "webguiExpiredPasswordTemplate",
- -value => $self->session->setting->get("webguiExpiredPasswordTemplate"),
- -namespace => "Auth/WebGUI/Expired",
- -label => $i18n->get("expired password template"),
- -hoverHelp => $i18n->get("expired password template"),
+ $f->addField( "template",
+ name => "webguiExpiredPasswordTemplate",
+ value => $self->session->setting->get("webguiExpiredPasswordTemplate"),
+ namespace => "Auth/WebGUI/Expired",
+ label => $i18n->get("expired password template"),
+ hoverHelp => $i18n->get("expired password template"),
);
- $f->template(
- -name => "webguiLoginTemplate",
- -value => $self->session->setting->get("webguiLoginTemplate"),
- -namespace => "Auth/WebGUI/Login",
- -label => $i18n->get("login template"),
- -hoverHelp => $i18n->get("login template help"),
+ $f->addField( "template",
+ name => "webguiLoginTemplate",
+ value => $self->session->setting->get("webguiLoginTemplate"),
+ namespace => "Auth/WebGUI/Login",
+ label => $i18n->get("login template"),
+ hoverHelp => $i18n->get("login template help"),
);
- $f->template(
- -name => "webguiPasswordRecoveryTemplate",
- -value => $self->session->setting->get("webguiPasswordRecoveryTemplate"),
- -namespace => "Auth/WebGUI/Recovery2",
- -label => $i18n->get("password recovery template"),
- -hoverHelp => $i18n->get("password recovery template help")
+ $f->addField( "template",
+ name => "webguiPasswordRecoveryTemplate",
+ value => $self->session->setting->get("webguiPasswordRecoveryTemplate"),
+ namespace => "Auth/WebGUI/Recovery2",
+ label => $i18n->get("password recovery template"),
+ hoverHelp => $i18n->get("password recovery template help")
);
- $f->template(
- -name => "webguiPasswordRecoveryEmailTemplate",
- -value => $self->session->setting->get('webguiPasswordRecoveryEmailTemplate'),
- -label => $i18n->get('Password Recovery Email Template'),
- -hoverHelp => $i18n->get("password recovery email template help"),
- -namespace => "Auth/WebGUI/RecoveryEmail",
+ $f->addField( "template",
+ name => "webguiPasswordRecoveryEmailTemplate",
+ value => $self->session->setting->get('webguiPasswordRecoveryEmailTemplate'),
+ label => $i18n->get('Password Recovery Email Template'),
+ hoverHelp => $i18n->get("password recovery email template help"),
+ namespace => "Auth/WebGUI/RecoveryEmail",
);
- $f->template(
- -name => "webguiWelcomeMessageTemplate",
- -value => $self->session->setting->get("webguiWelcomeMessageTemplate"),
- -namespace => "Auth/WebGUI/Welcome",
- -label => $i18n->get("welcome message template"),
- -hoverHelp => $i18n->get("welcome message template help")
+ $f->addField( "template",
+ name => "webguiWelcomeMessageTemplate",
+ value => $self->session->setting->get("webguiWelcomeMessageTemplate"),
+ namespace => "Auth/WebGUI/Welcome",
+ label => $i18n->get("welcome message template"),
+ hoverHelp => $i18n->get("welcome message template help")
);
- $f->template(
- -name => "webguiAccountActivationTemplate",
- -value => $self->session->setting->get("webguiAccountActivationTemplate"),
- -namespace => "Auth/WebGUI/Activation",
- -label => $i18n->get("account activation template"),
- -hoverHelp => $i18n->get("account activation template help")
+ $f->addField( "template",
+ name => "webguiAccountActivationTemplate",
+ value => $self->session->setting->get("webguiAccountActivationTemplate"),
+ namespace => "Auth/WebGUI/Activation",
+ label => $i18n->get("account activation template"),
+ hoverHelp => $i18n->get("account activation template help")
);
- return $f->printRowsOnly;
+ return $f;
}
#-------------------------------------------------------------------
diff --git a/lib/WebGUI/Operation/Settings.pm b/lib/WebGUI/Operation/Settings.pm
index 41b998227..9a419ada0 100644
--- a/lib/WebGUI/Operation/Settings.pm
+++ b/lib/WebGUI/Operation/Settings.pm
@@ -606,6 +606,14 @@ sub www_editSettings {
$output .= '';
}
+ # Start the form
+ my $tabform = WebGUI::FormBuilder->new($session, action => '?op=saveSettings' );
+ $tabform->addField( 'csrfToken', name => 'csrfToken' );
+ $tabform->addField( "hidden",
+ name => "op",
+ value => "saveSettings"
+ );
+
# Available tabs
# TODO: Build this from the definition instead.
tie my %tabs, 'Tie::IxHash', (
@@ -619,25 +627,19 @@ sub www_editSettings {
auth => { label => $i18n->get("authentication") },
perms => { label => $i18n->get("permissions") },
);
-
- # Start the form
- my $tabform = WebGUI::TabForm->new($session,\%tabs);
- $tabform->hidden({
- name => "op",
- value => "saveSettings"
- });
+ for my $tabName ( keys %tabs ) {
+ $tabform->addTab( name => $tabName, %{$tabs{$tabName}} );
+ }
my $definitions = definition($session, $i18n);
foreach my $definition (@{$definitions}) {
- $tabform->getTab($definition->{tab})->dynamicField(%{$definition});
+ $tabform->getTab($definition->{tab})->addField( $definition->{fieldType}, %$definition );
}
# Get fieldsets for avaiable auth methods
- foreach (@{$session->config->get("authMethods")}) {
- $tabform->getTab("auth")->fieldSetStart($_);
+ foreach my $authName (@{$session->config->get("authMethods")}) {
my $authInstance = WebGUI::Operation::Auth::getInstance($session,$_,1);
- $tabform->getTab("auth")->raw($authInstance->editUserSettingsForm);
- $tabform->getTab("auth")->fieldSetEnd;
+ $tabform->getTab( "auth" )->addFieldset( $authInstance->editUserSettingsForm, name => $authName, label => $authName );
}
# Get fieldsets for avaiable account methods
@@ -660,20 +662,18 @@ sub www_editSettings {
}
#If editUserSettingsForm is empty, skip it
- next if $settingsForm eq "";
+ next unless $settingsForm;
#Set the title of the fieldset
my $title = $account->{title};
WebGUI::Macro::process($title);
#Print the settings form for this account pluggin
- $tabform->getTab("account")->fieldSetStart($title);
- $tabform->getTab("account")->raw($settingsForm);
- $tabform->getTab("account")->fieldSetEnd;
+ $tabform->getTab("account")->addFieldset( $settingsForm, name => $account->{identifier}, label => $title );
}
- $tabform->submit();
- $output .= $tabform->print;
+ $tabform->addField( "submit", name => "submit" );
+ $output .= $tabform->toHtml;
my $ac = WebGUI::AdminConsole->new($session,"settings");
return $ac->render($output);
@@ -707,6 +707,7 @@ sub www_saveSettings {
my $authErrors = $authInstance->editUserSettingsFormSave;
if ($authErrors) {
+ $session->log->warn( "Problem saving settings: " . $authErrors );
push @errors, @{ $authErrors };
}
}
diff --git a/t/Operation/Settings.t b/t/Operation/Settings.t
new file mode 100644
index 000000000..70732afa1
--- /dev/null
+++ b/t/Operation/Settings.t
@@ -0,0 +1,75 @@
+# vim:syntax=perl
+#-------------------------------------------------------------------
+# WebGUI is Copyright 2001-2009 Plain Black Corporation.
+#-------------------------------------------------------------------
+# Please read the legal notices (docs/legal.txt) and the license
+# (docs/license.txt) that came with this distribution before using
+# this software.
+#------------------------------------------------------------------
+# http://www.plainblack.com info@plainblack.com
+#------------------------------------------------------------------
+
+# Write a little about what this script tests.
+#
+#
+
+use FindBin;
+use strict;
+use lib "$FindBin::Bin/lib";
+use Test::More;
+use Test::Deep;
+use WebGUI::Test; # Must use this before any other WebGUI modules
+use WebGUI::Test::Mechanize;
+use WebGUI::Session;
+
+#----------------------------------------------------------------------------
+# Init
+my $session = WebGUI::Test->session;
+
+
+#----------------------------------------------------------------------------
+# Tests
+
+#----------------------------------------------------------------------------
+# Edit some settings up in here
+
+my $mech = WebGUI::Test::Mechanize->new( config => WebGUI::Test->file );
+$mech->get_ok( '/' );
+$mech->session->user({ userId => 3 });
+
+my %newSettings = (
+ # Test some normal settings
+ companyName => 'Shawshank Penetentiary',
+ companyEmail => 'warden@shawshank.justice.gov',
+
+ # Test some Auth settings
+ facebookAuthEnabled => 1,
+ ldapConnection => 'SOME_RANDOM_ID',
+ twitterEnabled => 1,
+ webguiPasswordLength => 9_001,
+
+ # Test some Account settings
+ overrideAbleToBeFriend => 1,
+ inboxInviteUserSubject => 'Your incarceration adventure begins here!',
+);
+
+$mech->get_ok( '/?op=editSettings' );
+$mech->submit_form_ok({
+ fields => \%newSettings,
+ },
+ "Settings edited"
+);
+
+my $testSettings = $session->db->buildHashRef("select * from settings", [], {noOrder => 1});
+cmp_deeply(
+ $testSettings,
+ superhashof( \%newSettings ),
+ "Settings are set",
+);
+
+diag $mech->content;
+diag explain $testSettings;
+
+done_testing;
+
+#vim:ft=perl