diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index c20af44c9..40d31f397 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -1,3 +1,6 @@ +7.7.6 + - Reverted using the packed templates and snippets by default. You can re-enable the packed templates and snippets carefully. + 7.7.5 - Adding StoryManager. - rfe: Button to Turn Admin Off on Admin Accordian (#475) diff --git a/docs/upgrades/upgrade_7.7.4-7.7.5.pl b/docs/upgrades/upgrade_7.7.4-7.7.5.pl index a205efa86..5bc3542ae 100644 --- a/docs/upgrades/upgrade_7.7.4-7.7.5.pl +++ b/docs/upgrades/upgrade_7.7.4-7.7.5.pl @@ -226,7 +226,7 @@ sub addTemplatePacking { next unless $asset; $asset->update({ template => $asset->get('template'), - usePacked => 1, + usePacked => 0, }); } @@ -241,7 +241,7 @@ sub addTemplatePacking { next unless $asset; $asset->update({ extraHeadTags => $asset->get('extraHeadTags'), - usePackedHeadTags => 1, + usePackedHeadTags => 0, }); } @@ -256,7 +256,7 @@ sub addTemplatePacking { next unless $asset; $asset->update({ snippet => $asset->get('snippet'), - usePacked => 1, + usePacked => 0, }); } diff --git a/docs/upgrades/upgrade_7.7.5-7.7.6.pl b/docs/upgrades/upgrade_7.7.5-7.7.6.pl new file mode 100644 index 000000000..ed32524f8 --- /dev/null +++ b/docs/upgrades/upgrade_7.7.5-7.7.6.pl @@ -0,0 +1,138 @@ +#!/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.7.6"; +my $quiet; + + +my $session = start(); + +# upgrade functions go here +revertUsePacked( $session ); + +finish($session); + + +#---------------------------------------------------------------------------- +# 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; +#} + +#---------------------------------------------------------------------------- +# Rollback usePacked. It should be carefully applied manually for now +sub revertUsePacked { + my $session = shift; + print "\tReverting use packed... " unless $quiet; + my $iter = WebGUI::Asset->getIsa( $session ); + while ( my $asset = $iter->() ) { + $asset->update({ usePackedHeadTags => 0 }); + if ( $asset->isa('WebGUI::Asset::Template') || $asset->isa('WebGUI::Asset::Snippet') ) { + $asset->update({ usePacked => 0 }); + } + } + 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; + + # 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 = WebGUI::Asset->getImportNode($session)->importPackage( $storage ); + + # Turn off the package flag, and set the default flag for templates added + my $assetIds = $package->getLineage( ['self','descendants'] ); + for my $assetId ( @{ $assetIds } ) { + my $asset = WebGUI::Asset->newByDynamicClass( $session, $assetId ); + if ( !$asset ) { + print "Couldn't instantiate asset with ID '$assetId'. Please check package '$file' for corruption.\n"; + next; + } + my $properties = { isPackage => 0 }; + if ($asset->isa('WebGUI::Asset::Template')) { + $properties->{isDefault} = 1; + } + $asset->update( $properties ); + } + + 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',".$session->datetime->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