diff --git a/docs/upgrades/packages-7.6.35-7.7.17/merged.wgpkg b/docs/upgrades/packages-7.6.35-7.7.17/merged.wgpkg deleted file mode 100644 index cf7b5f80e..000000000 Binary files a/docs/upgrades/packages-7.6.35-7.7.17/merged.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.0/admin_console.wgpkg b/docs/upgrades/packages-7.7.0/admin_console.wgpkg deleted file mode 100644 index d30172609..000000000 Binary files a/docs/upgrades/packages-7.7.0/admin_console.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.0/admin_console2.wgpkg b/docs/upgrades/packages-7.7.0/admin_console2.wgpkg deleted file mode 100644 index f2752827c..000000000 Binary files a/docs/upgrades/packages-7.7.0/admin_console2.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.0/default-shopping-cart-template.wgpkg b/docs/upgrades/packages-7.7.0/default-shopping-cart-template.wgpkg deleted file mode 100644 index ff866b146..000000000 Binary files a/docs/upgrades/packages-7.7.0/default-shopping-cart-template.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.0/matrix-default-compare-template.wgpkg b/docs/upgrades/packages-7.7.0/matrix-default-compare-template.wgpkg deleted file mode 100644 index 6f51eea44..000000000 Binary files a/docs/upgrades/packages-7.7.0/matrix-default-compare-template.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.0/matrix-default-detailed-listing.wgpkg b/docs/upgrades/packages-7.7.0/matrix-default-detailed-listing.wgpkg deleted file mode 100644 index 6b9905fac..000000000 Binary files a/docs/upgrades/packages-7.7.0/matrix-default-detailed-listing.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.0/matrix-default-screenshots-config.wgpkg b/docs/upgrades/packages-7.7.0/matrix-default-screenshots-config.wgpkg deleted file mode 100644 index c461d01b3..000000000 Binary files a/docs/upgrades/packages-7.7.0/matrix-default-screenshots-config.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.0/matrix-default-screenshots.wgpkg b/docs/upgrades/packages-7.7.0/matrix-default-screenshots.wgpkg deleted file mode 100644 index 14ef81864..000000000 Binary files a/docs/upgrades/packages-7.7.0/matrix-default-screenshots.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.0/matrix-default-view-template.wgpkg b/docs/upgrades/packages-7.7.0/matrix-default-view-template.wgpkg deleted file mode 100644 index 15e25687b..000000000 Binary files a/docs/upgrades/packages-7.7.0/matrix-default-view-template.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.0/root_import_account_shop.wgpkg b/docs/upgrades/packages-7.7.0/root_import_account_shop.wgpkg deleted file mode 100644 index 7d039869e..000000000 Binary files a/docs/upgrades/packages-7.7.0/root_import_account_shop.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.0/root_import_auth_webgui_create_default-webgui-account-activation-template.wgpkg b/docs/upgrades/packages-7.7.0/root_import_auth_webgui_create_default-webgui-account-activation-template.wgpkg deleted file mode 100644 index a24ae78af..000000000 Binary files a/docs/upgrades/packages-7.7.0/root_import_auth_webgui_create_default-webgui-account-activation-template.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.0/root_import_expireincompletesurveyresponses.wgpkg b/docs/upgrades/packages-7.7.0/root_import_expireincompletesurveyresponses.wgpkg deleted file mode 100644 index eadd26f7f..000000000 Binary files a/docs/upgrades/packages-7.7.0/root_import_expireincompletesurveyresponses.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.0/root_import_gallery-templates_default-gallery-view-album.wgpkg b/docs/upgrades/packages-7.7.0/root_import_gallery-templates_default-gallery-view-album.wgpkg deleted file mode 100644 index e1db1a738..000000000 Binary files a/docs/upgrades/packages-7.7.0/root_import_gallery-templates_default-gallery-view-album.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.0/root_import_survey_default-answer-edit.wgpkg b/docs/upgrades/packages-7.7.0/root_import_survey_default-answer-edit.wgpkg deleted file mode 100644 index d8aaa28ff..000000000 Binary files a/docs/upgrades/packages-7.7.0/root_import_survey_default-answer-edit.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.0/root_import_survey_default-gradebook-report.wgpkg b/docs/upgrades/packages-7.7.0/root_import_survey_default-gradebook-report.wgpkg deleted file mode 100644 index 140db79be..000000000 Binary files a/docs/upgrades/packages-7.7.0/root_import_survey_default-gradebook-report.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.0/root_import_survey_default-overview-report.wgpkg b/docs/upgrades/packages-7.7.0/root_import_survey_default-overview-report.wgpkg deleted file mode 100644 index d152cf52d..000000000 Binary files a/docs/upgrades/packages-7.7.0/root_import_survey_default-overview-report.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.0/root_import_survey_default-question-edit.wgpkg b/docs/upgrades/packages-7.7.0/root_import_survey_default-question-edit.wgpkg deleted file mode 100644 index d098b4055..000000000 Binary files a/docs/upgrades/packages-7.7.0/root_import_survey_default-question-edit.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.0/root_import_survey_default-questions.wgpkg b/docs/upgrades/packages-7.7.0/root_import_survey_default-questions.wgpkg deleted file mode 100644 index 97748ad2a..000000000 Binary files a/docs/upgrades/packages-7.7.0/root_import_survey_default-questions.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.0/root_import_survey_default-section-edit.wgpkg b/docs/upgrades/packages-7.7.0/root_import_survey_default-section-edit.wgpkg deleted file mode 100644 index bc1ee90ab..000000000 Binary files a/docs/upgrades/packages-7.7.0/root_import_survey_default-section-edit.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.0/root_import_survey_default-survey-edit.wgpkg b/docs/upgrades/packages-7.7.0/root_import_survey_default-survey-edit.wgpkg deleted file mode 100644 index 844aafa6e..000000000 Binary files a/docs/upgrades/packages-7.7.0/root_import_survey_default-survey-edit.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.0/root_import_survey_default-survey-take.wgpkg b/docs/upgrades/packages-7.7.0/root_import_survey_default-survey-take.wgpkg deleted file mode 100644 index e813443bd..000000000 Binary files a/docs/upgrades/packages-7.7.0/root_import_survey_default-survey-take.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.0/root_import_survey_default-survey.wgpkg b/docs/upgrades/packages-7.7.0/root_import_survey_default-survey.wgpkg deleted file mode 100644 index e3aee292b..000000000 Binary files a/docs/upgrades/packages-7.7.0/root_import_survey_default-survey.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.0/survey-root_import_prop-style.wgpkg b/docs/upgrades/packages-7.7.0/survey-root_import_prop-style.wgpkg deleted file mode 100644 index fea9f43c0..000000000 Binary files a/docs/upgrades/packages-7.7.0/survey-root_import_prop-style.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.0/survey.css.wgpkg b/docs/upgrades/packages-7.7.0/survey.css.wgpkg deleted file mode 100644 index 51101a54b..000000000 Binary files a/docs/upgrades/packages-7.7.0/survey.css.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.1/image3.wgpkg b/docs/upgrades/packages-7.7.1/image3.wgpkg deleted file mode 100644 index 27cd20210..000000000 Binary files a/docs/upgrades/packages-7.7.1/image3.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.1/root_import_ad-sku.wgpkg b/docs/upgrades/packages-7.7.1/root_import_ad-sku.wgpkg deleted file mode 100644 index e556e2263..000000000 Binary files a/docs/upgrades/packages-7.7.1/root_import_ad-sku.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.1/root_import_auth_webgui_create_default-webgui-welcome-message-template.wgpkg b/docs/upgrades/packages-7.7.1/root_import_auth_webgui_create_default-webgui-welcome-message-template.wgpkg deleted file mode 100644 index 0d5d05d9c..000000000 Binary files a/docs/upgrades/packages-7.7.1/root_import_auth_webgui_create_default-webgui-welcome-message-template.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.1/root_import_survey_default-question-edit.wgpkg b/docs/upgrades/packages-7.7.1/root_import_survey_default-question-edit.wgpkg deleted file mode 100644 index 00b7704bc..000000000 Binary files a/docs/upgrades/packages-7.7.1/root_import_survey_default-question-edit.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.1/root_import_survey_default-questions.wgpkg b/docs/upgrades/packages-7.7.1/root_import_survey_default-questions.wgpkg deleted file mode 100644 index 8b7602ba2..000000000 Binary files a/docs/upgrades/packages-7.7.1/root_import_survey_default-questions.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.1/templates_thingy-default.wgpkg b/docs/upgrades/packages-7.7.1/templates_thingy-default.wgpkg deleted file mode 100644 index 025ed65b3..000000000 Binary files a/docs/upgrades/packages-7.7.1/templates_thingy-default.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.10/q_and_a.wgpkg b/docs/upgrades/packages-7.7.10/q_and_a.wgpkg deleted file mode 100644 index 5f8cf505a..000000000 Binary files a/docs/upgrades/packages-7.7.10/q_and_a.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.10/root_import_account_inbox_default-inbox-view-template.wgpkg b/docs/upgrades/packages-7.7.10/root_import_account_inbox_default-inbox-view-template.wgpkg deleted file mode 100644 index f93a19068..000000000 Binary files a/docs/upgrades/packages-7.7.10/root_import_account_inbox_default-inbox-view-template.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.10/root_import_survey_default-survey-edit.wgpkg b/docs/upgrades/packages-7.7.10/root_import_survey_default-survey-edit.wgpkg deleted file mode 100644 index 6bff1b33c..000000000 Binary files a/docs/upgrades/packages-7.7.10/root_import_survey_default-survey-edit.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.10/root_import_survey_surveyedit.css.wgpkg b/docs/upgrades/packages-7.7.10/root_import_survey_surveyedit.css.wgpkg deleted file mode 100644 index 2994b1542..000000000 Binary files a/docs/upgrades/packages-7.7.10/root_import_survey_surveyedit.css.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.10/side_by_side.wgpkg b/docs/upgrades/packages-7.7.10/side_by_side.wgpkg deleted file mode 100644 index cc954e0f7..000000000 Binary files a/docs/upgrades/packages-7.7.10/side_by_side.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.11/admin_progress_bar.wgpkg b/docs/upgrades/packages-7.7.11/admin_progress_bar.wgpkg deleted file mode 100644 index 069675903..000000000 Binary files a/docs/upgrades/packages-7.7.11/admin_progress_bar.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.11/matrix-default-compare-template.wgpkg b/docs/upgrades/packages-7.7.11/matrix-default-compare-template.wgpkg deleted file mode 100644 index 190560733..000000000 Binary files a/docs/upgrades/packages-7.7.11/matrix-default-compare-template.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.11/root_import_survey_default-survey-take.wgpkg b/docs/upgrades/packages-7.7.11/root_import_survey_default-survey-take.wgpkg deleted file mode 100644 index 48f62111a..000000000 Binary files a/docs/upgrades/packages-7.7.11/root_import_survey_default-survey-take.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.11/root_import_thingy-templates_thingy.css.wgpkg b/docs/upgrades/packages-7.7.11/root_import_thingy-templates_thingy.css.wgpkg deleted file mode 100644 index ea375a232..000000000 Binary files a/docs/upgrades/packages-7.7.11/root_import_thingy-templates_thingy.css.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.13/root_import_survey_default-answer-edit.wgpkg b/docs/upgrades/packages-7.7.13/root_import_survey_default-answer-edit.wgpkg deleted file mode 100644 index 73eb8069e..000000000 Binary files a/docs/upgrades/packages-7.7.13/root_import_survey_default-answer-edit.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.13/root_import_survey_default-question-edit.wgpkg b/docs/upgrades/packages-7.7.13/root_import_survey_default-question-edit.wgpkg deleted file mode 100644 index 321f92ead..000000000 Binary files a/docs/upgrades/packages-7.7.13/root_import_survey_default-question-edit.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.13/root_import_survey_default-section-edit.wgpkg b/docs/upgrades/packages-7.7.13/root_import_survey_default-section-edit.wgpkg deleted file mode 100644 index cff973c34..000000000 Binary files a/docs/upgrades/packages-7.7.13/root_import_survey_default-section-edit.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.13/root_import_survey_default-survey-take.wgpkg b/docs/upgrades/packages-7.7.13/root_import_survey_default-survey-take.wgpkg deleted file mode 100644 index 48f62111a..000000000 Binary files a/docs/upgrades/packages-7.7.13/root_import_survey_default-survey-take.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.14/home_thinyrecord-templates_default-thingyrecord-view.wgpkg b/docs/upgrades/packages-7.7.14/home_thinyrecord-templates_default-thingyrecord-view.wgpkg deleted file mode 100644 index f434aad55..000000000 Binary files a/docs/upgrades/packages-7.7.14/home_thinyrecord-templates_default-thingyrecord-view.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.15/admin_console2.wgpkg b/docs/upgrades/packages-7.7.15/admin_console2.wgpkg deleted file mode 100644 index 61e30fcd2..000000000 Binary files a/docs/upgrades/packages-7.7.15/admin_console2.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.15/flash-style-3-template.wgpkg b/docs/upgrades/packages-7.7.15/flash-style-3-template.wgpkg deleted file mode 100644 index 5daae092c..000000000 Binary files a/docs/upgrades/packages-7.7.15/flash-style-3-template.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.15/flash-tutorial-template.wgpkg b/docs/upgrades/packages-7.7.15/flash-tutorial-template.wgpkg deleted file mode 100644 index 8eea7431a..000000000 Binary files a/docs/upgrades/packages-7.7.15/flash-tutorial-template.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.15/root_import_article.wgpkg b/docs/upgrades/packages-7.7.15/root_import_article.wgpkg deleted file mode 100644 index 2a5082e88..000000000 Binary files a/docs/upgrades/packages-7.7.15/root_import_article.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.15/root_import_fileasset.wgpkg b/docs/upgrades/packages-7.7.15/root_import_fileasset.wgpkg deleted file mode 100644 index 27dac0d09..000000000 Binary files a/docs/upgrades/packages-7.7.15/root_import_fileasset.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.15/root_import_folder.wgpkg b/docs/upgrades/packages-7.7.15/root_import_folder.wgpkg deleted file mode 100644 index 436538023..000000000 Binary files a/docs/upgrades/packages-7.7.15/root_import_folder.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.15/root_import_imageasset.wgpkg b/docs/upgrades/packages-7.7.15/root_import_imageasset.wgpkg deleted file mode 100644 index b8223cd92..000000000 Binary files a/docs/upgrades/packages-7.7.15/root_import_imageasset.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.15/root_import_layout.wgpkg b/docs/upgrades/packages-7.7.15/root_import_layout.wgpkg deleted file mode 100644 index b56f44f08..000000000 Binary files a/docs/upgrades/packages-7.7.15/root_import_layout.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.15/root_import_navigation.wgpkg b/docs/upgrades/packages-7.7.15/root_import_navigation.wgpkg deleted file mode 100644 index 6f6c33504..000000000 Binary files a/docs/upgrades/packages-7.7.15/root_import_navigation.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.15/root_import_poll.wgpkg b/docs/upgrades/packages-7.7.15/root_import_poll.wgpkg deleted file mode 100644 index 6286d301e..000000000 Binary files a/docs/upgrades/packages-7.7.15/root_import_poll.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.15/root_import_search.wgpkg b/docs/upgrades/packages-7.7.15/root_import_search.wgpkg deleted file mode 100644 index 00922d35f..000000000 Binary files a/docs/upgrades/packages-7.7.15/root_import_search.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.15/root_import_storymanager_storytemplatetopic.wgpkg b/docs/upgrades/packages-7.7.15/root_import_storymanager_storytemplatetopic.wgpkg deleted file mode 100644 index 4be8ef1f5..000000000 Binary files a/docs/upgrades/packages-7.7.15/root_import_storymanager_storytemplatetopic.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.15/root_import_syndicatedcontent.wgpkg b/docs/upgrades/packages-7.7.15/root_import_syndicatedcontent.wgpkg deleted file mode 100644 index 2906754c5..000000000 Binary files a/docs/upgrades/packages-7.7.15/root_import_syndicatedcontent.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.15/thingyRecord-view.wgpkg b/docs/upgrades/packages-7.7.15/thingyRecord-view.wgpkg deleted file mode 100644 index 91a096d9a..000000000 Binary files a/docs/upgrades/packages-7.7.15/thingyRecord-view.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.15/webgui.css.wgpkg b/docs/upgrades/packages-7.7.15/webgui.css.wgpkg deleted file mode 100644 index 98ef98d72..000000000 Binary files a/docs/upgrades/packages-7.7.15/webgui.css.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.16/root_import_shelf-default.wgpkg b/docs/upgrades/packages-7.7.16/root_import_shelf-default.wgpkg deleted file mode 100644 index 177518f11..000000000 Binary files a/docs/upgrades/packages-7.7.16/root_import_shelf-default.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.16/root_import_storymanager.wgpkg b/docs/upgrades/packages-7.7.16/root_import_storymanager.wgpkg deleted file mode 100644 index 5df2321e6..000000000 Binary files a/docs/upgrades/packages-7.7.16/root_import_storymanager.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.17/default_product.wgpkg b/docs/upgrades/packages-7.7.17/default_product.wgpkg deleted file mode 100644 index 9f79c6bea..000000000 Binary files a/docs/upgrades/packages-7.7.17/default_product.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.17/matrix-default-detailed-listing.wgpkg b/docs/upgrades/packages-7.7.17/matrix-default-detailed-listing.wgpkg deleted file mode 100644 index f5b938983..000000000 Binary files a/docs/upgrades/packages-7.7.17/matrix-default-detailed-listing.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.17/matrix-default-view-template.wgpkg b/docs/upgrades/packages-7.7.17/matrix-default-view-template.wgpkg deleted file mode 100644 index b5acf93cf..000000000 Binary files a/docs/upgrades/packages-7.7.17/matrix-default-view-template.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.17/new-matrix_matrix-nav-tmpl.wgpkg b/docs/upgrades/packages-7.7.17/new-matrix_matrix-nav-tmpl.wgpkg deleted file mode 100644 index ecd1aa287..000000000 Binary files a/docs/upgrades/packages-7.7.17/new-matrix_matrix-nav-tmpl.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.17/root_import_account.wgpkg b/docs/upgrades/packages-7.7.17/root_import_account.wgpkg deleted file mode 100644 index 36d539803..000000000 Binary files a/docs/upgrades/packages-7.7.17/root_import_account.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.17/root_import_calendar-templates_default-calendar-month.wgpkg b/docs/upgrades/packages-7.7.17/root_import_calendar-templates_default-calendar-month.wgpkg deleted file mode 100644 index 09c8d3d4f..000000000 Binary files a/docs/upgrades/packages-7.7.17/root_import_calendar-templates_default-calendar-month.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.17/root_import_gallery-templates_default-gallery-view-album-thumbnails.wgpkg b/docs/upgrades/packages-7.7.17/root_import_gallery-templates_default-gallery-view-album-thumbnails.wgpkg deleted file mode 100644 index 6c556cc5c..000000000 Binary files a/docs/upgrades/packages-7.7.17/root_import_gallery-templates_default-gallery-view-album-thumbnails.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.17/root_import_gallery-templates_gallery.css.wgpkg b/docs/upgrades/packages-7.7.17/root_import_gallery-templates_gallery.css.wgpkg deleted file mode 100644 index 7dbf96cd3..000000000 Binary files a/docs/upgrades/packages-7.7.17/root_import_gallery-templates_gallery.css.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.17/root_import_storymanager_editstory.wgpkg b/docs/upgrades/packages-7.7.17/root_import_storymanager_editstory.wgpkg deleted file mode 100644 index 9de700cc9..000000000 Binary files a/docs/upgrades/packages-7.7.17/root_import_storymanager_editstory.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.17/root_import_storymanager_storytemplate.wgpkg b/docs/upgrades/packages-7.7.17/root_import_storymanager_storytemplate.wgpkg deleted file mode 100644 index 8d966a148..000000000 Binary files a/docs/upgrades/packages-7.7.17/root_import_storymanager_storytemplate.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.17/root_import_storymanager_storytemplatetopic.wgpkg b/docs/upgrades/packages-7.7.17/root_import_storymanager_storytemplatetopic.wgpkg deleted file mode 100644 index 64ae1ca74..000000000 Binary files a/docs/upgrades/packages-7.7.17/root_import_storymanager_storytemplatetopic.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.17/root_import_survey_default-gradebook-report.wgpkg b/docs/upgrades/packages-7.7.17/root_import_survey_default-gradebook-report.wgpkg deleted file mode 100644 index 3781c2457..000000000 Binary files a/docs/upgrades/packages-7.7.17/root_import_survey_default-gradebook-report.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.17/root_import_survey_default-survey-take.wgpkg b/docs/upgrades/packages-7.7.17/root_import_survey_default-survey-take.wgpkg deleted file mode 100644 index fa4603a26..000000000 Binary files a/docs/upgrades/packages-7.7.17/root_import_survey_default-survey-take.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.18/default-map-point-edit.wgpkg b/docs/upgrades/packages-7.7.18/default-map-point-edit.wgpkg deleted file mode 100644 index c04b72934..000000000 Binary files a/docs/upgrades/packages-7.7.18/default-map-point-edit.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.18/default-map-point-view.wgpkg b/docs/upgrades/packages-7.7.18/default-map-point-view.wgpkg deleted file mode 100644 index 5be271821..000000000 Binary files a/docs/upgrades/packages-7.7.18/default-map-point-view.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.18/default-map-view.wgpkg b/docs/upgrades/packages-7.7.18/default-map-view.wgpkg deleted file mode 100644 index 4df1a3a0a..000000000 Binary files a/docs/upgrades/packages-7.7.18/default-map-view.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.18/matrix-search-template.wgpkg b/docs/upgrades/packages-7.7.18/matrix-search-template.wgpkg deleted file mode 100644 index 165c6791a..000000000 Binary files a/docs/upgrades/packages-7.7.18/matrix-search-template.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.18/root_import_carousel_carousel-default.wgpkg b/docs/upgrades/packages-7.7.18/root_import_carousel_carousel-default.wgpkg deleted file mode 100644 index d3a83739f..000000000 Binary files a/docs/upgrades/packages-7.7.18/root_import_carousel_carousel-default.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.18/root_import_inbox-sms-notification.wgpkg b/docs/upgrades/packages-7.7.18/root_import_inbox-sms-notification.wgpkg deleted file mode 100644 index 02a8e2c53..000000000 Binary files a/docs/upgrades/packages-7.7.18/root_import_inbox-sms-notification.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.19/default_search2.wgpkg b/docs/upgrades/packages-7.7.19/default_search2.wgpkg deleted file mode 100644 index cddd9baa0..000000000 Binary files a/docs/upgrades/packages-7.7.19/default_search2.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.19/matrix-default-compare-template.wgpkg b/docs/upgrades/packages-7.7.19/matrix-default-compare-template.wgpkg deleted file mode 100644 index 6512fb152..000000000 Binary files a/docs/upgrades/packages-7.7.19/matrix-default-compare-template.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.19/root_import_ad-sku_default-manage-ad-sku-template.wgpkg b/docs/upgrades/packages-7.7.19/root_import_ad-sku_default-manage-ad-sku-template.wgpkg deleted file mode 100644 index cb58a8089..000000000 Binary files a/docs/upgrades/packages-7.7.19/root_import_ad-sku_default-manage-ad-sku-template.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.19/root_import_ad-sku_default-purchase-ad-sku-template.wgpkg b/docs/upgrades/packages-7.7.19/root_import_ad-sku_default-purchase-ad-sku-template.wgpkg deleted file mode 100644 index 8f1312722..000000000 Binary files a/docs/upgrades/packages-7.7.19/root_import_ad-sku_default-purchase-ad-sku-template.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.2/default_purchase_adsku_template.wgpkg b/docs/upgrades/packages-7.7.2/default_purchase_adsku_template.wgpkg deleted file mode 100644 index 8fb093d51..000000000 Binary files a/docs/upgrades/packages-7.7.2/default_purchase_adsku_template.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.2/root_import_shelf-default.wgpkg b/docs/upgrades/packages-7.7.2/root_import_shelf-default.wgpkg deleted file mode 100644 index dd35c7bc7..000000000 Binary files a/docs/upgrades/packages-7.7.2/root_import_shelf-default.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.2/root_import_survey_default-survey-edit.wgpkg b/docs/upgrades/packages-7.7.2/root_import_survey_default-survey-edit.wgpkg deleted file mode 100644 index 7491c9f02..000000000 Binary files a/docs/upgrades/packages-7.7.2/root_import_survey_default-survey-edit.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.3/matrix-default-compare-template.wgpkg b/docs/upgrades/packages-7.7.3/matrix-default-compare-template.wgpkg deleted file mode 100644 index 7cedad39d..000000000 Binary files a/docs/upgrades/packages-7.7.3/matrix-default-compare-template.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.3/matrix-default-detailed-listing.wgpkg b/docs/upgrades/packages-7.7.3/matrix-default-detailed-listing.wgpkg deleted file mode 100644 index 8b1ec16dd..000000000 Binary files a/docs/upgrades/packages-7.7.3/matrix-default-detailed-listing.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.3/matrix-default-view-template.wgpkg b/docs/upgrades/packages-7.7.3/matrix-default-view-template.wgpkg deleted file mode 100644 index 695875af5..000000000 Binary files a/docs/upgrades/packages-7.7.3/matrix-default-view-template.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.3/root_import_carousel.wgpkg b/docs/upgrades/packages-7.7.3/root_import_carousel.wgpkg deleted file mode 100644 index 582f9d4cf..000000000 Binary files a/docs/upgrades/packages-7.7.3/root_import_carousel.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.3/root_import_survey_default-answer-edit.wgpkg b/docs/upgrades/packages-7.7.3/root_import_survey_default-answer-edit.wgpkg deleted file mode 100644 index fd36d71e2..000000000 Binary files a/docs/upgrades/packages-7.7.3/root_import_survey_default-answer-edit.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.3/root_import_survey_default-question-edit.wgpkg b/docs/upgrades/packages-7.7.3/root_import_survey_default-question-edit.wgpkg deleted file mode 100644 index 6e04c1516..000000000 Binary files a/docs/upgrades/packages-7.7.3/root_import_survey_default-question-edit.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.3/root_import_survey_default-questions.wgpkg b/docs/upgrades/packages-7.7.3/root_import_survey_default-questions.wgpkg deleted file mode 100644 index c9cda5a8e..000000000 Binary files a/docs/upgrades/packages-7.7.3/root_import_survey_default-questions.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.3/root_import_survey_default-survey-edit.wgpkg b/docs/upgrades/packages-7.7.3/root_import_survey_default-survey-edit.wgpkg deleted file mode 100644 index bcf746dbf..000000000 Binary files a/docs/upgrades/packages-7.7.3/root_import_survey_default-survey-edit.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.3/root_import_survey_default-survey-summary.wgpkg b/docs/upgrades/packages-7.7.3/root_import_survey_default-survey-summary.wgpkg deleted file mode 100644 index 3065fb47b..000000000 Binary files a/docs/upgrades/packages-7.7.3/root_import_survey_default-survey-summary.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.3/root_import_survey_default-survey-take.wgpkg b/docs/upgrades/packages-7.7.3/root_import_survey_default-survey-take.wgpkg deleted file mode 100644 index 7f00c0c59..000000000 Binary files a/docs/upgrades/packages-7.7.3/root_import_survey_default-survey-take.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.3/survey.css.wgpkg b/docs/upgrades/packages-7.7.3/survey.css.wgpkg deleted file mode 100644 index 952069c02..000000000 Binary files a/docs/upgrades/packages-7.7.3/survey.css.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.4/matrix-default-view-template.wgpkg b/docs/upgrades/packages-7.7.4/matrix-default-view-template.wgpkg deleted file mode 100644 index a14d224e6..000000000 Binary files a/docs/upgrades/packages-7.7.4/matrix-default-view-template.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.4/matrix-search-template.wgpkg b/docs/upgrades/packages-7.7.4/matrix-search-template.wgpkg deleted file mode 100644 index 1b7176412..000000000 Binary files a/docs/upgrades/packages-7.7.4/matrix-search-template.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.4/new-matrix_matrix.css.wgpkg b/docs/upgrades/packages-7.7.4/new-matrix_matrix.css.wgpkg deleted file mode 100644 index 015589e01..000000000 Binary files a/docs/upgrades/packages-7.7.4/new-matrix_matrix.css.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.4/root_import_account_shop_shop-account-layout.wgpkg b/docs/upgrades/packages-7.7.4/root_import_account_shop_shop-account-layout.wgpkg deleted file mode 100644 index e33db5312..000000000 Binary files a/docs/upgrades/packages-7.7.4/root_import_account_shop_shop-account-layout.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.4/root_import_carousel_carousel-hidden-textareas.wgpkg b/docs/upgrades/packages-7.7.4/root_import_carousel_carousel-hidden-textareas.wgpkg deleted file mode 100644 index 03688412a..000000000 Binary files a/docs/upgrades/packages-7.7.4/root_import_carousel_carousel-hidden-textareas.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.4/root_import_survey_default-questions.wgpkg b/docs/upgrades/packages-7.7.4/root_import_survey_default-questions.wgpkg deleted file mode 100644 index 374cb3e14..000000000 Binary files a/docs/upgrades/packages-7.7.4/root_import_survey_default-questions.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.4/root_import_survey_default-survey-edit.wgpkg b/docs/upgrades/packages-7.7.4/root_import_survey_default-survey-edit.wgpkg deleted file mode 100644 index c7f675b27..000000000 Binary files a/docs/upgrades/packages-7.7.4/root_import_survey_default-survey-edit.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.4/root_import_thingyrecord-templates.wgpkg b/docs/upgrades/packages-7.7.4/root_import_thingyrecord-templates.wgpkg deleted file mode 100644 index 42073ef2d..000000000 Binary files a/docs/upgrades/packages-7.7.4/root_import_thingyrecord-templates.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.4/shopping-cart-collateral-items_my-purchases-detail-default.wgpkg b/docs/upgrades/packages-7.7.4/shopping-cart-collateral-items_my-purchases-detail-default.wgpkg deleted file mode 100644 index 63ae743e7..000000000 Binary files a/docs/upgrades/packages-7.7.4/shopping-cart-collateral-items_my-purchases-detail-default.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.5/matrix-default-compare-template.wgpkg b/docs/upgrades/packages-7.7.5/matrix-default-compare-template.wgpkg deleted file mode 100644 index f5abd91e0..000000000 Binary files a/docs/upgrades/packages-7.7.5/matrix-default-compare-template.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.5/root_import_storymanager.wgpkg b/docs/upgrades/packages-7.7.5/root_import_storymanager.wgpkg deleted file mode 100644 index 42da60941..000000000 Binary files a/docs/upgrades/packages-7.7.5/root_import_storymanager.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.5/root_import_survey_default-answer-edit.wgpkg b/docs/upgrades/packages-7.7.5/root_import_survey_default-answer-edit.wgpkg deleted file mode 100644 index 965aaeb90..000000000 Binary files a/docs/upgrades/packages-7.7.5/root_import_survey_default-answer-edit.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.5/root_import_survey_default-question-edit.wgpkg b/docs/upgrades/packages-7.7.5/root_import_survey_default-question-edit.wgpkg deleted file mode 100644 index ceae4765e..000000000 Binary files a/docs/upgrades/packages-7.7.5/root_import_survey_default-question-edit.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.5/root_import_survey_default-questions.wgpkg b/docs/upgrades/packages-7.7.5/root_import_survey_default-questions.wgpkg deleted file mode 100644 index 51e6102b0..000000000 Binary files a/docs/upgrades/packages-7.7.5/root_import_survey_default-questions.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.5/root_import_survey_default-section-edit.wgpkg b/docs/upgrades/packages-7.7.5/root_import_survey_default-section-edit.wgpkg deleted file mode 100644 index 78e7b4bc7..000000000 Binary files a/docs/upgrades/packages-7.7.5/root_import_survey_default-section-edit.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.5/root_import_survey_default-survey-edit.wgpkg b/docs/upgrades/packages-7.7.5/root_import_survey_default-survey-edit.wgpkg deleted file mode 100644 index 2710d64f2..000000000 Binary files a/docs/upgrades/packages-7.7.5/root_import_survey_default-survey-edit.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.6/inbox_notification.wgpkg b/docs/upgrades/packages-7.7.6/inbox_notification.wgpkg deleted file mode 100644 index be6497e72..000000000 Binary files a/docs/upgrades/packages-7.7.6/inbox_notification.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.6/matrix-default-view-template.wgpkg b/docs/upgrades/packages-7.7.6/matrix-default-view-template.wgpkg deleted file mode 100644 index 80b93c31a..000000000 Binary files a/docs/upgrades/packages-7.7.6/matrix-default-view-template.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.6/root_import_account_friendmanager.wgpkg b/docs/upgrades/packages-7.7.6/root_import_account_friendmanager.wgpkg deleted file mode 100644 index 956a30869..000000000 Binary files a/docs/upgrades/packages-7.7.6/root_import_account_friendmanager.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.6/root_import_account_inbox_default-inbox-view-template.wgpkg b/docs/upgrades/packages-7.7.6/root_import_account_inbox_default-inbox-view-template.wgpkg deleted file mode 100644 index d9c988e4f..000000000 Binary files a/docs/upgrades/packages-7.7.6/root_import_account_inbox_default-inbox-view-template.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.6/root_import_ems_badge-builder-default.wgpkg b/docs/upgrades/packages-7.7.6/root_import_ems_badge-builder-default.wgpkg deleted file mode 100644 index 2dfbdadff..000000000 Binary files a/docs/upgrades/packages-7.7.6/root_import_ems_badge-builder-default.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.6/root_import_survey_default-answer-edit.wgpkg b/docs/upgrades/packages-7.7.6/root_import_survey_default-answer-edit.wgpkg deleted file mode 100644 index 581818c37..000000000 Binary files a/docs/upgrades/packages-7.7.6/root_import_survey_default-answer-edit.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.6/root_import_survey_default-feedback.wgpkg b/docs/upgrades/packages-7.7.6/root_import_survey_default-feedback.wgpkg deleted file mode 100644 index 5d47115b1..000000000 Binary files a/docs/upgrades/packages-7.7.6/root_import_survey_default-feedback.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.6/root_import_survey_default-questions.wgpkg b/docs/upgrades/packages-7.7.6/root_import_survey_default-questions.wgpkg deleted file mode 100644 index 7b7edd2e2..000000000 Binary files a/docs/upgrades/packages-7.7.6/root_import_survey_default-questions.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.6/root_import_survey_default-survey-edit.wgpkg b/docs/upgrades/packages-7.7.6/root_import_survey_default-survey-edit.wgpkg deleted file mode 100644 index 0a4e0e496..000000000 Binary files a/docs/upgrades/packages-7.7.6/root_import_survey_default-survey-edit.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.6/root_import_survey_default-survey.wgpkg b/docs/upgrades/packages-7.7.6/root_import_survey_default-survey.wgpkg deleted file mode 100644 index 77153babd..000000000 Binary files a/docs/upgrades/packages-7.7.6/root_import_survey_default-survey.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.6/shopping-cart-collateral-items_address-default.wgpkg b/docs/upgrades/packages-7.7.6/shopping-cart-collateral-items_address-default.wgpkg deleted file mode 100644 index 86ba68141..000000000 Binary files a/docs/upgrades/packages-7.7.6/shopping-cart-collateral-items_address-default.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.7/default_webgui_anonymous_registration_template.wgpkg b/docs/upgrades/packages-7.7.7/default_webgui_anonymous_registration_template.wgpkg deleted file mode 100644 index eff8e39cf..000000000 Binary files a/docs/upgrades/packages-7.7.7/default_webgui_anonymous_registration_template.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.7/home_map_map-templates(3).wgpkg b/docs/upgrades/packages-7.7.7/home_map_map-templates(3).wgpkg deleted file mode 100644 index 5207f4b39..000000000 Binary files a/docs/upgrades/packages-7.7.7/home_map_map-templates(3).wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.7/matrix-default-screenshots-config.wgpkg b/docs/upgrades/packages-7.7.7/matrix-default-screenshots-config.wgpkg deleted file mode 100644 index c3e4badab..000000000 Binary files a/docs/upgrades/packages-7.7.7/matrix-default-screenshots-config.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.7/matrix-default-view-template.wgpkg b/docs/upgrades/packages-7.7.7/matrix-default-view-template.wgpkg deleted file mode 100644 index e9a1adf2e..000000000 Binary files a/docs/upgrades/packages-7.7.7/matrix-default-view-template.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.7/root_import_default-eu-user-screen.wgpkg b/docs/upgrades/packages-7.7.7/root_import_default-eu-user-screen.wgpkg deleted file mode 100644 index 9538d5300..000000000 Binary files a/docs/upgrades/packages-7.7.7/root_import_default-eu-user-screen.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.7/root_import_ems_ems-badge-listing-default.wgpkg b/docs/upgrades/packages-7.7.7/root_import_ems_ems-badge-listing-default.wgpkg deleted file mode 100644 index 05eda7467..000000000 Binary files a/docs/upgrades/packages-7.7.7/root_import_ems_ems-badge-listing-default.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.7/root_import_ems_ems-schedule-listing-default2.wgpkg b/docs/upgrades/packages-7.7.7/root_import_ems_ems-schedule-listing-default2.wgpkg deleted file mode 100644 index 7ba249800..000000000 Binary files a/docs/upgrades/packages-7.7.7/root_import_ems_ems-schedule-listing-default2.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.7/root_import_storymanager.wgpkg b/docs/upgrades/packages-7.7.7/root_import_storymanager.wgpkg deleted file mode 100644 index e74d78026..000000000 Binary files a/docs/upgrades/packages-7.7.7/root_import_storymanager.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.7/root_import_survey_default-test-results.wgpkg b/docs/upgrades/packages-7.7.7/root_import_survey_default-test-results.wgpkg deleted file mode 100644 index fe82e9c91..000000000 Binary files a/docs/upgrades/packages-7.7.7/root_import_survey_default-test-results.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.8/root_import_calendar-templates_default-calendar-list-view.wgpkg b/docs/upgrades/packages-7.7.8/root_import_calendar-templates_default-calendar-list-view.wgpkg deleted file mode 100644 index fd4d0a7da..000000000 Binary files a/docs/upgrades/packages-7.7.8/root_import_calendar-templates_default-calendar-list-view.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.8/root_import_ems_ems-schedule-listing-default2.wgpkg b/docs/upgrades/packages-7.7.8/root_import_ems_ems-schedule-listing-default2.wgpkg deleted file mode 100644 index b7f72a68f..000000000 Binary files a/docs/upgrades/packages-7.7.8/root_import_ems_ems-schedule-listing-default2.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.8/root_import_storymanager.wgpkg b/docs/upgrades/packages-7.7.8/root_import_storymanager.wgpkg deleted file mode 100644 index 1908a50a8..000000000 Binary files a/docs/upgrades/packages-7.7.8/root_import_storymanager.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.8/root_import_survey_default-questions.wgpkg b/docs/upgrades/packages-7.7.8/root_import_survey_default-questions.wgpkg deleted file mode 100644 index 7fcac5696..000000000 Binary files a/docs/upgrades/packages-7.7.8/root_import_survey_default-questions.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.8/survey.css.wgpkg b/docs/upgrades/packages-7.7.8/survey.css.wgpkg deleted file mode 100644 index e7169fa17..000000000 Binary files a/docs/upgrades/packages-7.7.8/survey.css.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.9/matrix-default-compare-template.wgpkg b/docs/upgrades/packages-7.7.9/matrix-default-compare-template.wgpkg deleted file mode 100644 index 072762cf5..000000000 Binary files a/docs/upgrades/packages-7.7.9/matrix-default-compare-template.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.9/matrix-default-detailed-listing.wgpkg b/docs/upgrades/packages-7.7.9/matrix-default-detailed-listing.wgpkg deleted file mode 100644 index 5b231d027..000000000 Binary files a/docs/upgrades/packages-7.7.9/matrix-default-detailed-listing.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.9/matrix-default-view-template.wgpkg b/docs/upgrades/packages-7.7.9/matrix-default-view-template.wgpkg deleted file mode 100644 index bda801baa..000000000 Binary files a/docs/upgrades/packages-7.7.9/matrix-default-view-template.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.9/matrix-search-template.wgpkg b/docs/upgrades/packages-7.7.9/matrix-search-template.wgpkg deleted file mode 100644 index 2e8a7a806..000000000 Binary files a/docs/upgrades/packages-7.7.9/matrix-search-template.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.9/root_import_account_contributions_default-contributions-view.wgpkg b/docs/upgrades/packages-7.7.9/root_import_account_contributions_default-contributions-view.wgpkg deleted file mode 100644 index 1c665ffb2..000000000 Binary files a/docs/upgrades/packages-7.7.9/root_import_account_contributions_default-contributions-view.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.9/root_import_account_profile_default-view-profile-template.wgpkg b/docs/upgrades/packages-7.7.9/root_import_account_profile_default-view-profile-template.wgpkg deleted file mode 100644 index 78259d0ac..000000000 Binary files a/docs/upgrades/packages-7.7.9/root_import_account_profile_default-view-profile-template.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.9/root_import_gallery-templates.wgpkg b/docs/upgrades/packages-7.7.9/root_import_gallery-templates.wgpkg deleted file mode 100644 index dbe49e3d0..000000000 Binary files a/docs/upgrades/packages-7.7.9/root_import_gallery-templates.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.7.9/root_import_storymanager.wgpkg b/docs/upgrades/packages-7.7.9/root_import_storymanager.wgpkg deleted file mode 100644 index 55de932f3..000000000 Binary files a/docs/upgrades/packages-7.7.9/root_import_storymanager.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.8.0/default-wiki-front-page.wgpkg b/docs/upgrades/packages-7.8.0/default-wiki-front-page.wgpkg deleted file mode 100644 index 55bb375f0..000000000 Binary files a/docs/upgrades/packages-7.8.0/default-wiki-front-page.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.8.0/default-wiki-page-edit.wgpkg b/docs/upgrades/packages-7.8.0/default-wiki-page-edit.wgpkg deleted file mode 100644 index 988dd10f5..000000000 Binary files a/docs/upgrades/packages-7.8.0/default-wiki-page-edit.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.8.0/default-wiki-page.wgpkg b/docs/upgrades/packages-7.8.0/default-wiki-page.wgpkg deleted file mode 100644 index ef8c5ecb8..000000000 Binary files a/docs/upgrades/packages-7.8.0/default-wiki-page.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.8.0/root_import_account_account.css.wgpkg b/docs/upgrades/packages-7.8.0/root_import_account_account.css.wgpkg deleted file mode 100644 index 43de26927..000000000 Binary files a/docs/upgrades/packages-7.8.0/root_import_account_account.css.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.8.0/root_import_account_default-account-layout2.wgpkg b/docs/upgrades/packages-7.8.0/root_import_account_default-account-layout2.wgpkg deleted file mode 100644 index a4e2a5cb6..000000000 Binary files a/docs/upgrades/packages-7.8.0/root_import_account_default-account-layout2.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.8.0/root_import_account_profile_default-edit-profile-template.wgpkg b/docs/upgrades/packages-7.8.0/root_import_account_profile_default-edit-profile-template.wgpkg deleted file mode 100644 index a8dad5a62..000000000 Binary files a/docs/upgrades/packages-7.8.0/root_import_account_profile_default-edit-profile-template.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.8.0/root_import_calendar-templates_default-calendar-month.wgpkg b/docs/upgrades/packages-7.8.0/root_import_calendar-templates_default-calendar-month.wgpkg deleted file mode 100644 index 42145e7be..000000000 Binary files a/docs/upgrades/packages-7.8.0/root_import_calendar-templates_default-calendar-month.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.8.0/root_import_carousel_carousel-default.wgpkg b/docs/upgrades/packages-7.8.0/root_import_carousel_carousel-default.wgpkg deleted file mode 100644 index f0ca175fa..000000000 Binary files a/docs/upgrades/packages-7.8.0/root_import_carousel_carousel-default.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.8.0/root_import_default-asset-subscription.wgpkg b/docs/upgrades/packages-7.8.0/root_import_default-asset-subscription.wgpkg deleted file mode 100644 index 03f3ad2fc..000000000 Binary files a/docs/upgrades/packages-7.8.0/root_import_default-asset-subscription.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.8.0/root_import_storymanager.wgpkg b/docs/upgrades/packages-7.8.0/root_import_storymanager.wgpkg deleted file mode 100644 index 0f91e194d..000000000 Binary files a/docs/upgrades/packages-7.8.0/root_import_storymanager.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.8.0/root_import_survey_default-survey-take.wgpkg b/docs/upgrades/packages-7.8.0/root_import_survey_default-survey-take.wgpkg deleted file mode 100644 index 0d4c9586e..000000000 Binary files a/docs/upgrades/packages-7.8.0/root_import_survey_default-survey-take.wgpkg and /dev/null differ diff --git a/docs/upgrades/packages-7.8.1/wiki-master-by-keyword-template.tmpl.wgpkg b/docs/upgrades/packages-7.8.1/wiki-master-by-keyword-template.tmpl.wgpkg deleted file mode 100644 index 909e3077d..000000000 Binary files a/docs/upgrades/packages-7.8.1/wiki-master-by-keyword-template.tmpl.wgpkg and /dev/null differ diff --git a/docs/upgrades/upgrade_7.6.14-7.7.0.pl b/docs/upgrades/upgrade_7.6.14-7.7.0.pl deleted file mode 100644 index 573053173..000000000 --- a/docs/upgrades/upgrade_7.6.14-7.7.0.pl +++ /dev/null @@ -1,422 +0,0 @@ -#!/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; -use WebGUI::PassiveAnalytics::Rule; -use WebGUI::Utility; - -my $toVersion = '7.7.0'; -my $quiet; # this line required - - -my $session = start(); # this line required - -# upgrade functions go here - -addAccountActivationTemplateToSettings( $session ); -addGroupToAddToMatrix( $session ); -addScreenshotTemplatesToMatrix( $session ); -surveyDoAfterTimeLimit($session); -surveyRemoveResponseTemplate($session); -surveyEndWorkflow($session); -installAssetHistory($session); -addMinimumCartCheckoutSetting( $session ); - -# Passive Analytics -pa_installLoggingTables($session); -pa_installPassiveAnalyticsRule($session); -pa_installPassiveAnalyticsConfig($session); -pa_installWorkflow($session); -pa_addPassiveAnalyticsSettings($session); -pa_addPassiveAnalyticsStatus($session); - -# vendor payouts -addTransactionItemFlags( $session ); -createShopAcccountPluginSettings( $session ); - -finish($session); # this line required - - -#---------------------------------------------------------------------------- -sub addAccountActivationTemplateToSettings { - my $session = shift; - print "\tAdding account activation template to settings \n" unless $quiet; - - $session->db->write("insert into settings (name, value) values ('webguiAccountActivationTemplate','PBtmpl0000000000000016')"); - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addGroupToAddToMatrix { - my $session = shift; - print "\tAdding groupToAdd to Matrix table, if needed... \n" unless $quiet; - my $sth = $session->db->read('describe Matrix groupToAdd'); - if (! defined $sth->hashRef) { - $session->db->write("alter table Matrix add column groupToAdd char(22) default 2"); - } - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addScreenshotTemplatesToMatrix { - my $session = shift; - print "\tAdding screenshot templates to Matrix table \n" unless $quiet; - - $session->db->write("alter table Matrix add screenshotsConfigTemplateId char(22);"); - $session->db->write("update Matrix set screenshotsConfigTemplateId = 'matrixtmpl000000000007';"); - $session->db->write("alter table Matrix add screenshotsTemplateId char(22);"); - $session->db->write("update Matrix set screenshotsTemplateId = 'matrixtmpl000000000006';"); - - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub surveyDoAfterTimeLimit { - my $session = shift; - print "\tAdding column doAfterTimeLimit to Survey table... " unless $quiet; - $session->db->write('alter table Survey add doAfterTimeLimit char(22)'); - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub surveyEndWorkflow { - my $session = shift; - print "\tAdding column onSurveyEndWorkflowId to Survey table... " unless $quiet; - $session->db->write('alter table Survey add onSurveyEndWorkflowId varchar(22) character set utf8 collate utf8_bin'); - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub surveyRemoveResponseTemplate { - my $session = shift; - print "\tRemoving responseTemplate... " unless $quiet; - $session->db->write('alter table Survey drop responseTemplateId'); - if (my $template = WebGUI::Asset->new($session, 'PBtmpl0000000000000064')) { - $template->purge(); - } - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub installAssetHistory { - my $session = shift; - print "\tAdding Asset History content handler... \n" unless $quiet; - ##Content Handler - my $contentHandlers = $session->config->get('contentHandlers'); - if (! isIn('WebGUI::Content::AssetHistory', @{ $contentHandlers }) ) { - my @newHandlers = (); - foreach my $handler (@{ $contentHandlers }) { - push @newHandlers, $handler; - push @newHandlers, 'WebGUI::Content::AssetHistory' if - $handler eq 'WebGUI::Content::Account'; - } - $session->config->set('contentHandlers', \@newHandlers); - } - ##Admin Console - $session->config->addToHash('adminConsole', 'assetHistory', { - "icon" => "assetHistory.gif", - "groupSetting" => "groupIdAdminHistory", - "uiLevel" => 5, - "url" => "^PageUrl(\"\",op=assetHistory);", - "title" => "^International(assetHistory,Asset);" - }); - ##Setting for custom group - $session->setting->add('groupIdAdminHistory', 12); - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub pa_installLoggingTables { - my $session = shift; - print "\tInstall logging tables... " unless $quiet; - my $db = $session->db; - $db->write(<write(<write(<write(<write(<write(<crud_createTable($session); - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -# Add the PassiveAnalytics Settings -sub pa_addPassiveAnalyticsSettings { - my $session = shift; - print "\tInstall Passive Analytics settings... " unless $quiet; - # and here's our code - $session->setting->add('passiveAnalyticsInterval', 300); - $session->setting->add('passiveAnalyticsDeleteDelta', 0); - $session->setting->add('passiveAnalyticsEnabled', 0); - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -# Add the PassiveAnalytics Rule table -sub pa_addPassiveAnalyticsStatus { - my $session = shift; - my $db = $session->db; - print "\tInstall Passive Analytics status table... " unless $quiet; - # and here's our code - $db->write(<write(<write('insert into passiveAnalyticsStatus (userId) VALUES (3)'); - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -# Add the Passive Analytics config file entry -# for the adminConsole and the content handler -sub pa_installPassiveAnalyticsConfig { - my $session = shift; - print "\tAdd Passive Analytics entry to the config file... " unless $quiet; - # Admin Bar/Console - my $adminConsole = $session->config->get('adminConsole'); - if (!exists $adminConsole->{'passiveAnalytics'}) { - $adminConsole->{'passiveAnalytics'} = { - "icon" => "passiveAnalytics.png", - "uiLevel" => 1, - "url" => "^PageUrl(\"\",op=passiveAnalytics;func=editRuleflow);", - "title" => "^International(Passive Analytics,PassiveAnalytics);", - "groupSetting" => "3", - }; - $session->config->set('adminConsole', $adminConsole); - } - # Content Handler - my $contentHandlers = $session->config->get('contentHandlers'); - if (!isIn('WebGUI::Content::PassiveAnalytics',@{ $contentHandlers} ) ) { - my $contentIndex = 0; - HANDLER: while ($contentIndex <= $#{ $contentHandlers } ) { - ##Insert before Operation - if($contentHandlers->[$contentIndex] eq 'WebGUI::Content::Operation') { - splice @{ $contentHandlers }, $contentIndex, 0, 'WebGUI::Content::PassiveAnalytics'; - last HANDLER; - } - ++$contentIndex; - } - $session->config->set('contentHandlers', $contentHandlers); - } - # Workflow Activities - my $workflowActivities = $session->config->get('workflowActivities'); - my @none = @{ $workflowActivities->{'None'} }; - if (!isIn('WebGUI::Workflow::Activity::SummarizePassiveAnalytics', @none)) { - push @none, 'WebGUI::Workflow::Activity::SummarizePassiveAnalytics'; - } - if (!isIn('WebGUI::Workflow::Activity::BucketPassiveAnalytics', @none)) { - push @none, 'WebGUI::Workflow::Activity::BucketPassiveAnalytics'; - } - $workflowActivities->{'None'} = [ @none ]; - $session->config->set('workflowActivities', $workflowActivities); - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -# Add the Passive Analytics Workflow -sub pa_installWorkflow { - my $session = shift; - print "\tAdd Passive Analytics Workflow... " unless $quiet; - my $workflow = WebGUI::Workflow->create( - $session, - { - title => 'Analyze Passive Analytics', - mode => 'singleton', - type => 'None', - description => 'Manual changes to this workflow will be lost. Please only use the Passive Analytics screen to make changes', - }, - 'PassiveAnalytics000001', - ); - my $summarize = $workflow->addActivity('WebGUI::Workflow::Activity::SummarizePassiveAnalytics'); - my $bucket = $workflow->addActivity('WebGUI::Workflow::Activity::BucketPassiveAnalytics'); - $summarize->set('title', 'Perform duration analysis'); - $bucket->set( 'title', 'Please log entries into buckets'); - $workflow->set({enabled => 1}); - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addTransactionItemFlags { - my $session = shift; - print "\tAdding columns for vendor payout tracking to transaction items..." unless $quiet; - - $session->db->write('alter table transactionItem add column vendorPayoutStatus char(10) default \'NotPaid\''); - $session->db->write('alter table transactionItem add column vendorPayoutAmount float (6,2) default 0.00'); - - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub createShopAcccountPluginSettings { - my $session = shift; - print "\tCreating default settings for the account plugin..." unless $quiet; - - $session->setting->add('shopMySalesTemplateId', '-zxyB-O50W8YnL39Ouoc4Q'); - - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addMinimumCartCheckoutSetting { - my $session = shift; - print "\tAdding setting for minimum cart checkout..." unless $quiet; - - $session->setting->add( 'shopCartCheckoutMinimum', '0.00' ); - - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -# 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; - - # 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); - 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 diff --git a/docs/upgrades/upgrade_7.6.35-7.7.17.pl b/docs/upgrades/upgrade_7.6.35-7.7.17.pl deleted file mode 100644 index a4f1dbcb6..000000000 --- a/docs/upgrades/upgrade_7.6.35-7.7.17.pl +++ /dev/null @@ -1,2029 +0,0 @@ -#!/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 List::MoreUtils qw/uniq/; -use WebGUI::Asset; -use WebGUI::Asset::Template; -use WebGUI::Asset::Wobject::Survey::Test; -use WebGUI::AssetCollateral::Sku::Ad::Ad; -use WebGUI::AssetCollateral::Sku::ThingyRecord::Record; -use WebGUI::FilePump::Bundle; -use WebGUI::International; -use WebGUI::PassiveAnalytics::Rule; -use WebGUI::ProfileField; -use WebGUI::Utility; -use WebGUI::VersionTag; -use WebGUI::Workflow; -use JSON qw/to_json/; - -my $toVersion = "7.7.17"; # make this match what version you're going to -my $quiet; # this line required - - -my $session = start(); # this line required - -############################################################### -## 7.6.14 - 7.7.0 -############################################################### -addAccountActivationTemplateToSettings( $session ); -surveyDoAfterTimeLimit($session); -surveyRemoveResponseTemplate($session); -surveyEndWorkflow($session); -installAssetHistory($session); -addMinimumCartCheckoutSetting( $session ); - -# Passive Analytics -pa_installLoggingTables($session); -pa_installPassiveAnalyticsRule($session); -pa_installPassiveAnalyticsConfig($session); -pa_installWorkflow($session); -pa_addPassiveAnalyticsSettings($session); -pa_addPassiveAnalyticsStatus($session); - -# vendor payouts -addTransactionItemFlags( $session ); -createShopAcccountPluginSettings( $session ); - -############################################################### -## 7.7.0 - 7.7.1 -############################################################### -adSkuInstall($session); -addWelcomeMessageTemplateToSettings( $session ); -removeOldSettings( $session ); - -#add Survey table -addSurveyQuestionTypes($session); - -# image mods -addImageAnnotation($session); - -# rss mods -addRssLimit($session); - -############################################################### -## 7.7.1 - 7.7.2 -############################################################### -addRssFeedAspect($session); -addRssFeedAspectToAssets($session); -convertCollaborationToRssAspect($session); -removeRssCapableAsset($session); - -############################################################### -## 7.7.2 - 7.7.3 -############################################################### -addSurveyQuizModeColumns($session); -addSurveyExpressionEngineConfigFlag($session); -addCarouselWobject($session); -reInstallPassiveAnalyticsConfig($session); - -############################################################### -## 7.7.4 - 7.7.5 -############################################################### -updateSurveyQuestionTypes($session); -installThingyRecord( $session ); -installPluggableTax( $session ); -addSurveyBackButtonColumn( $session ); - -# Story Manager -installStoryManagerTables($session); -sm_upgradeConfigFiles($session); -sm_updateDailyWorkflow($session); -turnOffAdmin($session); - -fixConfigs($session); - -addGlobalHeadTags( $session ); -addShipsSeparateToSku($session); - -addTemplatePacking( $session ); - -############################################################### -## 7.7.5 - 7.7.6 -############################################################### -addTemplateAttachmentsTable($session); -addMobileStyleTemplate( $session ); -revertUsePacked( $session ); -addEuVatDbColumns( $session ); -addShippingDrivers( $session ); -addTransactionTaxColumns( $session ); -sendWebguiStats($session); -addDataFormColumns($session); -addListingsCacheTimeoutToMatrix( $session ); -addSurveyFeedbackTemplateColumn( $session ); -installCopySender($session); -installNotificationsSettings($session); -installSMSUserProfileFields($session); -installSMSSettings($session); -upgradeSMSMailQueue($session); -addPayDrivers($session); -addCollaborationColumns($session); -installSurveyTest($session); -installFriendManagerSettings($session); -installFriendManagerConfig($session); - -############################################################### -## 7.7.6 - 7.7.7 -############################################################### -removeDanglingOldRssAssets( $session ); -addOgoneToConfig( $session ); -addUseEmailAsUsernameToSettings( $session ); -alterVATNumberTable( $session ); -addRedirectAfterLoginUrlToSettings( $session ); -addSurveyTestResultsTemplateColumn( $session ); -updateSurveyTest( $session ); -fixSMSUserProfileI18N($session); -addEmsScheduleColumns ($session); -addMapAsset( $session ); -installFilePumpHandler($session); -installFilePumpTable($session); -installFilePumpAdminGroup($session); -addUserControlWorkflows($session); - -############################################################### -## 7.7.7 - 7.7.8 -############################################################### -addMobileStyleConfig($session); - -############################################################### -## 7.7.9 - 7.7.9 -############################################################### -repackTemplates( $session ); - -############################################################### -## 7.7.9 - 7.7.10 -############################################################### -addStoryPhotoWidth($session); - -############################################################### -## 7.7.10 - 7.7.11 -############################################################### -makeSurveyResponsesVersionAware($session); -shrinkSurveyJSON($session); - -############################################################### -## 7.7.11 - 7.7.12 -############################################################### -surveyCleanUp($session); -addUTCMacro($session); - -############################################################### -## 7.7.14 - 7.7.15 -############################################################### -replacePayPalDriver($session); -addFieldPriceToThingyRecord( $session ); -replaceUsageOfOldTemplates($session); - -############################################################### -## 7.7.15 - 7.7.16 -############################################################### -replaceUsageOfOldTemplatesAgain($session); -updatePayPalDriversAgain($session); -addThingyRecordFieldPriceDefaults($session); - -############################################################### -## 7.7.16 - 7.7.17 -############################################################### -addFriendManagerSettings($session); -fixMapTemplateFolderStyle($session); -addExpireIncompleteSurveyResponsesWorkflow($session); - -finish($session); # this line required - - -#---------------------------------------------------------------------------- -sub addAccountActivationTemplateToSettings { - my $session = shift; - print "\tAdding account activation template to settings... " unless $quiet; - - $session->db->write("insert into settings (name, value) values ('webguiAccountActivationTemplate','PBtmpl0000000000000016')"); - print "Done.\n" unless $quiet; -} - - -#---------------------------------------------------------------------------- -sub surveyDoAfterTimeLimit { - my $session = shift; - print "\tAdding column doAfterTimeLimit to Survey table... " unless $quiet; - $session->db->write('alter table Survey add doAfterTimeLimit char(22)'); - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub surveyEndWorkflow { - my $session = shift; - print "\tAdding column onSurveyEndWorkflowId to Survey table... " unless $quiet; - $session->db->write('alter table Survey add onSurveyEndWorkflowId varchar(22) character set utf8 collate utf8_bin'); - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub surveyRemoveResponseTemplate { - my $session = shift; - print "\tRemoving responseTemplate... " unless $quiet; - $session->db->write('alter table Survey drop responseTemplateId'); - if (my $template = WebGUI::Asset->new($session, 'PBtmpl0000000000000064')) { - $template->purge(); - } - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub installAssetHistory { - my $session = shift; - print "\tAdding Asset History content handler... " unless $quiet; - ##Content Handler - my $contentHandlers = $session->config->get('contentHandlers'); - if (! isIn('WebGUI::Content::AssetHistory', @{ $contentHandlers }) ) { - my @newHandlers = (); - foreach my $handler (@{ $contentHandlers }) { - push @newHandlers, $handler; - push @newHandlers, 'WebGUI::Content::AssetHistory' if - $handler eq 'WebGUI::Content::Account'; - } - $session->config->set('contentHandlers', \@newHandlers); - } - ##Admin Console - $session->config->addToHash('adminConsole', 'assetHistory', { - "icon" => "assetHistory.gif", - "groupSetting" => "groupIdAdminHistory", - "uiLevel" => 5, - "url" => "^PageUrl(\"\",op=assetHistory);", - "title" => "^International(assetHistory,Asset);" - }); - ##Setting for custom group - $session->setting->add('groupIdAdminHistory', 12); - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub pa_installLoggingTables { - my $session = shift; - print "\tInstall logging tables... " unless $quiet; - my $db = $session->db; - $db->write(<write(<write(<write(<write(<write(<crud_createTable($session); - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -# Add the PassiveAnalytics Settings -sub pa_addPassiveAnalyticsSettings { - my $session = shift; - print "\tInstall Passive Analytics settings... " unless $quiet; - # and here's our code - $session->setting->add('passiveAnalyticsInterval', 300); - $session->setting->add('passiveAnalyticsDeleteDelta', 0); - $session->setting->add('passiveAnalyticsEnabled', 0); - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -# Add the PassiveAnalytics Rule table -sub pa_addPassiveAnalyticsStatus { - my $session = shift; - my $db = $session->db; - print "\tInstall Passive Analytics status table... " unless $quiet; - # and here's our code - $db->write(<write(<write('insert into passiveAnalyticsStatus (userId) VALUES (3)'); - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -# Add the Passive Analytics config file entry -# for the adminConsole and the content handler -sub pa_installPassiveAnalyticsConfig { - my $session = shift; - print "\tAdd Passive Analytics entry to the config file... " unless $quiet; - # Admin Bar/Console - my $adminConsole = $session->config->get('adminConsole'); - if (!exists $adminConsole->{'passiveAnalytics'}) { - $adminConsole->{'passiveAnalytics'} = { - "icon" => "passiveAnalytics.png", - "uiLevel" => 1, - "url" => "^PageUrl(\"\",op=passiveAnalytics;func=editRuleflow);", - "title" => "^International(Passive Analytics,PassiveAnalytics);", - "groupSetting" => "3", - }; - $session->config->set('adminConsole', $adminConsole); - } - # Content Handler - my $contentHandlers = $session->config->get('contentHandlers'); - if (!isIn('WebGUI::Content::PassiveAnalytics',@{ $contentHandlers} ) ) { - my $contentIndex = 0; - HANDLER: while ($contentIndex <= $#{ $contentHandlers } ) { - ##Insert before Operation - if($contentHandlers->[$contentIndex] eq 'WebGUI::Content::Operation') { - splice @{ $contentHandlers }, $contentIndex, 0, 'WebGUI::Content::PassiveAnalytics'; - last HANDLER; - } - ++$contentIndex; - } - $session->config->set('contentHandlers', $contentHandlers); - } - # Workflow Activities - my $workflowActivities = $session->config->get('workflowActivities'); - my @none = @{ $workflowActivities->{'None'} }; - if (!isIn('WebGUI::Workflow::Activity::SummarizePassiveAnalytics', @none)) { - push @none, 'WebGUI::Workflow::Activity::SummarizePassiveAnalytics'; - } - if (!isIn('WebGUI::Workflow::Activity::BucketPassiveAnalytics', @none)) { - push @none, 'WebGUI::Workflow::Activity::BucketPassiveAnalytics'; - } - $workflowActivities->{'None'} = [ @none ]; - $session->config->set('workflowActivities', $workflowActivities); - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -# Add the Passive Analytics Workflow -sub pa_installWorkflow { - my $session = shift; - print "\tAdd Passive Analytics Workflow... " unless $quiet; - my $workflow = WebGUI::Workflow->create( - $session, - { - title => 'Analyze Passive Analytics', - mode => 'singleton', - type => 'None', - description => 'Manual changes to this workflow will be lost. Please only use the Passive Analytics screen to make changes', - }, - 'PassiveAnalytics000001', - ); - my $summarize = $workflow->addActivity('WebGUI::Workflow::Activity::SummarizePassiveAnalytics'); - my $bucket = $workflow->addActivity('WebGUI::Workflow::Activity::BucketPassiveAnalytics'); - $summarize->set('title', 'Perform duration analysis'); - $bucket->set( 'title', 'Please log entries into buckets'); - $workflow->set({enabled => 1}); - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addTransactionItemFlags { - my $session = shift; - print "\tAdding columns for vendor payout tracking to transaction items..." unless $quiet; - - $session->db->write('alter table transactionItem add column vendorPayoutStatus char(10) default \'NotPaid\''); - $session->db->write('alter table transactionItem add column vendorPayoutAmount float (6,2) default 0.00'); - - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub createShopAcccountPluginSettings { - my $session = shift; - print "\tCreating default settings for the account plugin..." unless $quiet; - - $session->setting->add('shopMySalesTemplateId', '-zxyB-O50W8YnL39Ouoc4Q'); - - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addMinimumCartCheckoutSetting { - my $session = shift; - print "\tAdding setting for minimum cart checkout..." unless $quiet; - - $session->setting->add( 'shopCartCheckoutMinimum', '0.00' ); - - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -# 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 -------------------------------- -sub removeOldSettings { - my $session = shift; - print "\tRemoving old, unused settings... " unless $quiet; - my $setting = $session->setting; - - $setting->remove('commerceCheckoutCanceledTemplateId'); - $setting->remove('commerceConfirmCheckoutTemplateId'); - $setting->remove('commerceEnableSalesTax'); - $setting->remove('commercePaymentPlugin'); - $setting->remove('commercePurchaseHistoryTemplateId'); - $setting->remove('commerceSelectPaymentGatewayTemplateId'); - $setting->remove('commerceSelectShippingMethodTemplateId'); - $setting->remove('commerceSendDailyReportTo'); - $setting->remove('commerceViewShoppingCartTemplateId'); - - print "Done.\n" unless $quiet; -} - -sub addSurveyQuestionTypes{ - my $session = shift; - print "\tAdding new survey table Survey_questionTypes... " unless $quiet; - $session->db->write(" - CREATE TABLE `Survey_questionTypes` ( - `questionType` varchar(56) NOT NULL, - `answers` text NOT NULL, - PRIMARY KEY (`questionType`)) - "); - $session->db->write(q{ - INSERT INTO `Survey_questionTypes` VALUES ('Scale',''),('Gender','Male,Female'),('Education','Elementary or some high school,High school/GED,Some college/vocational school,College graduate,Some graduate work,Master\\'s degree,Doctorate (of any type),Other degree (verbatim)'),('Importance','Not at all important,,,,,,,,,,Extremely important'),('Yes/No','Yes,No'),('Confidence','Not at all confident,,,,,,,,,,Extremely confident'),('Effectiveness','Not at all effective,,,,,,,,,,Extremely effective'),('Oppose/Support','Strongly oppose,,,,,,Strongly support'),('Certainty','Not at all certain,,,,,,,,,,Extremely certain'),('True/False','True,False'),('Concern','Not at all concerned,,,,,,,,,,Extremely concerned'),('Ideology','Strongly liberal,Liberal,Somewhat liberal,Middle of the road,Slightly conservative,Conservative,Strongly conservative'),('Security','Not at all secure,,,,,,,,,,Extremely secure'),('Risk','No risk,,,,,,,,,,Extreme risk'),('Agree/Disagree','Strongly disagree,,,,,,Strongly agree'),('Race','American Indian,Asian,Black,Hispanic,White non-Hispanic,Something else (verbatim)'),('Threat','No threat,,,,,,,,,,Extreme threat'),('Party','Democratic party,Republican party (or GOP),Independent party,Other party (verbatim)'),('Likelihood','Not at all likely,,,,,,,,,,Extremely likely'),('Multiple Choice',''),('Satisfaction','Not at all satisfied,,,,,,,,,,Extremely satisfied') - }); - print "Done.\n" unless $quiet; -} - -sub addWelcomeMessageTemplateToSettings { - my $session = shift; - print "\tAdding welcome message template to settings... " unless $quiet; - - $session->db->write("insert into settings values ('webguiWelcomeMessageTemplate', 'PBtmpl0000000000000015');"); - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addRssLimit { - my $session = shift; - print "\tAdding rssLimit to RSSCapable table, if needed... " unless $quiet; - my $sth = $session->db->read('describe RSSCapable rssCapableRssLimit'); - if (! defined $sth->hashRef) { - $session->db->write("alter table RSSCapable add column rssCapableRssLimit integer"); - } - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addImageAnnotation { - my $session = shift; - print "\tAdding annotations to ImageAsset table, if needed... " unless $quiet; - my $sth = $session->db->read('describe ImageAsset annotations'); - if (! defined $sth->hashRef) { - $session->db->write("alter table ImageAsset add column annotations mediumtext"); - } - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub adSkuInstall { - my $session = shift; - print "\tInstalling the AdSku Asset...\n" unless $quiet; - print "\t\tCreate AdSku database table.\n" unless $quiet; - $session->db->write("CREATE TABLE AdSku ( - assetId VARCHAR(22) BINARY NOT NULL, - revisionDate BIGINT NOT NULL, - purchaseTemplate VARCHAR(22) BINARY NOT NULL, - manageTemplate VARCHAR(22) BINARY NOT NULL, - adSpace VARCHAR(22) BINARY NOT NULL, - priority INTEGER DEFAULT '1', - pricePerClick Float DEFAULT '0', - pricePerImpression Float DEFAULT '0', - clickDiscounts VARCHAR(1024) default '', - impressionDiscounts VARCHAR(1024) default '', - PRIMARY KEY (assetId,revisionDate) - )"); - print "\t\tCreate Adsku crud table.\n" unless $quiet; - use WebGUI::AssetCollateral::Sku::Ad::Ad; - WebGUI::AssetCollateral::Sku::Ad::Ad->crud_createTable($session); - print "\t\tAdding to config file.\n" unless $quiet; - $session->config->addToHash("assets", 'WebGUI::Asset::Sku::Ad' => { category => 'shop' } ); - print "\tDone.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addRssFeedAspect { - my $session = shift; - print "\tAdding RssFeed asset aspect..." unless $quiet; - $session->db->write(q{create table assetAspectRssFeed ( - assetId char(22) binary not null, - revisionDate bigint not null, - itemsPerFeed int(11) default 25, - feedCopyright text, - feedTitle text, - feedDescription mediumtext, - feedImage char(22) binary, - feedImageLink text, - feedImageDescription mediumtext, - feedHeaderLinks char(32) default 'rss\natom', - primary key (assetId, revisionDate) - )}); - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addRssFeedAspectToAssets { - my $session = shift; - my $db = $session->db; - foreach my $asset_class (qw( WikiMaster SyndicatedContent Gallery GalleryAlbum )) { - print "\tAdding RssFeed aspect to $asset_class table..." unless $quiet; - my $pages = $db->read("select assetId,revisionDate from $asset_class"); - while (my ($id, $rev) = $pages->array) { - $db->write("INSERT INTO assetAspectRssFeed (assetId, revisionDate, itemsPerFeed, feedTitle, feedDescription, feedImage, feedImageLink, feedImageDescription) VALUES (?,?,25,'','',NULL,'','')",[$id,$rev]); - } - print "Done.\n" unless $quiet; - } -} - -#---------------------------------------------------------------------------- -sub convertCollaborationToRssAspect { - my $session = shift; - print "\tAdding RssFeed aspect to Collaboration, (porting rssCapableRssLimit to itemsPerFeed)..." unless $quiet; - my $db = $session->db; - my @rssFromParents; - my $pages = $db->read("SELECT Collaboration.assetId, Collaboration.revisionDate, RSSCapable.rssCapableRssLimit, RSSCapable.rssCapableRssFromParentId, RSSCapable.rssCapableRssEnabled FROM Collaboration INNER JOIN RSSCapable ON Collaboration.assetId=RSSCapable.assetId AND Collaboration.revisionDate=RSSCapable.revisionDate"); - while (my ($id, $rev, $limit, $fromParent, $enabled) = $pages->array) { - if ($fromParent) { - push @rssFromParents, $fromParent; - } - my $headerLinks = $enabled ? "rss\natom" : q{}; - $db->write("INSERT INTO assetAspectRssFeed (assetId, revisionDate, itemsPerFeed, feedTitle, feedDescription, feedImage, feedImageLink, feedImageDescription, feedHeaderLinks) VALUES (?,?,?,'','',NULL,'','',?)",[$id,$rev,$limit || 25, $headerLinks]); - } - for my $assetId (@rssFromParents) { - my $asset = eval { WebGUI::Asset->newPending($session, $assetId) }; - if ($asset) { - $asset->purge; - } - } - $db->write("DELETE FROM RSSCapable WHERE assetId IN (SELECT assetId FROM Collaboration GROUP BY assetId)"); - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub removeRssCapableAsset { - my $session = shift; - print "\tChecking for uses of RSSCapable...\n" unless $quiet; - my @rssCapableClasses = $session->db->buildArray('SELECT className FROM RSSCapable INNER JOIN asset ON RSSCapable.assetId=asset.assetId GROUP BY className'); - if (@rssCapableClasses) { - warn "\t\tThis site is using the assets\n\t\t\t" . join(', ', @rssCapableClasses) . "\n\t\twhich use the RSSCapable class! Support RSSCapable has been dropped and it will no longer be maintained.\n"; - } - else { - print "\t\tNot used, removing.\n" unless $quiet; - $session->db->write(q|DELETE FROM assetData WHERE assetId IN (SELECT assetId FROM asset WHERE className="WebGUI::Asset::RssFromParent")|); - $session->db->write(q|DELETE FROM asset WHERE className = "WebGUI::Asset::RssFromParent"|); - $session->db->write("DROP TABLE RSSCapable"); - $session->db->write("DROP TABLE RSSFromParent"); - my $rssCapableTemplates = WebGUI::Asset->getRoot($session)->getLineage(['descendants'], { - statesToInclude => [qw(published clipboard clipboard-limbo trash-limbo)], - statusToInclude => [qw(approved pending archived)], - returnObjects => 1, - includeOnlyClasses => ['WebGUI::Asset::Template'], - joinClass => 'WebGUI::Asset::Template', - whereClause => q{template.namespace = 'RSSCapable/RSS'}, - }); - for my $template (@{$rssCapableTemplates}) { - $template->trash; - } - } - print "\tDone.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub makeSurveyResponsesVersionAware { - my $session = shift; - print "\tAdding revisionDate column to Survey_response table...\n" unless $quiet; - $session->db->write("alter table Survey_response add column revisionDate bigint(20) not null default 0"); - - print "\tDefaulting revisionDate on existing responses to current latest revision... " unless $quiet; - for my $assetId ($session->db->buildArray('select assetId from Survey_response')) { - $session->db->write(<db->read('select assetId, revisionDate from Survey'); - use WebGUI::Asset::Wobject::Survey; - while (my ($assetId, $revision) = $sth->array) { - my $survey = WebGUI::Asset->new($session, $assetId, 'WebGUI::Asset::Wobject::Survey', $revision); - $survey->persistSurveyJSON; - } - print "DONE!\n" unless $quiet; - - print "\tOptimizing Survey table... " unless $quiet; - $session->db->write('optimize table Survey'); - print "DONE!\n" unless $quiet; -} - - -sub addUTCMacro { - my $session = shift; - print "\tAdd ConvertUTCToTZ Macro to config files... " unless $quiet; - # and here's our code - $session->config->addToHash('macros', 'ConvertUTCToTZ', 'ConvertUTCToTZ' ); - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub surveyCleanUp { - my $session = shift; - print "\tRemoving extra properties that may have crept into surveyJSON... " unless $quiet; - - my $sth = $session->db->read('select assetId, revisionDate from Survey'); - - while (my ($assetId, $revision) = $sth->array) { - my $survey = WebGUI::Asset->new($session, $assetId, 'WebGUI::Asset::Wobject::Survey', $revision); - - # Remove recursive properties that snuck into the mold - if (my $mold = $survey->surveyJSON->mold) { - $mold->{question}{answers} = []; - $mold->{section}{questions} = []; - } - - # Remove keys that should never have been added to sections/questions/answers - for my $s (@{$survey->surveyJSON->sections}) { - for my $q (@{$s->{questions} || []}) { - for my $a (@{$q->{answers} || []}) { - delete $a->{$_} for qw(delete copy removetype addtype func); - } - delete $q->{$_} for qw(delete copy removetype addtype func); - } - delete $s->{$_} for qw(delete copy removetype addtype func); - } - $survey->persistSurveyJSON; - } - - print "DONE!\n" unless $quiet; -} - - -sub addFieldPriceToThingyRecord { - my $session = shift; - print "\tAdd field prices to ThingyRecord... " unless $quiet; - - $session->db->write( - "ALTER TABLE ThingyRecord ADD COLUMN fieldPrice LONGTEXT", - ); - - print "DONE!\n" unless $quiet; -} - -sub replacePayPalDriver { - my $session = shift; - my $config = $session->config; - my $prop = 'paymentDrivers'; - my $old = 'WebGUI::Shop::PayDriver::PayPal::PayPalStd'; - my $drivers = $config->get($prop); - foreach my $driver (@$drivers) { - # We'll do nothing if the old paypal driver isn't used - next unless $driver eq $old; - - print "\tUpdating config to use new PayPal driver..." unless $quiet; - $config->deleteFromArray($prop, $old); - $config->addToArray($prop, 'WebGUI::Shop::PayDriver::PayPal'); - print "DONE!\n" unless $quiet; - last; - } -} - -#---------------------------------------------------------------------------- -sub replaceUsageOfOldTemplates { - my $session = shift; - print "\tRemoving usage of outdated templates with new ones... " unless $quiet; - # and here's our code - print "\n\t\tUpgrading Navigation templates... " unless $quiet; - my @navigationPairs = ( - ## New Old - [ qw/PBnav00000000000bullet PBtmpl0000000000000048/ ] ##Bulleted List <- Vertical Menu - ); - foreach my $pairs (@navigationPairs) { - my ($new, $old) = @{ $pairs }; - $session->db->write('UPDATE Navigation SET templateId=? where templateId=?', [$new, $old]); - } - print "\n\t\tUpgrading Article templates... " unless $quiet; - my @articlePairs = ( - ## New Old - [ qw/PBtmpl0000000000000103 PBtmpl0000000000000084/ ], ##Article with Image <- Center Image - [ qw/PBtmpl0000000000000123 PBtmpl0000000000000129/ ], ##Item <- Item w/pop-up Links - [ qw/PBtmpl0000000000000002 PBtmpl0000000000000207/ ], ##Default Article <- Article with Files - ); - foreach my $pairs (@articlePairs) { - my ($new, $old) = @{ $pairs }; - $session->db->write('UPDATE Article SET templateId=? where templateId=?', [$new, $old]); - } - print "\n\t\tUpgrading Layout templates... " unless $quiet; - my @layoutPairs = ( - ## New Old - [ qw/PBtmpl0000000000000135 PBtmpl00000000table125/ ], ## Side By Side <- Left Column (Table) - [ qw/PBtmpl0000000000000094 PBtmpl00000000table094/ ], ## One over two <- News (Table) - [ qw/PBtmpl0000000000000131 PBtmpl00000000table131/ ], ## Right Column <- Right Column (Table) - [ qw/PBtmpl0000000000000135 PBtmpl00000000table135/ ], ## Side By Side <- Side By Side (Table) - [ qw/PBtmpl0000000000000054 PBtmpl00000000table118/ ], ## Default Page <- Three Over One (Table) - [ qw/PBtmpl0000000000000054 PBtmpl000000000table54/ ], ## Default Page <- Default Page (Table) - [ qw/PBtmpl0000000000000109 PBtmpl00000000table109/ ], ## One Over Three <- One Over Three (Table) - [ qw/PBtmpl0000000000000135 PBtmpl0000000000000125/ ], ## Side By Side <- Left Column - [ qw/PBtmpl0000000000000054 PBtmpl0000000000000118/ ], ## Default Page <- Three Over One - ); - foreach my $pairs (@layoutPairs) { - my ($new, $old) = @{ $pairs }; - $session->db->write('UPDATE Layout SET templateId=? where templateId=?', [$new, $old]); - } - print "\n\t\tPurging old templates... " unless $quiet; - my @oldTemplates = uniq map { $_->[1] } (@navigationPairs, @articlePairs, @layoutPairs); - TEMPLATE: foreach my $templateId (@oldTemplates) { - my $template = eval { WebGUI::Asset->newPending($session, $templateId); }; - if ($@) { - print "\n\t\t\tUnable to instanciate templateId: $templateId. Skipping..."; - next TEMPLATE; - } - print "\n\t\t\tPurging ". $template->getTitle . " ..." unless $quiet; - $template->purge; - } - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub updatePayPalDriversAgain { - my $session = shift; - my $config = $session->config; - print "\tUpdating paypal drivers in config file..." unless $quiet; - my $old = 'WebGUI::Shop::PayDriver::PayPal'; - my @new = qw( - WebGUI::Shop::PayDriver::PayPal::PayPalStd - WebGUI::Shop::PayDriver::PayPal::ExpressCheckout - ); - $config->deleteFromArray('paymentDrivers', $old); - foreach my $n (@new) { - $config->deleteFromArray('paymentDrivers', $n); - $config->addToArray('paymentDrivers', $n) ; - } - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub replaceUsageOfOldTemplatesAgain { - my $session = shift; - print "\tRemoving usage of outdated templates with new ones... " unless $quiet; - # and here's our code - print "\n\t\tUpgrading Navigation templates... " unless $quiet; - my @navigationPairs = ( - ## New Old - [ qw/PBnav00000000000bullet PBtmpl0000000000000048/ ] ##Bulleted List <- Vertical Menu - ); - foreach my $pairs (@navigationPairs) { - my ($new, $old) = @{ $pairs }; - $session->db->write('UPDATE Navigation SET templateId=? where templateId=?', [$new, $old]) - } - print "\n\t\tPurging old templates... " unless $quiet; - my @oldTemplates = uniq(map { $_->[1] } (@navigationPairs)); - TEMPLATE: foreach my $templateId (@oldTemplates) { - my $template = eval { WebGUI::Asset->newPending($session, $templateId); }; - if ($@) { - print "\n\t\t\tUnable to instanciate templateId: $templateId. Skipping..."; - next TEMPLATE; - } - print "\n\t\t\tPurging ". $template->getTitle . " ..." unless $quiet; - $template->purge; - } - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addThingyRecordFieldPriceDefaults { - my $session = shift; - print "\tAdd default fieldPrice JSON to ThingyRecord... " unless $quiet; - # and here's our code - $session->db->write(q|UPDATE ThingyRecord set fieldPrice='{}' where fieldPrice IS NULL|); - print "DONE!\n" unless $quiet; -} - - -sub addFriendManagerSettings { - my $session = shift; - print "\tAdding Friend Manager Style and Layout template settings... " unless $quiet; - $session->setting->add('fmStyleTemplateId', $session->setting->get("userFunctionStyleId")); - $session->setting->add('fmLayoutTemplateId', 'N716tpSna0iIQTKxS4gTWA'); - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub fixMapTemplateFolderStyle { - my $session = shift; - print "\tFix the Map Template subfolder style template... " unless $quiet; - my $folder = WebGUI::Asset->new($session, 'brxm_faNdZX5tRo3p50g3g', 'WebGUI::Asset::Wobject::Folder'); - return unless $folder; - if ($folder) { - $folder->addRevision({ - styleTemplateId => 'PBtmpl0000000000000060', - }); - } - # and here's our code - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addExpireIncompleteSurveyResponsesWorkflow { - my $session = shift; - - print "\tAdd ExpireIncompleteSurveyResponses workflow activity... " unless $quiet; - - my $none = $session->config->get('workflowActivities/None'); - if (! grep { $_ eq 'WebGUI::Workflow::Activity::ExpireIncompleteSurveyResponses' } @$none) { - push @$none, 'WebGUI::Workflow::Activity::ExpireIncompleteSurveyResponses'; - } - $session->config->set('workflowActivities/None', [@$none]); - - my $workflow = WebGUI::Workflow->new($session, 'pbworkflow000000000001'); - my $activity = $workflow->addActivity('WebGUI::Workflow::Activity::ExpireIncompleteSurveyResponses'); - $activity->set('title', 'Expire Incomplete Survey Responses'); - $activity->set('description', 'Expires incomplete Survey Responses according to per-instance Survey settings'); - - print "DONE!\n" unless $quiet; -} - -sub addCarouselWobject{ - my $session = shift; - print "\tAdding Carousel wobject... " unless $quiet; - $session->db->write("create table Carousel ( - assetId char(22) binary not null, - revisionDate bigint not null, - items mediumtext, - templateId char(22), - primary key (assetId, revisionDate) - )"); - my $assets = $session->config->get( "assets" ); - $assets->{ "WebGUI::Asset::Wobject::Carousel" } = { category => "utilities" }; - $session->config->set( "assets", $assets ); - print "Done.\n" unless $quiet; -} - -sub addSurveyQuizModeColumns{ - my $session = shift; - print "\tAdding columns to Survey table... " unless $quiet; - $session->db->write("alter table Survey add column `quizModeSummary` TINYINT(3)"); - $session->db->write("alter table Survey add column `surveySummaryTemplateId` char(22)"); - print "Done.\n" unless $quiet; -} - -sub addSurveyExpressionEngineConfigFlag{ - my $session = shift; - print "\tAdding enableSurveyExpressionEngine config option... " unless $quiet; - $session->config->set('enableSurveyExpressionEngine', 0); - print "Done.\n" unless $quiet; -} - - -#---------------------------------------------------------------------------- -# Conditionally re-add passive analytics config because it wasn't added to WebGUI.conf.original -# in version 7.7.0. -sub reInstallPassiveAnalyticsConfig { - my $session = shift; - print "\tAdd Passive Analytics entry to the config file... " unless $quiet; - # Admin Bar/Console - my $adminConsole = $session->config->get('adminConsole'); - if (!exists $adminConsole->{'passiveAnalytics'}) { - $adminConsole->{'passiveAnalytics'} = { - "icon" => "passiveAnalytics.png", - "uiLevel" => 1, - "url" => "^PageUrl(\"\",op=passiveAnalytics;func=editRuleflow);", - "title" => "^International(Passive Analytics,PassiveAnalytics);", - "groupSetting" => "3", - }; - $session->config->set('adminConsole', $adminConsole); - } - # Content Handler - my $contentHandlers = $session->config->get('contentHandlers'); - if (!isIn('WebGUI::Content::PassiveAnalytics',@{ $contentHandlers} ) ) { - my $contentIndex = 0; - HANDLER: while ($contentIndex <= $#{ $contentHandlers } ) { - ##Insert before Operation - if($contentHandlers->[$contentIndex] eq 'WebGUI::Content::Operation') { - splice @{ $contentHandlers }, $contentIndex, 0, 'WebGUI::Content::PassiveAnalytics'; - last HANDLER; - } - ++$contentIndex; - } - $session->config->set('contentHandlers', $contentHandlers); - } - # Workflow Activities - my $workflowActivities = $session->config->get('workflowActivities'); - my @none = @{ $workflowActivities->{'None'} }; - if (!isIn('WebGUI::Workflow::Activity::SummarizePassiveAnalytics', @none)) { - push @none, 'WebGUI::Workflow::Activity::SummarizePassiveAnalytics'; - } - if (!isIn('WebGUI::Workflow::Activity::BucketPassiveAnalytics', @none)) { - push @none, 'WebGUI::Workflow::Activity::BucketPassiveAnalytics'; - } - $workflowActivities->{'None'} = [ @none ]; - $session->config->set('workflowActivities', $workflowActivities); - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub updateSurveyQuestionTypes{ - my $session = shift; - my $refs = $session->db->buildArrayRefOfHashRefs("SELECT * FROM Survey_questionTypes"); - for my $ref(@$refs){ - my $name = $ref->{questionType}; - my $params; - my @texts = split/,/,$ref->{answers}; - #next if(@texts == 0); - my $count = 0; - for my $text(@texts){ - my $verbatim = 0; - $verbatim = 1 if($text =~ /verbatim/); - push(@$params,[$text,$count++,$verbatim]); - } - _loadValues($name,$params,$session); - } -} - -sub _loadValues{ - my $name = shift; - my $values = shift; - my $session = shift; - my $answers = []; - for my $value(@$values){ - my $answer = _getAnswer(); - $answer->{text} = $value->[0]; - if($answer->{text} eq 'No'){ - $answer->{recordedAnswer} = 0; - }elsif($answer->{text} eq 'Yes'){ - $answer->{recordedAnswer} = 1; - }elsif($answer->{text} eq 'True'){ - $answer->{recordedAnswer} = 1; - }elsif($answer->{text} eq 'False'){ - $answer->{recordedAnswer} = 0; - }else{ - $answer->{recordedAnswer} = $value->[1]; - } - $answer->{verbatim} = $value->[2]; - push @$answers,$answer; - } - my $json = to_json($answers); - $session->db->write("UPDATE Survey_questionTypes SET answers = ? WHERE questionType = ?",[$json,$name]); -} - -sub _getAnswer{ - my $answer = { - text => q{}, - verbatim => 0, - textCols => 10, - textRows => 5, - goto => q{}, - gotoExpression => q{}, - recordedAnswer => q{}, - isCorrect => 1, - min => 1, - max => 10, - step => 1, - value => 1, - terminal => 0, - terminalUrl => q{}, - type => 'answer' - }; - return $answer; -} - -#---------------------------------------------------------------------------- -sub installPluggableTax { - my $session = shift; - my $db = $session->db; - print "\tInstall tables for pluggable tax system..." unless $quiet; - - # Rename table for the Generic tax plugin - $db->write( 'alter table tax rename tax_generic_rates' ); - - # Create tax driver table - $db->write( 'create table taxDriver (className char(255) not null primary key, options mediumtext)' ); - - # Table for storing EU VAT numbers. - $db->write( <config->set( 'taxDrivers', [ - 'WebGUI::Shop::TaxDriver::Generic', - 'WebGUI::Shop::TaxDriver::EU', - ] ); - - # Add a setting to store the active tax plugin. - $session->setting->add( 'activeTaxPlugin', 'WebGUI::Shop::TaxDriver::Generic' ); - - # Add column to sku for storing each sku's tax configuration. - $db->write( "alter table sku add column taxConfiguration mediumtext " ); - - # Migrate the tax overrides of skus into the tax configuration column. - # Don't use getLineage because this has to be done for each revision. - my $sth = $db->read( "select assetId, revisionDate, overrideTaxRate, taxRateOverride from sku" ); - while (my $row = $sth->hashRef) { - my $config = { - overrideTaxRate => $row->{ overrideTaxRate } || 0, - taxRateOverride => $row->{ taxRateOverride } || 0, - }; - - $db->write( 'update sku set taxConfiguration=? where assetId=? and revisionDate=?', [ - to_json( $config ), - $row->{ assetId }, - $row->{ revisionDate }, - ]); - } - $sth->finish; - - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -# Add the ThingyRecord sku -sub installThingyRecord { - my ( $session ) = shift; - print "\tInstalling ThingyRecord sku... " unless $quiet; - - $session->config->addToHash('assets','WebGUI::Asset::Sku::ThingyRecord', { - category => "shop", - }); - - # Install ThingyRecord - $session->db->write( <<'ENDSQL' ); - CREATE TABLE IF NOT EXISTS ThingyRecord ( - assetId CHAR(22) BINARY NOT NULL, - revisionDate BIGINT NOT NULL, - templateIdView CHAR(22) BINARY, - thingId CHAR(22) BINARY, - thingFields LONGTEXT, - thankYouText LONGTEXT, - price FLOAT, - duration BIGINT, - PRIMARY KEY (assetId, revisionDate) - ); -ENDSQL - - # Install collateral - use WebGUI::AssetCollateral::Sku::ThingyRecord::Record; - WebGUI::AssetCollateral::Sku::ThingyRecord::Record->crud_createTable($session); - - # Update workflow - my $activityClass = 'WebGUI::Workflow::Activity::ExpirePurchasedThingyRecords'; - $session->config->addToArray( 'workflow/None', $activityClass ); - my $workflow = WebGUI::Workflow->new( $session, 'pbworkflow000000000004' ); - my $activity = $workflow->addActivity( $activityClass ); - $activity->set('title', "Expire Purchased Thingy Records"); - $activity->set('description', "Expire any expired thingy records. Send notifications of imminent expiration."); - - print "DONE!\n" unless $quiet; -} - -sub addSurveyBackButtonColumn{ - my $session = shift; - print "\tAdding allowBackBtn column to Survey table... " unless $quiet; - $session->db->write("alter table Survey add column `allowBackBtn` TINYINT(3)"); - print "Done.\n" unless $quiet; -} - -sub turnOffAdmin { - my $session = shift; - print "\tAdding admin off link to admin console." unless $quiet; - $session->config->addToHash("adminConsole","adminConsoleOff", { - "icon" => "adminConsoleOff.gif", - "group" => "12", - "uiLevel" => 1, - "url" => "^PageUrl(\"\",op=switchOffAdmin);", - "title" => "^International(12,WebGUI);" - }); - print "OK\n" unless $quiet; -} - -sub addGlobalHeadTags { - my ( $session ) = @_; - print "\tAdding Global HEAD tags setting... " unless $quiet; - $session->setting->add('globalHeadTags',''); - print "OK\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub fixConfigs { - my $session = shift; - print "\tFixing misconfigurations... " unless $quiet; - my $config = $session->config; - $config->delete('workflow'); - $config->addToArray( 'workflowActivities/None', 'WebGUI::Workflow::Activity::ExpirePurchasedThingyRecords'); - $config->set('taxDrivers', [ - "WebGUI::Shop::TaxDriver::Generic", - "WebGUI::Shop::TaxDriver::EU" - ]); - $config->set('macros/SpectreCheck', 'SpectreCheck'); - $config->set('assets/WebGUI::Asset::Sku::ThingyRecord', { - category => 'shop', - }); - $config->set('assets/WebGUI::Asset::Wobject::Carousel', { - category => 'utilities', - }); - - print "Done.\n" unless $quiet; -} - - -sub installStoryManagerTables { - my ($session) = @_; - print "\tAdding Story Manager tables... " unless $quiet; - my $db = $session->db; - $db->write(<write(<write(<config; - $config->addToHash( - 'assets', - 'WebGUI::Asset::Wobject::StoryTopic' => { - 'category' => 'community' - }, - ); - $config->addToHash( - 'assets', - "WebGUI::Asset::Wobject::StoryArchive" => { - "isContainer" => 1, - "category" => "community" - }, - ); - $config->addToArray('workflowActivities/None', 'WebGUI::Workflow::Activity::ArchiveOldStories'); - print "DONE!\n" unless $quiet; -} - -sub sm_updateDailyWorkflow { - my ($session) = @_; - print "\tAdding Archive Old Stories to Daily Workflow... " unless $quiet; - my $workflow = WebGUI::Workflow->new($session, 'pbworkflow000000000001'); - foreach my $activity (@{ $workflow->getActivities }) { - return if $activity->getName() eq 'WebGUI::Workflow::Activity::ArchiveOldStories'; - } - my $activity = $workflow->addActivity('WebGUI::Workflow::Activity::ArchiveOldStories'); - $activity->set('title', 'Archive Old Stories'); - $activity->set('description', 'Archive old stories, based on the settings of the Story Archives that own them'); - print "DONE!\n" unless $quiet; -} - - -sub addShipsSeparateToSku { - my ($session) = @_; - print "\tAdd shipsSeparate property to Sku... " unless $quiet; - $session->db->write(<db->write("ALTER TABLE template ADD templatePacked LONGTEXT"); - $session->db->write("ALTER TABLE template ADD usePacked INT(1)"); - - print "\n\t\tPre-packing all templates, this may take a while..." unless $quiet; - my $sth = $session->db->read( "SELECT DISTINCT(assetId) FROM template" ); - while ( my ($assetId) = $sth->array ) { - my $asset = WebGUI::Asset::Template->new( $session, $assetId ); - next unless $asset; - $asset->update({ - template => $asset->get('template'), - usePacked => 0, - }); - } - - print "\n\t\tAdding extra head tags packing..." unless $quiet; - $session->db->write("ALTER TABLE assetData ADD extraHeadTagsPacked LONGTEXT"); - $session->db->write("ALTER TABLE assetData ADD usePackedHeadTags INT(1)"); - - print "\n\t\tPre-packing all head tags, this may take a while..." unless $quiet; - $sth = $session->db->read( "SELECT assetId FROM asset" ); - while ( my ($assetId) = $sth->array ) { - my $asset = WebGUI::Asset->newByDynamicClass( $session, $assetId ); - next unless $asset; - $asset->update({ - extraHeadTags => $asset->get('extraHeadTags'), - usePackedHeadTags => 0, - }); - } - - print "\n\t\tAdding snippet packing..." unless $quiet; - $session->db->write("ALTER TABLE snippet ADD snippetPacked LONGTEXT"); - $session->db->write("ALTER TABLE snippet ADD usePacked INT(1)"); - - print "\n\t\tPre-packing all snippets, this may take a while..." unless $quiet; - $sth = $session->db->read( "SELECT DISTINCT(assetId) FROM snippet" ); - while ( my ($assetId) = $sth->array ) { - my $asset = WebGUI::Asset->newByDynamicClass( $session, $assetId ); - next unless $asset; - $asset->update({ - snippet => $asset->get('snippet'), - usePacked => 0, - }); - } - - print "\n\t... DONE!\n" unless $quiet; -} - -sub sendWebguiStats { - my $session = shift; - print "\tAdding a workflow to allow users to take part in the WebGUI stats project..." unless $quiet; - my $wf = WebGUI::Workflow->create($session, { - type => 'None', - mode => 'singleton', - enabled => 1, - title => 'Send WebGUI Stats', - description => 'This workflow sends some information about your site to the central WebGUI statistics repository. No personal information is sent. The information is used to help determine the future direction WebGUI should take.', - }, 'send_webgui_statistics'); - my $act = $wf->addActivity('WebGUI::Workflow::Activity::SendWebguiStats','send_webgui_statistics'); - $act->set('title', 'Send WebGUI Stats'); - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addMobileStyleTemplate { - my $session = shift; - print "\tAdding mobile style template field... " unless $quiet; - $session->db->write(q{ - ALTER TABLE wobject ADD COLUMN mobileStyleTemplateId CHAR(22) BINARY DEFAULT 'PBtmpl0000000000000060' - }); - $session->db->write(q{ - UPDATE wobject SET mobileStyleTemplateId = styleTemplateId - }); - $session->db->write(q{ - ALTER TABLE Layout ADD COLUMN mobileTemplateId CHAR(22) BINARY DEFAULT 'PBtmpl0000000000000054' - }); - $session->setting->add('useMobileStyle', 0); - $session->config->set('mobileUserAgents', [ - 'AvantGo', - 'DoCoMo', - 'Vodafone', - 'EudoraWeb', - 'Minimo', - 'UP\.Browser', - 'PLink', - 'Plucker', - 'NetFront', - '^WM5 PIE$', - 'Xiino', - 'iPhone', - 'Opera Mobi', - 'BlackBerry', - 'Opera Mini', - 'HP iPAQ', - 'IEMobile', - 'Profile/MIDP', - 'Smartphone', - 'Symbian ?OS', - 'J2ME/MIDP', - 'PalmSource', - 'PalmOS', - 'Windows CE', - 'Opera Mini', - ]); - print "Done.\n" unless $quiet; -} - - -#---------------------------------------------------------------------------- -sub addListingsCacheTimeoutToMatrix{ - my $session = shift; - print "\tAdding listingsCacheTimeout setting to Matrix table... " unless $quiet; - $session->db->write("alter table Matrix add listingsCacheTimeout int(11) not null default 3600;"); - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addTemplateAttachmentsTable { - my $session = shift; - print "\tAdding template attachments table... " unless $quiet; - my $create = q{ - CREATE TABLE template_attachments ( - templateId CHAR(22) BINARY, - revisionDate bigint(20), - url varchar(256), - type varchar(20), - sequence int(11), - - PRIMARY KEY (templateId, revisionDate, url) - ) - }; - $session->db->write($create); - 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; -} - -#---------------------------------------------------------------------------- -sub addShippingDrivers { - my $session = shift; - print "\tAdding columns for improved VAT number checking..." unless $quiet; - $session->config->addToArray('shippingDrivers', 'WebGUI::Shop::ShipDriver::USPS'); - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addEuVatDbColumns { - my $session = shift; - print "\tAdding columns for improved VAT number checking..." unless $quiet; - - $session->db->write( 'alter table tax_eu_vatNumbers add column viesErrorCode int(3) default NULL' ); - - print "Done\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addTransactionTaxColumns { - my $session = shift; - print "\tAdding columns for storing tax data in the transaction log..." unless $quiet; - - $session->db->write( 'alter table transactionItem add column taxRate decimal(6,3)' ); - $session->db->write( 'alter table transactionItem add column taxConfiguration mediumtext' ); - $session->db->write( 'alter table transactionItem change vendorPayoutAmount vendorPayoutAmount decimal (8,2) default 0.00' ); - - print "Done\n" unless $quiet; - -} - -sub addDataFormColumns { - my $session = shift; - print "\tAdding column to store htmlArea Rich Editor in DataForm Table ..." unless $quiet; - - my $sth = $session->db->read( 'show columns in DataForm where field = "htmlAreaRichEditor"' ); - if ($sth->rows() == 0) { # only add column if it is not already there - $session->db->write( 'alter TABLE `DataForm` add column `htmlAreaRichEditor` varchar(22) default "**Use_Default_Editor**"' ); - } - - print "Done\n" unless $quiet; - -} - -#---------------------------------------------------------------------------- -sub addSurveyFeedbackTemplateColumn { - my $session = shift; - print "\tAdding columns for Survey Feedback Template..." unless $quiet; - $session->db->write("alter table Survey add column `feedbackTemplateId` char(22)"); - - print "Done\n" unless $quiet; - -} - -#---------------------------------------------------------------------------- -# Your sub here -sub installCopySender { - my $session = shift; - return if $session->setting->has('inboxCopySender'); - $session->setting->add('inboxCopySender',0); -} - -sub installNotificationsSettings { - my $session = shift; - $session->setting->add('sendInboxNotificationsOnly', 0); - $session->setting->add('inboxNotificationTemplateId', 'b1316COmd9xRv4fCI3LLGA'); -} - -sub installSMSUserProfileFields { - my $session = shift; - WebGUI::ProfileField->create( - $session, - 'receiveInboxEmailNotifications', - { - label => q!WebGUI::International::get('receive inbox emails','Message_Center')!, - visible => 1, - required => 0, - protected => 1, - editable => 1, - fieldType => 'yesNo', - dataDefault => 1, - }, - 4, - ); - WebGUI::ProfileField->create( - $session, - 'receiveInboxSmsNotifications', - { - label => q!WebGUI::International::get('receive inbox sms','Message_Center')!, - visible => 1, - required => 0, - protected => 1, - editable => 1, - fieldType => 'yesNo', - dataDefault => 0, - }, - 4, - ); -} - -sub installSMSSettings { - my $session = shift; - $session->setting->add('smsGateway', ''); -} - -sub upgradeSMSMailQueue { - my $session = shift; - $session->db->write('alter table mailQueue add column isInbox TINYINT(4) default 0'); -} - -#---------------------------------------------------------------------------- -sub addPayDrivers { - my $session = shift; - print "\tAdding PayPal driver checking..." unless $quiet; - $session->config->addToArray('paymentDrivers', 'WebGUI::Shop::PayDriver::PayPal::PayPalStd'); - print "DONE!\n" unless $quiet; -} - -sub installSurveyTest { - my $session = shift; - print "\tInstall Survey test table, via Crud... " unless $quiet; - use WebGUI::Asset::Wobject::Survey::Test; - WebGUI::Asset::Wobject::Survey::Test->crud_createTable($session); - print "DONE!\n" unless $quiet; -} - -sub addCollaborationColumns { - my $session = shift; - print "\tAdding columns to store htmlArea Rich Editor and Filter Code for Replies in Collaboration Table ..." unless $quiet; - - my $sth = $session->db->read( 'show columns in Collaboration where field = "replyRichEditor"' ); - if ($sth->rows() == 0) { # only add columns if it hasn't been added already - $session->db->write( 'alter TABLE `Collaboration` add column `replyRichEditor` varchar(22) default "PBrichedit000000000002"') ; - $session->db->write( 'update `Collaboration` set `replyRichEditor` = `richEditor` ') ; - } - - $sth = $session->db->read( 'show columns in Collaboration where field = "replyFilterCode"' ); - if ($sth->rows() == 0) { # only add columns if it hasn't been added already - $session->db->write( 'alter TABLE `Collaboration` add column `replyFilterCode` varchar(30) default "javascript"') ; - $session->db->write( 'update `Collaboration` set `replyFilterCode` = `filterCode` ') ; - } - - print "Done\n" unless $quiet; - -} - -sub installFriendManagerSettings { - my $session = shift; - print "\tInstalling FriendManager into settings..."; - $session->setting->add('groupIdAdminFriends', '3'); - $session->setting->add('fmViewTemplateId', '64tqS80D53Z0JoAs2cX2VQ'); - $session->setting->add('fmEditTemplateId', 'lG2exkH9FeYvn4pA63idNg'); - $session->setting->add('groupsToManageFriends', '2'); - $session->setting->add('overrideAbleToBeFriend', 0); - print "\tDone\n"; -} - -sub installFriendManagerConfig { - my $session = shift; - my $config = $session->config; - my $account = $config->get('account'); - my @classes = map { $_->{className} } @{ $account }; - return if isIn('WebGUI::Account::FriendManager', @classes); - print "\tInstalling FriendManager into config file..."; - push @{ $account }, - { - identifier => 'friendManager', - title => '^International(title,Account_FriendManager);', - className => 'WebGUI::Account::FriendManager', - } - ; - $config->set('account', $account); - print "\tDone\n"; -} - -sub removeDanglingOldRssAssets { - my $session = shift; - print "\tChecking for uses of RSSCapable...\n" unless $quiet; - my $peek = $session->db->dbh->table_info(undef, undef, 'RSSCapable'); - if ($peek->fetchrow_hashref()) { - my @rssCapableClasses = $session->db->buildArray('SELECT className FROM RSSCapable INNER JOIN asset ON RSSCapable.assetId=asset.assetId GROUP BY className'); - if (@rssCapableClasses) { - warn "\t\tThis site is using the assets\n\t\t\t" . join(', ', @rssCapableClasses) . "\n\t\twhich use the RSSCapable class! Support RSSCapable has been dropped and it will no longer be maintained.\n"; - } - else { - print "\t\tNot used, removing leftover assets, if any.\n" unless $quiet; - $session->db->write(q|DELETE FROM assetData WHERE assetId IN (SELECT assetId FROM asset WHERE className="WebGUI::Asset::RssFromParent")|); - $session->db->write(q|DELETE FROM asset WHERE className = "WebGUI::Asset::RssFromParent"|); - } - } - print "\tDone.\n" unless $quiet; -} - - -#---------------------------------------------------------------------------- -sub addUserControlWorkflows { - my $session = shift; - print "\tAdding Activate, Deactivate, Delete User workflow activities..." unless $quiet; - $session->config->addToArray('workflowActivities/WebGUI::User', 'WebGUI::Workflow::Activity::ActivateUser'); - $session->config->addToArray('workflowActivities/WebGUI::User', 'WebGUI::Workflow::Activity::DeactivateUser'); - $session->config->addToArray('workflowActivities/WebGUI::User', 'WebGUI::Workflow::Activity::DeleteUser'); - print " Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub fixSMSUserProfileI18N { - my $session = shift; - print "\tFixing bad I18N in SMS user profile fields..." unless $quiet; - my $field = WebGUI::ProfileField->new($session, 'receiveInboxEmailNotifications'); - my $properties = $field->get(); - $properties->{label} = q!WebGUI::International::get('receive inbox emails','WebGUI')!; - $field->set($properties); - - $field = WebGUI::ProfileField->new($session, 'receiveInboxSmsNotifications'); - $properties = $field->get(); - $properties->{label} = q!WebGUI::International::get('receive inbox sms','WebGUI')!; - $field->set($properties); - - print "Done\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addOgoneToConfig { - my $session = shift; - print "\tAdding Ogone payment plugin..." unless $quiet; - - $session->config->addToArray('paymentDrivers', 'WebGUI::Shop::PayDriver::Ogone'); - - print "Done\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addUseEmailAsUsernameToSettings { - my $session = shift; - print "\tAdding webguiUseEmailAsUsername to settings " unless $quiet; - - $session->db->write("insert into settings (name, value) values ('webguiUseEmailAsUsername',0)"); - - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addRedirectAfterLoginUrlToSettings { - my $session = shift; - print "\tAdding redirectAfterLoginUrl to settings " unless $quiet; - - $session->db->write("insert into settings (name, value) values ('redirectAfterLoginUrl',NULL)"); - - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub alterVATNumberTable { - my $session = shift; - print "\tAdapting VAT Number table..." unless $quiet; - - $session->db->write('alter table tax_eu_vatNumbers change column approved viesValidated tinyint(1)'); - $session->db->write('alter table tax_eu_vatNumbers add column approved tinyint(1)'); - - print "Done\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addSurveyTestResultsTemplateColumn { - my $session = shift; - print "\tAdding columns for Survey Test Results Template..." unless $quiet; - my $sth = $session->db->read('describe Survey testResultsTemplateId'); - if (! defined $sth->hashRef) { - $session->db->write("alter table Survey add column `testResultsTemplateId` char(22)"); - } - - print "Done\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub updateSurveyTest { - my $session = shift; - print "\tUpdate Survey test table, via Crud... " unless $quiet; - use WebGUI::Asset::Wobject::Survey::Test; - WebGUI::Asset::Wobject::Survey::Test->crud_updateTable($session); - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub installFilePumpAdminGroup { - my $session = shift; - print "\tAdding FilePump admin group setting... " unless $quiet; - ##Content Handler - #if (! $session->setting->has('groupIdAdminFilePump')) { - $session->setting->add('groupIdAdminFilePump','8'); - print "\tAdded FilePump admin group ... \n" unless $quiet; - #} - print "Done.\n" unless $quiet; -} -#---------------------------------------------------------------------------- -sub addEmsScheduleColumns { - my $session = shift; - print "\tAdding columns for the EMS Schedule table..." unless $quiet; - - $session->db->write( 'alter table EventManagementSystem add column scheduleTemplateId char(22)' ); - $session->db->write( 'alter table EventManagementSystem add column scheduleColumnsPerPage integer' ); - - print "Done\n" unless $quiet; - -} - - -#---------------------------------------------------------------------------- -sub installFilePumpHandler { - my $session = shift; - print "\tAdding FilePump content handler... " unless $quiet; - ##Content Handler - my $contentHandlers = $session->config->get('contentHandlers'); - $session->config->addToHash( 'macros', { FilePump => 'FilePump' }); - my $handlers = $session->config->get('contentHandlers'); - my $newHandlers = []; - if (!isIn('WebGUI::Content::FilePump', @{ $handlers })) { - foreach my $handler (@{ $handlers }) { - if ($handler eq 'WebGUI::Content::Operation') { - push @{ $newHandlers }, 'WebGUI::Content::FilePump'; - } - push @{ $newHandlers }, $handler; - } - } - else { - $newHandlers = $handlers; - } - $session->config->set('contentHandlers', $newHandlers); - - ##Admin Console - $session->config->addToHash('adminConsole', 'filePump', { - "icon" => "filePump.png", - "groupSetting" => "groupIdAdminFilePump", - "uiLevel" => 5, - "url" => "^PageUrl(\"\",op=filePump);", - "title" => "^International(File Pump,FilePump);" - }); - ##Setting for custom group - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub installFilePumpTable { - my $session = shift; - print "\tAdding FilePump database table via CRUD... " unless $quiet; - WebGUI::FilePump::Bundle->crud_createTable($session); - print "Done.\n" unless $quiet; -} - - -#---------------------------------------------------------------------------- -# Add the map asset -sub addMapAsset { - my $session = shift; - print "\tAdding Google Map asset..." unless $quiet; - - # Map asset - $session->db->write(<<'ENDSQL'); -CREATE TABLE IF NOT EXISTS Map ( - assetId CHAR(22) BINARY NOT NULL, - revisionDate BIGINT NOT NULL, - groupIdAddPoint CHAR(22) BINARY, - mapApiKey TEXT, - mapHeight CHAR(12), - mapWidth CHAR(12), - startLatitude FLOAT, - startLongitude FLOAT, - startZoom TINYINT UNSIGNED, - templateIdEditPoint CHAR(22) BINARY, - templateIdView CHAR(22) BINARY, - templateIdViewPoint CHAR(22) BINARY, - workflowIdPoint CHAR(22) BINARY, - PRIMARY KEY (assetId, revisionDate) -); -ENDSQL - - # MapPoint asset - $session->db->write(<<'ENDSQL'); -CREATE TABLE IF NOT EXISTS MapPoint ( - assetId CHAR(22) BINARY NOT NULL, - revisionDate BIGINT NOT NULL, - latitude FLOAT, - longitude FLOAT, - website VARCHAR(255), - address1 VARCHAR(255), - address2 VARCHAR(255), - city VARCHAR(255), - state VARCHAR(255), - zipCode VARCHAR(255), - country VARCHAR(255), - phone VARCHAR(255), - fax VARCHAR(255), - email VARCHAR(255), - storageIdPhoto CHAR(22) BINARY, - userDefined1 TEXT, - userDefined2 TEXT, - userDefined3 TEXT, - userDefined4 TEXT, - userDefined5 TEXT, - PRIMARY KEY (assetId, revisionDate) -); -ENDSQL - - # Add to assets - $session->config->addToHash( "assets", 'WebGUI::Asset::Wobject::Map', { - "category" => "basic", - }); - - print "Done!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addMobileStyleConfig { - my $session = shift; - print "\tAdding mobile style user agents to config file... " unless $quiet; - $session->config->set('mobileUserAgents', [ - 'AvantGo', - 'DoCoMo', - 'Vodafone', - 'EudoraWeb', - 'Minimo', - 'UP\.Browser', - 'PLink', - 'Plucker', - 'NetFront', - '^WM5 PIE$', - 'Xiino', - 'iPhone', - 'Opera Mobi', - 'BlackBerry', - 'Opera Mini', - 'HP iPAQ', - 'IEMobile', - 'Profile/MIDP', - 'Smartphone', - 'Symbian ?OS', - 'J2ME/MIDP', - 'PalmSource', - 'PalmOS', - 'Windows CE', - 'Opera Mini', - ]); - print "Done.\n" unless $quiet; -} - - -#---------------------------------------------------------------------------- -# Repack all templates since the packed columns may have been wiped out due to the bug. -sub repackTemplates { - my $session = shift; - - print "\n\t\tRepacking all templates that use packing, this may take a while..." unless $quiet; - my $sth = $session->db->read( "SELECT DISTINCT(assetId) FROM template where usePacked=1" ); - while ( my ($assetId) = $sth->array ) { - my $asset = WebGUI::Asset::Template->new( $session, $assetId ); - next unless $asset; - $asset->update({ - template => $asset->get('template'), - usePacked => 0, - }); - } - - print "\n\t\tRepacking head tags in assets that use packing, this may take a while..." unless $quiet; - $sth = $session->db->read( "SELECT distinct(assetId) FROM assetData where usePackedHeadTags=1" ); - while ( my ($assetId) = $sth->array ) { - my $asset = WebGUI::Asset->newByDynamicClass( $session, $assetId ); - next unless $asset; - $asset->update({ - extraHeadTags => $asset->get('extraHeadTags'), - usePackedHeadTags => 0, - }); - } - - print "\n\t\tRepacking snippets that use packing, this may take a while..." unless $quiet; - $sth = $session->db->read( "SELECT DISTINCT(assetId) FROM snippet where usePacked=1" ); - while ( my ($assetId) = $sth->array ) { - my $asset = WebGUI::Asset->newByDynamicClass( $session, $assetId ); - next unless $asset; - $asset->update({ - snippet => $asset->get('snippet'), - usePacked => 0, - }); - } - - print "\n\t... DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addStoryPhotoWidth { - my $session = shift; - print "\tAdd a width parameter to the StoryManager... " unless $quiet; - # and here's our code - $session->db->write(<createTemp( $session ); - $storage->addFileFromFilesystem( $file ); - - # Import the package into the import node - my $package = eval { WebGUI::Asset->getImportNode($session)->importPackage( $storage ); }; - - 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."; - } - - # 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; - print "\tUpdating packages.\n" unless ($quiet); - addPackage( $session, 'packages-7.6.35-7.7.17/merged.wgpkg' ); -} - -#vim:ft=perl diff --git a/docs/upgrades/upgrade_7.7.0-7.7.1.pl b/docs/upgrades/upgrade_7.7.0-7.7.1.pl deleted file mode 100644 index 8081a05dd..000000000 --- a/docs/upgrades/upgrade_7.7.0-7.7.1.pl +++ /dev/null @@ -1,237 +0,0 @@ -#!/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.1'; -my $quiet; # this line required - - -my $session = start(); # this line required - -# upgrade functions go here -adSkuInstall($session); -addWelcomeMessageTemplateToSettings( $session ); -addStatisticsCacheTimeoutToMatrix( $session ); -removeOldSettings( $session ); - -#add Survey table -addSurveyQuestionTypes($session); - -# image mods -addImageAnnotation($session); - -# rss mods -addRssLimit($session); - -finish($session); # this line required - -# remove old settings that aren't used any more -sub removeOldSettings { - my $session = shift; - print "\tRemoving old, unused settings... " unless $quiet; - my $setting = $session->setting; - - $setting->remove('commerceCheckoutCanceledTemplateId'); - $setting->remove('commerceConfirmCheckoutTemplateId'); - $setting->remove('commerceEnableSalesTax'); - $setting->remove('commercePaymentPlugin'); - $setting->remove('commercePurchaseHistoryTemplateId'); - $setting->remove('commerceSelectPaymentGatewayTemplateId'); - $setting->remove('commerceSelectShippingMethodTemplateId'); - $setting->remove('commerceSendDailyReportTo'); - $setting->remove('commerceViewShoppingCartTemplateId'); - - print "Done.\n" unless $quiet; -} - -sub addSurveyQuestionTypes{ - my $session = shift; - print "\tAdding new survey table Survey_questionTypes... " unless $quiet; - $session->db->write(" - CREATE TABLE `Survey_questionTypes` ( - `questionType` varchar(56) NOT NULL, - `answers` text NOT NULL, - PRIMARY KEY (`questionType`)) - "); - $session->db->write(q{ - INSERT INTO `Survey_questionTypes` VALUES ('Scale',''),('Gender','Male,Female'),('Education','Elementary or some high school,High school/GED,Some college/vocational school,College graduate,Some graduate work,Master\\'s degree,Doctorate (of any type),Other degree (verbatim)'),('Importance','Not at all important,,,,,,,,,,Extremely important'),('Yes/No','Yes,No'),('Confidence','Not at all confident,,,,,,,,,,Extremely confident'),('Effectiveness','Not at all effective,,,,,,,,,,Extremely effective'),('Oppose/Support','Strongly oppose,,,,,,Strongly support'),('Certainty','Not at all certain,,,,,,,,,,Extremely certain'),('True/False','True,False'),('Concern','Not at all concerned,,,,,,,,,,Extremely concerned'),('Ideology','Strongly liberal,Liberal,Somewhat liberal,Middle of the road,Slightly conservative,Conservative,Strongly conservative'),('Security','Not at all secure,,,,,,,,,,Extremely secure'),('Risk','No risk,,,,,,,,,,Extreme risk'),('Agree/Disagree','Strongly disagree,,,,,,Strongly agree'),('Race','American Indian,Asian,Black,Hispanic,White non-Hispanic,Something else (verbatim)'),('Threat','No threat,,,,,,,,,,Extreme threat'),('Party','Democratic party,Republican party (or GOP),Independent party,Other party (verbatim)'),('Likelihood','Not at all likely,,,,,,,,,,Extremely likely'),('Multiple Choice',''),('Satisfaction','Not at all satisfied,,,,,,,,,,Extremely satisfied') - }); - print "Done.\n" unless $quiet; -} - -sub addWelcomeMessageTemplateToSettings { - my $session = shift; - print "\tAdding welcome message template to settings... " unless $quiet; - - $session->db->write("insert into settings values ('webguiWelcomeMessageTemplate', 'PBtmpl0000000000000015');"); - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addRssLimit { - my $session = shift; - print "\tAdding rssLimit to RSSCapable table, if needed... " unless $quiet; - my $sth = $session->db->read('describe RSSCapable rssCapableRssLimit'); - if (! defined $sth->hashRef) { - $session->db->write("alter table RSSCapable add column rssCapableRssLimit integer"); - } - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addImageAnnotation { - my $session = shift; - print "\tAdding annotations to ImageAsset table, if needed... " unless $quiet; - my $sth = $session->db->read('describe ImageAsset annotations'); - if (! defined $sth->hashRef) { - $session->db->write("alter table ImageAsset add column annotations mediumtext"); - } - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addStatisticsCacheTimeoutToMatrix{ - my $session = shift; - print "\tAdding statisticsCacheTimeout setting to Matrix table... " unless $quiet; - $session->db->write("alter table Matrix add statisticsCacheTimeout int(11) not null default 3600"); - print "Done.\n" unless $quiet; -} - - -#---------------------------------------------------------------------------- -# Describe what our function does -sub adSkuInstall { - my $session = shift; - print "\tInstalling the AdSku Asset...\n" unless $quiet; - print "\t\tCreate AdSku database table.\n" unless $quiet; - $session->db->write("CREATE TABLE AdSku ( - assetId VARCHAR(22) BINARY NOT NULL, - revisionDate BIGINT NOT NULL, - purchaseTemplate VARCHAR(22) BINARY NOT NULL, - manageTemplate VARCHAR(22) BINARY NOT NULL, - adSpace VARCHAR(22) BINARY NOT NULL, - priority INTEGER DEFAULT '1', - pricePerClick Float DEFAULT '0', - pricePerImpression Float DEFAULT '0', - clickDiscounts VARCHAR(1024) default '', - impressionDiscounts VARCHAR(1024) default '', - PRIMARY KEY (assetId,revisionDate) - )"); - print "\t\tCreate Adsku crud table.\n" unless $quiet; - use WebGUI::AssetCollateral::Sku::Ad::Ad; - WebGUI::AssetCollateral::Sku::Ad::Ad->crud_createTable($session); - print "\t\tAdding to config file.\n" unless $quiet; - $session->config->addToHash("assets", 'WebGUI::Asset::Sku::Ad' => { category => 'shop' } ); - print "\tDone.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -# 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; - - # 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); - 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 diff --git a/docs/upgrades/upgrade_7.7.1-7.7.2.pl b/docs/upgrades/upgrade_7.7.1-7.7.2.pl deleted file mode 100644 index f4f14c366..000000000 --- a/docs/upgrades/upgrade_7.7.1-7.7.2.pl +++ /dev/null @@ -1,286 +0,0 @@ -#!/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; -use WebGUI::Workflow; -use WebGUI::Utility; - -my $toVersion = '7.7.2'; -my $quiet; # this line required - - -my $session = start(); # this line required - -# upgrade functions go here - -recalculateMatrixListingMedianValue( $session ); -addRssFeedAspect($session); -addRssFeedAspectToAssets($session); -convertCollaborationToRssAspect($session); -removeRssCapableAsset($session); -addCreationTimeToCart($session); -addCartKillerActivityToConfig($session); -addCartKillerActivityToWorkflow($session); - -finish($session); # this line required - -#---------------------------------------------------------------------------- -sub recalculateMatrixListingMedianValue{ - my $session = shift; - print "\tRecalculating median value for Matrix Listing ratings... " unless $quiet; - 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; - my %categories = keys %{$matrix->getCategories}; - my $listings = $session->db->read("select distinct listingId from MatrixListing_rating where assetId = ?" - ,[$matrix->getId]); - while (my $listing= $listings->hashRef){ - foreach my $category (%categories) { - my $half = $session->db->quickScalar("select round((select count(*) from MatrixListing_rating where -listingId = ? and category = ?)/2)",[$listing->{listingId},$category]); - my $medianValue = $session->db->quickScalar("select rating from MatrixListing_rating where listingId =? -and category =? order by rating limit $half,1;",[$listing->{listingId},$category]); - $session->db->write("update MatrixListing_ratingSummary set medianValue = ? where listingId = ? and -category = ?",[$medianValue,$listing->{listingId},$category]); - } - } - } - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addRssFeedAspect { - my $session = shift; - print "\tAdding RssFeed asset aspect..." unless $quiet; - $session->db->write(q{create table assetAspectRssFeed ( - assetId char(22) binary not null, - revisionDate bigint not null, - itemsPerFeed int(11) default 25, - feedCopyright text, - feedTitle text, - feedDescription mediumtext, - feedImage char(22) binary, - feedImageLink text, - feedImageDescription mediumtext, - feedHeaderLinks char(32) default 'rss\natom', - primary key (assetId, revisionDate) - )}); - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addRssFeedAspectToAssets { - my $session = shift; - my $db = $session->db; - foreach my $asset_class (qw( WikiMaster SyndicatedContent Gallery GalleryAlbum )) { - print "\tAdding RssFeed aspect to $asset_class table..." unless $quiet; - my $pages = $db->read("select assetId,revisionDate from $asset_class"); - while (my ($id, $rev) = $pages->array) { - $db->write("INSERT INTO assetAspectRssFeed (assetId, revisionDate, itemsPerFeed, feedTitle, feedDescription, feedImage, feedImageLink, feedImageDescription) VALUES (?,?,25,'','',NULL,'','')",[$id,$rev]); - } - print "Done.\n" unless $quiet; - } -} - -#---------------------------------------------------------------------------- -sub convertCollaborationToRssAspect { - my $session = shift; - print "\tAdding RssFeed aspect to Collaboration, (porting rssCapableRssLimit to itemsPerFeed)..." unless $quiet; - my $db = $session->db; - my @rssFromParents; - my $pages = $db->read("SELECT Collaboration.assetId, Collaboration.revisionDate, RSSCapable.rssCapableRssLimit, RSSCapable.rssCapableRssFromParentId, RSSCapable.rssCapableRssEnabled FROM Collaboration INNER JOIN RSSCapable ON Collaboration.assetId=RSSCapable.assetId AND Collaboration.revisionDate=RSSCapable.revisionDate"); - while (my ($id, $rev, $limit, $fromParent, $enabled) = $pages->array) { - if ($fromParent) { - push @rssFromParents, $fromParent; - } - my $headerLinks = $enabled ? "rss\natom" : q{}; - $db->write("INSERT INTO assetAspectRssFeed (assetId, revisionDate, itemsPerFeed, feedTitle, feedDescription, feedImage, feedImageLink, feedImageDescription, feedHeaderLinks) VALUES (?,?,?,'','',NULL,'','',?)",[$id,$rev,$limit || 25, $headerLinks]); - } - for my $assetId (@rssFromParents) { - my $asset = eval { WebGUI::Asset->newPending($session, $assetId) }; - if ($asset) { - $asset->purge; - } - } - $db->write("DELETE FROM RSSCapable WHERE assetId IN (SELECT assetId FROM Collaboration GROUP BY assetId)"); - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub removeRssCapableAsset { - my $session = shift; - print "\tChecking for uses of RSSCapable...\n" unless $quiet; - my @rssCapableClasses = $session->db->buildArray('SELECT className FROM RSSCapable INNER JOIN asset ON RSSCapable.assetId=asset.assetId GROUP BY className'); - if (@rssCapableClasses) { - warn "\t\tThis site is using the assets\n\t\t\t" . join(', ', @rssCapableClasses) . "\n\t\twhich use the RSSCapable class! Support RSSCapable has been dropped and it will no longer be maintained.\n"; - } - else { - print "\t\tNot used, removing.\n" unless $quiet; - $session->db->write(q|DELETE FROM assetData WHERE assetId IN (SELECT assetId FROM asset WHERE className="WebGUI::Asset::RssFromParent")|); - $session->db->write(q|DELETE FROM asset WHERE className = "WebGUI::Asset::RssFromParent"|); - $session->db->write("DROP TABLE RSSCapable"); - $session->db->write("DROP TABLE RSSFromParent"); - my $rssCapableTemplates = WebGUI::Asset->getRoot($session)->getLineage(['descendants'], { - statesToInclude => [qw(published clipboard clipboard-limbo trash-limbo)], - statusToInclude => [qw(approved pending archived)], - returnObjects => 1, - includeOnlyClasses => ['WebGUI::Asset::Template'], - joinClass => 'WebGUI::Asset::Template', - whereClause => q{template.namespace = 'RSSCapable/RSS'}, - }); - for my $template (@{$rssCapableTemplates}) { - $template->trash; - } - } - print "\tDone.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addCreationTimeToCart { - my $session = shift; - print "\tAdding creation time to cart..." unless $quiet; - $session->db->write("alter table cart add column creationDate int(20)"); - $session->db->write('update cart set creationDate=NOW()'); - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addCartKillerActivityToConfig { - my $session = shift; - print "\tAdding Remove Old Carts workflow activity to config files..." unless $quiet; - my $activities = $session->config->get('workflowActivities'); - my $none = $activities->{'None'}; - if (!isIn('WebGUI::Workflow::Activity::RemoveOldCarts', @{ $none })) { - push @{ $none }, 'WebGUI::Workflow::Activity::RemoveOldCarts'; - } - $session->config->set('workflowActivities', $activities); - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addCartKillerActivityToWorkflow { - my $session = shift; - print "\tAdding Remove Old Carts workflow activity to Daily Workflow..." unless $quiet; - my $workflow = WebGUI::Workflow->new($session, 'pbworkflow000000000001'); - my $removeCarts = $workflow->addActivity('WebGUI::Workflow::Activity::RemoveOldCarts'); - $removeCarts->set('title', 'Remove old carts'); - print "Done.\n" unless $quiet; -} - - -#---------------------------------------------------------------------------- -# 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; - - # 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); - 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 diff --git a/docs/upgrades/upgrade_7.7.10-7.7.11.pl b/docs/upgrades/upgrade_7.7.10-7.7.11.pl deleted file mode 100644 index 46f86652e..000000000 --- a/docs/upgrades/upgrade_7.7.10-7.7.11.pl +++ /dev/null @@ -1,199 +0,0 @@ -#!/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; -use WebGUI::Shop::Ship; -use WebGUI::Shop::ShipDriver; - - -my $toVersion = '7.7.11'; -my $quiet; # this line required - - -my $session = start(); # this line required - -# upgrade functions go here -setDefaultIcalInterval($session); -makeSurveyResponsesVersionAware($session); -addShipperGroupToUse($session); -shrinkSurveyJSON($session); - -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; -#} - -#---------------------------------------------------------------------------- -# Describe what our function does -sub setDefaultIcalInterval { - my $session = shift; - print "\tSet default ICAL interval in older calendars... " unless $quiet; - $session->db->write("UPDATE Calendar SET icalInterval = 7776000 where icalInterval is null or icalInterval = ''"); - # and here's our code - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addShipperGroupToUse { - my $session = shift; - print "\tAdd Group to Use for all existing shipping drivers... " unless $quiet; - my $ship = WebGUI::Shop::Ship->new($session); - my $shippers = $ship->getShippers($session); - foreach my $shipper (@{ $shippers }) { - my $options = $shipper->get(); - $options->{groupToUse} = 7; - $shipper->update($options); - } - # and here's our code - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub makeSurveyResponsesVersionAware { - my $session = shift; - print "\tAdding revisionDate column to Survey_response table...\n" unless $quiet; - $session->db->write("alter table Survey_response add column revisionDate bigint(20) not null default 0"); - - print "\tDefaulting revisionDate on existing responses to current latest revision... " unless $quiet; - for my $assetId ($session->db->buildArray('select assetId from Survey_response')) { - $session->db->write(<db->read('select assetId, revisionDate from Survey'); - use WebGUI::Asset::Wobject::Survey; - while (my ($assetId, $revision) = $sth->array) { - my $survey = WebGUI::Asset->new($session, $assetId, 'WebGUI::Asset::Wobject::Survey', $revision); - $survey->persistSurveyJSON; - } - print "DONE!\n" unless $quiet; - - print "\tOptimizing Survey table... " unless $quiet; - $session->db->write('optimize table Survey'); - 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 = eval { WebGUI::Asset->getImportNode($session)->importPackage( $storage ); }; - - 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."; - } - - # 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 1; -} - -#------------------------------------------------- -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 diff --git a/docs/upgrades/upgrade_7.7.11-7.7.12.pl b/docs/upgrades/upgrade_7.7.11-7.7.12.pl deleted file mode 100644 index 52fea0c6d..000000000 --- a/docs/upgrades/upgrade_7.7.11-7.7.12.pl +++ /dev/null @@ -1,174 +0,0 @@ -#!/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; -use WebGUI::Asset::Wobject::Survey; - -my $toVersion = '7.7.12'; -my $quiet; # this line required - - -my $session = start(); # this line required - -# upgrade functions go here -surveyCleanUp($session); -addUTCMacro($session); - -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; -#} - -#---------------------------------------------------------------------------- -# Describe what our function does -sub addUTCMacro { - my $session = shift; - print "\tAdd ConvertUTCToTZ Macro to config files... " unless $quiet; - # and here's our code - $session->config->addToHash('macros', 'ConvertUTCToTZ', 'ConvertUTCToTZ' ); - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub surveyCleanUp { - my $session = shift; - print "\tRemoving extra properties that may have crept into surveyJSON... " unless $quiet; - - my $sth = $session->db->read('select assetId, revisionDate from Survey'); - - while (my ($assetId, $revision) = $sth->array) { - my $survey = WebGUI::Asset->new($session, $assetId, 'WebGUI::Asset::Wobject::Survey', $revision); - - # Remove recursive properties that snuck into the mold - if (my $mold = $survey->surveyJSON->mold) { - $mold->{question}{answers} = []; - $mold->{section}{questions} = []; - } - - # Remove keys that should never have been added to sections/questions/answers - for my $s (@{$survey->surveyJSON->sections}) { - for my $q (@{$s->{questions} || []}) { - for my $a (@{$q->{answers} || []}) { - delete $a->{$_} for qw(delete copy removetype addtype func); - } - delete $q->{$_} for qw(delete copy removetype addtype func); - } - delete $s->{$_} for qw(delete copy removetype addtype func); - } - $survey->persistSurveyJSON; - } - - 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 = eval { WebGUI::Asset->getImportNode($session)->importPackage( $storage ); }; - - 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."; - } - - # 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 diff --git a/docs/upgrades/upgrade_7.7.12-7.7.13.pl b/docs/upgrades/upgrade_7.7.12-7.7.13.pl deleted file mode 100644 index aedd6ac05..000000000 --- a/docs/upgrades/upgrade_7.7.12-7.7.13.pl +++ /dev/null @@ -1,153 +0,0 @@ -#!/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.13'; -my $quiet; # this line required - - -my $session = start(); # this line required - -# upgrade functions go here -correctPostMetaData($session); - -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; -#} - -#---------------------------------------------------------------------------- -sub correctPostMetaData { - my $session = shift; - my $root = WebGUI::Asset->getRoot($session); - print "\tPutting metadata associated with posts into the standard metadata possibleValues format... " unless $quiet; - # and here's our code - my $meta = $root->getMetaDataFields(); - FIELD: foreach my $field (keys %{ $meta }) { - next FIELD unless $meta->{$field}->{possibleValues} && $meta->{$field}->{possibleValues} =~ m/\}/; - my $values = WebGUI::Operation::Shared::secureEval($session, $meta->{$field}->{possibleValues}); - next FIELD unless ref $values eq 'HASH'; - my $newValues = ''; - while (my ($key, $value) = each %{ $values }) { - $newValues .= join '|', $key, $value; - $newValues .= "\n"; - } - print "\n\t\tUpdating ".$meta->{$field}->{fieldName}; - $root->addMetaDataField(@{ $meta->{$field} }{ qw/fieldId fieldName defaultValue description fieldType/ }, $newValues); - } - 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 = eval { WebGUI::Asset->getImportNode($session)->importPackage( $storage ); }; - - 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."; - } - - # 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 diff --git a/docs/upgrades/upgrade_7.7.13-7.7.14.pl b/docs/upgrades/upgrade_7.7.13-7.7.14.pl deleted file mode 100644 index b9dc856cb..000000000 --- a/docs/upgrades/upgrade_7.7.13-7.7.14.pl +++ /dev/null @@ -1,129 +0,0 @@ -#!/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.14'; -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; - - # 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 { WebGUI::Asset->getImportNode($session)->importPackage( $storage ); }; - - 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."; - } - - # 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 diff --git a/docs/upgrades/upgrade_7.7.14-7.7.15.pl b/docs/upgrades/upgrade_7.7.14-7.7.15.pl deleted file mode 100644 index 237f24dfa..000000000 --- a/docs/upgrades/upgrade_7.7.14-7.7.15.pl +++ /dev/null @@ -1,223 +0,0 @@ -#!/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 List::MoreUtils qw/uniq/; - -use WebGUI::Session; -use WebGUI::Storage; -use WebGUI::Asset; - - -my $toVersion = '7.7.15'; -my $quiet; # this line required - - -my $session = start(); # this line required - -# upgrade functions go here -replacePayPalDriver($session); -addFieldPriceToThingyRecord( $session ); -replaceUsageOfOldTemplates($session); - -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; -#} - - -#---------------------------------------------------------------------------- -# Add the field price storage to ThingyRecord -sub addFieldPriceToThingyRecord { - my $session = shift; - print "\tAdd field prices to ThingyRecord... " unless $quiet; - - $session->db->write( - "ALTER TABLE ThingyRecord ADD COLUMN fieldPrice LONGTEXT", - ); - - print "DONE!\n" unless $quiet; -} - -sub replacePayPalDriver { - my $session = shift; - my $config = $session->config; - my $prop = 'paymentDrivers'; - my $old = 'WebGUI::Shop::PayDriver::PayPal::PayPalStd'; - my $drivers = $config->get($prop); - foreach my $driver (@$drivers) { - # We'll do nothing if the old paypal driver isn't used - next unless $driver eq $old; - - print "\tUpdating config to use new PayPal driver..." unless $quiet; - $config->deleteFromArray($prop, $old); - $config->addToArray($prop, 'WebGUI::Shop::PayDriver::PayPal'); - print "DONE!\n" unless $quiet; - last; - } -} - -#---------------------------------------------------------------------------- -sub replaceUsageOfOldTemplates { - my $session = shift; - print "\tRemoving usage of outdated templates with new ones... " unless $quiet; - # and here's our code - print "\n\t\tUpgrading Navigation templates... " unless $quiet; - my @navigationPairs = ( - ## New Old - [ qw/PBnav00000000000bullet PBtmpl0000000000000048/ ] ##Bulleted List <- Vertical Menu - ); - foreach my $pairs (@navigationPairs) { - my ($new, $old) = @{ $pairs }; - $session->db->write('UPDATE Navigation SET templateId=? where templateId=?', [$new, $old]) - } - print "\n\t\tUpgrading Article templates... " unless $quiet; - my @articlePairs = ( - ## New Old - [ qw/PBtmpl0000000000000103 PBtmpl0000000000000084/ ], ##Article with Image <- Center Image - [ qw/PBtmpl0000000000000123 PBtmpl0000000000000129/ ], ##Item <- Item w/pop-up Links - [ qw/PBtmpl0000000000000002 PBtmpl0000000000000207/ ], ##Default Article <- Article with Files - ); - foreach my $pairs (@articlePairs) { - my ($new, $old) = @{ $pairs }; - $session->db->write('UPDATE Article SET templateId=? where templateId=?', [$new, $old]) - } - print "\n\t\tUpgrading Layout templates... " unless $quiet; - my @layoutPairs = ( - ## New Old - [ qw/PBtmpl0000000000000135 PBtmpl00000000table125/ ], ## Side By Side <- Left Column (Table) - [ qw/PBtmpl0000000000000094 PBtmpl00000000table094/ ], ## One over two <- News (Table) - [ qw/PBtmpl0000000000000131 PBtmpl00000000table131/ ], ## Right Column <- Right Column (Table) - [ qw/PBtmpl0000000000000135 PBtmpl00000000table135/ ], ## Side By Side <- Side By Side (Table) - [ qw/PBtmpl0000000000000054 PBtmpl00000000table118/ ], ## Default Page <- Three Over One (Table) - [ qw/PBtmpl0000000000000054 PBtmpl000000000table54/ ], ## Default Page <- Default Page (Table) - [ qw/PBtmpl0000000000000109 PBtmpl00000000table109/ ], ## One Over Three <- One Over Three (Table) - [ qw/PBtmpl0000000000000135 PBtmpl0000000000000125/ ], ## Side By Side <- Left Column - [ qw/PBtmpl0000000000000054 PBtmpl0000000000000118/ ], ## Default Page <- Three Over One - ); - foreach my $pairs (@layoutPairs) { - my ($new, $old) = @{ $pairs }; - $session->db->write('UPDATE Layout SET templateId=? where templateId=?', [$new, $old]) - } - print "\n\t\tPurging old templates... " unless $quiet; - my @oldTemplates = uniq map { $_->[1] } (@navigationPairs, @articlePairs, @layoutPairs); - TEMPLATE: foreach my $templateId (@oldTemplates) { - my $template = eval { WebGUI::Asset->newPending($session, $templateId); }; - if ($@) { - print "\n\t\t\tUnable to instanciate templateId: $templateId. Skipping..."; - next TEMPLATE; - } - print "\n\t\t\tPurging ". $template->getTitle . " ..." unless $quiet; - $template->purge; - } - 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 = eval { WebGUI::Asset->getImportNode($session)->importPackage( $storage ); }; - - 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."; - } - - # 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 diff --git a/docs/upgrades/upgrade_7.7.15-7.7.16.pl b/docs/upgrades/upgrade_7.7.15-7.7.16.pl deleted file mode 100644 index bace7aca2..000000000 --- a/docs/upgrades/upgrade_7.7.15-7.7.16.pl +++ /dev/null @@ -1,198 +0,0 @@ -#!/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; -use WebGUI::ProfileField; -use List::MoreUtils qw/uniq/; - -my $toVersion = '7.7.16'; -my $quiet; # this line required - - -my $session = start(); # this line required -replaceUsageOfOldTemplatesAgain($session); -updatePayPalDriversAgain($session); -addThingyRecordFieldPriceDefaults($session); -correctProfileFieldColumnTypes($session); - -# 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; -#} - -#---------------------------------------------------------------------------- -sub correctProfileFieldColumnTypes { - my $session = shift; - my $config = $session->config; - print "\tCheck database profile field types against form settings..." unless $quiet; - WebGUI::ProfileField->fixDataColumnTypes($session); - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub updatePayPalDriversAgain { - my $session = shift; - my $config = $session->config; - print "\tUpdating paypal drivers in config file..." unless $quiet; - my $old = 'WebGUI::Shop::PayDriver::PayPal'; - my @new = qw( - WebGUI::Shop::PayDriver::PayPal::PayPalStd - WebGUI::Shop::PayDriver::PayPal::ExpressCheckout - ); - $config->deleteFromArray('paymentDrivers', $old); - foreach my $n (@new) { - $config->deleteFromArray('paymentDrivers', $n); - $config->addToArray('paymentDrivers', $n) ; - } - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub replaceUsageOfOldTemplatesAgain { - my $session = shift; - print "\tRemoving usage of outdated templates with new ones... " unless $quiet; - # and here's our code - print "\n\t\tUpgrading Navigation templates... " unless $quiet; - my @navigationPairs = ( - ## New Old - [ qw/PBnav00000000000bullet PBtmpl0000000000000048/ ] ##Bulleted List <- Vertical Menu - ); - foreach my $pairs (@navigationPairs) { - my ($new, $old) = @{ $pairs }; - $session->db->write('UPDATE Navigation SET templateId=? where templateId=?', [$new, $old]) - } - print "\n\t\tPurging old templates... " unless $quiet; - my @oldTemplates = uniq(map { $_->[1] } (@navigationPairs)); - TEMPLATE: foreach my $templateId (@oldTemplates) { - my $template = eval { WebGUI::Asset->newPending($session, $templateId); }; - if ($@) { - print "\n\t\t\tUnable to instanciate templateId: $templateId. Skipping..."; - next TEMPLATE; - } - print "\n\t\t\tPurging ". $template->getTitle . " ..." unless $quiet; - $template->purge; - } - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addThingyRecordFieldPriceDefaults { - my $session = shift; - print "\tAdd default fieldPrice JSON to ThingyRecord... " unless $quiet; - # and here's our code - $session->db->write(q|UPDATE ThingyRecord set fieldPrice='{}' where fieldPrice IS NULL|); - 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 = eval { WebGUI::Asset->getImportNode($session)->importPackage( $storage ); }; - - 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."; - } - - # 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 diff --git a/docs/upgrades/upgrade_7.7.16-7.7.17.pl b/docs/upgrades/upgrade_7.7.16-7.7.17.pl deleted file mode 100644 index 85c376464..000000000 --- a/docs/upgrades/upgrade_7.7.16-7.7.17.pl +++ /dev/null @@ -1,245 +0,0 @@ -#!/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.17'; -my $quiet; # this line required - - -my $session = start(); # this line required - -# upgrade functions go here -addFriendManagerSettings($session); -fixGalleyImageFolderStyle($session); -fixMapTemplateFolderStyle($session); -fixDefaultSQLReportDownloadGroup($session); -addExpireIncompleteSurveyResponsesWorkflow($session); -ensureAllFieldsUtf8($session); - -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; -#} - -sub ensureAllFieldsUtf8 { - my $session = shift; - print "\tEnsuring all database fields are UTF-8... " unless $quiet; - - my $dbh = $session->db->dbh; - my $sth; - my @tables; - my @stmts; - # Get table list - $sth = $dbh->table_info(undef, undef, '%'); - while (my $row = $sth->fetchrow_hashref) { - push @tables, $row->{TABLE_NAME}; - } - $sth->finish; - - for my $table (@tables) { - my $sth = $dbh->column_info(undef, undef, $table, '%'); - while (my $row = $sth->fetchrow_hashref) { - if ($row->{TYPE_NAME} =~ /(?:VAR)?CHAR|TEXT/i) { - push @stmts, sprintf('ALTER TABLE %s MODIFY %s %s %s CHARACTER SET utf8 %s %s', - $dbh->quote_identifier($row->{TABLE_NAME}), - $dbh->quote_identifier($row->{COLUMN_NAME}), - $row->{mysql_type_name}, - ($row->{COLUMN_SIZE} == 22 ? 'binary' : ''), - ($row->{IS_NULLABLE} eq 'NO' ? 'NOT NULL' : ''), - (defined $row->{COLUMN_DEF} && $row->{COLUMN_DEF} ne '' ? 'DEFAULT ' . $dbh->quote($row->{COLUMN_DEF}) : ''), - ); - } - } - $sth->finish; - } - - - for my $stmt (@stmts) { - $dbh->do($stmt); - } - - print "Done.\n" unless $quiet; -} - -sub addFriendManagerSettings { - my $session = shift; - print "\tAdding Friend Manager Style and Layout template settings... " unless $quiet; - $session->setting->add('fmStyleTemplateId', $session->setting->get("userFunctionStyleId")); - $session->setting->add('fmLayoutTemplateId', 'N716tpSna0iIQTKxS4gTWA'); - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -# Describe what our function does -sub fixMapTemplateFolderStyle { - my $session = shift; - print "\tFix the Map Template subfolder style template... " unless $quiet; - my $folder = WebGUI::Asset->new($session, 'brxm_faNdZX5tRo3p50g3g', 'WebGUI::Asset::Wobject::Folder'); - return unless $folder; - if ($folder) { - $folder->addRevision({ - styleTemplateId => 'PBtmpl0000000000000060', - }); - } - # and here's our code - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -# Describe what our function does -sub fixDefaultSQLReportDownloadGroup { - my $session = shift; - print "\tFix bad default SQL Report Download groups... " unless $quiet; - $session->db->write(<new($session, 'kaPRSaf8UKiskiGEgJgLAw', 'WebGUI::Asset::Wobject::Folder'); - if ($folder) { - $folder->addRevision({ - styleTemplateId => 'PBtmpl0000000000000060', - }); - } - # and here's our code - print "DONE!\n" unless $quiet; -} - -sub addExpireIncompleteSurveyResponsesWorkflow { - my $session = shift; - - print "\tAdd ExpireIncompleteSurveyResponses workflow activity... " unless $quiet; - - my $none = $session->config->get('workflowActivities/None'); - if (! grep { $_ eq 'WebGUI::Workflow::Activity::ExpireIncompleteSurveyResponses' } @$none) { - push @$none, 'WebGUI::Workflow::Activity::ExpireIncompleteSurveyResponses'; - } - $session->config->set('workflowActivities/None', [@$none]); - - my $workflow = WebGUI::Workflow->new($session, 'pbworkflow000000000001'); - my $activity = $workflow->addActivity('WebGUI::Workflow::Activity::ExpireIncompleteSurveyResponses'); - $activity->set('title', 'Expire Incomplete Survey Responses'); - $activity->set('description', 'Expires incomplete Survey Responses according to per-instance Survey settings'); - - 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 = eval { WebGUI::Asset->getImportNode($session)->importPackage( $storage ); }; - - 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."; - } - - # 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 diff --git a/docs/upgrades/upgrade_7.7.17-7.7.18.pl b/docs/upgrades/upgrade_7.7.17-7.7.18.pl deleted file mode 100644 index c00fef3b4..000000000 --- a/docs/upgrades/upgrade_7.7.17-7.7.18.pl +++ /dev/null @@ -1,190 +0,0 @@ -#!/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.18'; -my $quiet; # this line required - - -my $session = start(); # this line required - -# upgrade functions go here -addSmsGatewaySubjectSetting($session); -addInboxNotificationsSubjectSetting($session); -profileFieldRequiredEditable($session); -deleteOldInboxMessageStates($session); -setDefaultEMSScheduleTemplate($session); -addCarouselSlideWidth($session); -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; -#} - -sub addCarouselSlideWidth { - my $session = shift; - print "\tAdd a default width property to the Carousel... " unless $quiet; - $session->db->write(<db->write(<db->write(<db->write(<getRequiredFields($session) } ) { - my $properties = $field->get(); - next FIELD unless !$properties->{editable}; - $properties->{editable} = 1; - $field->set($properties); - } - print "DONE!\n" unless $quiet; -} - -sub addSmsGatewaySubjectSetting { - my $session = shift; - print "\tAdding smsGatewaySubject setting... " unless $quiet; - $session->setting->add('smsGatewaySubject', ''); - print "DONE!\n" unless $quiet; -} - -sub addInboxNotificationsSubjectSetting { - my $session = shift; - print "\tAdding inboxNotificationsSubject setting... " unless $quiet; - $session->setting->add('inboxNotificationsSubject', ''); - 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 = eval { WebGUI::Asset->getImportNode($session)->importPackage( $storage ); }; - - 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."; - } - - # 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 diff --git a/docs/upgrades/upgrade_7.7.18-7.7.19.pl b/docs/upgrades/upgrade_7.7.18-7.7.19.pl deleted file mode 100644 index 313593062..000000000 --- a/docs/upgrades/upgrade_7.7.18-7.7.19.pl +++ /dev/null @@ -1,239 +0,0 @@ -#!/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; -use WebGUI::Asset::Wobject::Calendar; -use JSON; - - -my $toVersion = '7.7.19'; -my $quiet; # this line required - - -my $session = start(); # this line required - -# upgrade functions go here -addInboxSmsNotificationTemplateIdSetting($session); -upgradeJSONDatabaseFields($session); -moveCalendarFeedsToJSON($session); -addEmsScheduleColumnsDefaultValue($session); -removeOrphanedVersionTags( $session ); -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; -#} - -#---------------------------------------------------------------------------- -sub addEmsScheduleColumnsDefaultValue { - my $session = shift; - print "\tAdding default value for EMS Schedule Columns per Page..." unless $quiet; - - $session->db->write( 'UPDATE EventManagementSystem set scheduleColumnsPerPage=5 where scheduleColumnsPerPage IS NULL' ); - - print "Done\n" unless $quiet; - -} - -sub addInboxSmsNotificationTemplateIdSetting { - my $session = shift; - print "\tAdding inboxSmsNotificationTemplateId setting... " unless $quiet; - if (!$session->setting->has("inboxSmsNotificationTemplateId")) { - $session->setting->add('inboxSmsNotificationTemplateId', 'i9-G00ALhJOr0gMh-vHbKA'); - } - print "DONE!\n" unless $quiet; -} - -sub upgradeJSONDatabaseFields { - my $session = shift; - print "\tUpgrading all fields which use JSON to LONGTEXT... " unless $quiet; - print "\n\t\tUpgrading Sku fields... " unless $quiet; - $session->db->write(q|ALTER TABLE sku MODIFY taxConfiguration LONGTEXT|); - print "\n\t\tUpgrading Product fields... " unless $quiet; - $session->db->write(q|ALTER TABLE Product MODIFY variantsJSON LONGTEXT|); - $session->db->write(q|ALTER TABLE Product MODIFY accessoryJSON LONGTEXT|); - $session->db->write(q|ALTER TABLE Product MODIFY relatedJSON LONGTEXT|); - $session->db->write(q|ALTER TABLE Product MODIFY specificationJSON LONGTEXT|); - $session->db->write(q|ALTER TABLE Product MODIFY featureJSON LONGTEXT|); - $session->db->write(q|ALTER TABLE Product MODIFY benefitJSON LONGTEXT|); - print "\n\t\tUpgrading DataForm fields... " unless $quiet; - $session->db->write(q|ALTER TABLE DataForm MODIFY fieldConfiguration LONGTEXT|); - $session->db->write(q|ALTER TABLE DataForm MODIFY tabConfiguration LONGTEXT|); - print "\n\t\tUpgrading DataForm entry fields... " unless $quiet; - $session->db->write(q|ALTER TABLE DataForm_entry MODIFY entryData LONGTEXT|); - print "\n\t\tUpgrading Scheduler fields... " unless $quiet; - $session->db->write(q|ALTER TABLE WorkflowSchedule MODIFY parameters LONGTEXT|); - print "\n\t\tUpgrading Workflow Instance fields... " unless $quiet; - $session->db->write(q|ALTER TABLE WorkflowInstance MODIFY parameters LONGTEXT|); - print "\n\t\tUpgrading AssetAspect Comments fields... " unless $quiet; - $session->db->write(q|ALTER TABLE assetAspectComments MODIFY comments LONGTEXT|); - print "\n\t\tUpgrading Thingy Record fields... " unless $quiet; - $session->db->write(q|ALTER TABLE ThingyRecord MODIFY fieldPrice LONGTEXT|); - print "\n\t\tUpgrading Payment Gateway fields... " unless $quiet; - $session->db->write(q|ALTER TABLE paymentGateway MODIFY options LONGTEXT|); - print "\n\t\tUpgrading Shipping driver fields... " unless $quiet; - $session->db->write(q|ALTER TABLE shipper MODIFY options LONGTEXT|); - print "\n\t\tUpgrading Tax Driver fields... " unless $quiet; - $session->db->write(q|ALTER TABLE taxDriver MODIFY options LONGTEXT|); - print "\n\t\tUpgrading Transaction Item fields... " unless $quiet; - $session->db->write(q|ALTER TABLE transactionItem MODIFY options LONGTEXT|); - $session->db->write(q|ALTER TABLE transactionItem MODIFY taxConfiguration LONGTEXT|); - print "\n\t\tUpgrading Cart Item fields... " unless $quiet; - $session->db->write(q|ALTER TABLE cartItem MODIFY options LONGTEXT|); - print "DONE!\n" unless $quiet; -} - -sub moveCalendarFeedsToJSON { - my $session = shift; - print "\tMoveing Calendar feeds from database collateral to JSON... " unless $quiet; - $session->db->write(q|ALTER TABLE Calendar ADD COLUMN icalFeeds LONGTEXT|); - my $getCalendar = WebGUI::Asset::Wobject::Calendar->getIsa($session); - while (my $calendar = $getCalendar->()) { - my $feeds = $session->db->buildHashRefOfHashRefs( - "select * from Calendar_feeds where assetId=?", - [$calendar->getId], - "feedId" - ); - foreach my $feedParams (values %{ $feeds }) { - delete $feedParams->{assetId}; - $calendar->addFeed($feedParams); - } - ##Copy the JSON across all the revisions of this Calendar. - my $jsonFeeds = $session->db->quickScalar('select icalFeeds from Calendar where assetId=? and revisionDate=?', [ $calendar->getId, $calendar->get('revisionDate')]); - $session->db->write('update Calendar set icalFeeds=? where assetId=?', [$jsonFeeds, $calendar->getId]); - } - $session->db->write(q|DROP TABLE Calendar_feeds|); - - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -# Remove the orphan version tags, tags with no revisions in them -sub removeOrphanedVersionTags { - my $session = shift; - print "\tRemoving orphan version tags (this may take a while)... " unless $quiet; - - my $sth = $session->db->read( - "SELECT tagId FROM assetVersionTag", - ); - while ( my ($tagId) = $sth->array ) { - if ( !$session->db->quickScalar( - "SELECT COUNT(*) FROM assetData WHERE tagId=?", - [ $tagId ] - ) ) { - my $tag = WebGUI::VersionTag->new( $session, $tagId ); - $tag->rollback; - } - } - - 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 = eval { WebGUI::Asset->getImportNode($session)->importPackage( $storage ); }; - - 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."; - } - - # 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 diff --git a/docs/upgrades/upgrade_7.7.2-7.7.3.pl b/docs/upgrades/upgrade_7.7.2-7.7.3.pl deleted file mode 100644 index 3ad3b736d..000000000 --- a/docs/upgrades/upgrade_7.7.2-7.7.3.pl +++ /dev/null @@ -1,208 +0,0 @@ -#!/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; -use WebGUI::PassiveAnalytics::Rule; -use WebGUI::Utility; - -my $toVersion = '7.7.3'; -my $quiet; # this line required - - -my $session = start(); # this line required - -# upgrade functions go here - -addSurveyQuizModeColumns($session); -addSurveyExpressionEngineConfigFlag($session); -addCarouselWobject($session); -reInstallPassiveAnalyticsConfig($session); - -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; -#} - -sub addCarouselWobject{ - my $session = shift; - print "\tAdding Carousel wobject... " unless $quiet; - $session->db->write("create table Carousel ( - assetId char(22) binary not null, - revisionDate bigint not null, - items mediumtext, - templateId char(22), - primary key (assetId, revisionDate) - )"); - my $assets = $session->config->get( "assets" ); - $assets->{ "WebGUI::Asset::Wobject::Carousel" } = { category => "utilities" }; - $session->config->set( "assets", $assets ); - print "Done.\n" unless $quiet; -} - -sub addSurveyQuizModeColumns{ - my $session = shift; - print "\tAdding columns to Survey table... " unless $quiet; - $session->db->write("alter table Survey add column `quizModeSummary` TINYINT(3)"); - $session->db->write("alter table Survey add column `surveySummaryTemplateId` char(22)"); - print "Done.\n" unless $quiet; -} - -sub addSurveyExpressionEngineConfigFlag{ - my $session = shift; - print "\tAdding enableSurveyExpressionEngine config option... " unless $quiet; - $session->config->set('enableSurveyExpressionEngine', 0); - print "Done.\n" unless $quiet; -} - - -#---------------------------------------------------------------------------- -# Conditionally re-add passive analytics config because it wasn't added to WebGUI.conf.original -# in version 7.7.0. -sub reInstallPassiveAnalyticsConfig { - my $session = shift; - print "\tAdd Passive Analytics entry to the config file... " unless $quiet; - # Admin Bar/Console - my $adminConsole = $session->config->get('adminConsole'); - if (!exists $adminConsole->{'passiveAnalytics'}) { - $adminConsole->{'passiveAnalytics'} = { - "icon" => "passiveAnalytics.png", - "uiLevel" => 1, - "url" => "^PageUrl(\"\",op=passiveAnalytics;func=editRuleflow);", - "title" => "^International(Passive Analytics,PassiveAnalytics);", - "groupSetting" => "3", - }; - $session->config->set('adminConsole', $adminConsole); - } - # Content Handler - my $contentHandlers = $session->config->get('contentHandlers'); - if (!isIn('WebGUI::Content::PassiveAnalytics',@{ $contentHandlers} ) ) { - my $contentIndex = 0; - HANDLER: while ($contentIndex <= $#{ $contentHandlers } ) { - ##Insert before Operation - if($contentHandlers->[$contentIndex] eq 'WebGUI::Content::Operation') { - splice @{ $contentHandlers }, $contentIndex, 0, 'WebGUI::Content::PassiveAnalytics'; - last HANDLER; - } - ++$contentIndex; - } - $session->config->set('contentHandlers', $contentHandlers); - } - # Workflow Activities - my $workflowActivities = $session->config->get('workflowActivities'); - my @none = @{ $workflowActivities->{'None'} }; - if (!isIn('WebGUI::Workflow::Activity::SummarizePassiveAnalytics', @none)) { - push @none, 'WebGUI::Workflow::Activity::SummarizePassiveAnalytics'; - } - if (!isIn('WebGUI::Workflow::Activity::BucketPassiveAnalytics', @none)) { - push @none, 'WebGUI::Workflow::Activity::BucketPassiveAnalytics'; - } - $workflowActivities->{'None'} = [ @none ]; - $session->config->set('workflowActivities', $workflowActivities); - 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); - 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 diff --git a/docs/upgrades/upgrade_7.7.20-7.8.0.pl b/docs/upgrades/upgrade_7.7.20-7.8.0.pl deleted file mode 100644 index 27b13c1c1..000000000 --- a/docs/upgrades/upgrade_7.7.20-7.8.0.pl +++ /dev/null @@ -1,250 +0,0 @@ -#!/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.8.0'; -my $quiet; # this line required - - -my $session = start(); # this line required - -# upgrade functions go here -reorganizeAdSpaceProperties($session); -addSubscribableAspect( $session ); -addFeaturedPageWiki( $session ); -fixEmptyCalendarIcalFeeds( $session ); -upgradeToYUI28( $session ); - -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; -#} -sub upgradeToYUI28 { - my $session = shift; - print "\tUpgrading to YUI 2.8... " unless $quiet; - - $session->db->write( - "UPDATE template SET template = REPLACE(template, 'element-beta.js', 'element-min.js')" - ); - $session->db->write( - "UPDATE template SET template = REPLACE(template, 'element-beta-min.js', 'element-min.js')" - ); - $session->db->write( - "UPDATE template SET templatePacked = REPLACE(templatePacked, 'element-beta.js', 'element-min.js')" - ); - $session->db->write( - "UPDATE template SET templatePacked = REPLACE(templatePacked, 'element-beta-min.js', 'element-min.js')" - ); - - $session->db->write( - "UPDATE assetData SET extraHeadTags = REPLACE(extraHeadTags, 'element-beta.js', 'element-min.js')" - ); - $session->db->write( - "UPDATE assetData SET extraHeadTags = REPLACE(extraHeadTags, 'element-beta-min.js', 'element-min.js')" - ); - $session->db->write( - "UPDATE assetData SET extraHeadTagsPacked = REPLACE(extraHeadTagsPacked, 'element-beta.js', 'element-min.js')" - ); - $session->db->write( - "UPDATE assetData SET extraHeadTagsPacked = REPLACE(extraHeadTagsPacked, 'element-beta-min.js', 'element-min.js')" - ); - - $session->db->write( - "UPDATE template SET template = REPLACE(template, 'carousel-beta.js', 'carousel-min.js')" - ); - $session->db->write( - "UPDATE template SET template = REPLACE(template, 'carousel-beta-min.js', 'carousel-min.js')" - ); - $session->db->write( - "UPDATE template SET templatePacked = REPLACE(templatePacked, 'carousel-beta.js', 'carousel-min.js')" - ); - $session->db->write( - "UPDATE template SET templatePacked = REPLACE(templatePacked, 'carousel-beta-min.js', 'carousel-min.js')" - ); - - $session->db->write( - "UPDATE assetData SET extraHeadTags = REPLACE(extraHeadTags, 'carousel-beta.js', 'carousel-min.js')" - ); - $session->db->write( - "UPDATE assetData SET extraHeadTags = REPLACE(extraHeadTags, 'carousel-beta-min.js', 'carousel-min.js')" - ); - $session->db->write( - "UPDATE assetData SET extraHeadTagsPacked = REPLACE(extraHeadTagsPacked, 'carousel-beta.js', 'carousel-min.js')" - ); - $session->db->write( - "UPDATE assetData SET extraHeadTagsPacked = REPLACE(extraHeadTagsPacked, 'carousel-beta-min.js', 'carousel-min.js')" - ); - - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -# Add the column for featured wiki pages -sub fixEmptyCalendarIcalFeeds { - my $session = shift; - print "\tSetting icalFeeds in the Calendar to the proper default... " unless $quiet; - - $session->db->write( - "UPDATE Calendar set icalFeeds='[]' where icalFeeds IS NULL", - ); - - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -# Add the column for featured wiki pages -sub addFeaturedPageWiki { - my $session = shift; - print "\tAdding featured pages to the Wiki " unless $quiet; - - $session->db->write( - "ALTER TABLE WikiPage ADD COLUMN isFeatured INT(1)", - ); - - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -# Add tables for the subscribable aspect -sub addSubscribableAspect { - my $session = shift; - print "\tAdding Subscribable aspect..." unless $quiet; - - $session->db->write( <<'ESQL' ); -CREATE TABLE assetAspect_Subscribable ( - assetId CHAR(22) BINARY NOT NULL, - revisionDate BIGINT NOT NULL, - subscriptionGroupId CHAR(22) BINARY, - subscriptionTemplateId CHAR(22) BINARY, - skipNotification INT, - PRIMARY KEY ( assetId, revisionDate ) -) -ESQL - - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -# Describe what our function does -sub reorganizeAdSpaceProperties { - my $session = shift; - print "\tReorganize AdSpace and Ad Sales properties... " unless $quiet; - $session->db->write(q|ALTER TABLE adSpace DROP COLUMN costPerClick|); - $session->db->write(q|ALTER TABLE adSpace DROP COLUMN costPerImpression|); - $session->db->write(q|ALTER TABLE adSpace DROP COLUMN groupToPurchase|); - # 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; - - # 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 { WebGUI::Asset->getImportNode($session)->importPackage( $storage ); }; - - 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."; - } - - # 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 diff --git a/docs/upgrades/upgrade_7.7.3-7.7.4.pl b/docs/upgrades/upgrade_7.7.3-7.7.4.pl deleted file mode 100644 index 0f7f66e45..000000000 --- a/docs/upgrades/upgrade_7.7.3-7.7.4.pl +++ /dev/null @@ -1,347 +0,0 @@ -#!/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; -use JSON; - -my $toVersion = '7.7.4'; -my $quiet; # this line required - - -my $session = start(); # this line required - -# upgrade functions go here -updateSurveyQuestionTypes($session); -extendSchedulerFields($session); -allMaintenanceSingleton($session); -unsetPackageFlags($session); -installThingyRecord( $session ); -installPluggableTax( $session ); -addMatrixMaxScreenshotWidthHeight($session); -addSurveyBackButtonColumn( $session ); - -finish($session); # this line required - -#---------------------------------------------------------------------------- -sub addMatrixMaxScreenshotWidthHeight { - my $session = shift; - print "\tAdding maximum screenshot width and height property to the Matrix." unless $quiet; - $session->db->write("alter table Matrix add maxScreenshotWidth int(11), add maxScreenshotHeight int(11);"); - $session->db->write("update Matrix set maxScreenshotWidth = 800, maxScreenshotHeight = 600;"); - print "DONE!\n" unless $quiet; -} - - -#---------------------------------------------------------------------------- -sub unsetPackageFlags { - my $session = shift; - print "\tTurning off package flag on default assets...\n" unless $quiet; - my @assetIds = qw( - PBtmpl0000000000000004 PBtmpl0000000000000010 - TEId5V-jEvUULsZA0wuRuA _9_eiaPgxzF_x_upt6-PNQ - LdiozcIUciWuvt3Z-na5Ww PBtmpl0000000000000011 - PBtmpl0000000000000063 PBtmpl0000000000000062 - 1oBRscNIcFOI-pETrCOspA wAc4azJViVTpo-2NYOXWvg - AjhlNO3wZvN5k4i4qioWcg GRUNFctldUgop-qRLuo_DA - ThingyTmpl000000000004 UserListTmpl0000000001 - UserListTmpl0000000002 UserListTmpl0000000003 - WikiPageTmpl0000000001 QHn6T9rU7KsnS3Y70KCNTg - THQhn1C-ooj-TLlEP7aIJQ ThingyTmpl000000000003 - stevestyle000000000003 UL-ItI4L1Z6-WSuhuXVvsQ - QpmlAiYZz6VsKBM-_0wXaw - ); - for my $assetId (@assetIds) { - my $asset = WebGUI::Asset->new($session, $assetId); - if (!$asset) { - warn "\tUnable to instantiate default asset $assetId.\n"; - next; - } - $asset->update({isPackage => 0}); - } - print "\tDone.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub allMaintenanceSingleton { - my $session = shift; - print "\tMaking all maintenance workflows singletons." unless $quiet; - $session->db->write("update Workflow set mode='singleton' where workflowId in ('pbworkflow000000000001','pbworkflow000000000002','pbworkflow000000000004','AuthLDAPworkflow000001')"); - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub extendSchedulerFields { - my $session = shift; - print "\tExtending scheduler fields" unless $quiet; - my $db = $session->db; - $db->write("alter table WorkflowSchedule change minuteOfHour minuteOfHour char(255) not null default '0'"); - $db->write("alter table WorkflowSchedule change hourOfDay hourOfDay char(255) not null default '*'"); - $db->write("alter table WorkflowSchedule change dayOfMonth dayOfMonth char(255) not null default '*'"); - $db->write("alter table WorkflowSchedule change monthOfYear monthOfYear char(255) not null default '*'"); - $db->write("alter table WorkflowSchedule change dayOfWeek dayOfWeek char(255) not null default '*'"); - print "DONE!\n" unless $quiet; -} - -sub updateSurveyQuestionTypes{ - my $session = shift; - my $refs = $session->db->buildArrayRefOfHashRefs("SELECT * FROM Survey_questionTypes"); - for my $ref(@$refs){ - my $name = $ref->{questionType}; - my $params; - my @texts = split/,/,$ref->{answers}; - #next if(@texts == 0); - my $count = 0; - for my $text(@texts){ - my $verbatim = 0; - $verbatim = 1 if($text =~ /verbatim/); - push(@$params,[$text,$count++,$verbatim]); - } - _loadValues($name,$params,$session); - } -} - -sub _loadValues{ - my $name = shift; - my $values = shift; - my $session = shift; - my $answers = []; - for my $value(@$values){ - my $answer = _getAnswer(); - $answer->{text} = $value->[0]; - if($answer->{text} eq 'No'){ - $answer->{recordedAnswer} = 0; - }elsif($answer->{text} eq 'Yes'){ - $answer->{recordedAnswer} = 1; - }elsif($answer->{text} eq 'True'){ - $answer->{recordedAnswer} = 1; - }elsif($answer->{text} eq 'False'){ - $answer->{recordedAnswer} = 0; - }else{ - $answer->{recordedAnswer} = $value->[1]; - } - $answer->{verbatim} = $value->[2]; - push @$answers,$answer; - } - my $json = to_json($answers); - $session->db->write("UPDATE Survey_questionTypes SET answers = ? WHERE questionType = ?",[$json,$name]); -} - -sub _getAnswer{ - my $answer = { - text => q{}, - verbatim => 0, - textCols => 10, - textRows => 5, - goto => q{}, - gotoExpression => q{}, - recordedAnswer => q{}, - isCorrect => 1, - min => 1, - max => 10, - step => 1, - value => 1, - terminal => 0, - terminalUrl => q{}, - type => 'answer' - }; - return $answer; -} - -#---------------------------------------------------------------------------- -sub installPluggableTax { - my $session = shift; - my $db = $session->db; - print "\tInstall tables for pluggable tax system..." unless $quiet; - - # Rename table for the Generic tax plugin - $db->write( 'alter table tax rename tax_generic_rates' ); - - # Create tax driver table - $db->write( 'create table taxDriver (className char(255) not null primary key, options mediumtext)' ); - - # Table for storing EU VAT numbers. - $db->write( <config->set( 'taxDrivers', [ - 'WebGUI::Shop::TaxDriver::Generic', - 'WebGUI::Shop::TaxDriver::EU', - ] ); - - # Add a setting to store the active tax plugin. - $session->setting->add( 'activeTaxPlugin', 'WebGUI::Shop::TaxDriver::Generic' ); - - # Add column to sku for storing each sku's tax configuration. - $db->write( "alter table sku add column taxConfiguration mediumtext " ); - - # Migrate the tax overrides of skus into the tax configuration column. - # Don't use getLineage because this has to be done for each revision. - my $sth = $db->read( "select assetId, revisionDate, overrideTaxRate, taxRateOverride from sku" ); - while (my $row = $sth->hashRef) { - my $config = { - overrideTaxRate => $row->{ overrideTaxRate } || 0, - taxRateOverride => $row->{ taxRateOverride } || 0, - }; - - $db->write( 'update sku set taxConfiguration=? where assetId=? and revisionDate=?', [ - to_json( $config ), - $row->{ assetId }, - $row->{ revisionDate }, - ]); - } - $sth->finish; - - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -# Add the ThingyRecord sku -sub installThingyRecord { - my ( $session ) = shift; - print "\tInstalling ThingyRecord sku... " unless $quiet; - - $session->config->addToHash('assets','WebGUI::Asset::Sku::ThingyRecord', { - category => "shop", - }); - - # Install ThingyRecord - $session->db->write( <<'ENDSQL' ); - CREATE TABLE IF NOT EXISTS ThingyRecord ( - assetId CHAR(22) BINARY NOT NULL, - revisionDate BIGINT NOT NULL, - templateIdView CHAR(22) BINARY, - thingId CHAR(22) BINARY, - thingFields LONGTEXT, - thankYouText LONGTEXT, - price FLOAT, - duration BIGINT, - PRIMARY KEY (assetId, revisionDate) - ); -ENDSQL - - # Install collateral - use WebGUI::AssetCollateral::Sku::ThingyRecord::Record; - WebGUI::AssetCollateral::Sku::ThingyRecord::Record->crud_createTable($session); - - # Update workflow - my $activityClass = 'WebGUI::Workflow::Activity::ExpirePurchasedThingyRecords'; - $session->config->addToArray( 'workflow/None', $activityClass ); - my $workflow = WebGUI::Workflow->new( $session, 'pbworkflow000000000004' ); - my $activity = $workflow->addActivity( $activityClass ); - $activity->set('title', "Expire Purchased Thingy Records"); - $activity->set('description', "Expire any expired thingy records. Send notifications of imminent expiration."); - - print "DONE!\n" unless $quiet; -} - -sub addSurveyBackButtonColumn{ - my $session = shift; - print "\tAdding allowBackBtn column to Survey table... " unless $quiet; - $session->db->write("alter table Survey add column `allowBackBtn` TINYINT(3)"); - 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 diff --git a/docs/upgrades/upgrade_7.7.4-7.7.5.pl b/docs/upgrades/upgrade_7.7.4-7.7.5.pl deleted file mode 100644 index 5bc3542ae..000000000 --- a/docs/upgrades/upgrade_7.7.4-7.7.5.pl +++ /dev/null @@ -1,341 +0,0 @@ -#!/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.5'; -my $quiet; # this line required - - -my $session = start(); # this line required - -# upgrade functions go here - -# Story Manager -installStoryManagerTables($session); -sm_upgradeConfigFiles($session); -sm_updateDailyWorkflow($session); -turnOffAdmin($session); - -fixConfigs($session); - -correctEventTemplateVariables($session); -addGlobalHeadTags( $session ); -addShipsSeparateToSku($session); - -addTemplatePacking( $session ); - -finish($session); # this line required - -#---------------------------------------------------------------------------- -sub turnOffAdmin { - my $session = shift; - print "\tAdding admin off link to admin console." unless $quiet; - $session->config->addToHash("adminConsole","adminConsoleOff", { - "icon" => "adminConsoleOff.gif", - "group" => "12", - "uiLevel" => 1, - "url" => "^PageUrl(\"\",op=switchOffAdmin);", - "title" => "^International(12,WebGUI);" - }); - print "OK\n" unless $quiet; -} - -sub addGlobalHeadTags { - my ( $session ) = @_; - print "\tAdding Global HEAD tags setting... " unless $quiet; - $session->setting->add('globalHeadTags',''); - print "OK\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub fixConfigs { - my $session = shift; - print "\tFixing misconfigurations... " unless $quiet; - my $config = $session->config; - $config->delete('workflow'); - $config->addToArray( 'workflowActivities/None', 'WebGUI::Workflow::Activity::ExpirePurchasedThingyRecords'); - $config->set('taxDrivers', [ - "WebGUI::Shop::TaxDriver::Generic", - "WebGUI::Shop::TaxDriver::EU" - ]); - $config->set('macros/SpectreCheck', 'SpectreCheck'); - $config->set('assets/WebGUI::Asset::Sku::ThingyRecord', { - category => 'shop', - }); - $config->set('assets/WebGUI::Asset::Wobject::Carousel', { - category => 'utilities', - }); - - print "Done.\n" unless $quiet; -} - - -sub installStoryManagerTables { - my ($session) = @_; - print "\tAdding Story Manager tables... " unless $quiet; - my $db = $session->db; - $db->write(<write(<write(<config; - $config->addToHash( - 'assets', - 'WebGUI::Asset::Wobject::StoryTopic' => { - 'category' => 'community' - }, - ); - $config->addToHash( - 'assets', - "WebGUI::Asset::Wobject::StoryArchive" => { - "isContainer" => 1, - "category" => "community" - }, - ); - $config->addToArray('workflowActivities/None', 'WebGUI::Workflow::Activity::ArchiveOldStories'); - print "DONE!\n" unless $quiet; -} - -sub sm_updateDailyWorkflow { - my ($session) = @_; - print "\tAdding Archive Old Stories to Daily Workflow... " unless $quiet; - my $workflow = WebGUI::Workflow->new($session, 'pbworkflow000000000001'); - foreach my $activity (@{ $workflow->getActivities }) { - return if $activity->getName() eq 'WebGUI::Workflow::Activity::ArchiveOldStories'; - } - my $activity = $workflow->addActivity('WebGUI::Workflow::Activity::ArchiveOldStories'); - $activity->set('title', 'Archive Old Stories'); - $activity->set('description', 'Archive old stories, based on the settings of the Story Archives that own them'); - print "DONE!\n" unless $quiet; -} - -sub correctEventTemplateVariables { - my ($session) = @_; - print "\tCorrect Event Template Variables for URL actions... " unless $quiet; - my $root = WebGUI::Asset->getRoot($session); - my $getATemplate = $root->getLineageIterator(['descendants'], { - returnObjects => 1, - includeOnlyClasses => ['WebGUI::Asset::Template'], - joinClass => 'WebGUI::Asset::Template', - whereClause => q!template.namespace = 'Calendar/Event' and template.parser='WebGUI::Asset::Template::HTMLTemplate'!, - }); - - TEMPLATE: while (my $templateAsset = $getATemplate->()) { - my $template = $templateAsset->get('template'); - $template =~ s{\?func=edit}{}isg; - $template =~ s{\?func=delete}{}isg; - $template =~ s{\?print=1}{}isg; - $template =~ s{\?type=list}{}isg; - $templateAsset->update({ - template => $template, - }); - } - print "DONE!\n" unless $quiet; -} - -sub addShipsSeparateToSku { - my ($session) = @_; - print "\tAdd shipsSeparate property to Sku... " unless $quiet; - $session->db->write(<db->write("ALTER TABLE template ADD templatePacked LONGTEXT"); - $session->db->write("ALTER TABLE template ADD usePacked INT(1)"); - - print "\n\t\tPre-packing all templates, this may take a while..." unless $quiet; - my $sth = $session->db->read( "SELECT DISTINCT(assetId) FROM template" ); - while ( my ($assetId) = $sth->array ) { - my $asset = WebGUI::Asset::Template->new( $session, $assetId ); - next unless $asset; - $asset->update({ - template => $asset->get('template'), - usePacked => 0, - }); - } - - print "\n\t\tAdding extra head tags packing..." unless $quiet; - $session->db->write("ALTER TABLE assetData ADD extraHeadTagsPacked LONGTEXT"); - $session->db->write("ALTER TABLE assetData ADD usePackedHeadTags INT(1)"); - - print "\n\t\tPre-packing all head tags, this may take a while..." unless $quiet; - $sth = $session->db->read( "SELECT assetId FROM asset" ); - while ( my ($assetId) = $sth->array ) { - my $asset = WebGUI::Asset->newByDynamicClass( $session, $assetId ); - next unless $asset; - $asset->update({ - extraHeadTags => $asset->get('extraHeadTags'), - usePackedHeadTags => 0, - }); - } - - print "\n\t\tAdding snippet packing..." unless $quiet; - $session->db->write("ALTER TABLE snippet ADD snippetPacked LONGTEXT"); - $session->db->write("ALTER TABLE snippet ADD usePacked INT(1)"); - - print "\n\t\tPre-packing all snippets, this may take a while..." unless $quiet; - $sth = $session->db->read( "SELECT DISTINCT(assetId) FROM snippet" ); - while ( my ($assetId) = $sth->array ) { - my $asset = WebGUI::Asset->newByDynamicClass( $session, $assetId ); - next unless $asset; - $asset->update({ - snippet => $asset->get('snippet'), - usePacked => 0, - }); - } - - print "\n\t... 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 diff --git a/docs/upgrades/upgrade_7.7.5-7.7.6.pl b/docs/upgrades/upgrade_7.7.5-7.7.6.pl deleted file mode 100644 index a2ff7a13d..000000000 --- a/docs/upgrades/upgrade_7.7.5-7.7.6.pl +++ /dev/null @@ -1,437 +0,0 @@ -#!/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; -use WebGUI::Workflow; -use WebGUI::Utility; - -my $toVersion = "7.7.6"; -my $quiet; - -my $session = start(); - -# upgrade functions go here -addTemplateAttachmentsTable($session); -addMobileStyleTemplate( $session ); -revertUsePacked( $session ); -fixDefaultPostReceived($session); -addEuVatDbColumns( $session ); -addShippingDrivers( $session ); -addTransactionTaxColumns( $session ); -sendWebguiStats($session); -addDataFormColumns($session); -addListingsCacheTimeoutToMatrix( $session ); -addSurveyFeedbackTemplateColumn( $session ); -installCopySender($session); -installNotificationsSettings($session); -installSMSUserProfileFields($session); -installSMSSettings($session); -upgradeSMSMailQueue($session); -addPayDrivers($session); -addCollaborationColumns($session); -installSurveyTest($session); -installFriendManagerSettings($session); -installFriendManagerConfig($session); - -finish($session); - - -#---------------------------------------------------------------------------- -sub sendWebguiStats { - my $session = shift; - print "\tAdding a workflow to allow users to take part in the WebGUI stats project..." unless $quiet; - my $wf = WebGUI::Workflow->create($session, { - type => 'None', - mode => 'singleton', - enabled => 1, - title => 'Send WebGUI Stats', - description => 'This workflow sends some information about your site to the central WebGUI statistics repository. No personal information is sent. The information is used to help determine the future direction WebGUI should take.', - }, 'send_webgui_statistics'); - my $act = $wf->addActivity('WebGUI::Workflow::Activity::SendWebguiStats','send_webgui_statistics'); - $act->set('title', 'Send WebGUI Stats'); - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addMobileStyleTemplate { - my $session = shift; - print "\tAdding mobile style template field... " unless $quiet; - $session->db->write(q{ - ALTER TABLE wobject ADD COLUMN mobileStyleTemplateId CHAR(22) BINARY DEFAULT 'PBtmpl0000000000000060' - }); - $session->db->write(q{ - UPDATE wobject SET mobileStyleTemplateId = styleTemplateId - }); - $session->db->write(q{ - ALTER TABLE Layout ADD COLUMN mobileTemplateId CHAR(22) BINARY DEFAULT 'PBtmpl0000000000000054' - }); - $session->setting->add('useMobileStyle', 0); - $session->config->set('mobileUserAgents', [ - 'AvantGo', - 'DoCoMo', - 'Vodafone', - 'EudoraWeb', - 'Minimo', - 'UP\.Browser', - 'PLink', - 'Plucker', - 'NetFront', - '^WM5 PIE$', - 'Xiino', - 'iPhone', - 'Opera Mobi', - 'BlackBerry', - 'Opera Mini', - 'HP iPAQ', - 'IEMobile', - 'Profile/MIDP', - 'Smartphone', - 'Symbian ?OS', - 'J2ME/MIDP', - 'PalmSource', - 'PalmOS', - 'Windows CE', - 'Opera Mini', - ]); - print "Done.\n" unless $quiet; -} - - -#---------------------------------------------------------------------------- -sub addSurveyTestResultsTemplateColumn { - my $session = shift; - print "\tAdding columns for Survey Test Results Template..." unless $quiet; - $session->db->write("alter table Survey add column `testResultsTemplateId` char(22)"); - - print "Done\n" unless $quiet; - -} -#---------------------------------------------------------------------------- -sub addListingsCacheTimeoutToMatrix{ - my $session = shift; - print "\tAdding listingsCacheTimeout setting to Matrix table... " unless $quiet; - $session->db->write("alter table Matrix add listingsCacheTimeout int(11) not null default 3600;"); - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addTemplateAttachmentsTable { - my $session = shift; - print "\tAdding template attachments table... " unless $quiet; - my $create = q{ - CREATE TABLE template_attachments ( - templateId CHAR(22) BINARY, - revisionDate bigint(20), - url varchar(256), - type varchar(20), - sequence int(11), - - PRIMARY KEY (templateId, revisionDate, url) - ) - }; - $session->db->write($create); - 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; -} - -#---------------------------------------------------------------------------- -# Describe what our function does -sub fixDefaultPostReceived { - my $session = shift; - print "\tFixing post received template setting... " unless $quiet; - $session->db->write(<db->write(<config->addToArray('shippingDrivers', 'WebGUI::Shop::ShipDriver::USPS'); - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addEuVatDbColumns { - my $session = shift; - print "\tAdding columns for improved VAT number checking..." unless $quiet; - - $session->db->write( 'alter table tax_eu_vatNumbers add column viesErrorCode int(3) default NULL' ); - - print "Done\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addTransactionTaxColumns { - my $session = shift; - print "\tAdding columns for storing tax data in the transaction log..." unless $quiet; - - $session->db->write( 'alter table transactionItem add column taxRate decimal(6,3)' ); - $session->db->write( 'alter table transactionItem add column taxConfiguration mediumtext' ); - $session->db->write( 'alter table transactionItem change vendorPayoutAmount vendorPayoutAmount decimal (8,2) default 0.00' ); - - print "Done\n" unless $quiet; - -} - -sub addDataFormColumns { - my $session = shift; - print "\tAdding column to store htmlArea Rich Editor in DataForm Table ..." unless $quiet; - - my $sth = $session->db->read( 'show columns in DataForm where field = "htmlAreaRichEditor"' ); - if ($sth->rows() == 0) { # only add column if it is not already there - $session->db->write( 'alter TABLE `DataForm` add column `htmlAreaRichEditor` varchar(22) default "**Use_Default_Editor**"' ); - } - - print "Done\n" unless $quiet; - -} - -#---------------------------------------------------------------------------- -sub addSurveyFeedbackTemplateColumn { - my $session = shift; - print "\tAdding columns for Survey Feedback Template..." unless $quiet; - $session->db->write("alter table Survey add column `feedbackTemplateId` char(22)"); - - print "Done\n" unless $quiet; - -} - -#---------------------------------------------------------------------------- -# Your sub here -sub installCopySender { - my $session = shift; - return if $session->setting->has('inboxCopySender'); - $session->setting->add('inboxCopySender',0); -} - -sub installNotificationsSettings { - my $session = shift; - $session->setting->add('sendInboxNotificationsOnly', 0); - $session->setting->add('inboxNotificationTemplateId', 'b1316COmd9xRv4fCI3LLGA'); -} - -sub installSMSUserProfileFields { - my $session = shift; - WebGUI::ProfileField->create( - $session, - 'receiveInboxEmailNotifications', - { - label => q!WebGUI::International::get('receive inbox emails','Message_Center')!, - visible => 1, - required => 0, - protected => 1, - editable => 1, - fieldType => 'yesNo', - dataDefault => 1, - }, - 4, - ); - WebGUI::ProfileField->create( - $session, - 'receiveInboxSmsNotifications', - { - label => q!WebGUI::International::get('receive inbox sms','Message_Center')!, - visible => 1, - required => 0, - protected => 1, - editable => 1, - fieldType => 'yesNo', - dataDefault => 0, - }, - 4, - ); -} - -sub installSMSSettings { - my $session = shift; - $session->setting->add('smsGateway', ''); -} - -sub upgradeSMSMailQueue { - my $session = shift; - $session->db->write('alter table mailQueue add column isInbox TINYINT(4) default 0'); -} - -#---------------------------------------------------------------------------- -# Describe what our function does -sub addPayDrivers { - my $session = shift; - print "\tAdding PayPal driver checking..." unless $quiet; - $session->config->addToArray('paymentDrivers', 'WebGUI::Shop::PayDriver::PayPal::PayPalStd'); - print "DONE!\n" unless $quiet; -} - -sub installSurveyTest { - my $session = shift; - print "\tInstall Survey test table, via Crud... " unless $quiet; - use WebGUI::Asset::Wobject::Survey::Test; - WebGUI::Asset::Wobject::Survey::Test->crud_createTable($session); - print "DONE!\n" unless $quiet; -} - -sub addCollaborationColumns { - my $session = shift; - print "\tAdding columns to store htmlArea Rich Editor and Filter Code for Replies in Collaboration Table ..." unless $quiet; - - my $sth = $session->db->read( 'show columns in Collaboration where field = "replyRichEditor"' ); - if ($sth->rows() == 0) { # only add columns if it hasn't been added already - $session->db->write( 'alter TABLE `Collaboration` add column `replyRichEditor` varchar(22) default "PBrichedit000000000002"') ; - $session->db->write( 'update `Collaboration` set `replyRichEditor` = `richEditor` ') ; - } - - $sth = $session->db->read( 'show columns in Collaboration where field = "replyFilterCode"' ); - if ($sth->rows() == 0) { # only add columns if it hasn't been added already - $session->db->write( 'alter TABLE `Collaboration` add column `replyFilterCode` varchar(30) default "javascript"') ; - $session->db->write( 'update `Collaboration` set `replyFilterCode` = `filterCode` ') ; - } - - print "Done\n" unless $quiet; - -} - -sub installFriendManagerSettings { - my $session = shift; - print "\tInstalling FriendManager into settings..."; - $session->setting->add('groupIdAdminFriends', '3'); - $session->setting->add('fmViewTemplateId', '64tqS80D53Z0JoAs2cX2VQ'); - $session->setting->add('fmEditTemplateId', 'lG2exkH9FeYvn4pA63idNg'); - $session->setting->add('groupsToManageFriends', '2'); - $session->setting->add('overrideAbleToBeFriend', 0); - print "\tDone\n"; -} - -sub installFriendManagerConfig { - my $session = shift; - my $config = $session->config; - my $account = $config->get('account'); - my @classes = map { $_->{className} } @{ $account }; - return if isIn('WebGUI::Account::FriendManager', @classes); - print "\tInstalling FriendManager into config file..."; - push @{ $account }, - { - identifier => 'friendManager', - title => '^International(title,Account_FriendManager);', - className => 'WebGUI::Account::FriendManager', - } - ; - $config->set('account', $account); - print "\tDone\n"; -} - -# -------------- 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 diff --git a/docs/upgrades/upgrade_7.7.6-7.7.7.pl b/docs/upgrades/upgrade_7.7.6-7.7.7.pl deleted file mode 100644 index 3559485f4..000000000 --- a/docs/upgrades/upgrade_7.7.6-7.7.7.pl +++ /dev/null @@ -1,372 +0,0 @@ -#!/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; -use WebGUI::FilePump::Bundle; -use WebGUI::Utility; - -my $toVersion = '7.7.7'; -my $quiet; # this line required - -my $session = start(); # this line required - -removeDanglingOldRssAssets( $session ); -addOgoneToConfig( $session ); -addUseEmailAsUsernameToSettings( $session ); -alterVATNumberTable( $session ); -addRedirectAfterLoginUrlToSettings( $session ); -addSurveyTestResultsTemplateColumn( $session ); -updateSurveyTest( $session ); -fixSMSUserProfileI18N($session); -addEmsScheduleColumns ($session); -addMapAsset( $session ); -installFilePumpHandler($session); -installFilePumpTable($session); -installFilePumpAdminGroup($session); -addMatrixMaxGroup($session); -addUserControlWorkflows($session); - -finish($session); # this line required - -#---------------------------------------------------------------------------- -sub removeDanglingOldRssAssets { - my $session = shift; - print "\tChecking for uses of RSSCapable...\n" unless $quiet; - my $peek = $session->db->dbh->table_info(undef, undef, 'RSSCapable'); - if ($peek->fetchrow_hashref()) { - my @rssCapableClasses = $session->db->buildArray('SELECT className FROM RSSCapable INNER JOIN asset ON RSSCapable.assetId=asset.assetId GROUP BY className'); - if (@rssCapableClasses) { - warn "\t\tThis site is using the assets\n\t\t\t" . join(', ', @rssCapableClasses) . "\n\t\twhich use the RSSCapable class! Support RSSCapable has been dropped and it will no longer be maintained.\n"; - } - else { - print "\t\tNot used, removing leftover assets, if any.\n" unless $quiet; - $session->db->write(q|DELETE FROM assetData WHERE assetId IN (SELECT assetId FROM asset WHERE className="WebGUI::Asset::RssFromParent")|); - $session->db->write(q|DELETE FROM asset WHERE className = "WebGUI::Asset::RssFromParent"|); - } - } - print "\tDone.\n" unless $quiet; -} - - -#---------------------------------------------------------------------------- -sub addMatrixMaxGroup { - my $session = shift; - print "\tAdding maxComparisonsGroup to Matrix..." unless $quiet; - $session->db->write("alter table Matrix add column maxComparisonsGroup char(22);"); - $session->db->write("alter table Matrix add column maxComparisonsGroupInt integer;"); - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addUserControlWorkflows { - my $session = shift; - print "\tAdding Activate, Deactivate, Delete User workflow activities..." unless $quiet; - $session->config->addToArray('workflowActivities/WebGUI::User', 'WebGUI::Workflow::Activity::ActivateUser'); - $session->config->addToArray('workflowActivities/WebGUI::User', 'WebGUI::Workflow::Activity::DeactivateUser'); - $session->config->addToArray('workflowActivities/WebGUI::User', 'WebGUI::Workflow::Activity::DeleteUser'); - print " Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub fixSMSUserProfileI18N { - my $session = shift; - print "\tFixing bad I18N in SMS user profile fields..." unless $quiet; - my $field = WebGUI::ProfileField->new($session, 'receiveInboxEmailNotifications'); - my $properties = $field->get(); - $properties->{label} = q!WebGUI::International::get('receive inbox emails','WebGUI')!; - $field->set($properties); - - $field = WebGUI::ProfileField->new($session, 'receiveInboxSmsNotifications'); - $properties = $field->get(); - $properties->{label} = q!WebGUI::International::get('receive inbox sms','WebGUI')!; - $field->set($properties); - - print "Done\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addOgoneToConfig { - my $session = shift; - print "\tAdding Ogone payment plugin..." unless $quiet; - - $session->config->addToArray('paymentDrivers', 'WebGUI::Shop::PayDriver::Ogone'); - - print "Done\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addUseEmailAsUsernameToSettings { - my $session = shift; - print "\tAdding webguiUseEmailAsUsername to settings \n" unless $quiet; - - $session->db->write("insert into settings (name, value) values ('webguiUseEmailAsUsername',0)"); - - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addRedirectAfterLoginUrlToSettings { - my $session = shift; - print "\tAdding redirectAfterLoginUrl to settings \n" unless $quiet; - - $session->db->write("insert into settings (name, value) values ('redirectAfterLoginUrl',NULL)"); - - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub alterVATNumberTable { - my $session = shift; - print "\tAdapting VAT Number table..." unless $quiet; - - $session->db->write('alter table tax_eu_vatNumbers change column approved viesValidated tinyint(1)'); - $session->db->write('alter table tax_eu_vatNumbers add column approved tinyint(1)'); - - print "Done\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addSurveyTestResultsTemplateColumn { - my $session = shift; - print "\tAdding columns for Survey Test Results Template..." unless $quiet; - my $sth = $session->db->read('describe Survey testResultsTemplateId'); - if (! defined $sth->hashRef) { - $session->db->write("alter table Survey add column `testResultsTemplateId` char(22)"); - } - - print "Done\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub updateSurveyTest { - my $session = shift; - print "\tUpdate Survey test table, via Crud... " unless $quiet; - use WebGUI::Asset::Wobject::Survey::Test; - WebGUI::Asset::Wobject::Survey::Test->crud_updateTable($session); - print "DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub installFilePumpAdminGroup { - my $session = shift; - print "\tAdding FilePump admin group setting... \n" unless $quiet; - ##Content Handler - #if (! $session->setting->has('groupIdAdminFilePump')) { - $session->setting->add('groupIdAdminFilePump','8'); - print "\tAdded FilePump admin group ... \n" unless $quiet; - #} - print "Done.\n" unless $quiet; -} -#---------------------------------------------------------------------------- -sub addEmsScheduleColumns { - my $session = shift; - print "\tAdding columns for the EMS Schedule table..." unless $quiet; - - $session->db->write( 'alter table EventManagementSystem add column scheduleTemplateId char(22)' ); - $session->db->write( 'alter table EventManagementSystem add column scheduleColumnsPerPage integer' ); - - print "Done\n" unless $quiet; - -} - - -#---------------------------------------------------------------------------- -sub installFilePumpHandler { - my $session = shift; - print "\tAdding FilePump content handler... \n" unless $quiet; - ##Content Handler - my $contentHandlers = $session->config->get('contentHandlers'); - $session->config->addToHash( 'macros', { FilePump => 'FilePump' }); - my $handlers = $session->config->get('contentHandlers'); - my $newHandlers = []; - if (!isIn('WebGUI::Content::FilePump', @{ $handlers })) { - foreach my $handler (@{ $handlers }) { - if ($handler eq 'WebGUI::Content::Operation') { - push @{ $newHandlers }, 'WebGUI::Content::FilePump'; - } - push @{ $newHandlers }, $handler; - } - } - else { - $newHandlers = $handlers; - } - $session->config->set('contentHandlers', $newHandlers); - - ##Admin Console - $session->config->addToHash('adminConsole', 'filePump', { - "icon" => "filePump.png", - "groupSetting" => "groupIdAdminFilePump", - "uiLevel" => 5, - "url" => "^PageUrl(\"\",op=filePump);", - "title" => "^International(File Pump,FilePump);" - }); - ##Setting for custom group - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub installFilePumpTable { - my $session = shift; - print "\tAdding FilePump database table via CRUD... \n" unless $quiet; - WebGUI::FilePump::Bundle->crud_createTable($session); - print "Done.\n" unless $quiet; -} - - -#---------------------------------------------------------------------------- -# Add the map asset -sub addMapAsset { - my $session = shift; - print "\tAdding Google Map asset..." unless $quiet; - - # Map asset - $session->db->write(<<'ENDSQL'); -CREATE TABLE IF NOT EXISTS Map ( - assetId CHAR(22) BINARY NOT NULL, - revisionDate BIGINT NOT NULL, - groupIdAddPoint CHAR(22) BINARY, - mapApiKey TEXT, - mapHeight CHAR(12), - mapWidth CHAR(12), - startLatitude FLOAT, - startLongitude FLOAT, - startZoom TINYINT UNSIGNED, - templateIdEditPoint CHAR(22) BINARY, - templateIdView CHAR(22) BINARY, - templateIdViewPoint CHAR(22) BINARY, - workflowIdPoint CHAR(22) BINARY, - PRIMARY KEY (assetId, revisionDate) -); -ENDSQL - - # MapPoint asset - $session->db->write(<<'ENDSQL'); -CREATE TABLE IF NOT EXISTS MapPoint ( - assetId CHAR(22) BINARY NOT NULL, - revisionDate BIGINT NOT NULL, - latitude FLOAT, - longitude FLOAT, - website VARCHAR(255), - address1 VARCHAR(255), - address2 VARCHAR(255), - city VARCHAR(255), - state VARCHAR(255), - zipCode VARCHAR(255), - country VARCHAR(255), - phone VARCHAR(255), - fax VARCHAR(255), - email VARCHAR(255), - storageIdPhoto CHAR(22) BINARY, - userDefined1 TEXT, - userDefined2 TEXT, - userDefined3 TEXT, - userDefined4 TEXT, - userDefined5 TEXT, - PRIMARY KEY (assetId, revisionDate) -); -ENDSQL - - # Add to assets - $session->config->addToHash( "assets", 'WebGUI::Asset::Wobject::Map', { - "category" => "basic", - }); - - 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 diff --git a/docs/upgrades/upgrade_7.7.7-7.7.8.pl b/docs/upgrades/upgrade_7.7.7-7.7.8.pl deleted file mode 100644 index 3c3117266..000000000 --- a/docs/upgrades/upgrade_7.7.7-7.7.8.pl +++ /dev/null @@ -1,211 +0,0 @@ -#!/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.8'; -my $quiet; # this line required - - -my $session = start(); # this line required - -# upgrade functions go here -messageStateCleanup($session); -addOgoneToConfig( $session ); -addSurveyExpressionEngineConfigFlag($session); -addMobileStyleConfig($session); - -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; -#} - -#---------------------------------------------------------------------------- - -sub messageStateCleanup { - my $session = shift; - my $db = $session->db; - - # Acquire messageIds to fine orphans (no inbox message associated) and those with group delivered system messages marked as completed - # - my $messageListRef = $db->buildArrayRef("SELECT distinct messageId FROM inbox_messageState WHERE isRead=0 AND deleted = 0"); - my $sth = $db->read("SELECT status,groupId FROM inbox WHERE messageId=?"); - for my $messageId (@$messageListRef) { - $sth->execute([$messageId]); - my $rows = $sth->rows; - - # No reference to any current message in the inbox - # - if ( !$rows ) { - $db->write( "DELETE FROM inbox_messageState WHERE messageId=?", [$messageId] ); - } - else { - # test messages for values of completed status and group delivery - # - while ( my ( $status, $groupId ) = $sth->array ) { - next if $status ne "completed" || !$groupId; - $db->write( "UPDATE inbox_messageState SET isRead=1 WHERE messageId=?", [$messageId] ); - } - } - } ## end for my $messageId (@$messageListRef) - $sth->finish; -} ## end sub messageStateCleanup - -#---------------------------------------------------------------------------- -sub addOgoneToConfig { - my $session = shift; - print "\tAdding Ogone payment plugin..." unless $quiet; - - $session->config->addToArray('paymentDrivers', 'WebGUI::Shop::PayDriver::Ogone'); - - print "Done\n" unless $quiet; -} - - -#---------------------------------------------------------------------------- -sub addSurveyExpressionEngineConfigFlag{ - my $session = shift; - print "\tAdding enableSurveyExpressionEngine config option... " unless $quiet; - $session->config->set('enableSurveyExpressionEngine', 0); - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -sub addMobileStyleConfig { - my $session = shift; - print "\tAdding mobile style user agents to config file... " unless $quiet; - $session->config->set('mobileUserAgents', [ - 'AvantGo', - 'DoCoMo', - 'Vodafone', - 'EudoraWeb', - 'Minimo', - 'UP\.Browser', - 'PLink', - 'Plucker', - 'NetFront', - '^WM5 PIE$', - 'Xiino', - 'iPhone', - 'Opera Mobi', - 'BlackBerry', - 'Opera Mini', - 'HP iPAQ', - 'IEMobile', - 'Profile/MIDP', - 'Smartphone', - 'Symbian ?OS', - 'J2ME/MIDP', - 'PalmSource', - 'PalmOS', - 'Windows CE', - 'Opera Mini', - ]); - 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 diff --git a/docs/upgrades/upgrade_7.7.8-7.7.9.pl b/docs/upgrades/upgrade_7.7.8-7.7.9.pl deleted file mode 100644 index e3ce67df6..000000000 --- a/docs/upgrades/upgrade_7.7.8-7.7.9.pl +++ /dev/null @@ -1,193 +0,0 @@ -#!/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; -use WebGUI::Shop::AddressBook; - - -my $toVersion = '7.7.9'; -my $quiet; # this line required - - -my $session = start(); # this line required - -# upgrade functions go here -repackTemplates( $session ); -deleteUnattachedAddressBooks( $session ); -addDefaultPrivacySettings( $session ); - -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; -#} - -#---------------------------------------------------------------------------- -sub addDefaultPrivacySettings { - my $session = shift; - print "\tAdding default privacy setting to profile fields..." unless $quiet; - $session->db->write("alter table userProfileField add defaultPrivacySetting char(128);"); - $session->db->write("update userProfileField set defaultPrivacySetting = 'all' where profileCategoryId IN(2,3,6);"); - $session->db->write("update userProfileField set defaultPrivacySetting = 'none' where !(profileCategoryId IN(2,3,6));"); - print "Done.\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -# Repack all templates since the packed columns may have been wiped out due to the bug. -sub repackTemplates { - my $session = shift; - - print "\n\t\tRepacking all templates that use packing, this may take a while..." unless $quiet; - my $sth = $session->db->read( "SELECT DISTINCT(assetId) FROM template where usePacked=1" ); - while ( my ($assetId) = $sth->array ) { - my $asset = WebGUI::Asset::Template->new( $session, $assetId ); - next unless $asset; - $asset->update({ - template => $asset->get('template'), - usePacked => 0, - }); - } - - print "\n\t\tRepacking head tags in assets that use packing, this may take a while..." unless $quiet; - $sth = $session->db->read( "SELECT distinct(assetId) FROM assetData where usePackedHeadTags=1" ); - while ( my ($assetId) = $sth->array ) { - my $asset = WebGUI::Asset->newByDynamicClass( $session, $assetId ); - next unless $asset; - $asset->update({ - extraHeadTags => $asset->get('extraHeadTags'), - usePackedHeadTags => 0, - }); - } - - print "\n\t\tRepacking snippets that use packing, this may take a while..." unless $quiet; - $sth = $session->db->read( "SELECT DISTINCT(assetId) FROM snippet where usePacked=1" ); - while ( my ($assetId) = $sth->array ) { - my $asset = WebGUI::Asset->newByDynamicClass( $session, $assetId ); - next unless $asset; - $asset->update({ - snippet => $asset->get('snippet'), - usePacked => 0, - }); - } - - print "\n\t... DONE!\n" unless $quiet; -} - -#---------------------------------------------------------------------------- -# Delete all AddressBooks where the userId does not exist in the users table -sub deleteUnattachedAddressBooks { - my $session = shift; - - print "\n\t\tDelete all AddressBooks if the user for that book was deleted..." unless $quiet; - my $sth = $session->db->read( "SELECT addressBookId FROM addressBook where userId NOT IN (SELECT userId FROM users)" ); - while ( my ($addressBookId) = $sth->array ) { - my $book = WebGUI::Shop::AddressBook->new($session, $addressBookId); - $book->delete; - } - - print "\n\t... 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 diff --git a/docs/upgrades/upgrade_7.7.9-7.7.10.pl b/docs/upgrades/upgrade_7.7.9-7.7.10.pl deleted file mode 100644 index e859e7cce..000000000 --- a/docs/upgrades/upgrade_7.7.9-7.7.10.pl +++ /dev/null @@ -1,136 +0,0 @@ -#!/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.10'; -my $quiet; # this line required - - -my $session = start(); # this line required -addStoryPhotoWidth($session); - -# 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; -#} - -#---------------------------------------------------------------------------- -# Describe what our function does -sub addStoryPhotoWidth { - my $session = shift; - print "\tAdd a width parameter to the StoryManager... " unless $quiet; - # and here's our code - $session->db->write(<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 diff --git a/docs/upgrades/upgrade_7.8.0-7.8.1.pl b/docs/upgrades/upgrade_7.8.0-7.8.1.pl deleted file mode 100644 index b195e1110..000000000 --- a/docs/upgrades/upgrade_7.8.0-7.8.1.pl +++ /dev/null @@ -1,139 +0,0 @@ -#!/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.8.1'; -my $quiet; # this line required - - -my $session = start(); # this line required - -fixWikis( $session ); - -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; -#} - -# Describe what our function does -sub fixWikis { - my $session = shift; - print "\tFixing Wikis... " unless $quiet; - $session->db->write('INSERT IGNORE INTO assetAspect_Subscribable (assetId, revisionDate) SELECT assetId, revisionDate FROM WikiMaster'); - $session->db->write('INSERT IGNORE INTO assetAspect_Subscribable (assetId, revisionDate) SELECT assetId, revisionDate FROM WikiPage'); - 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 = eval { WebGUI::Asset->getImportNode($session)->importPackage( $storage ); }; - - 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."; - } - - # 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->newById( $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