From 653fea0aa64be2f63f87879b58902da1b10bb461 Mon Sep 17 00:00:00 2001 From: Graham Knop Date: Fri, 6 Feb 2009 01:04:16 +0000 Subject: [PATCH] adding merge point --- .../packages-7.5.40-7.6.10/merged.wgpkg | Bin 0 -> 182612 bytes docs/upgrades/upgrade_7.5.24-7.6.0.pl | 1 + docs/upgrades/upgrade_7.5.40-7.6.10.pl | 1870 +++++++++++++++++ docs/upgrades/upgrade_7.6.3-7.6.4.pl | 1 + 4 files changed, 1872 insertions(+) create mode 100644 docs/upgrades/packages-7.5.40-7.6.10/merged.wgpkg create mode 100644 docs/upgrades/upgrade_7.5.40-7.6.10.pl diff --git a/docs/upgrades/packages-7.5.40-7.6.10/merged.wgpkg b/docs/upgrades/packages-7.5.40-7.6.10/merged.wgpkg new file mode 100644 index 0000000000000000000000000000000000000000..38291af26c26e47eaea9ae80c9904b6a6bb3cfcf GIT binary patch literal 182612 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
$Ez-fE&=uKULl9m}w|m5VRv(N_)A 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
Z;inW#{cp>7}~!v>PYZJO8eq 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"alter table Survey modify surveyJSON longText"); + $session->db->write("alter table Survey_response modify responseJSON longText"); +} + +#---------------------------------------------------------------------------- +# Add ability to select which rich editor for messages between users +sub addRichEditorInboxSetting { + my $session = shift; + print "\tAdding rich editor selection to Inbox... " unless $quiet; + + $session->setting->add("inboxRichEditId","PBrichedit000000000001"); + + print "DONE!\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +#Describe what our function does +sub reFixAccountMisspellings { + my $session = shift; + my $setting = $session->setting; + print "\tFix misspellings in Account settings... " unless $quiet; + # and here's our code + $setting->add("profileViewTemplateId", $setting->get('profileViewTempalteId') ); + $setting->add("profileErrorTemplateId", $setting->get('profileErrorTempalteId') ); + $setting->add("inboxLayoutTemplateId", $setting->get('inboxLayoutTempalteId') ); + $setting->add("friendsLayoutTemplateId", $setting->get('friendsLayoutTempalteId')); + $setting->remove("profileViewTempalteId"); + $setting->remove("profileErrorTempalteId"); + $setting->remove("inboxLayoutTempalteId"); + $setting->remove("friendsLayoutTempalteId"); + print "DONE!\n" unless $quiet; +} + +# Add editListingTemplate property to Matrix +sub addMatrixEditListingTemplate { + my $session = shift; + print "\tAdd editListingTemplate property to Matrix... " unless $quiet; + $session->db->write("alter table Matrix add editListingTemplateId char(22)"); + print "DONE!\n" unless $quiet; +} + +#---------------------------------------------------------------------------- + +sub removeSqlForm { + my $session = shift; + print "\tOptionally removing Web Services Client...\n" unless $quiet; + my $db = $session->db; + unless ($db->quickScalar("select count(*) from asset where className='WebGUI::Asset::Wobject::WSClient'")) { + print "\t\tNot using it, so we're uninstalling it.\n" unless $quiet; + $session->config->delete("assets/WebGUI::Asset::Wobject::WSClient"); + my @ids = $db->buildArray("select distinct assetId from template where namespace = 'WSClient'"); + push @ids, qw(5YAbuwiVFUx-z8hcOAnsdQ); + foreach my $id (@ids) { + my $asset = WebGUI::Asset->newByDynamicClass($session, $id); + if (defined $asset) { + $asset->purge; + } + } + $db->write("drop table WSClient"); + } + else { + print "\t\tThis site uses Web Services Client, so we won't uninstall it.\n" unless $quiet; + } +} + +#---------------------------------------------------------------------------- + +sub updateMatrixListingScores { + my $session = shift; + print "\tUpdating score for every MatrixListing asset... " unless $quiet; + my $matrixListings = WebGUI::Asset->getRoot($session)->getLineage(['descendants'], + { + statesToInclude => ['published','trash','clipboard','clipboard-limbo','trash-limbo'], + statusToInclude => ['pending','approved','deleted','archived'], + includeOnlyClasses => ['WebGUI::Asset::MatrixListing'], + returnObjects => 1, + }); + + for my $matrixListing (@{$matrixListings}) + { + next unless defined $matrixListing; + my $score = $session->db->quickScalar("select sum(value) from MatrixListing_attribute + left join Matrix_attribute using(attributeId) + where matrixListingId = ? and fieldType = 'MatrixCompare'", + [$matrixListing->getId]); + $matrixListing->update({score => $score}); + } + print "DONE!\n" unless $quiet; +} + +#---------------------------------------------------------------------------- + +sub removeTemplateHeadBlock { + my $session = shift; + print "\tMerging Template head blocks into the Extra Head Tags field... " unless $quiet; + my $sth = $session->db->prepare('select assetId, revisionDate, headBlock from template'); + $sth->execute(); + TMPL: while (my $templateData = $sth->hashRef) { + my $template = WebGUI::Asset->new($session, + $templateData->{assetId}, 'WebGUI::Asset::Template', + $templateData->{revisionDate}, + ); + next TMPL unless defined $template; + if ($template->get('namespace') eq 'style') { + $template->update({ + extraHeadTags => '', + }); + } + else { + $template->update({ + extraHeadTags => $template->getExtraHeadTags . $templateData->{headBlock}, + }); + } + } + $session->db->write('ALTER TABLE template DROP COLUMN headBlock'); + # and here's our code + print "DONE!\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +#Describe what our function does +sub fixAccountMisspellings { + my $session = shift; + my $setting = $session->setting; + print "\tFix misspellings in Account settings... " unless $quiet; + # and here's our code + $setting->add("profileViewTemplateId", $setting->get('profileViewTempalteId') ); + $setting->add("profileErrorTemplateId", $setting->get('profileErrorTempalteId') ); + $setting->add("inboxLayoutTemplateId", $setting->get('inboxLayoutTempalteId') ); + $setting->add("friendsLayoutTemplateId", $setting->get('friendsLayoutTempalteId')); + $setting->remove("profileViewTemplateId"); + $setting->remove("profileErrorTemplateId"); + $setting->remove("inboxLayoutTemplateId"); + $setting->remove("friendsLayoutTemplateId"); + print "DONE!\n" unless $quiet; +} + +sub upgradeMatrix { + my $session = shift; + print "\tUpgrading matrix assets... \n" unless $quiet; + my $db = $session->db; + $db->write("alter table Matrix drop column groupToRate, drop column groupToAdd, drop column privilegedGroup, + drop column ratingTimeout, drop column ratingTimeoutPrivileged, drop column ratingDetailTemplateId, + drop column visitorCacheTimeout"); + $db->write("alter table Matrix add column defaultSort char(22) not null default 'score', + add column compareColorNo char(22) default '#ffaaaa', + add column compareColorLimited char(22) not null default '#ffffaa', + add column compareColorCostsExtra char(22) not null default '#ffffaa', + add column compareColorFreeAddOn char(22) not null default '#ffffaa', + add column compareColorYes char(22) not null default '#aaffaa', + add column submissionApprovalWorkflowId char(22) not null, + add column ratingsDuration int(11) not null default 7776000"); + $db->write("create table MatrixListing ( + assetId char(22) binary not null, + revisionDate bigint not null, + screenshots char(22), + description text, + version char(255), + views int(11), + compares int(11), + clicks int(11), + viewsLastIp char(255), + comparesLastIp char(255), + clicksLastIp char(255), + lastUpdated int(11), + maintainer char(22), + manufacturerName char(255), + manufacturerURL char(255), + productURL char(255), + score int(11), + primary key (assetId, revisionDate) + )"); + $db->write("create table MatrixListing_attribute ( + matrixId char(22) not null, + matrixListingId char(22) not null, + attributeId char(22) not null, + value char(255), + primary key (matrixId, matrixListingId, attributeId) + )"); + $db->write("alter table Matrix_rating rename MatrixListing_rating"); + $db->write("alter table Matrix_ratingSummary rename MatrixListing_ratingSummary"); + $db->write("alter table Matrix_field rename Matrix_attribute"); + $db->write("alter table Matrix_attribute drop column label"); + $db->write("alter table Matrix_attribute add column options text"); + $db->write("alter table Matrix_attribute change fieldType fieldType char(255) not null default 'MatrixCompare'"); + $db->write("alter table Matrix_attribute change fieldId attributeId char(22) not null"); + $db->write("update Matrix_attribute set fieldType = 'MatrixCompare' where fieldType = 'GoodBad'"); + $db->write("update Matrix_attribute set fieldType = 'Combo' where fieldType != 'MatrixCompare'"); + $db->write("update Matrix_listingData set value = 0 where value = 'No'"); + $db->write("update Matrix_listingData set value = 1 where value = 'Limited'"); + $db->write("update Matrix_listingData set value = 2 where value = 'Costs Extra'"); + $db->write("update Matrix_listingData set value = 3 where value = 'Free Add On'"); + $db->write("update Matrix_listingData set value = 4 where value = 'Yes'"); + + # get existing Matrix wobjects + my $matrices = WebGUI::Asset->getRoot($session)->getLineage(['descendants'], + { + statesToInclude => ['published','trash','clipboard','clipboard-limbo','trash-limbo'], + statusToInclude => ['pending','approved','deleted','archived'], + includeOnlyClasses => ['WebGUI::Asset::Wobject::Matrix'], + returnObjects => 1, + }); + + for my $matrix (@{$matrices}) + { + next unless defined $matrix; + # If the asset is in the trash, ignore the migration, we're just going + # to purge it. + if ($matrix->get("state") =~ m/trash/) { + $matrix->purge; + next; + } + + # get listings for each Matrix + my @listings = @{ $db->buildArrayRefOfHashRefs("select * from Matrix_listing where assetId =?",[$matrix->getId]) }; + foreach my $listing (@listings){ + # add MatrixListing asset for each listing + print "Migrating listing: ".$listing->{productName}."\n" unless $quiet;; + $listing->{className} = 'WebGUI::Asset::MatrixListing'; + $listing->{assetId} = 'new'; + $listing->{title} = $listing->{productName}; + $listing->{version} = $listing->{versionNumber}; + $listing->{screenshots} = $listing->{storageId}; + $listing->{productURL} = $listing->{productUrl}; + $listing->{manufacturerURL} = $listing->{manufacturerUrl}; + my $newMatrixListing = $matrix->addChild($listing,undef,undef,{skipAutoCommitWorkflows=>1}); + # get listingData for each listing + my $listingData = $db->buildArrayRefOfHashRefs("select * from Matrix_listingData where listingId =?",[$listing->{listingId}]); + # add listing attribute for each listing field + foreach my $attribute (@{$listingData}){ + $db->write("insert into MatrixListing_attribute (matrixId, matrixListingId, attributeId, value) values + (?,?,?,?)",[$matrix->getId,$newMatrixListing->getId,$attribute->{fieldId},$attribute->{value}]); + } + # update listingIds to MatrixListingIds in MatrixListing_rating/Summary tables + $db->write("update MatrixListing_rating set listingId = ? where listingId =?", + [$newMatrixListing->getId,$listing->{listingId}]); + $db->write("update MatrixListing_ratingSummary set listingId = ? where listingId =?", + [$newMatrixListing->getId,$listing->{listingId}]); + # migrate comments + if($listing->{forumId}){ + my $forum = WebGUI::Asset::Wobject::Collaboration->new($session, $listing->{forumId}); + my @comments = @{ $forum->getLineage(['descendants'], { + includeOnlyClasses => ["WebGUI::Asset::Post", "WebGUI::Asset::Post::Thread"], + returnObjects => 1, + }) }; + foreach my $comment (@comments){ + # add comment + my $content = $comment->get('content'); + $content =~ s/^

