diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index bb9026bfb..cd1599b2d 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -16,6 +16,8 @@ - Added a new plugin handler system that is both faster and more secure. - Added switch for assets to determine whether they are exportable. - Added migration utility for Gallery + - Removed old .tmpl files from upgrades. ALL templates in upgrades must now + be in Packages! 7.4.20 - fix: Assets with no committed versions may be left as orphans when parent is purged diff --git a/docs/upgrades/_upgrade.skeleton b/docs/upgrades/_upgrade.skeleton index 7821157a7..0d47257e5 100644 --- a/docs/upgrades/_upgrade.skeleton +++ b/docs/upgrades/_upgrade.skeleton @@ -1,5 +1,5 @@ #------------------------------------------------------------------- -# WebGUI is Copyright 2001-2006 Plain Black Corporation. +# WebGUI is Copyright 2001-2008 Plain Black Corporation. #------------------------------------------------------------------- # Please read the legal notices (docs/legal.txt) and the license # (docs/license.txt) that came with this distribution before using @@ -48,118 +48,51 @@ sub addPackage { $storage->addFileFromFilesystem( $file ); # Import the package into the import node - WebGUI::Asset->getImportNode($session)->importPackage( $storage ); + my $package = WebGUI::Asset->getImportNode($session)->importPackage( $storage ); # Make the package not a package anymore -} - -#---------------------------------------------------------------------------- -# Add a template from a file -sub addTemplate { - my $session = shift; - my $file = shift; - my $newFolder = shift; - - open(FILE,"<",$file); - my $first = 1; - my $create = 0; - my $head = 0; - my %properties = (className=>"WebGUI::Asset::Template"); - while (my $line = ) { - if ($first) { - $line =~ m/^\#(.*)$/; - $properties{id} = $1; - $first = 0; - } - elsif ($line =~ m/^\#create$/) { - $create = 1; - } - elsif ($line =~ m/^\#(.*):(.*)$/) { - $properties{$1} = $2; - } - elsif ($line =~ m/^~~~$/) { - $head = 1; - } - elsif ($head) { - $properties{headBlock} .= $line; - } - else { - $properties{template} .= $line; - } - } - close(FILE); - if ($create) { - $$newFolder = createNewTemplatesFolder(WebGUI::Asset->getImportNode($session)) - unless (defined $$newFolder); - my $template = $$newFolder->addChild(\%properties, $properties{id}); - } - else { - my $template = WebGUI::Asset->new($session,$properties{id}, "WebGUI::Asset::Template"); - if (defined $template) { - my $newRevision = $template->addRevision(\%properties); - } - } + $package->update({ isPackage => 0 }); } #------------------------------------------------- sub start { - my $configFile; - $|=1; #disable output buffering - GetOptions( - 'configFile=s'=>\$configFile, - 'quiet'=>\$quiet - ); - my $session = WebGUI::Session->open("../..",$configFile); - $session->user({userId=>3}); - my $versionTag = WebGUI::VersionTag->getWorking($session); - $versionTag->set({name=>"Upgrade to ".$toVersion}); - $session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".$session->datetime->time().")"); - updateTemplates($session); - return $session; + my $configFile; + $|=1; #disable output buffering + GetOptions( + 'configFile=s'=>\$configFile, + 'quiet'=>\$quiet + ); + my $session = WebGUI::Session->open("../..",$configFile); + $session->user({userId=>3}); + my $versionTag = WebGUI::VersionTag->getWorking($session); + $versionTag->set({name=>"Upgrade to ".$toVersion}); + $session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".$session->datetime->time().")"); + updateTemplates($session); + return $session; } #------------------------------------------------- sub finish { - my $session = shift; - my $versionTag = WebGUI::VersionTag->getWorking($session); - $versionTag->commit; - $session->close(); + my $session = shift; + my $versionTag = WebGUI::VersionTag->getWorking($session); + $versionTag->commit; + $session->close(); } #------------------------------------------------- sub updateTemplates { my $session = shift; - return undef unless (-d "templates-".$toVersion); - print "\tUpdating templates.\n" unless ($quiet); - opendir(DIR,"templates-".$toVersion); + 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 =~ /\.(tmpl|wgpkg)$/); - my $type = $1; - $file = "templates-" . $toVersion . "/" . $file; - if ($type eq "tmpl") { - addTemplate( $session, $file, \$newFolder ); - } - elsif ($type eq "wgpkg") { - addPackage( $session, $file ); - } + next unless ($file =~ /\.wgpkg$/); + # Fix the filename to include a path + $file = "packages-" . $toVersion . "/" . $file; + addPackage( $session, $file ); } } -#------------------------------------------------- -sub createNewTemplatesFolder { - my $importNode = shift; - my $newFolder = $importNode->addChild({ - className=>"WebGUI::Asset::Wobject::Folder", - title => $toVersion." New Templates", - menuTitle => $toVersion." New Templates", - url=> $toVersion."_new_templates", - groupIdView=>"12" - }); - return $newFolder; -} - - - diff --git a/docs/upgrades/packages-7.5.0/7.5.0_new_templates.wgpkg b/docs/upgrades/packages-7.5.0/7.5.0_new_templates.wgpkg new file mode 100644 index 000000000..b60553dcf Binary files /dev/null and b/docs/upgrades/packages-7.5.0/7.5.0_new_templates.wgpkg differ diff --git a/docs/upgrades/packages-7.5.0/default-tt-template-user.wgpkg b/docs/upgrades/packages-7.5.0/default-tt-template-user.wgpkg new file mode 100644 index 000000000..4b0e90ff0 Binary files /dev/null and b/docs/upgrades/packages-7.5.0/default-tt-template-user.wgpkg differ diff --git a/docs/upgrades/templates-7.5.0/root_import_gallery-templates.wgpkg b/docs/upgrades/packages-7.5.0/root_import_gallery-templates.wgpkg similarity index 100% rename from docs/upgrades/templates-7.5.0/root_import_gallery-templates.wgpkg rename to docs/upgrades/packages-7.5.0/root_import_gallery-templates.wgpkg diff --git a/docs/upgrades/templates-7.5.0/managefriends.tmpl b/docs/upgrades/templates-7.5.0/managefriends.tmpl deleted file mode 100755 index 6fc580a43..000000000 --- a/docs/upgrades/templates-7.5.0/managefriends.tmpl +++ /dev/null @@ -1,61 +0,0 @@ -#managefriends_________ -#url: managefriendstemplate -#title: Manage Friends (default) -#menuTitle: Manage Friends -#namespace:friends/manage -#create -

