diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt
index f8b042f1e..6d707c912 100644
--- a/docs/changelog/7.x.x.txt
+++ b/docs/changelog/7.x.x.txt
@@ -1,3 +1,17 @@
+7.10.2
+ - fixed #11884: Editing Templates impossible / Code editor not loaded
+ - recommitted ukplayer. Removal broke Matrix. Licencing information was available but overlooked.
+ - fixed #11883: Wiki "Add page" link does not encode special chars
+ - fixed #11886: profile knows it's me, but doesn't display edit
+ - fixed #11789: Date form reports 1 day earlier on Edit for the time zone corresponding to Europe/Berlin.
+ - fixed #11894: Europe London timezone decrements birth date
+ - fixed #11857: make page printable?
+ - fixed #11891: Shop credit not displayed in payment method screen
+ - fixed #11871: Metadata display and criteria builder problems
+ - fixed #10189: pbworkflow000000000007 Hanging
+ - fixed #11897: Continue to the site link loses current page
+ - fixed #11618: Code Editor: Content loses it's whitespace formatting
+
7.10.1
- fixed #11851: Story Topic: top story variables should be available all the time
- fixed #11854: CS doesn't return Not Found page
diff --git a/docs/gotcha.txt b/docs/gotcha.txt
index e7a78128e..c650c9a2e 100644
--- a/docs/gotcha.txt
+++ b/docs/gotcha.txt
@@ -21,6 +21,19 @@ save you many hours of grief.
Account Macro template
Admin Toggle Macro template
+7.10.2
+--------------------------------------------------------------------
+ * The URL used by Display Message on Login always returns the user to
+ the page where they logged in. If your site depended on the old,
+ buggy behavior of returning the user to the home page after showing
+ a message, then in the Settings you can assign Redirect After Login Url
+ to /.
+
+ * The UKPLayer - a slideshow that displays images as a movie -
+ is in WebGUI again. Licencing information was overlooked. An
+ upgrade to 7.10.1 will break the Matrix. This is fixed now.
+
+
7.10.1
--------------------------------------------------------------------
* WebGUI now depends on PerlIO::eol, for doing line ending translation.
diff --git a/docs/templates.txt b/docs/templates.txt
index e9bdc7e56..0aba47215 100644
--- a/docs/templates.txt
+++ b/docs/templates.txt
@@ -11,8 +11,19 @@ templates, you will need to apply these changes manually to your copies.
toggle.url => toggle_url
toggle.text => toggle_text
+7.10.2
+
+ * The Make Page Printable template has changed (as per bug #11857). The HTML
+ is now consistent with other default Style templates. The Plain Black logo and
+ copyright info have been removed and a stylesheet was added to provide very
+ simple default formatting for text, header and footer (makepageprintable.css).
+
7.10.1
+ * Profile templates - root/import/account/profile/default-view-profile-template
+ - root/import/account/profile/profile-account-layout
+ Moved the "back to profile" link from the Profile View template to the Profile Layout template.
+
* Asset Report Template - asset-report/asset-report-default-template
Remove the empty template attachment
diff --git a/docs/upgrades/packages-7.10.1/root_import_account_profile.wgpkg b/docs/upgrades/packages-7.10.1/root_import_account_profile.wgpkg
new file mode 100644
index 000000000..f609b3d3b
Binary files /dev/null and b/docs/upgrades/packages-7.10.1/root_import_account_profile.wgpkg differ
diff --git a/docs/upgrades/packages-7.10.2/root_import_style.wgpkg b/docs/upgrades/packages-7.10.2/root_import_style.wgpkg
new file mode 100644
index 000000000..f1a4000a9
Binary files /dev/null and b/docs/upgrades/packages-7.10.2/root_import_style.wgpkg differ
diff --git a/docs/upgrades/upgrade_7.10.1-7.10.2.pl b/docs/upgrades/upgrade_7.10.1-7.10.2.pl
new file mode 100644
index 000000000..d2f49d9fc
--- /dev/null
+++ b/docs/upgrades/upgrade_7.10.1-7.10.2.pl
@@ -0,0 +1,123 @@
+#!/usr/bin/env 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
+#-------------------------------------------------------------------
+
+our ($webguiRoot);
+
+BEGIN {
+ $webguiRoot = "../..";
+ unshift (@INC, $webguiRoot."/lib");
+}
+
+use strict;
+use Getopt::Long;
+use WebGUI::Session;
+use WebGUI::Storage;
+use WebGUI::Asset;
+
+
+my $toVersion = '7.10.2';
+my $quiet; # this line required
+
+
+my $session = start(); # this line required
+
+# upgrade functions go here
+
+finish($session); # this line required
+
+
+#----------------------------------------------------------------------------
+# Describe what our function does
+#sub exampleFunction {
+# my $session = shift;
+# print "\tWe're doing some stuff here that you should know about... " unless $quiet;
+# # and here's our code
+# print "DONE!\n" unless $quiet;
+#}
+
+
+# -------------- DO NOT EDIT BELOW THIS LINE --------------------------------
+
+#----------------------------------------------------------------------------
+# Add a package to the import node
+sub addPackage {
+ my $session = shift;
+ my $file = shift;
+
+ print "\tUpgrading package $file\n" unless $quiet;
+ # Make a storage location for the package
+ my $storage = WebGUI::Storage->createTemp( $session );
+ $storage->addFileFromFilesystem( $file );
+
+ # Import the package into the import node
+ my $package = eval {
+ my $node = WebGUI::Asset->getImportNode($session);
+ $node->importPackage( $storage, {
+ overwriteLatest => 1,
+ clearPackageFlag => 1,
+ setDefaultTemplate => 1,
+ } );
+ };
+
+ if ($package eq 'corrupt') {
+ die "Corrupt package found in $file. Stopping upgrade.\n";
+ }
+ if ($@ || !defined $package) {
+ die "Error during package import on $file: $@\nStopping upgrade\n.";
+ }
+
+ return;
+}
+
+#-------------------------------------------------
+sub start {
+ my $configFile;
+ $|=1; #disable output buffering
+ GetOptions(
+ 'configFile=s'=>\$configFile,
+ 'quiet'=>\$quiet
+ );
+ my $session = WebGUI::Session->open($webguiRoot,$configFile);
+ $session->user({userId=>3});
+ my $versionTag = WebGUI::VersionTag->getWorking($session);
+ $versionTag->set({name=>"Upgrade to ".$toVersion});
+ return $session;
+}
+
+#-------------------------------------------------
+sub finish {
+ my $session = shift;
+ updateTemplates($session);
+ my $versionTag = WebGUI::VersionTag->getWorking($session);
+ $versionTag->commit;
+ $session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
+ $session->close();
+}
+
+#-------------------------------------------------
+sub updateTemplates {
+ my $session = shift;
+ return undef unless (-d "packages-".$toVersion);
+ print "\tUpdating packages.\n" unless ($quiet);
+ opendir(DIR,"packages-".$toVersion);
+ my @files = readdir(DIR);
+ closedir(DIR);
+ my $newFolder = undef;
+ foreach my $file (@files) {
+ next unless ($file =~ /\.wgpkg$/);
+ # Fix the filename to include a path
+ $file = "packages-" . $toVersion . "/" . $file;
+ addPackage( $session, $file );
+ }
+}
+
+#vim:ft=perl
diff --git a/lib/WebGUI/Account/Profile.pm b/lib/WebGUI/Account/Profile.pm
index 203ba95be..f0071ec21 100644
--- a/lib/WebGUI/Account/Profile.pm
+++ b/lib/WebGUI/Account/Profile.pm
@@ -82,7 +82,8 @@ sub appendCategoryVars {
$var->{'profile_category_'.$categoryId."_shortLabel"} = $shortCategoryLabel;
$var->{'profile_category_'.$categoryId."_index" } = $index;
$var->{'profile_category_'.$categoryId."_fields" } = $fields;
-
+
+ $var->{'can_edit_profile' } = $self->uid eq $self->session->user->userId;
#Update the isActive flag to determine the default active tab
$self->store->{hasActiveTab} = ($self->store->{hasActiveTab} || $isActive);
@@ -471,8 +472,6 @@ sub www_view {
$self->appendCommonVars($var);
- $var->{'can_edit_profile' } = $uid eq $session->user->userId;
-
my $privacySetting = $user->profileField('publicProfile') || 'none';
$var->{"profile_privacy_$privacySetting"} = "true";
diff --git a/lib/WebGUI/Asset.pm b/lib/WebGUI/Asset.pm
index b5ed67201..b1888daa5 100644
--- a/lib/WebGUI/Asset.pm
+++ b/lib/WebGUI/Asset.pm
@@ -2642,7 +2642,7 @@ sub www_changeUrl {
my $i18n = WebGUI::International->new($self->session, "Asset");
my $f = WebGUI::HTMLForm->new($self->session, action=>$self->getUrl);
$f->hidden(name=>"func", value=>"changeUrlConfirm");
- $f->hidden(name=>"proceed", value=>$self->session->form->param("proceed"));
+ $f->hidden(name=>"proceed", value=>scalar($self->session->form->param("proceed")));
$f->text(name=>"url", value=>$self->get('url'), label=>$i18n->get("104"), hoverHelp=>$i18n->get('104 description'));
$f->yesNo(name=>"confirm", value=>0, label=>$i18n->get("confirm change"), hoverHelp=>$i18n->get("confirm change url message"), subtext=>'
'.$i18n->get("confirm change url message"));
$f->submit;
diff --git a/lib/WebGUI/Asset/Event.pm b/lib/WebGUI/Asset/Event.pm
index c521828b8..da48ff407 100644
--- a/lib/WebGUI/Asset/Event.pm
+++ b/lib/WebGUI/Asset/Event.pm
@@ -1440,7 +1440,7 @@ override processEditForm => sub {
my $assetId = $self->getId;
my $revisionDate = $self->revisionDate;
- $session->db->write("UPDATE Event SET sequenceNumber =? WHERE assetId = ? AND revisionDate =?",[($form->param('sequenceNumber') || $top_val), $assetId, $revisionDate]);
+ $session->db->write("UPDATE Event SET sequenceNumber =? WHERE assetId = ? AND revisionDate =?",[(scalar($form->param('sequenceNumber')) || $top_val), $assetId, $revisionDate]);
# Pre-process Related Links and manage changes
diff --git a/lib/WebGUI/Asset/Shortcut.pm b/lib/WebGUI/Asset/Shortcut.pm
index ada7e15df..e4b0bdf51 100644
--- a/lib/WebGUI/Asset/Shortcut.pm
+++ b/lib/WebGUI/Asset/Shortcut.pm
@@ -90,6 +90,9 @@ sub _drawQueryBuilder {
"!=" => $i18n->get("isnt")
};
}
+ $operator{checkList} = {
+ "+~" => $i18n->get("contains"),
+ };
$operator{integer} = {
"=" => $i18n->get("equal to"),
"!=" => $i18n->get("not equal to"),
@@ -145,6 +148,8 @@ sub _drawQueryBuilder {
# The value select field
my $valFieldName = "val_field".$i;
my $options = $fields->{$field}{possibleValues};
+ ##Only allow one at a time to be selected, and work with current JS for choosing which one.
+ $fieldType = 'radioList' if $fieldType eq 'checkList';
my $valueField = WebGUI::Form::dynamicField($session,
fieldType=>$fieldType,
name=>$valFieldName,
@@ -374,7 +379,6 @@ sub getFieldsList {
foreach my $field (@{WebGUI::ProfileField->getFields($session)}) {
my $fieldId = $field->getId;
next if $fieldId =~ /contentPositions/;
- $session->log->warn($fieldId);
$fieldNames{$fieldId} = $field->getLabel.' ['.$fieldId.']';
}
$output .= '