//; + $content =~ s/<\/p>//; + my $ownerUser = WebGUI::User->new($session,$comment->get('ownerUserId')); + $newMatrixListing->addComment($content,0,$ownerUser); + } + } + } + } + $db->write("drop table Matrix_listing"); + $db->write("drop table Matrix_listingData"); + print "\tDONE!\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +sub addExtendedProfilePrivileges { + my $session = shift; + + print qq{\tExtending User Profile Privileges..} if !$quiet; + + my $userProfDesc = $session->db->buildHashRef('describe userProfileData'); + if(grep { $_ =~ /^wg_privacySettings/ } keys %{$userProfDesc}) { + $session->db->write("alter table userProfileData drop column wg_privacySettings"); + } + $session->db->write("alter table userProfileData add wg_privacySettings longtext"); + + my $fields = WebGUI::ProfileField->getFields($session); + + my $users = $session->db->buildArrayRef("select userId from users"); + foreach my $userId (@{$users}) { + my $hash = {}; + foreach my $field (@{$fields}) { + if($field->getId eq "publicEmail") { + my $u = WebGUI::User->new($session,$userId); + $hash->{$field->getId} = $u->profileField("publicEmail") ? "all" : "none"; + next; + } + $hash->{$field->getId} = $field->isViewable ? "all" : "none"; + } + my $json = JSON->new->encode($hash); + $session->db->write("update userProfileData set wg_privacySettings=? where userId=?",[$json,$userId]); + } + + #Delete the public email field + my $publicEmail = WebGUI::ProfileField->new($session,"publicEmail"); + if(defined $publicEmail) { + $publicEmail->delete; + } + + print qq{Finished\n} if !$quiet; +} + + +#---------------------------------------------------------------------------- +sub addPosMode { + my $session = shift; + + print qq{\tAdding Point of Sale mode to the Shop...} if !$quiet; + + my $db = $session->db(); + my $setting = $session->setting(); + + $setting->add("groupIdCashier","3"); + $db->write(q{ALTER TABLE cart drop column couponId}); + $db->write(q{ALTER TABLE cart add column posUserId char(22) binary}); + $db->write(q{ALTER TABLE transaction add column cashierUserId char(22) binary}); + $db->write(q{update transaction set cashierUserId=userId}); + $db->write(q{ALTER TABLE addressBook add column defaultAddressId char(22) binary}); + + print qq{Finished\n} if !$quiet; +} + +#---------------------------------------------------------------------------- +sub addStorageUrlMacro { + my $session = shift; + print qq{\tAdding StorageUrl Macro... } if !$quiet; + $session->config->addToHash( "macros", "StorageUrl" => "StorageUrl" ); + print qq{Done!\n} if !$quiet; +} + +#---------------------------------------------------------------------------- +# This method add support for versionTagMode +# +sub addVersionTagMode { + my $session = shift; + + print qq{\tAdding support for versionTagMode...} if !$quiet; + + my $db = $session->db(); + my $setting = $session->setting(); + + + $db->write(q{ALTER TABLE `assetVersionTag` ADD `isSiteWide` BOOL NOT NULL DEFAULT '0'}); + + ##Use the API... + my $newField = WebGUI::ProfileField->create( + $session, + 'versionTagMode', + { + label => 'WebGUI::International::get("version tag mode","WebGUI");', + visible => 1, + required => 0, + protected => 1, + editable => 1, + forceImageOnly => 0, + requiredForPasswordRecovery => 0, + fieldType => 'selectBox', + possibleValues => q| +{ + inherited => WebGUI::International::get("versionTagMode inherited"), + multiPerUser => WebGUI::International::get("versionTagMode multiPerUser"), + singlePerUser => WebGUI::International::get("versionTagMode singlePerUser"), + siteWide => WebGUI::International::get("versionTagMode siteWide"), + autoCommit => WebGUI::International::get("versionTagMode autoCommit"), +} +|, + dataDefault => 'inherited', + } + ); + $newField->setCategory(4); + $setting->add('versionTagMode', ''); + + # Keep autoRequestCommit if enabled + my $versionTagMode = q{multiPerUser}; + if ($setting->get('autoRequestCommit')) { + $versionTagMode = q{autoCommit}; + } + $setting->set('versionTagMode', $versionTagMode); + + $setting->remove('autoRequestCommit'); + + print qq{Finished\n} if !$quiet; + + return; +} #addVersionTagMode + + +#---------------------------------------------------------------------------- +# This method migrates the the old survey system and existing surveys to the new survey system +# +# +sub migrateSurvey{ + my $session = shift; + print "\tMigrating surveys to new survey system..." unless $quiet; + + _moveOldSurveyTables($session); + _addSurveyTables($session); + + + my $surveys = $session->db->buildArrayRefOfHashRefs( + "SELECT * FROM Survey_old s + where s.revisionDate = (select max(s1.revisionDate) from Survey_old s1 where s1.assetId = s.assetId)" + ); + + for my $survey(@$surveys){ + + #move over survey + $session->db->write("insert into Survey + values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", + [ + $$survey{groupToTakeSurvey},$$survey{groupToViewReports},$$survey{groupToViewReports},'PBtmpl0000000000000064','PBtmpl0000000000000063',$$survey{maxResponsesPerUser}, + $$survey{gradebookTemplateId},$$survey{assetId},'PBtmpl0000000000000061',$$survey{revisionDate},'GRUNFctldUgop-qRLuo_DA','AjhlNO3wZvN5k4i4qioWcg', + 'wAc4azJViVTpo-2NYOXWvg', '1oBRscNIcFOI-pETrCOspA','d8jMMMRddSQ7twP4l1ZSIw','CxMpE_UPauZA3p8jdrOABw','','{}',0,0,0 + ] + ); + + my $sjson = WebGUI::Asset::Wobject::Survey::SurveyJSON->new(); + #move over sections + my $sql = "select * from Survey_section_old where Survey_id = '$$survey{Survey_id}' order by sequenceNumber"; + my $sections = $session->db->buildArrayRefOfHashRefs($sql); + my $sId = 0; + my %sMap; + for my $section(@$sections){ + my $random = $$section{questionOrder} eq 'random' ? 1 : 0; + $sMap{$$section{Survey_sectionId}} = $sId; + $sjson->update([$sId++], + { + 'text','','title',$$section{sectionName},'variable',$$section{Survey_sectionId}, + 'questionsPerPage',$$survey{questionsPerPage},'randomizeQuestions',$random + } + ); + } + + #move over questions + $sql = "select * from Survey_question_old where Survey_id = '$$survey{Survey_id}' order by sequenceNumber"; + my $questions = $session->db->buildArrayRefOfHashRefs($sql); + my $qId = 0; + my %qMap = ('radioList','Multiple Choice','text','Text','HTMLArea','Text','textArea','Text'); + my %qS; + my $lastSection = $$questions[0]->{Survey_sectionid}; + for my $question(@$questions){ + if($lastSection ne $$question{Survey_sectionId}){ + $qId = 0; + } + $qMap{$$question{Survey_questionId}} = $qId; + $qS{$$question{Survey_questionId}} = $$question{Survey_sectionId}; + $sjson->update([$sMap{$$question{Survey_sectionId}},$qId++], + { + 'text',$$question{question},'variable',$$question{Survey_questionId},'allowComment',$$question{allowComment}, + 'randomizeAnswers',$$question{randomizeAnswers},'questionType',$qMap{$$question{answerFieldType}} + } + ); + $lastSection = $$question{Survey_sectionId}; + } + + #move over answers + $sql = "select * from Survey_answer_old where Survey_id = '$$survey{Survey_id}' order by sequenceNumber"; + my $answers = $session->db->buildArrayRefOfHashRefs($sql); + my $aId = 0; + my %aMap; + my $lastQuestion = $$answers[0]->{Survey_questionId}; + for my $answer(@$answers){ + if($lastQuestion ne $$answer{Survey_questionId}){ + $aId = 0; + } + $aMap{$$survey{Survey_answerId}} = $aId; + $sjson->update([$sMap{$qS{$$answer{Survey_questionId}}},$qMap{$$answer{Survey_questionId}},$aId++], + { + 'text',$$answer{answer},'goto',$$answer{Survey_questionId},'recordedAnswer',$$answer{answer}, + 'isCorrect',$$answer{isCorrect},'NEED TO MAP QUESTION TYPES' + } + ); + $lastQuestion = $$answer{Survey_questionId}; + } + + my $date = $session->db->quickScalar('select max(revisionDate) from Survey where assetId = ?',[$$survey{assetId}]); + $session->db->write('update Survey set surveyJSON = ? where assetId = ? and revisionDate = ?',[$sjson->freeze,$$survey{assetId},$date]); + + my $rjson = WebGUI::Asset::Wobject::Survey::ResponseJSON->new(undef,undef,$sjson); + $rjson->createSurveyOrder(); + #move over responses + $sql = "select * from Survey_response_old where Survey_id = '$$survey{Survey_id}'"; + my $responses = $session->db->buildArrayRefOfHashRefs($sql); + for my $response(@$responses){ + $session->db->write('insert into Survey_response values(?,?,?,?,?,?,?,?,?,?)', + [ + $$survey{assetId},$$response{Survey_responseId},$$response{userId},$$response{userName},$$response{ipAddress},$$response{startDate},$$response{endDate}, + $$response{isComplete},undef,'{}' + ] + ); + #$sql = "select * from Survey_questionResponse_old where Survey_responseId = '$$response{Survey_responseId}'"; + #my $qresponses = $session->db->buildArrayRefOfHashRefs($sql); + #for my $qresponse(@$qresponses){ + #} + } + } + + print "Finished\n" unless $quiet; +} + + +sub _moveOldSurveyTables{ + my $session = shift; + eval{ + $session->db->write("alter table Survey rename to Survey_old"); + $session->db->write("alter table Survey_answer rename to Survey_answer_old"); + $session->db->write("alter table Survey_question rename to Survey_question_old"); + $session->db->write("alter table Survey_section rename to Survey_section_old"); + $session->db->write("alter table Survey_response rename to Survey_response_old"); + $session->db->write("alter table Survey_questionResponse rename to Survey_questionResponse_old"); + }; +} + +sub _addSurveyTables{ + my $session = shift; + $session->db->write("DROP TABLE IF EXISTS `Survey`"); + $session->db->write(" +CREATE TABLE `Survey` ( + `groupToTakeSurvey` char(22) character set utf8 collate utf8_bin NOT NULL default '2', + `groupToEditSurvey` char(22) character set utf8 collate utf8_bin NOT NULL default '3', + `groupToViewReports` char(22) character set utf8 collate utf8_bin NOT NULL default '3', + `responseTemplateId` char(22) character set utf8 collate utf8_bin NOT NULL, + `overviewTemplateId` char(22) character set utf8 collate utf8_bin NOT NULL, + `maxResponsesPerUser` int(11) NOT NULL default '1', + `gradebookTemplateId` char(22) character set utf8 collate utf8_bin NOT NULL, + `assetId` char(22) character set utf8 collate utf8_bin NOT NULL, + `templateId` char(22) character set utf8 collate utf8_bin NOT NULL, + `revisionDate` bigint(20) NOT NULL default '0', + `surveyEditTemplateId` char(22) default NULL, + `answerEditTemplateId` char(22) default NULL, + `questionEditTemplateId` char(22) default NULL, + `sectionEditTemplateId` char(22) default NULL, + `surveyTakeTemplateId` char(22) default NULL, + `surveyQuestionsId` char(22) default NULL, + `exitURL` varchar(512) default NULL, + `surveyJSON` longblob, + `timeLimit` mediumint(8) unsigned NOT NULL, + `showProgress` tinyint(3) unsigned NOT NULL default '0', + `showTimeLimit` tinyint(3) unsigned NOT NULL default '0', + PRIMARY KEY (`assetId`,`revisionDate`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +"); + $session->db->write("DROP TABLE IF EXISTS `Survey_response`"); + $session->db->write(" +CREATE TABLE `Survey_response` ( + `assetId` char(22) character set utf8 collate utf8_bin NOT NULL, + `Survey_responseId` char(22) character set utf8 collate utf8_bin NOT NULL, + `userId` char(22) default NULL, + `username` char(255) default NULL, + `ipAddress` char(15) default NULL, + `startDate` bigint(20) NOT NULL default '0', + `endDate` bigint(20) NOT NULL default '0', + `isComplete` int(11) NOT NULL default '0', + `anonId` varchar(255) default NULL, + `responseJSON` longblob, + PRIMARY KEY (`Survey_responseId`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + "); + $session->db->write("DROP TABLE IF EXISTS `Survey_tempReport`"); + $session->db->write(" +CREATE TABLE `Survey_tempReport` ( + `assetId` char(22) NOT NULL, + `Survey_responseId` char(22) NOT NULL, + `order` smallint(5) unsigned NOT NULL, + `sectionNumber` smallint(5) unsigned NOT NULL, + `sectionName` varchar(512) default NULL, + `questionNumber` smallint(5) unsigned NOT NULL, + `questionName` varchar(512) default NULL, + `questionComment` mediumtext, + `answerNumber` smallint(5) unsigned default NULL, + `answerValue` mediumtext, + `answerComment` mediumtext, + `entryDate` bigint(20) unsigned NOT NULL COMMENT 'UTC Unix Time', + `isCorrect` tinyint(3) unsigned default NULL, + `value` int(11) default NULL, + `fileStoreageId` char(22) default NULL COMMENT 'Not implemented yet', + PRIMARY KEY (`assetId`,`Survey_responseId`,`order`), + KEY `assetId` (`assetId`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + "); +} + +#---------------------------------------------------------------------------- +sub fixFriendsGroups { + my $session = shift; + my $users = $session->db->buildArrayRef("select userId from users where friendsGroup is not null && friendsGroup != ''"); + foreach my $userId (@{$users}) { + #purge the admin group + WebGUI::User->new($session,$userId)->friends->deleteGroups([3]); + } +} + +#---------------------------------------------------------------------------- +sub addRecurringSubscriptionSwitch { + my $session = shift; + + print "\tAdding a recurring/nonrecurring switch to subscriptions... " unless $quiet; + + $session->db->write('alter table Subscription add column recurringSubscription tinyint(1) not null default 1'); + + print "Done!\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +sub upgradeAccount { + my $session = shift; + my $config = $session->config; + my $setting = $session->setting; + + print "\tUpgrading WebGUI Account System... " unless $quiet; + #Add account properties to config file + $session->config->delete("account"); #Delete account if it exists + $session->config->set("account",[ + { + identifier => "profile", + title => "^International(title,Account_Profile);", + className => "WebGUI::Account::Profile" + }, + { + identifier => "inbox", + title => "^International(title,Account_Inbox);", + className => "WebGUI::Account::Inbox" + }, + { + identifier => "friends", + title => "^International(title,Account_Friends);", + className => "WebGUI::Account::Friends" + }, + { + identifier => "contributions", + title => "^International(title,Account_Contributions);", + className => "WebGUI::Account::Contributions" + }, + { + identifier => "shop", + title => "^International(title,Account_Shop);", + className => "WebGUI::Account::Shop" + }, + { + identifier => "user", + title => "^International(title,Account_User);", + className => "WebGUI::Account::User" + }, + ]); + $session->config->set("profileModuleIdentifier","profile"); + #Add the content handler to the config file if it's not there + my $oldHandlers = $session->config->get( "contentHandlers" ); + unless (isIn("WebGUI::Content::Account",@{$oldHandlers})) { + my @newHandlers; + for my $handler ( @{ $oldHandlers } ) { + if ( $handler eq "WebGUI::Content::Operation" ) { + push @newHandlers, "WebGUI::Content::Account"; + } + push @newHandlers, $handler; + } + $session->config->set( "contentHandlers", \@newHandlers ); + } + + #Add new macros to the config file + $session->config->addToHash("macros","BackToSite","BackToSite"); + $session->config->addToHash("macros","If","If"); + $session->config->addToHash("macros","DeactivateAccount","DeactivateAccount"); + + + #Add the settings for the profile module + $setting->add("profileStyleTemplateId",""); #Use the userStyle by default + $setting->add("profileLayoutTemplateId","FJbUTvZ2nUTn65LpW6gjsA"); + $setting->add("profileEditTemplateId","75CmQgpcCSkdsL-oawdn3Q"); + $setting->add("profileViewTempalteId","2CS-BErrjMmESOtGT90qOg"); + $setting->add("profileErrorTempalteId","MBmWlA_YEA2I6D29OMGtRg"); + + #Add the settings for the inbox module + $setting->add("inboxStyleTemplateId",""); #Use the userStyle by default + $setting->add("inboxLayoutTempalteId","gfZOwaTWYjbSoVaQtHBBEw"); + $setting->add("inboxViewTemplateId","c8xrwVuu5QE0XtF9DiVzLw"); + $setting->add("inboxViewMessageTemplateId","0n4HtbXaWa_XJHkFjetnLQ"); + $setting->add("inboxSendMessageTemplateId","6uQEULvXFgCYlRWnYzZsuA"); + $setting->add("inboxErrorTemplateId","ErEzulFiEKDkaCDVmxUavw"); + $setting->add("inboxMessageConfirmationTemplateId","DUoxlTBXhVS-Zl3CFDpt9g"); + #Invitations + $setting->add("inboxManageInvitationsTemplateId","1Q4Je3hKCJzeo0ZBB5YB8g"); + $setting->add("inboxViewInvitationTemplateId","VBkY05f-E3WJS50WpdKd1Q"); + $setting->add("inboxInvitationConfirmTemplateId","5A8Hd9zXvByTDy4x-H28qw"); + #Inbox Invitations + $setting->add("inboxInviteUserEnabled",$session->setting->get("userInvitationsEnabled")); + $setting->add("inboxInviteUserRestrictSubject","0"); + $setting->add("inboxInviteUserSubject","^International(invite subject,Account_Inbox,^u;);"); + $setting->add("inboxInviteUserRestrictMessage","0"); + $setting->add("inboxInviteUserMessage","^International(invite message,Account_Inbox);"); + $setting->add("inboxInviteUserMessageTemplateId","XgcsoDrbC0duVla7N7JAdw"); + $setting->add("inboxInviteUserTemplateId","cR0UFm7I1qUI2Wbpj--08Q"); + $setting->add("inboxInviteUserConfirmTemplateId","SVIhz68689hwUGgcDM-gWw"); + + #Add the settings for the friends module + $setting->add("friendsStyleTemplateId",""); #Use the userStyle by default + $setting->add("friendsLayoutTempalteId","zrNpGbT3odfIkg6nFSUy8Q"); + $setting->add("friendsViewTemplateId","1Yn_zE_dSiNuaBGNLPbxtw"); + $setting->add("friendsEditTemplateId","AZFU33p0jpPJ-E6qLSWZng"); + $setting->add("friendsSendRequestTemplateId","AGJBGviWGAwjnwziiPjvDg"); + $setting->add("friendsErrorTemplateId","7Ijdd8SW32lVgg2H8R-Aqw"); + $setting->add("friendsConfirmTemplateId","K8F0j_cq_jgo8dvWY_26Ag"); + $setting->add("friendsRemoveConfirmTemplateId","G5V6neXIDiFXN05oL-U3AQ"); + + #Add the settings for the user module + $setting->add("userAccountStyleTemplateId",""); #Use the userStyle by default + $setting->add("userAccountLayoutTemplateId","9ThW278DWLV0-Svf68ljFQ"); + + #Add the settings for the shop module + $setting->add("shopStyleTemplateId",""); #Use the userStyle by default + $setting->add("shopLayoutTemplateId","aUDsJ-vB9RgP-AYvPOy8FQ"); + + #Add the settings for the contributions module + $setting->add("contribStyleTemplateId",""); #Use the userStyle by default + $setting->add("contribLayoutTemplateId","b4n3VyUIsAHyIvT-W-jziA"); + $setting->add("contribViewTemplateId","1IzRpX0tgW7iuCfaU2Kk0A"); + + + #Add inbox changes + $session->db->write(q{ + create table inbox_messageState ( + messageId char(22) binary not null, + userId char(22) binary not null, + isRead tinyint(4) not null default 0, + repliedTo tinyint(4) not null default 0, + deleted tinyint(4) not null default 0, + primary key (messageId, userId) + ) + }); + + #Update the inbox + my $sth = $session->db->read("select messageId, groupId, userId, status from inbox"); + while(my ($messageId,$groupId,$userId,$status) = $sth->array) { + my $repliedTo = $status eq "replied"; + my $isRead = ($status ne "unread" && $status ne "pending")?1:0; + my $deleted = 0; + + if($status eq "deleted") { + #Purge deleted messages + $session->db->write("delete from inbox where messageId=?",[$messageId]); + next; + } + + if($groupId) { + my $g = WebGUI::Group->new($session,$groupId); + my $users = $g->getAllUsers; + foreach my $userId (@{$users}) { + $session->db->write( + q{ REPLACE INTO inbox_messageState (messageId,userId,isRead,repliedTo,deleted) VALUES (?,?,?,?,?) }, + [$messageId,$userId,$isRead,$repliedTo,$deleted] + ); + } + } + + if($userId) { + $session->db->write( + q{ REPLACE INTO inbox_messageState (messageId,userId,isRead,repliedTo,deleted) VALUES (?,?,?,?,?) }, + [$messageId,$userId,$isRead,$repliedTo,$deleted] + ); + } + + if($status ne "completed" && $status ne "pending") { + $session->db->write( + q{ UPDATE inbox SET status='active' WHERE messageId=? }, + [$messageId] + ); + } + } + + #Add the profile field changes + $session->db->write(q{alter table userProfileCategory add column shortLabel char(255) default NULL after label}); + $session->db->write(q{update userProfileCategory set shortLabel='WebGUI::International::get("misc info short","WebGUI");' where profileCategoryId='1'}); + $session->db->write(q{update userProfileCategory set shortLabel='WebGUI::International::get("contact info short","WebGUI");' where profileCategoryId='2'}); + $session->db->write(q{update userProfileCategory set shortLabel='WebGUI::International::get("personal info short","WebGUI");' where profileCategoryId='3'}); + $session->db->write(q{update userProfileCategory set shortLabel='WebGUI::International::get("preferences short","WebGUI");' where profileCategoryId='4'}); + $session->db->write(q{update userProfileCategory set shortLabel='WebGUI::International::get("home info short","WebGUI");' where profileCategoryId='5'}); + $session->db->write(q{update userProfileCategory set shortLabel='WebGUI::International::get("work info short","WebGUI");' where profileCategoryId='6'}); + $session->db->write(q{update userProfileCategory set shortLabel='WebGUI::International::get("demographic info short","WebGUI");' where profileCategoryId='7'}); + + $session->db->write(q{alter table userProfileData modify publicProfile char(10) default 'none'}); + $session->db->write(q{update userProfileData set publicProfile='none' where publicProfile='0' || publicProfile is NULL || publicProfile=''}); + $session->db->write(q{update userProfileData set publicProfile='all' where publicProfile='1'}); + $session->db->write(q{REPLACE INTO `userProfileField` VALUES ('publicProfile','WebGUI::International::get(861)',1,0,'RadioList','{ all=>WebGUI::International::get(\'public label\',\'Account_Profile\'), friends=>WebGUI::International::get(\'friends only label\',\'Account_Profile\'), none=>WebGUI::International::get(\'private label\',\'Account_Profile\')}','[\"none\"]',8,'4',1,1,0,0,0,'')}); + + #Clean up old templates and settings + my $oldsettings = { + editUserProfileTemplate => 'Operation/Profile/Edit', + viewUserProfileTemplate => 'Operation/Profile/View', + manageFriendsTemplateId => 'friends/manage', + sendPrivateMessageTemplateId => 'Inbox/SendPrivateMessage', + viewInboxTemplateId => 'Inbox', + viewInboxMessageTemplateId => 'Inbox/Message', + userInvitationsEmailTemplateId => 'userInvite/Email', + userInvitationsEnabled => 'userInvite', + userInvitationsEmailExists => '', + }; + + foreach my $setting (keys %{$oldsettings}) { + #Remove the setting + $session->setting->remove($setting); + #$session->db->write("delete from settings where name=?",[$setting]); + #Remove all the templates with the related namespace + next if ($oldsettings->{$setting} eq ""); + my $assets = $session->db->buildArrayRef("select distinct assetId from template where namespace=?",[$oldsettings->{$setting}]); + #Purge the template + foreach my $assetId (@{$assets}) { + WebGUI::Asset->newByDynamicClass($session,$assetId)->purge; + } + } + + print "DONE!\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +# removes the caseInsensitiveOS flag from the config file, as it isn't used anymore +sub removeCaseInsensitiveConfig { + my $session = shift; + print "\tRemoving caseInsensitiveOS flag from config..." unless $quiet; + $session->config->delete('caseInsensitiveOS'); + $session->db->write('DROP TABLE storageTranslation'); + print " Done.\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +sub createLastUpdatedField { + my $session = shift; + print "\tAdding last updated field to all assets... " unless $quiet; + my $db = $session->db; + $db->write("alter table assetData add column lastModified bigint"); + $db->write("update assetData set lastModified=revisionDate"); + print "DONE!\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +sub upgradeSyndicatedContentTemplates { + my $session = shift; + print "\tUpgrading syndicated content assets... " unless $quiet; + my $db = $session->db; + my $templates = $db->read("select distinct assetId from template where namespace='SyndicatedContent'"); + while (my ($id) = $templates->array) { + my $asset = WebGUI::Asset::Template->new($session, $id); + if (defined $asset) { + if ($asset->getId eq "DPUROtmpl0000000000001") { # this one no longer applies + $asset->trash; + next; + } + my $template = $asset->get('template'); + $template =~ s{channel.title}{channel_title}xmsi; + $template =~ s{channel.description}{channel_description}xmsi; + $template =~ s{channel.link}{channel_link}xmsi; + $template =~ s{site_link}{channel_link}xmsi; + $template =~ s{site_title}{channel_title}xmsi; + $template =~ s{descriptionFull}{description}xmsi; + $template =~ s{rss.url.0.9}{rss_url}xmsi; + $template =~ s{rss.url}{rss_url}xmsi; + $template =~ s{rss.url.0.91}{rss_url}xmsi; + $template =~ s{rss.url.1.0}{rdf_url}xmsi; + $template =~ s{rss.url.2.0}{rss_url}xmsi; + $asset->addRevision({template=>$template}); + } + } + $db->write("update SyndicatedContent set templateId='PBtmpl0000000000000065' where templateId='DPUROtmpl0000000000001'"); + $db->write("alter table SyndicatedContent drop column displayMode"); + print "DONE!\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +sub createFieldShowOnline { + my $session = shift; + print "\tCreating an additional profile field 'showOnline' for the UsersOnline macro... " unless $quiet; + + # Define field properties + my $properties = { + label => q!WebGUI::International::get('Show when online?','WebGUI')!, + visible => 1, + required => 0, + protected => 1, # The UsersOnline macro requires this field for working properly. + editable => 1, + fieldType => 'YesNo', + dataDefault => 0 # Users are not shown by default. + }; + # Create field in category "preferences" + my $field = WebGUI::ProfileField->create($session, 'showOnline', $properties, 4); + + # Check for failure + if ($field == undef) { + print "Creation of the field 'showOnline' failed, possibly because it does already exist. Note that this may cause the UsersOnline macro not to work properly.\n"; + } + else { + print "DONE!\n" unless $quiet; + } + + return; +} + +#---------------------------------------------------------------------------- +# installDataTableAsset +# Install the asset by creating the DB table and adding it to the config file +sub installDataTableAsset { + my $session = shift; + print "\tInstalling the DataTable asset... " unless $quiet; + + $session->db->write( <<'ENDSQL' ); + CREATE TABLE DataTable ( + assetId VARCHAR(22) BINARY NOT NULL, + revisionDate BIGINT NOT NULL, + data LONGTEXT, + templateId VARCHAR(22) BINARY, + PRIMARY KEY ( assetId, revisionDate ) + ) +ENDSQL + + my $assets = $session->config->get( "assets" ); + $assets->{ "WebGUI::Asset::Wobject::DataTable" } = { category => "basic" }; + $session->config->set( "assets", $assets ); + + print "DONE!\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +# installDataTableAsset +# Install the content handler by adding it to the config file +sub installAjaxI18N { + my $session = shift; + print "\tInstalling the AjaxI18N content handler... " unless $quiet; + + my @newHandlers; + my $oldHandlers = $session->config->get( "contentHandlers" ); + for my $handler ( @{ $oldHandlers } ) { + if ( $handler eq "WebGUI::Content::Operation" ) { + push @newHandlers, "WebGUI::Content::AjaxI18N"; + } + elsif ( $handler eq "WebGUI::Content::AjaxI18N" ) { + next; + } + push @newHandlers, $handler; + } + $session->config->set( "contentHandlers", \@newHandlers ); + + print "DONE!\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +# installSiteIndex +# Install the content handler by adding it to the config file +sub installSiteIndex { + my $session = shift; + print "\tInstalling the SiteIndex content handler... " unless $quiet; + + my $oldHandlers = $session->config->get( "contentHandlers" ); + my @newHandlers; + for my $handler ( @{ $oldHandlers } ) { + if ( $handler eq "WebGUI::Content::Asset" ) { + push @newHandlers, "WebGUI::Content::SiteIndex"; + } + push @newHandlers, $handler; + } + $session->config->set( "contentHandlers", \@newHandlers ); + + print "DONE!\n" unless $quiet; +} + + +#---------------------------------------------------------------------------- +sub upgradeToYui26 { + my $session = shift; + print "\tUpgrading to YUI 2.6... " unless $quiet; + $session->db->write("update template set template=replace(template, 'resize-beta.js', 'resize-min.js'), headBlock=replace(headBlock, 'resize-beta.js', 'resize-min.js')"); + $session->db->write("update template set template=replace(template, 'resize-beta-min.js', 'resize-min.js'), headBlock=replace(headBlock, 'resize-beta-min.js', 'resize-min.js')"); + $session->db->write("update template set template=replace(template, 'datasource-beta.js', 'datasource-min.js'), headBlock=replace(headBlock, 'datasource-beta.js', 'datasource-min.js')"); + $session->db->write("update template set template=replace(template, 'datasource-beta-min.js', 'datasource-min.js'), headBlock=replace(headBlock, 'datasource-beta-min.js', 'datasource-min.js')"); + $session->db->write("update template set template=replace(template, 'datatable-beta.js', 'datatable-min.js'), headBlock=replace(headBlock, 'datatable-beta.js', 'datatable-min.js')"); + $session->db->write("update template set template=replace(template, 'datatable-beta-min.js', 'datatable-min.js'), headBlock=replace(headBlock, 'datatable-beta-min.js', 'datatable-min.js')"); + print "DONE!\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +sub changeDefaultPaginationInSearch { + my $session = shift; + print "\tAllow content managers to change the default pagination in the search asset... " unless $quiet; + $session->db->write("ALTER TABLE `search` ADD COLUMN `paginateAfter` INTEGER NOT NULL DEFAULT 25"); + print "DONE!\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +sub addUsersOnlineMacro { + my $session = shift; + print "\tMaking the UsersOnline macro available... " unless $quiet; + $session->config->addToHash("macros","UsersOnline","UsersOnline"); + print "DONE!\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +sub updateAddressBook { + my $session = shift; + print "\tAdding organization and email to address book... " unless $quiet; + my $db = $session->db; + $db->write("alter table address add column organization char(255)"); + $db->write("alter table address add column email char(255)"); + print "DONE!\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +sub repairManageWorkflows { + my $session = shift; + print "\tCorrecting the Manage Workflow link in configuration file... " unless $quiet; + # and here's our code + my $ac = $session->config->get('adminConsole'); + if (exists $ac->{'workflow'}) { + $ac->{'workflow'}->{'url'} = "^PageUrl(\"\",op=manageWorkflows);"; + $session->config->set('adminConsole', $ac); + } + print "DONE!\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +sub addPreTextToThingyFields { + my $session = shift; + print "\tAdding a pre-text property to Thingy fields... " unless $quiet; + $session->db->write('ALTER TABLE `Thingy_fields` ADD pretext varchar(255)'); + print "DONE!\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +sub addProfileExtrasField { + my $session = shift; + print "\tAdding the Extras field for profile fields... " unless $quiet; + my $db = $session->db; + $db->write('alter table userProfileField add extras text default NULL'); + print "DONE!\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +# Add the workflow property to DataForm +sub addWorkflowToDataform { + my $session = shift; + print "\tAdding Workflow to DataForm... " unless $quiet; + + my $sth = $session->db->read('DESCRIBE `DataForm`'); + while (my ($col) = $sth->array) { + if ( $col eq 'workflowIdAddEntry' ) { + print "Already done, skipping.\n" unless $quiet; + return; + } + } + + $session->db->write( "ALTER TABLE DataForm ADD COLUMN workflowIdAddEntry CHAR(22) BINARY" ); + print "DONE!\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +sub addAssetDiscoveryService { + my $session = shift; + print "\tAdding asset discovery service..." unless $quiet; + my @handlers; + foreach my $handler (@{$session->config->get("contentHandlers")}) { + if ($handler eq "WebGUI::Content::Operation") { + push @handlers, 'WebGUI::Content::AssetDiscovery'; + } + push @handlers, $handler; + } + print "Done.\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +sub addCommentsAspectToWiki { + my $session = shift; + print "\tAdding comments aspect to wiki..." unless $quiet; + my $db = $session->db; + my $pages = $db->read("select assetId,revisionDate from WikiPage"); + while (my ($id, $rev) = $pages->array) { + $db->write("insert into assetAspectComments (assetId, revisionDate, comments, averageCommentRating) values (?,?,'[]',0)",[$id,$rev]); + } + print "Done.\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +sub addCommentsAspect { + my $session = shift; + print "\tAdding comments asset aspect..." unless $quiet; + $session->db->write("create table assetAspectComments ( + assetId char(22) binary not null, + revisionDate bigint not null, + comments mediumtext, + averageCommentRating int, + primary key (assetId, revisionDate) + )"); + print "Done.\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +# make sure each config file has the extensions to export as-is. however, if +# this system received a backport, leave the field as is. +sub addExportExtensionsToConfigFile { + my $session = shift; + print "\tAdding binary export extensions to config file... " unless $quiet; + # skip if the field has been defined already by backporting + unless ( defined $session->config->get('exportBinaryExtensions') ) { + # otherwise, set the field + $session->config->set('exportBinaryExtensions', + [ qw/.html .htm .txt .pdf .jpg .css .gif .png .doc .xls .xml .rss .bmp + .mp3 .js .fla .flv .swf .pl .php .php3 .php4 .php5 .ppt .docx .zip .tar + .rar .gz .bz2/ ] ); + } + + print "Done.\n" unless $quiet; +} + +sub addThingyColumns { + my $session = shift; + print "\tAdding exportMetaData and maxEntriesPerUser columns to Thingy_things table... " unless $quiet; + $session->db->write('ALTER TABLE `Thingy_things` ADD exportMetaData int(11)'); + $session->db->write('ALTER TABLE `Thingy_things` ADD maxEntriesPerUser int(11)'); + print "Done.\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +sub removeUnusedTemplates { + my $session = shift; + print "\tDeleting old unused templates... " unless $quiet; + foreach my $id (qw(PBtmpl0000000000000046 e-WvgcKROPCoHwiiHLktCg PBtmpl0000000000000034 AFdXZZmGnSKalNSobQMB5w)) { + my $asset = WebGUI::Asset->new($session, $id); + if (defined $asset && $asset->getChildCount == 0) { + $asset->purge; + } + } + print "Done.\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +sub deleteAdminBarTemplates { + my $session = shift; + print "\tDeleting AdminBar templates... " unless $quiet; + foreach my $id (qw(PBtmpl0000000000000090 Ov2ssJHwp_1eEWKlDyUKmg)) { + my $asset = WebGUI::Asset->newByDynamicClass($session, $id); + if (defined $asset) { + $asset->trash; + } + } + print "DONE!\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +sub repairBrokenProductSkus { + my $session = shift; + print "\tRepairing broken Products that were imported... " unless $quiet; + my $getAProduct = WebGUI::Asset::Sku::Product->getIsa($session); + while (my $product = $getAProduct->()) { + COLLATERAL: foreach my $collateral (@{ $product->getAllCollateral('variantsJSON') }) { + next COLLATERAL unless exists $collateral->{sku}; + $collateral->{varSku} = $collateral->{sku}; + delete $collateral->{sku}; + $product->setCollateral('variantsJSON', 'variantId', $collateral->{variantId}, $collateral); + } + } + print "DONE!\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +sub migrateAssetsToNewConfigFormat { + my $session = shift; + print "\tRestructuring asset configuration... " unless $quiet; + my $config = $session->config; + + # devs doing multiple upgrades + # the list has already been updated by a previous run + my $assetList = $config->get("assets"); + unless (ref $assetList eq "ARRAY") { + warn "ERROR: Looks like you've already run this upgrade.\n"; + return undef; + } + + # add categories + $config->set('assetCategories', { + basic => { + title => "^International(basic,Macro_AdminBar);", + uiLevel => 1, + }, + intranet => { + title => "^International(intranet,Macro_AdminBar);", + uiLevel => 5, + }, + shop => { + title => "^International(shop,Shop);", + uiLevel => 5, + }, + utilities => { + title => "^International(utilities,Macro_AdminBar);", + uiLevel => 9, + }, + community => { + title => "^International(community,Macro_AdminBar);", + uiLevel => 5, + }, + }); + + # deal with the old asset list + my $assetContainers = $config->get("assetContainers"); + $assetContainers = [] unless (ref $assetContainers eq "ARRAY"); + my $utilityAssets = $config->get("utilityAssets"); + $utilityAssets = [] unless (ref $utilityAssets eq "ARRAY"); + my @oldAssetList = (@$assetList, @$utilityAssets, @$assetContainers); + my %assets = ( + 'WebGUI::Asset::Wobject::Collaboration::Newsletter' => { + category => "community", + } + ); + foreach my $class (@oldAssetList) { + my %properties; + if (isIn($class, qw( + WebGUI::Asset::Wobject::Article + WebGUI::Asset::Wobject::Layout + WebGUI::Asset::Wobject::Folder + WebGUI::Asset::Wobject::Calendar + WebGUI::Asset::Wobject::Poll + WebGUI::Asset::Wobject::Search + WebGUI::Asset::FilePile + WebGUI::Asset::Snippet + WebGUI::Asset::Wobject::DataForm + ))) { + $properties{category} = 'basic'; + } + elsif (isIn($class, qw( + WebGUI::Asset::Wobject::Collaboration::Newsletter + WebGUI::Asset::Wobject::WikiMaster + WebGUI::Asset::Wobject::Collaboration + WebGUI::Asset::Wobject::Survey + WebGUI::Asset::Wobject::Gallery + WebGUI::Asset::Wobject::MessageBoard + WebGUI::Asset::Wobject::Matrix + ))) { + $properties{category} = 'community'; + } + elsif (isIn($class, qw( + WebGUI::Asset::Wobject::StockData + WebGUI::Asset::Wobject::Dashboard + WebGUI::Asset::Wobject::InOutBoard + WebGUI::Asset::Wobject::MultiSearch + WebGUI::Asset::Wobject::ProjectManager + WebGUI::Asset::Wobject::TimeTracking + WebGUI::Asset::Wobject::UserList + WebGUI::Asset::Wobject::WeatherData + WebGUI::Asset::Wobject::Thingy + ))) { + $properties{category} = 'intranet'; + } + elsif (isIn($class, qw( + WebGUI::Asset::Wobject::Bazaar + WebGUI::Asset::Wobject::EventManagementSystem + WebGUI::Asset::Wobject::Shelf + WebGUI::Asset::Sku::Product + WebGUI::Asset::Sku::FlatDiscount + WebGUI::Asset::Sku::Donation + WebGUI::Asset::Sku::Subscription + ))) { + $properties{category} = 'shop'; + } + elsif (isIn($class, qw( + WebGUI::Asset::Wobject::WSClient + WebGUI::Asset::Wobject::SQLReport + WebGUI::Asset::Wobject::SyndicatedContent + WebGUI::Asset::Redirect + WebGUI::Asset::Template + WebGUI::Asset::Wobject::Navigation + WebGUI::Asset::File + WebGUI::Asset::Wobject::HttpProxy + WebGUI::Asset::File::Image + WebGUI::Asset::File::ZipArchive + WebGUI::Asset::RichEdit + ))) { + $properties{category} = 'utilities'; + } + else { + # other assets listed but not in the core + $properties{category} = 'utilities'; + } + $assets{$class} = \%properties; + } + + # deal with containers + foreach my $class (@$assetContainers) { + $assets{$class}{isContainer} = 1; + } + + # deal with custom add privileges + my $addGroups = $config->get("assetAddPrivilege"); + if (ref $addGroups eq "HASH") { + foreach my $class (keys %{$addGroups}) { + $assets{$class}{addGroup} = $addGroups->{$class}; + } + } + + # deal with custom ui levels + my $uiLevels = $config->get("assetUiLevel"); + if (ref $uiLevels eq "HASH") { + foreach my $class (keys %{$addGroups}) { + $assets{$class}{uiLevel} = $uiLevels->{$class}; + } + } + + # deal with custom field ui levels + foreach my $class (keys %assets) { + my $directive =~ s/::/_/g; + $directive .= '_uiLevel'; + my $value = $config->get($directive); + if (ref $value eq "HASH") { + foreach my $field (keys %{$value}) { + $assets{$class}{fields}{$field}{uiLevel} = $value->{$field}; + } + $config->delete($directive); + } + } + + # write the file + $config->delete('assetContainers'); + $config->delete('utilityAssets'); + $config->delete("assetUiLevel"); + $config->delete("assetAddPrivilege"); + $config->set("assets",\%assets); + + print "DONE!\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +sub makeAdminConsolePluggable { + my $session = shift; + print "\tMaking admin console pluggable... " unless $quiet; + $session->config->set("adminConsole",{ + "spectre" => { + title => "^International(spectre,Spectre);", + icon => "spectre.gif", + url => "^PageUrl(\"\",op=spectreStatus);", + uiLevel => 9, + groupSetting => "groupIdAdminSpectre" + }, + "assets" => { + title => "^International(assets,Asset);", + icon => "assets.gif", + url => "^PageUrl(\"\",op=assetManager);", + uiLevel => 5, + group => "12" + }, + "versions" => { + title => "^International(version tags,VersionTag);", + icon => "versionTags.gif", + url => "^PageUrl(\"\",op=manageVersions);", + uiLevel => 7, + groupSetting => "groupIdAdminVersionTag" + }, + "workflow" => { + title => "^International(topicName,Workflow);", + icon => "workflow.gif", + url => "^PageUrl(\"\",manageWorkflows);", + uiLevel => 7, + groupSetting => "groupIdAdminWorkflow" + }, + "adSpace" => { + title => "^International(topicName,AdSpace);", + icon => "advertising.gif", + url => "^PageUrl(\"\",op=manageAdSpaces);", + uiLevel => 5, + groupSetting => "groupIdAdminAdSpace" + }, + "cron" => { + title => "^International(topicName,Workflow_Cron);", + icon => "cron.gif", + url => "^PageUrl(\"\",op=manageCron);", + uiLevel => 9, + groupSetting => "groupIdAdminCron" + }, + "users" => { + title => "^International(149,WebGUI);", + icon => "users.gif", + url => "^PageUrl(\"\",op=listUsers);", + uiLevel => 5, + groupSetting => "groupIdAdminUser" + }, + "clipboard" => { + title => "^International(948,WebGUI);", + icon => "clipboard.gif", + url => "^PageUrl(\"\",func=manageClipboard);", + uiLevel => 5, + group => "12" + }, + "trash" => { + title => "^International(trash,WebGUI);", + icon => "trash.gif", + url => "^PageUrl(\"\",func=manageTrash);", + uiLevel => 5, + group => "12" + }, + "databases" => { + title => "^International(databases,WebGUI);", + icon => "databases.gif", + url => "^PageUrl(\"\",op=listDatabaseLinks);", + uiLevel => 9, + groupSetting => "groupIdAdminDatabaseLink" + }, + "ldapconnections" => { + title => "^International(ldapconnections,AuthLDAP);", + icon => "ldap.gif", + url => "^PageUrl(\"\",op=listLDAPLinks);", + uiLevel => 9, + groupSetting => "groupIdAdminLDAPLink" + }, + "groups" => { + title => "^International(89,WebGUI);", + icon => "groups.gif", + url => "^PageUrl(\"\",op=listGroups);", + uiLevel => 5, + groupSetting => "groupIdAdminGroup" + }, + "settings" => { + title => "^International(settings,WebGUI);", + icon => "settings.gif", + url => "^PageUrl(\"\",op=editSettings);", + uiLevel => 5, + group => "3" + }, + "help" => { + title => "^International(help,WebGUI);", + icon => "help.gif", + url => "^PageUrl(\"\",op=viewHelpIndex);", + uiLevel => 1, + groupSetting => "groupIdAdminHelp" + }, + "statistics" => { + title => "^International(437,WebGUI);", + icon => "statistics.gif", + url => "^PageUrl(\"\",op=viewStatistics);", + uiLevel => 1, + groupSetting => "groupIdAdminStatistics" + }, + "contentProfiling" => { + title => "^International(content profiling,Asset);", + icon => "contentProfiling.gif", + url => "^PageUrl(\"\",func=manageMetaData);", + uiLevel => 5, + group => "4" + }, + "contentFilters" => { + title => "^International(content filters,WebGUI);", + icon => "contentFilters.gif", + url => "^PageUrl(\"\",op=listReplacements);", + uiLevel => 3, + groupSetting => "groupIdAdminReplacements" + }, + "userProfiling" => { + title => "^International(user profiling,WebGUIProfile);", + icon => "userProfiling.gif", + url => "^PageUrl(\"\",op=editProfileSettings);", + uiLevel => 5, + groupSetting => "groupIdAdminProfileSettings" + }, + "loginHistory" => { + title => "^International(426,WebGUI);", + icon => "loginHistory.gif", + url => "^PageUrl(\"\",op=viewLoginHistory);", + uiLevel => 5, + groupSetting => "groupIdAdminLoginHistory" + }, + "inbox" => { + title => "^International(159,WebGUI);", + icon => "inbox.gif", + url => "^PageUrl(\"\",op=viewInbox);", + uiLevel => 1, + group => "2" + }, + "activeSessions" => { + title => "^International(425,WebGUI);", + icon => "activeSessions.gif", + url => "^PageUrl(\"\",op=viewActiveSessions);", + uiLevel => 5, + groupSetting => "groupIdAdminActiveSessions" + }, + "shop" => { + title => "^International(shop,Shop);", + icon => "shop.gif", + url => "^PageUrl(\"\",shop=admin);", + uiLevel => 5, + groupSetting => 'groupIdAdminCommerce' + }, + "cache" => { + title => "^International(manage cache,WebGUI);", + icon => "cache.gif", + url => "^PageUrl(\"\",op=manageCache);", + uiLevel => 5, + groupSetting => "groupIdAdminCache" + }, + "graphics" => { + title => "^International(manage graphics,Graphics);", + icon => "graphics.gif", + url => "^PageUrl(\"\",op=listGraphicsOptions);", + uiLevel => 5, + groupSetting => "groupIdAdminGraphics" + }, + }); + print "DONE!\n" unless $quiet; +} + + +#---------------------------------------------------------------------------- +# Add the "isDefault" flag and set it for the right templates +sub addIsDefaultTemplates { + my $session = shift; + print "\tAdding warning when editing default templates... " unless $quiet; + $session->db->write( "ALTER TABLE template ADD COLUMN isDefault INT(1) DEFAULT 0" ); + print "DONE!\n" unless $quiet; +} + +sub setDefaultTemplates { + my $session = shift; + print "\tUpdating default templates to show warning... " unless $quiet; + my $defaultTemplates =[ + '-ANLpoTEP-n4POAdRxCzRw','05FpjceLYhq4csF1Kww1KQ','0X4Q3tBWUb_thsVbsYz9xQ', + '2gtFt7c0qAFNU3BG_uvNvg','2rC4ErZ3c77OJzJm7O5s3w','3womoo7Teyy2YKFa25-MZg', + '63ix2-hU0FchXGIWkG3tow','6X-7Twabn5KKO_AbgK3PEw','7JCTAiu1U_bT9ldr655Blw', + 'BMybD3cEnmXVk2wQ_qEsRQ','CalendarDay00000000001','CalendarEvent000000001', + 'CalendarEventEdit00001','CalendarMonth000000001','CalendarPrintDay000001', + 'CalendarPrintEvent0001','CalendarPrintMonth0001','CalendarPrintWeek00001', + 'CalendarSearch00000001','CalendarWeek0000000001','DPUROtmpl0000000000001', + 'DashboardViewTmpl00001','EBlxJpZQ9o-8VBOaGQbChA','GNvjCFQWjY2AF2uf0aCM8Q', + 'IOB0000000000000000001','IOB0000000000000000002','KAMdiUdJykjN02CPHpyZOw', + 'MultiSearchTmpl0000001','OOyMH33plAy6oCj_QWrxtg','OkphOEdaSGTXnFGhK4GT5A', + 'OxJWQgnGsgyGohP2L3zJPQ','PBnav00000000000bullet','PBnav00000000indentnav', + 'PBnav000000style01lvl2','PBtmpl0000000000000001','PBtmpl0000000000000002', + 'PBtmpl0000000000000004','PBtmpl0000000000000005','PBtmpl0000000000000006', + 'PBtmpl0000000000000010','PBtmpl0000000000000011','PBtmpl0000000000000012', + 'PBtmpl0000000000000013','PBtmpl0000000000000014','PBtmpl0000000000000020', + 'PBtmpl0000000000000021','PBtmpl0000000000000024','PBtmpl0000000000000026', + 'PBtmpl0000000000000027','PBtmpl0000000000000029','PBtmpl0000000000000031', + 'PBtmpl0000000000000032','PBtmpl0000000000000033','PBtmpl0000000000000036', + 'PBtmpl0000000000000037','PBtmpl0000000000000038','PBtmpl0000000000000039', + 'PBtmpl0000000000000040','PBtmpl0000000000000041','PBtmpl0000000000000042', + 'PBtmpl0000000000000043','PBtmpl0000000000000044','PBtmpl0000000000000045', + 'PBtmpl0000000000000047','PBtmpl0000000000000048','PBtmpl0000000000000051', + 'PBtmpl0000000000000053','PBtmpl0000000000000054', + 'PBtmpl0000000000000055','PBtmpl0000000000000056','PBtmpl0000000000000057', + 'PBtmpl0000000000000059','PBtmpl0000000000000060','PBtmpl0000000000000061', + 'PBtmpl0000000000000062','PBtmpl0000000000000063','PBtmpl0000000000000064', + 'PBtmpl0000000000000065','PBtmpl0000000000000066','PBtmpl0000000000000067', + 'PBtmpl0000000000000068','PBtmpl0000000000000077', + 'PBtmpl0000000000000078','PBtmpl0000000000000079','PBtmpl0000000000000080', + 'PBtmpl0000000000000081','PBtmpl0000000000000082','PBtmpl0000000000000083', + 'PBtmpl0000000000000084','PBtmpl0000000000000085','PBtmpl0000000000000088', + 'PBtmpl0000000000000090','PBtmpl0000000000000091','PBtmpl0000000000000092', + 'PBtmpl0000000000000093','PBtmpl0000000000000094','PBtmpl0000000000000097', + 'PBtmpl0000000000000098','PBtmpl0000000000000099', + 'PBtmpl0000000000000101','PBtmpl0000000000000103','PBtmpl0000000000000104', + 'PBtmpl0000000000000107','PBtmpl0000000000000108','PBtmpl0000000000000109', + 'PBtmpl0000000000000111','PBtmpl0000000000000112','PBtmpl0000000000000113', + 'PBtmpl0000000000000114','PBtmpl0000000000000115','PBtmpl0000000000000116', + 'PBtmpl0000000000000117','PBtmpl0000000000000118','PBtmpl0000000000000121', + 'PBtmpl0000000000000122','PBtmpl0000000000000123','PBtmpl0000000000000124', + 'PBtmpl0000000000000125','PBtmpl0000000000000128','PBtmpl0000000000000129', + 'PBtmpl0000000000000130','PBtmpl0000000000000131','PBtmpl0000000000000132', + 'PBtmpl0000000000000133','PBtmpl0000000000000134','PBtmpl0000000000000135', + 'PBtmpl0000000000000136','PBtmpl0000000000000137','PBtmpl0000000000000140', + 'PBtmpl0000000000000141','PBtmpl0000000000000142','PBtmpl0000000000000200', + 'PBtmpl0000000000000207', + 'PBtmpl0000000000000208','PBtmpl0000000000000209','PBtmpl0000000000000210', + 'PBtmpl000000000table54','PBtmpl00000000table094','PBtmpl00000000table109', + 'PBtmpl00000000table118','PBtmpl00000000table125','PBtmpl00000000table131', + 'PBtmpl00000000table135','PBtmplBlankStyle000001','PBtmplHelp000000000001', + 'ProjectManagerTMPL0001','ProjectManagerTMPL0002','ProjectManagerTMPL0003', + 'ProjectManagerTMPL0004','ProjectManagerTMPL0005','ProjectManagerTMPL0006', + 'PsFn7dJt4wMwBa8hiE3hOA','SQLReportDownload00001','StockDataTMPL000000001', + 'StockDataTMPL000000002','TEId5V-jEvUULsZA0wuRuA','ThingyTmpl000000000001', + 'ThingyTmpl000000000002','ThingyTmpl000000000003','ThingyTmpl000000000004', + 'TimeTrackingTMPL000001','TimeTrackingTMPL000002','TimeTrackingTMPL000003', + 'UTNFeV7B_aSCRmmaFCq4Vw','UserListTmpl0000000001','UserListTmpl0000000002', + 'UserListTmpl0000000003','WVtmpl0000000000000001','WeatherDataTmpl0000001', + 'WikiFrontTmpl000000001','WikiKeyword00000000001','WikiMPTmpl000000000001', + 'WikiPHTmpl000000000001','WikiPageEditTmpl000001','WikiPageTmpl0000000001', + 'WikiRCTmpl000000000001','WikiSearchTmpl00000001','XNd7a_g_cTvJVYrVHcx2Mw', + 'ZipArchiveTMPL00000001','aIpCmr9Hi__vgdZnDTz1jw','azCqD0IjdQSlM3ar29k5Sg', + 'bPz1yk6Y9uwMDMBcmMsSCg','eqb9sWjFEVq0yHunGV8IGw','g8W53Pd71uHB9pxaXhWf_A', + 'ilu5BrM-VGaOsec9Lm7M6Q','jME5BEDYVDlBZ8jIQA9-jQ','kj3b-X3i6zRKnhLb4ZiCLw', + 'm3IbBavqzuKDd2PGGhKPlA','mM3bjP_iG9sv5nQb4S17tQ','managefriends_________', + 'matrixtmpl000000000001','matrixtmpl000000000002','matrixtmpl000000000003', + 'matrixtmpl000000000004','matrixtmpl000000000005','nFen0xjkZn8WkpM93C9ceQ', + 'newsletter000000000001','newslettercs0000000001','newslettersubscrip0001', + 'pbtmpl0000000000000220','pbtmpl0000000000000221','q5O62aH4pjUXsrQR3Pq4lw', + 'stevecoolmenu000000001','stevenav00000000000001','stevestyle000000000001', + 'stevestyle000000000002','stevestyle000000000003','uRL9qtk7Rb0YRJ41LmHOJw', + 'vrKXEtluIhbmAS9xmPukDA','yBwydfooiLvhEFawJb0VTQ','zcX-wIUct0S_np14xxOA-A' + ]; + + for my $assetId ( @{ $defaultTemplates } ) { + my $asset = WebGUI::Asset::Template->new( $session, $assetId ); + if ( !$asset ) { + print "\n\t\tCouldn't instanciate default asset '$assetId', skipping..."; + next; + } + else { + $asset->update( { isDefault => 1 } ); + } + } + + print "DONE!\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +sub badgePriceDates { + my $session = shift; + print "\tAllowing badges to have multiple prices set by date." unless $quiet; + my $db = $session->db; + $db->write("alter table EMSBadge add column earlyBirdPrice float not null default 0.0"); + $db->write("alter table EMSBadge add column earlyBirdPriceEndDate bigint"); + $db->write("alter table EMSBadge add column preRegistrationPrice float not null default 0.0"); + $db->write("alter table EMSBadge add column preRegistrationPriceEndDate bigint"); + print "Done.\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +sub fixIsPublicOnTemplates { + my $session = shift; + print "\tFixing 'is public' on templates" unless $quiet; + $session->db->write('UPDATE `assetIndex` SET `isPublic` = 0 WHERE assetId IN (SELECT assetId FROM asset WHERE className IN ("WebGUI::Asset::RichEdit", "WebGUI::Asset::Snippet", "WebGUI::Asset::Template") )'); + print "Done.\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +sub addCSPostReceivedTemplate { + my $session = shift; + print "\tAdding Post Received Template ID field for CS..." unless $quiet; + $session->db->write("ALTER TABLE Collaboration ADD COLUMN postReceivedTemplateId VARCHAR(22) DEFAULT 'default-post-received';"); + print "Done.\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +sub addUrlToAssetHistory { + my $session = shift; + print "\tAdding URL column to assetHistory" unless $quiet; + $session->db->write('ALTER TABLE assetHistory ADD COLUMN url VARCHAR(255)'); + print "Done.\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +sub addSortOrderToFolder { + my $session = shift; + print "\tAdding Sort Order to Folder... " unless $quiet; + $session->db->write( 'alter table Folder add column sortOrder ENUM("ASC","DESC") DEFAULT "ASC"' ); + print "Done.\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +sub addLoginTimeStats { + my $session = shift; + print "\tAdding login time statistics... " unless $quiet; + $session->db->write( "alter table userLoginLog add column sessionId varchar(22)" ); + $session->db->write( "alter table userLoginLog add column lastPageViewed int(11)" ); + print "Done.\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +sub removeDoNothingOnDelete { + my $session = shift; + print "\tRemoving 'Do Nothing On Delete workflow if not customized... " unless $quiet; + my $workflow = WebGUI::Workflow->new($session, 'DPWwf20061030000000001'); + if ($workflow) { + my $activities = $workflow->getActivities; + if (@$activities == 0) { + # safe to delete. + for my $setting (qw(trashWorkflow purgeWorkflow changeUrlWorkflow)) { + my $setValue = $session->setting->get($setting); + if ($setValue eq 'DPWwf20061030000000001') { + $session->setting->set($setting, undef); + } + } + $workflow->delete; + } + } + print "Done.\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +sub redirectChoice { + my $session = shift; + print "\tGiving a user choice about which type of redirect they'd like to perform... " unless $quiet; + $session->db->write("alter table redirect add column redirectType int not null default 302"); + print "DONE!\n" unless $quiet; +} + +#---------------------------------------------------------------------------- +sub addAdHocMailGroups { + my $session = shift; + print "\tAdding AdHocMailGroups to Groups.. " unless $quiet; + $session->db->write("alter table groups add column isAdHocMailGroup tinyint(4) not null default 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 ); + + # Make the package not a package anymore + $package->update({ isPackage => 0 }); + + # Set the default flag for templates added + my $assetIds + = $package->getLineage( ['self','descendants'], { + includeOnlyClasses => [ 'WebGUI::Asset::Template' ], + } ); + 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; + } + $asset->update( { isDefault => 1 } ); + } + + 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); + setDefaultTemplates( $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); + addPackage( $session, 'packages-7.5.40-7.6.10/merged.wgpkg' ); +} + diff --git a/docs/upgrades/upgrade_7.6.3-7.6.4.pl b/docs/upgrades/upgrade_7.6.3-7.6.4.pl index 529d4575e..7cbc9da42 100644 --- a/docs/upgrades/upgrade_7.6.3-7.6.4.pl +++ b/docs/upgrades/upgrade_7.6.3-7.6.4.pl @@ -27,6 +27,7 @@ use WebGUI::Asset::Wobject::Survey; use WebGUI::Asset::Wobject::Survey::SurveyJSON; use WebGUI::Asset::Wobject::Survey::ResponseJSON; use WebGUI::ProfileField; +use WebGUI::Utility qw(isIn); use JSON; my $toVersion = '7.6.4';