^International("my friends","Friends");

- - - - - - - - - - - - - - -
^International("name","Friends");^International("status","Friends");
- -

^International("send friend email instructions","Friends");

- - - - - - - - - -
- - -
-
    - -
  • -
    -
-
-~~~ - - diff --git a/docs/upgrades/templates-7.5.0/time-tracking-user-view.tmpl b/docs/upgrades/templates-7.5.0/time-tracking-user-view.tmpl deleted file mode 100644 index 2b0f7423e..000000000 --- a/docs/upgrades/templates-7.5.0/time-tracking-user-view.tmpl +++ /dev/null @@ -1,311 +0,0 @@ -#TimeTrackingTMPL000001 - -

-
- - -

-
- - -
- -
-
- - - -

- - - - -~~~ - - diff --git a/docs/upgrades/upgrade_7.4.18-7.5.0.pl b/docs/upgrades/upgrade_7.4.18-7.5.0.pl index 31d7c3d7f..5f6e9d865 100644 --- a/docs/upgrades/upgrade_7.4.18-7.5.0.pl +++ b/docs/upgrades/upgrade_7.4.18-7.5.0.pl @@ -1,5 +1,5 @@ #------------------------------------------------------------------- -# WebGUI is Copyright 2001-2006 Plain Black Corporation. +# WebGUI is Copyright 2001-2008 Plain Black Corporation. #------------------------------------------------------------------- # Please read the legal notices (docs/legal.txt) and the license # (docs/license.txt) that came with this distribution before using @@ -288,57 +288,10 @@ sub addPackage { $storage->addFileFromFilesystem( $file ); # Import the package into the import node - WebGUI::Asset->getImportNode($session)->importPackage( $storage ); + my $package = WebGUI::Asset->getImportNode($session)->importPackage( $storage ); # Make the package not a package anymore -} - -#---------------------------------------------------------------------------- -# Add a template from a file -sub addTemplate { - my $session = shift; - my $file = shift; - my $newFolder = shift; - - open(FILE,"<",$file); - my $first = 1; - my $create = 0; - my $head = 0; - my %properties = (className=>"WebGUI::Asset::Template"); - while (my $line = ) { - if ($first) { - $line =~ m/^\#(.*)$/; - $properties{id} = $1; - $first = 0; - } - elsif ($line =~ m/^\#create$/) { - $create = 1; - } - elsif ($line =~ m/^\#(.*):(.*)$/) { - $properties{$1} = $2; - } - elsif ($line =~ m/^~~~$/) { - $head = 1; - } - elsif ($head) { - $properties{headBlock} .= $line; - } - else { - $properties{template} .= $line; - } - } - close(FILE); - if ($create) { - $$newFolder = createNewTemplatesFolder(WebGUI::Asset->getImportNode($session)) - unless (defined $$newFolder); - my $template = $$newFolder->addChild(\%properties, $properties{id}); - } - else { - my $template = WebGUI::Asset->new($session,$properties{id}, "WebGUI::Asset::Template"); - if (defined $template) { - my $newRevision = $template->addRevision(\%properties); - } - } + $package->update({ isPackage => 0 }); } #------------------------------------------------- @@ -368,35 +321,16 @@ sub finish { #------------------------------------------------- sub updateTemplates { my $session = shift; - return undef unless (-d "templates-".$toVersion); - print "\tUpdating templates.\n" unless ($quiet); - opendir(DIR,"templates-".$toVersion); + 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 =~ /\.(tmpl|wgpkg)$/); - my $type = $1; - $file = "templates-" . $toVersion . "/" . $file; - if ($type eq "tmpl") { - addTemplate( $session, $file, \$newFolder ); - } - elsif ($type eq "wgpkg") { - addPackage( $session, $file ); - } + next unless ($file =~ /\.wgpkg$/); + $file = "packages-" . $toVersion . "/" . $file; + addPackage( $session, $file ); } } -#------------------------------------------------- -sub createNewTemplatesFolder { - my $importNode = shift; - my $newFolder = $importNode->addChild({ - className=>"WebGUI::Asset::Wobject::Folder", - title => $toVersion." New Templates", - menuTitle => $toVersion." New Templates", - url=> $toVersion."_new_templates", - groupIdView=>"12" - }); - return $newFolder; -} - diff --git a/lib/WebGUI/AssetPackage.pm b/lib/WebGUI/AssetPackage.pm index aec12f86b..aa954df7a 100644 --- a/lib/WebGUI/AssetPackage.pm +++ b/lib/WebGUI/AssetPackage.pm @@ -198,11 +198,12 @@ A reference to a WebGUI::Storage object that contains a webgui package file. =cut sub importPackage { - my $self = shift; - my $storage = shift; - my $decompressed = $storage->untar($storage->getFiles->[0]); - my %assets = (); - my $error = $self->session->errorHandler; + my $self = shift; + my $storage = shift; + my $decompressed = $storage->untar($storage->getFiles->[0]); + my %assets = (); # All the assets we've imported + my $package = undef; # The asset package + my $error = $self->session->errorHandler; $error->info("Importing package."); foreach my $file (sort(@{$decompressed->getFiles})) { next unless ($decompressed->getFileExtension($file) eq "json"); @@ -224,15 +225,24 @@ sub importPackage { my $newAsset = $asset->importAssetData($data); $newAsset->importAssetCollateralData($data); $assets{$newAsset->getId} = $newAsset; + + # First imported asset must be the "package" + unless ($package) { + $package = $newAsset; + } } + + # Handle autocommit workflows if ($self->session->setting->get("autoRequestCommit")) { if ($self->session->setting->get("skipCommitComments")) { WebGUI::VersionTag->getWorking($self->session)->requestCommit; - } else { + } + else { $self->session->http->setRedirect($self->getUrl("op=commitVersionTag;tagId=".WebGUI::VersionTag->getWorking($self->session)->getId)); } } - return; + + return $package; } #-------------------------------------------------------------------