diff --git a/docs/changelog/6.x.x.txt b/docs/changelog/6.x.x.txt
index 61de63392..ad2e2ee9a 100644
--- a/docs/changelog/6.x.x.txt
+++ b/docs/changelog/6.x.x.txt
@@ -66,8 +66,8 @@
the master database. This will have no effect on single database users, but
can add a tremendous amount of scalability on large WebGUI sites that use
database replication.
- - Templated the EditableToggle, a, and AdminToggle macros. Thanks to Colin
- Kuskie.
+ - Templated the EditableToggle, a, GroupAdd, GroupDelete, H, LoginToggle, r,
+ and AdminToggle macros. Thanks to Colin Kuskie.
- bugfix [ 933881 ] Forms not compliant (solution). Thanks to Nicklous
Roberts.
- bugfix [ 934410 ] non-compliant HTML (solution). Thanks to Nicklous
@@ -82,7 +82,7 @@
scalability a lot. Thanks to Martin Kamerbeek / Procolix
- bugfix [ 977201 ] ws client bug
- bugfix [ 969740 ] Messageboard: Deleting of postings
-
+ - Added an option to sort a select list by its values. Thanks to Roy Johnson.
6.0.3
diff --git a/docs/credits.txt b/docs/credits.txt
index 5cfb61c08..415bd277a 100644
--- a/docs/credits.txt
+++ b/docs/credits.txt
@@ -23,6 +23,7 @@ Contributing Developers..............Peter Beardsley / Appropriate Solutions
Chris Gebhardt / OpenServe
Andy Grundman
Chris Jackson
+ Roy Johnson
Koen de Jonge / ProcoliX
Martin Kamerbeek / ProcoliX
Christian Kocourek
diff --git a/docs/gotcha.txt b/docs/gotcha.txt
index d238ed451..2053d26d7 100644
--- a/docs/gotcha.txt
+++ b/docs/gotcha.txt
@@ -36,6 +36,9 @@ save you many hours of grief.
sure you have extrasPath and extrasURL defined in your config
file.
+ * The ThumbnailLinker macro has been removed. You can now use the
+ Thumbnail macro because it is templated.
+
6.0.2
--------------------------------------------------------------------
diff --git a/docs/upgrades/upgrade_6.0.3-6.1.0.pl b/docs/upgrades/upgrade_6.0.3-6.1.0.pl
index 83bf9f495..47834db70 100644
--- a/docs/upgrades/upgrade_6.0.3-6.1.0.pl
+++ b/docs/upgrades/upgrade_6.0.3-6.1.0.pl
@@ -18,6 +18,29 @@ GetOptions(
WebGUI::Session::open("../..",$configFile);
+
+
+#--------------------------------------------
+print "\tUpdating config file.\n" unless ($quiet);
+my $pathToConfig = '../../etc/'.$configFile;
+my $conf = Parse::PlainConfig->new('DELIM' => '=', 'FILE' => $pathToConfig);
+$conf->set("templateCacheType"=>"file");
+my $macros = $conf->get("macros");
+delete $macros->{"\\"};
+$macros->{"\\\\"} = "Backslash_pageUrl";
+$macros->{"Navigation"} = "Navigation";
+my %newMacros;
+foreach my $macro (keys %{$macros}) {
+ unless (
+ $macros->{$macro} eq "ThumbnailLinker"
+ ) {
+ $newMacros{$macro} = $macros->{$macro};
+ }
+}
+$conf->set("macros"=>\%newMacros);
+$conf->write;
+
+
#--------------------------------------------
print "\tRemoving unneeded files and directories.\n" unless ($quiet);
unlink("../../lib/WebGUI/Operation/International.pm");
@@ -25,6 +48,7 @@ unlink("../../lib/WebGUI/Wobject/Item.pm");
unlink("../../lib/WebGUI/Wobject/LinkList.pm");
unlink("../../lib/WebGUI/Wobject/FAQ.pm");
unlink("../../lib/WebGUI/Wobject/ExtraColumn.pm");
+unlink("../../lib/WebGUI/Macro/ThumbnailLinker.pm");
unlink("../../lib/WebGUI/Macro/m_currentMenuHorizontal.pm");
unlink("../../lib/WebGUI/Macro/M_currentMenuVertical.pm");
unlink("../../lib/WebGUI/Macro/s_specificMenuHorizontal.pm");
@@ -44,6 +68,7 @@ unlink("../../lib/WebGUI/Macro/TopDropMenu.pm");
unlink("../../lib/WebGUI/Macro/Question_search.pm");
+#--------------------------------------------
print "\tResetting user languages.\n" unless ($quiet);
my ($defaultLangId) = WebGUI::SQL->quickArray("select dataDefault from userProfileField where fieldName='language'");
$defaultLangId =~ s/\[//;
@@ -75,6 +100,7 @@ foreach my $key (keys %{$langs}) {
WebGUI::SQL->write("update page set languageId=".quote($langs->{$key})." where languageId=".$key);
}
+#--------------------------------------------
print "\tConverting page tree to the Nested Set model.\n";
sub walk_down {
my($pageId, $o) = @_[0,1];
diff --git a/docs/upgrades/upgrade_6.0.3-6.1.0.sql b/docs/upgrades/upgrade_6.0.3-6.1.0.sql
index dd1c552bc..809d43fbd 100644
--- a/docs/upgrades/upgrade_6.0.3-6.1.0.sql
+++ b/docs/upgrades/upgrade_6.0.3-6.1.0.sql
@@ -4,7 +4,16 @@ drop table international;
drop table help;
alter table WSClient add sharedCache tinyint unsigned not null default '0';
alter table WSClient add cacheTTL smallint(5) unsigned NOT NULL default '60';
-INSERT INTO template VALUES (1,'Default Account','','Macro/a_account',1,1);
-INSERT INTO template VALUES (1,'Default Editable Toggle','','Macro/EditableToggle',1,1);
-INSERT INTO template VALUES (1,'Default Admin Toggle','','Macro/AdminToggle',1,1);
+INSERT INTO template VALUES (1,'Default Account Macro','','Macro/a_account',1,1);
+INSERT INTO template VALUES (1,'Default Editable Toggle Macro','','Macro/EditableToggle',1,1);
+INSERT INTO template VALUES (1,'Default Admin Toggle Macro','','Macro/AdminToggle',1,1);
+INSERT INTO template VALUES (1,'Default File Macro','','Macro/File',1,1);
+INSERT INTO template VALUES (2,'File no icon','','Macro/File',1,1);
+INSERT INTO template VALUES (3,'File with size','()','Macro/File',1,1);
+INSERT INTO template VALUES (1,'Default Group Add Macro','','Macro/GroupAdd',1,1);
+INSERT INTO template VALUES (1,'Default Group Delete Macro','','Macro/GroupDelete',1,1);
+INSERT INTO template VALUES (1,'Default Homelink','','Macro/H_homeLink',1,1);
+INSERT INTO template VALUES (1,'Default Make Printable','','Macro/r_printable',1,1);
+INSERT INTO template VALUES (1,'Default LoginToggle','','Macro/LoginToggle',1,1);
+
diff --git a/lib/WebGUI/Form.pm b/lib/WebGUI/Form.pm
index 89991dbc1..f288c3248 100644
--- a/lib/WebGUI/Form.pm
+++ b/lib/WebGUI/Form.pm
@@ -16,6 +16,7 @@ package WebGUI::Form;
use strict;
use HTTP::BrowserDetect;
+use Tie::IxHash;
use WebGUI::DateTime;
use WebGUI::International;
use WebGUI::Session;
@@ -1314,6 +1315,10 @@ If you want to add anything special to this form element like javascript actions
'onChange="this.form.submit()"'
+=item sortByValue
+
+A boolean value for whether or not the values in the options hash should be sorted.
+
=back
=cut
@@ -1322,20 +1327,30 @@ sub selectList {
my ($output, $key, $item, $size, $multiple);
$size = $_[0]->{size} || 1;
$multiple = ' multiple="1"' if ($_[0]->{multiple});
- $output = '